



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Project Management is the art of maximizing the probability that a project delivers its goals on Time, to Budget and at the required Quality. This lecture handout was provided by Sir Debashis Koppale. It includes: Software, Technical, Development, Structure, Data, Attribute, Design, Kernel, Algorithmic, Process, Part, Configuration
Typology: Study notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




2.12 Design
Management Aspect
Attributes of SW Design
Software design is actually a multi step process that focuses on four distinct attributes of a program:
The design process translates requirements into a representation of the software that can be assessed for quality before coding begins_._
Like requirements, the design is documented and becomes part of the software configuration.
Design is the technical kernel of software engineering. During design, progressive refinements of data structure, architecture, interfaces, and procedural detail of software components are developed, reviewed, and documented.
Design results in representations of software that can be assessed for quality. A number of fundamental software design principles and concepts have been proposed over the past four decades.
Design principles guide the software engineer as the design process proceeds. Design concepts provide basic criteria for design quality.
a. Code generation
The design must be translated into a machine-readable form. The code generation step performs this task. If design is performed in a detailed manner, code generation can be accomplished mechanistically.
b. Testing
Once code has been generated, program testing begins. The testing process focuses on the logical internals of the software, ensuring that all statements have been tested and on the functional externals; that is, conducting tests to uncover errors and ensure that defined input will produce actual results that agree with required results.
Key Features of Design
A number of fundamental software design principles and concepts have been proposed over the past four decades. Design principles guide the software engineer as the design process proceeds. Design concepts provide basic criteria for design quality. Support
Support
Software will undoubtedly undergo change after it is delivered to the customer (a possible exception is embedded software). Change will occur because errors have been encountered, because the software must be adapted to accommodate changes in its external environment (e.g. a change required because of a new operating system or peripheral device), or because the customer requires functional or performance enhancements.
Software support/maintenance reapplies each of the preceding phases to an existing program rather than a new one.
Modularity
Modularity (in both program and data) and the concept of abstraction enable the designer to simplify and reuse software components. Refinement provides a mechanism for representing successive layers of functional detail. Program and data structure contribute to an overall view of software architecture, while procedure provides the detail necessary for algorithm implementation.
a) Evaluate proposed changes b) Track the changes c) Control the Version d) Check integrity of Source code, documents, plans, design e) Ensure quality
Software Configuration Management Activities
SCM is used to establish and maintain integrity of software items and ensure that they can be traced easily. Using SCM, you can define a library structure for storage and retrieval of software items. SCM needs to be performed at all phases in the SDLC of a software project. The various SCM activities are:
The first activity in SCM involves identifying software configurable items (SCIs). SCI is an aggregation of software that is designated for configuration management. It is treated as a single entity in the configuration management process. For example, design documents, program code, test case, and custom requirement document are configurable items.
You can use the Item Traceability Matrix to identify SCIs at the end of each phase. A sample of Item Traceability Matrix is displayed in Table
Table 1: Item Traceability Matrix Phase Deliverable Name Requirement Analysis Design Construction Testing
Requirement Analysis Document
Requirement Analysis Document
Design Document
Functional Specification Document and Program Specification Document
Code
Code A Code B Code C
Test Document
Unit Test Cases System Test Cases Database Design Document
Database Design Specification
To identify SCls, you need to first breakdown the project deliverable to the SCI level. Each phase in the project has its own deliverables. To trace the deliverables, you need to map the SCls to the phases in which they are delivered.
2. Controlling Versions
Version control combines procedures and tools to manage different versions of configuration objects that are created during software product development. To control versions, you can use Version Control Register. In Version Control Register, you enter the details of components, such as component identification numbers, their versions, and dates of validity. It is advisable to release a baseline after a version is released. Baseline is a specification or a product that is formally reviewed and agreed upon. This serves as the basis for further development. Baseline can be changed only through formal change control procedures. A baseline consists of a set of SCIs that are logically related to each other. Baselines are established when subsequent changes to the SCIs need to be controlled. Version control is essential so that everybody uses only the latest version. Any kind of version mismatch might result in rework.