KnowledgeBase - Software Engineering

Wednesday, December 20, 2006

Software QA Process Template

It is only a beginning ... Any comments are welcome

Software & Systems Quality Assurance Process


Software Quality Assurance Process
The purposes of this Software Quality Assurance Process are :
  • To assure the product quality of the final version of the software to be developed.
  • To define all the tasks to be accomplished and document all the phases to be covered for a software project.
  • To assure the observability of a software project for customers, main contractors, subcontractors.
  • To assure the controllability of a software project for a developer and/or a team and/or a team leader.
  • To assure and enable the fast back-tracking of the all the bugs and resulting revision changes on sub versions of the software.
  • To minimize the dependency of the project on a developer and/or a team and/or a team leader.
  • To minimize the cost of a software project.
  • To minimize the number of architecture design changes and the number of software updates.

This Software Quality Assurance Process is intended to provide help and guideline for mainly developers, software engineers and software & system engineers.

Output Documents are :

Project Plan Documents
Software Development Plan Template (SDPT)
This document defines the standard template for Software Development Plan (SDP) document.

Software Test and Deployment Plan Template (STPT)
This document defines the standard template for Software Test and Deployment Plan (STP) document.

Requirements Documents
Software Requirements Specifications Template (SRST)
This document defines the standard template for Customer Software Requirements Specifications (SRS) document.

Hardware Interface Requirement Specifications Template (HIRST)
This document defines the standard template for Hardware Interface Requirement Specifications (HIRS) document.

Design Documents
Software Architecture Design Template (SADT)
This document is also known as Architectural Design Description Template (ADDT).
This document defines the standard template for Software Architecture Design (SAD) document.

Software Use Case Diagram Template (SUCT)
This document defines the standard template for Software Use Case Diagram (SUC) document.

Class UML Diagram Template (CUMLT)
This document defines the standard template for Class UML Diagram.

Software Functional Design Description Template (SFDDT)
This document defines the standard template for Software Functional Design Description (SFDD) document.

Embedded Software Design Description Template (ESDDT)
This document defines the standard template for Embedded Software Design Description (ESDD) document.

Hardware Interface Design Description Template (HIDDT)
This document defines the standard template for Hardware Interface Design Description (HIDD) document.

User Interface Design Description Template (UIDDT)
This document defines the standard template for User Interface Design Description (UIDD) document.

Database Design Description Template (DBDDT)
This document defines the standard template for Database Design Description (DBDD) document.

Quality Assurance Documents
Coding Standard Template (CST)
This document defines the standard template for Coding Standard (CS) document(s).

VB.NET Coding Standard (VBCS)
This document defines the coding standards for one of the industrial standard Microsoft Visual Basic .NET programming language for .NET Framework.

C# Coding Standard (CSCS)
This document defines the coding standards for one of the industrial standard Microsoft C# programming language for .NET Framework.

Test Documents
Software Bug Reports Document Template (SBRT)
This document defines the standard template for Software Bug Reports (SBR) document.

Software Unit Test Procedures Template (SUTPT)
This document defines the standard template for Software Unit Test Procedures (SUTP) document.

Site Integration Test Procedures Template (SITPT)
This document defines the standard template for Software Integration Test Procedures (SITP) document.

Site Acceptance Test Procedures Template (SATPT)
This document defines the standard template for Site Acceptance Test Procedures (SATP) document.

Software Deliverable Documents
Software Version Description Template (SVDT)
This document defines the standard template for Software Version Description (SVD) document.

User Help Template (UHT)
This document defines the standard template for the User Help Document (UHD).

User Manual Template (UMT)
This document defines the standard template for the User Manual Document (UMD).

Software Installation/Uninstallation Template (SIUT)

This document defines the standard template for the Software Installation/Uninstallation (SIU) document.

Software Update/Upgrade Installation Template (SUIT)

This document defines the standard template for the Software Update/Upgrade Installation (SUI) document.



Software Development Process

  • System Requirements Analysis Phase
Definition : In this phase, software and system engineer gathers the system and software requirements by direct contact with the customer.
The software requirements are filtered from the overall requirements.

Output documents are
    1. Software Requirements Specifications Document (SRS)
    2. Hardware Interface Requirement Specifications Document (HIRS)

  • Software Requirements Analysis Phase
Definition : In this phase, the software requirements are numbered, grouped by categories and ordered by importance. They are defined more clearly and precise.
The software engineer writes additional sub requirements under the requirements gathered from the customer. The user interface requirements are made clearer.

Output documents are
    1. User Interface Design Description Document (UIDD)
    2. Hardware Interface Design Description Document (HIDD)

Revised Documents are
    1. Software Requirements Specifications Document (SRS)
    2. Hardware Interface Requirement Specifications Document (HIRS)
  • Software Preliminary Design Phase
Definition : In this phase, the software architecture is defined according to the software requirements. A user interface prototype is prepared according to the user interface
requirements and the customer accepts the final user interface. Use cases are made clear and the data stored in the database are made clear.

Output documents are
    1. Software Use Case Diagram (SUC)
    2. Software Architecture Design Document (SAD)
    3. Database Design Description Document (DBDD)

Revised Documents are
    1. Hardware Interface Design Description Document (HIDD)
    2. User Interface Design Description Document (UIDD)

  • Software Critical Design Phase
Definition : In this phase, the customer accepts the final software architecture and the final Use Cases. Class UML diagrams are created and Functional Descriptions are made.

Output documents are
    1. Class UML Diagram (CUML)
    2. Software Functional Design Description Document (SFDD)

Revised documents are
    1. Software Use Case Diagram (SUC)
    2. Database Design Description Document (DBDD)
    3. Software Architecture Design Document (SAD)

  • Software Implementation Phase
Definition : It is important that all the initial coding is done at this phase only but not before. The software is implemented according to the class UML diagrams. All the structural
part of the software (ie. user interface, network, database, middleware, components) are implemented sequentially. At the end of this phase, alpha versions of all the structural parts of the software are implemented.

Tasks are
    • Coding
    • Compiling
    • Debugging
    • User Interface Development
    • Database Creation
    • Filling Data to Database
Output documents are
    1. Software Version Description Document (SVD)

Revised Documents are
    1. Class UML Diagram (CUML)
    2. Software Functional Design Description Document (SFDD)

  • Software Unit Testing Phase
Definition : At this phase, the structural parts (ie. user interface, network, database, middleware, components) are tested independent from each other. At the end of this
phase, beta versions of all the structural parts of the software are ready.

Output documents are
    1. Software Unit Test Procedures Document (SUTP)
    2. Software Bug Reports (SBR)

Revised documents are
    1. Software Version Description Document (SVD)
    2. Class UML Diagram (CUML)
    3. Software Functional Design Description Document (SFDD)
    4. Hardware Interface Design Description Document (HIDD)

  • Software Integration Testing Phase
Definition : The structural parts (ie. user interface, network, database, middleware, components) are tested together. At the end of this phase, alpha version of the software is
ready.

Output documents are
    1. Software Integration Test Procedures Document (SITP)

Revised documents are
    1. Software Version Description Document (SVD)
    2. Software Bug Reports (SBR)
    3. Class UML Diagram (CUML)
    4. Software Functional Design Description Document (SFDD)
    5. Hardware Interface Design Description Document (HIDD)

  • System Integration Testing Phase
Definition : The alpha version of the software and the system is tested together at the site. At the end of this phase, beta version of the software is ready.
Bugs are recorded and updates are documented in Software Bug Reports. Version updates are done immediately and Software Update/Upgrade Installation documents
are published as a result.

Output documents are
    1. Site Acceptance Test Procedures Document (SATP)
    2. Software Update/Upgrade Installation Document (SUI)

Revised documents are
    1. Software Version Description Document (SVD)
    2. Software Bug Reports (SBR)

  • System Testing Phase
Definition : The beta version of the software and the system is tested together at the site. At the end of this phase, final version of the software is ready. Bugs are recorded
and updates are documented in Software Bug Reports. Version updates are done immediately and Software Update/Upgrade Installation documents are published as a result.

Output documents are
    1. Software Update/Upgrade Installation Document (SUI)

Revised documents are
    1. Site Acceptance Test Procedures Document (SATP)
    2. Software Version Description Document (SVD)
    3. Software Bug Reports (SBR)

  • Software Delivery Phase
Definition : The final version of the compiled software and the source codes are delivered. User Manual, User Help Documents and Software Installation/Uninstallation documents
are prepared and delivered.

Output documents are
    1. User Manual Document (UMD)
    2. User Help Document (UHD)
    3. Software Installation/Uninstallation Document (SIU)

Revised documents are
    1. Software Version Description Document (SVD)
    2. Software Bug Reports (SBR)