Mostrar mensagens com a etiqueta TOC. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta TOC. Mostrar todas as mensagens

segunda-feira, 15 de janeiro de 2018

BOOKS: TOCs of some of the most relevant SW Engineering books

The table of contents (TOC) of some the most relevant SW Engineering books mostly coincide, which is a good thing in the sense that it may point that the topic is getting "stabler".  Three of the most commonly used text books for software engineering courses are:


And the TOCs include...

Software Engineering, I. Sommerville, 10 ed.: Pearson, 2015

Ch. 1: Introduction Ch. 2: Software Processes Ch. 3: Agile Software Development Ch. 4: Requirements Engineering Ch. 5: System Modeling Ch. 6: Architectural Design Ch. 7: Design and Implementation Ch. 8: Software Testing Ch. 9: Software Evolution
Ch. 18: Service-oriented Software Engineering Ch. 22: Project Management Ch. 23: Project Planning Ch. 25: Configuration Management

Essentials of Software Engineering 

Ch. 1: Writing a program Ch. 2: Building a System Ch. 3: Engineering of Software Ch. 4: Software Process Models Ch. 5: New and Emerging Methodologies (Agile) Ch. 6: Requirements Engineering Ch. 7: Design: Architecture and Methodology Ch. 8.5: User Interface Design Ch. 9: Implementation Ch. 10: Testing and Quality Assurance Ch. 11: Configuration Management, Integration and Builds Ch. 12: Software Support and Maintenance Ch. 13: Software Project Management
Appx A: Software Development Plan (SDP) Appx B: Software Requirements Specifications (SRS) Appx C: Software Design (SDD) Appx D: Software Test Plan (STP) Essentials of Software Engineering, Frank Tsui; Orlando Karam; Barbara Bernal, 3 ed., Jones & Bartlett Learning

Software Engineering. Modern Approaches, E. J. Braude and M. E.Bernstein, 2 ed.: Wiley, 2011.

Ch. 1: Introduction to Software Engineering Ch. 2: Introduction to Quality and Metrics in Software Engineering Ch. 3: Software Process Ch. 4: Agile Software Processes Ch. 5: Quality in the Software Process Ch. 6: Software Configuration Management Ch. 7, Ch. 8.2-3: Principles of Software Project Management Ch. 10: Principles of Requirements Analysis Ch. 11: Analyzing High-Level Requirements Ch. 12: Analyzing Detailed Requirements Ch. 16: The Unified Modeling Language Ch. 18: Software Architecture Ch. 22.1-9: Principles of Implementation Ch. 25: Introduction to Software Testing Ch. 26.1-4: Unit Testing Ch. 27.1-6: Module and Integration Testing Ch. 28.1-2,4: Testing at the System Level Ch. 29: Software Maintenance

Source:
https://www.halvorsen.blog/ and Amazon Web Site.

quarta-feira, 12 de abril de 2017

Software PA Plan (SPAP) table of contents (as per ECSS/ESA standards)

The Short Story

SPAP is the Software Product Assurance Plan, as per the ECSS standards (ESA). The SPAP is related with the Software product assurance planning and control.

- A Software Product Assurance Plan (SPAP) must be produced and delivered for customer approval
• May be part of the overall project PA plan
 The SPAP must be up-to-date at each milestone
 The SPAP must contain a compliance matrix with respect to the applicable requirements
• For each requirement, reference to the implementation of that requirement

 A Document Requirements Description (DRD) for the SPAP is provided in ECSS-Q-ST-80C - Annex B

Source: ECSS-Q-ST-80C training.

The Long Story (the TOC)

The SPAP document shall answer to this requirements (what they mean with calling this a DRD and not a TOC, is that you can use whatever TOC you want, provided that the final document contents "answers" to all these requirements). I would say that the easier way to make sure nothing is forgotten is to user the requirements below as the TOC.

1. Introduction
2. Applicable and reference documents
3. Terms, definitions and abbreviated terms
4. System Overview
5. Software product assurance programme implementation
5.1 Organization
5.2 Responsibilities
5.3 Resources
5.4 Reporting
5.5 Quality models
5.6 Risk management
5.7 Supplier selection and control
5.8 Methods and tools
5.9 Process assessment and improvement
5.10 Operations and maintenance (optional)
6 Software process assurance
6.1 Software development cycle
6.2 Projects plans
6.3 Software dependability and safety
6.4 Software documentation and configuration management
6.5 Process metrics
6.6 Reuse of software
6.7 Product assurance planning for individual processes and activities
6.8 Procedures and standards
7 Software product quality assurance
The SPAP shall describe the approach taken to ensure the quality of the software product including the:
1. specification of the product metrics, their target values and the means to collect them;
2. definition of a timely metrication programme;
3. analyses to be performed on the collected metrics;
4. way the results are fed back to the development team;
5. documentation quality requirements;
6. assurance activities meant to ensure that the product meets the quality requirements.
8 Compliance matrix to software product assurance requirements

The Very Long Story (the commented TOC)

DRD explained, as in the Annex of the Standard:

<1> Introduction
a. The SPAP shall contain a description of the purpose, objective, content and the reason prompting its preparation.
<2> Applicable and reference documents
a. The SPAP shall list the applicable and reference documents to support the generation of the document.
<3> Terms, definitions and abbreviated terms
a. The SPAP shall include any additional terms, definition or abbreviated terms used.
<4> System Overview
a. The SPAP shall include or refer to a description of the system and software products being developed.
<5> Software product assurance programme implementation
<5.1> Organization
a. The SPAP shall describe the organization of software product assurance activities, including responsibility, authority and the interrelation of personnel who manage, perform and verify work affecting software quality.
b. The following topics shall be included:
1. organizational structure;
2. interfaces of each organisation, either external or internal, involved in the project;
3. relationship to the system level product assurance and safety;
4. independence of the software product assurance function;
5. delegation of software product assurance tasks to a lower level supplier, if any.
<5.2> Responsibilities
a. The SPAP shall describe the responsibilities of the software product assurance function.
<5.3> Resources
a. The SPAP shall describe the resources to be used to perform the software product assurance function.
b. The description in B.2.1<5.3>a. shall include human resources and skills, hardware and software tools.
<5.4> Reporting
a. The SPAP shall describe the reporting to be performed by software product assurance.
<5.5> Quality models
a. The SPAP shall describe the quality models applicable to the project and how they are used to specify the quality requirements.
<5.6> Risk management
a. The SPAP shall describe the contribution of the software product assurance function to the project risk management.
<5.7> Supplier selection and control
a. The SPAP shall describe the contribution of the software product assurance function to the next level suppliers selection and control.
<5.8> Methods and tools
a. The SPAP shall describe the methods and tools used for all the activities of the development cycle, and their level of maturity.
<5.9> Process assessment and improvement
a. 1. The SPAP shall state the scope and objectives of process assessment.
b. 2. The SPAP shall describe the methods and tools to be used for process assessment and improvement.
<5.10> Operations and maintenance (optional)
a. The SPAP shall specify the quality measures related to the operations and maintenance processes (alternatively, a separate SPAP is produced).
<6> Software process assurance
<6.1> Software development cycle
a. The SPAP shall refer to the software development cycle description in the software development plan.
b. If not covered in the software development plan, the life cycle shall be described.
c. The life cycle shall include a milestone immediately before the starting of the software validation.
<6.2> Projects plans
a. The SPAP shall describe all plans to be produced and used in the project.
b. The relationship between the project plans and a timely planning for their preparation and update shall be described.
<6.3> Software dependability and safety
a. The SPAP shall contain a description and justification of the measures to be applied for the handling of critical software, including the analyses to be performed and the standards applicable for critical software.
<6.4> Software documentation and configuration management
a. The SPAP shall describe the contribution of the software product assurance function to the proper implementation of documentation and configuration management.
b. The nonconformance control system shall be described or referenced. The point in the software life cycle from which the nonconformance procedures apply shall be specified.
c. The SPAP shall identify method and tool to protect the supplied software, a checksum-type key calculation for the delivered operational software, and a labelling method for the delivered media.
<6.5> Process metrics
a. The SPAP shall describe the process metrics derived from the defined quality models, the means to collect, store and analyze them, and the way they are used to manage the development processes.
<6.6> Reuse of software
a. The SPAP shall describe the approach for the reuse of existing software, including delta qualification.
<6.7> Product assurance planning for individual processes and activities
a. The following processes and activities shall be covered, taking into account the project scope and life cycle:
1. software requirements analysis;
2. software architectural design and design of software items;
3. coding;
4. testing and validation (including regression testing);
5. verification;
6. software delivery and acceptance;
7. operations and maintenance.
<6.8> Procedures and standards
a. The SPAP shall describe or list by reference all procedures and standards applicable to the development of the software in the project.
b. The software product assurance measures to ensure adherence to the project procedures and standards shall be described.
c. The standards and procedures to be described or listed in accordance with B.2.1<6.8>a shall be as a minimum those covering the following aspects:
1. project management;
2. risk management;
3. configuration and documentation management;
4. verification and validation;
5. requirements engineering;
6. design;
7. coding;
8. metrication;
9. nonconformance control;
10. audits;
11. alerts;
12. procurement;
13. reuse of existing software;
14. use of methods and tools;
15. numerical accuracy;
16. delivery, installation and acceptance;
17. operations;
18. maintenance;
19. device programming and marking.
<7> Software product quality assurance
a. The SPAP shall describe the approach taken to ensure the quality of the software product.
b. The description of the approach specified in B.2.1<7>a shall include the:
1. specification of the product metrics, their target values and the means to collect them;
2. definition of a timely metrication programme;
3. analyses to be performed on the collected metrics;
4. way the results are fed back to the development team;
5. documentation quality requirements;
6. assurance activities meant to ensure that the product meets the quality requirements.
<8> Compliance matrix to software product assurance requirements
a. The SPAP shall include the compliance matrix to the applicable software product assurance requirements (e.g. ECSS-Q-ST-80 clauses, as tailored by a product assurance requirements document), or provide a reference to it.
b. For each software product assurance requirement, the following information shall be provided:
1. requirement identifier;
2. compliance
(C = compliant, NC = non–compliant, NA = not applicable);
3. reference to the project documentation covering the requirement (e.g. section of the software product assurance plan);
4. remarks.

Source: ECSS-Q-ST-80C, Annex C (listing several TOCs, or at least some DRDs).



sexta-feira, 7 de abril de 2017

SPA Process: Internal Product Assurance Report (PAR TOC)

The Short Story

The Product Assurance Report (PAR) is the formal mechanism of communicating the Product Assurance Activities status and results in the project.

For most QMS / SDPs it is mandatory at milestone meetings and can be used to report problems to upper management between milestones.

The Long Story

PAR Purpose

The main purpose of the PAR is to:
  • Report the quality assurance activities being developed, along the project tailored life cycle, in order to assess the quality of the software development process (based on measured properties, verification undertaken, problems detected and problems solved);
  • Present the current project status (this may include not only the on-process and on-quality but also the overall status of the quality of the product being developed);
  • Report compliance to QMS and applicable standards for the project;
  • Report metrics and conclusions on these metrics (if found necessary);
  • Report of the verification results on the correct use of methods and tools in the software processes;
  • Present audit reports for the audits planned in the QAP (these include audits from the annual internal audit plan - if any). Safety audits should also be present, if performed;
  • Anticipate possible problems.

Example TOC for a PAR

Information to be included in the PAR (remember that this report can be produced several times during the project execution):
  • Highlights of organization and key personnel changes.
  • Assurance accomplishments and resulting software assurance program metrics for activities such as inspection and test, reviews, contractor/subcontractor surveys, audits.
  • Subcontractor assurance accomplishments, including items listed above, plus summaries of acceptance and certification reports.
  • Significant problems, their status, solutions, and preventive actions or corrections.
  • Trends in software quality metric data (e.g., defect types, location, priority/criticality).
  • Plans for upcoming software assurance activities.
  • Recommendations and relevant lessons learned.
The final format of an Internal PAR can be diverse. It could range from an e-mail circulated internaly (to the project team and delivery / execution departments in the company) to full formal documents.

Final Notes

Sometimes you'll have to produce an External PARs (documents) to be delivered to the customer (in PDF format). Remember that it could be counter-productive to disclose all information being collected in the Internal PAR, or that the customer can have template / specific standard requirements that will make him ask for that extra deliverable (see the Proposal/Contract for the specific project).

SPA Process: External PAR (TOC)

The Short Story

As stated in the IPAR topic, sometimes you'll have to produce an External PARs (document) to be delivered to the customer (in PDF format).
Why is that? Isn't this duplicating work? Yes and no.
Remember that it could be counter-productive to disclose all information being collected in the Internal PAR, or that the customer can have template / specific standard requirements that will make him ask for that extra deliverable (see the Proposal/Contract for the specific project).

The Long Story (TOC)

Example TOC for External QA Reports (External PARs):
  • Planning documentation progress status
  • Development activities status
  • Modules / Components development progress
  • Code Metrics
  • Verification activities status
  • Completeness / correctness statistics for Code reviews, Module Testing, Integration Testing
  • QA activities status
  • Reports, CM check-ups, On-process (SPA Log Book), etc.
  • Summary of CAs / NCs status
  • Activities / Actions to be performed before the next report