Software Development Process

Bread Crumbs: Home - SW_Dev_Proc

The software development process is a prescribed ordering of activities governed by guidelines and structured by templates and tools that produces a product in a consistently repeatable manner.

This software development process describes the activites that constitute the full lifecycle of a software development iteration. The end result of this process is a product that is delivered to the customer (a "deliverable").

Depending on the type of relationship that has been established with the customer, this software development process could be iterative. The entire software development lifecycle described by this software development process is executed for each release of the product. Each new release accretes function and refinement as this software development process is executed again and again for each iteration. Each successive iteration would build on the artifacts of the previous iteration.

Software Development Process Activities PNG

Requirements engineering assesses the feasibility of a project and if deemed feasible, gleans precise and accurate requirements which, when fulfilled, culminate in the correct system for the customer. Requirements verification and validation requires reviewing requirements according to an inspection checklist in order to evaluate the correctness of their attributes. Architecture design and detailed design are two fundamental facets of system design. Architecture design is more abstract than detailed design and it specifies the fundamental structure and patterns of the system under development. Detailed design focuses on all of the implementation details necessary to implement the architecture that is specified. Design verification and validation requires reviewing the design artifacts according to an inspection checklist in order to evaluate the validity of the design and verify its correctness. Implementation is the creation of source code from the design artifacts. Implementation involves peer reviewing source code and addressing all review findings. Implementation also requires the use of build tools to create binary files that are executable on the target. Implementation also encompasses unit-testing the source code as it is being developed and fixing defects as they are discovered. Testing along with code reviews verify the correct functioning of the components according to the design as well as valid functioning of the components according to the requirements and system model. Acceptance testing is the final exam of a software development project. The title of this type of testing has a very positive meaning; however, there is no guarantee of acceptance. An acceptance test suite is intended to exercise the system in its target environment under standard loads with standard user interaction patterns. Maintenance is the manifestation of the organization'scommitment to the customer. Typical maintenance activities include providing fixes for reported errors and providing fix packs or incremental maintenance releases to deploy accumulated error fixes to the install base.  

Example Output Artificates from Each Major Development Phase:

Requirements Engineering Phase Design Phase Implementation Phase Test Phase Maintenance Phase
Feasibility Report Example Structural View Model Coding Standard - Style Rules Test Plan Development - Requirements Traceability  
Interview Questionnaire (Word Document) Deployment View Model Coding Standard - Coding Rules Test Plan Development - Equivalence Partitioning  
Use Case Diagram Data View Model Code Review Checklist White Box Test Plan  
Inheritance Model Diagram Layered View Model Build Error Log Black Box Test Plan  
Statechart Diagram Object-oriented Decomposition View Flowgraph Analysis Module Test Plan  
Structural Model Diagram Statechart Model Cyclomatic Complexity Sub-system Integration Test Plan  
Data-flow Model Diagram Component Interface / Interconnection View Diagram      
Semantic Data Model Diagram UML Class Diagram      
Service Usage Model Diagram Interface Specification Document      
  Structural Chart      
  Control Flow Model      
  Class Diagram      
  Collaboration Diagram      
  Sequence Diagram      
  Activity Diagram      

Templates to use to produce Artifacts of Each Development Phase:

Requirements Engineering Phase Design Phase Project Planning
Feasibility Analysis Workbook (Excel Workbook) XMI for UML Project Used in Creating This Website Project Metrics (Excel Workbook)
Feasibility Report Template (Word Document)
Interface Specification Template (Word Document)
Vision Document (Word Document)  
Requirements Specification (Word Document)    
System Requirements Specification Template (Word Document)
System Specification Template (Word Document)    
Requirements Review Feedback Template (Word Document)    

No part of this work should be produced or used without the permission of the authors: Michael Turner and Dr. Sharon A White.