Page History
| Tabsetup | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Show If | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| Panel | ||||
|---|---|---|---|---|
| ||||
Remove references to retired SWEs (indicated in red): SWE-019, 056 |
| 1. The Requirement | |
| 1 | 2. Rationale |
| 2 | 3. Guidance |
| 3 | 4. Small Projects |
| 4 | 5. Resources |
| 5 | 6. Lessons Learned |
| 6 | 7. Software Assurance |
| Div | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||
1. Requirements
1.1 NotesA documented software architecture that describes: the software’s structure; identifies the software qualities (i.e., performance, modifiability, and security); identifies the known interfaces between the software components and the components external to the software (both software and hardware); identifies the interfaces between the software components and identifies the software components. 1.2 History
1.3 Applicability Across Classes
|
| Div | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
2. RationaleExperience confirms that the quality and longevity of a software-reliant system is largely determined by its architecture. (See lessons learned NASA Study of Flight Software Complexity.
A software Software architecture:
|
| Div | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
3. GuidanceArchitectural design is defined as "the process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of a computer system."
The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the properties of those components, and the relationships between them. Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects. The software architecture is drafted during the early life-cycle phases of a project and baselined during Preliminary Design Review (PDR) (see SWE-019 and Topic 7.8 08 - Maturity of Life-Cycle Products at Milestone Reviews ). The drafting begins when the top-level (systems) requirements are collected and organized. The project's operational concepts document is prepared based on these top-level requirements. From this point, the project development team develops, decomposes, and sub-allocates allocated these requirements to multiple and more narrowly focused activities. (Tarullo
NASA/SP-2007-6105, NASA Systems Engineering Handbook,
As the software development team starts its effort, it organizes the activities based on these allocated and derived requirements. The key step is to transform these requirements into a logical and cohesive software architecture that supports the overall systems architecture for the NASA project. The team develops a software architecture to serve as guidance for the development of the components and systems-level software work products through a process known as architectural design. Software architecture is commonly organized using the concepts of "views" and "patterns." A view is a representation of a set of system components and the relationships among them. Views are used to describe the system from the viewpoint of different stakeholders, such as end-users, developers, or project managers.
The resulting software architecture also allows for the following: The verification of the software components, the integration of work products into systems, and the integration of the software systems into the rest of the project's systems.
SWE-057 calls for the software architecture to be documented. The required content for the 5.13 - SwDD - Software Design Description document includes the CSCI architectural design. The actual format for recording and describing the architectural concept is left to the software project team (all projects are different!). As a minimum, include the following:
See Topic topic 7.7 07 - Software Architecture Description for additional information on the recommended kinds of content that usually appear in software architecture descriptions and for examples from a number of sources of outlines for documenting software architecture descriptions. In situations where the software architecture does need to be changed, dependency models now offer the potential for maintaining the architecture over successive revisions during the software life cycle by specifying rules explicitly that define the acceptable and unacceptable dependencies between subsystems. The dependency structure model is an example of a compact representation that lists all constituent subsystems/activities and the corresponding information exchange and dependency patterns.
The Software Architecture Review Board, a software engineering sub-community of practice available to NASA users via the NASA Engineering Network (NEN), is a good resource of software design information including sample documents, reference documents, and expert contacts. NASA-specific software measurement usage information and resources are available in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook. Additional guidance related to the software architecture development and documentation may be found in the following related requirements in this handbook: |
| Div | ||||
|---|---|---|---|---|
| ||||
4. Small ProjectsSoftware architecture is one of those non-coding activities that can improve the quality of the software. Small projects may want a less-formal, more-affordable method of development. In general, if software development involves a low-risk and highly precedented system, the project can skimp on architecture. If the development involves high-risk and novel systems, the project must pay more attention to it.
|
| Div | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||
5. Resources5.1 References
|
| Include Page | ||||
|---|---|---|---|---|
|
| Div | ||||
|---|---|---|---|---|
| ||||
6. Lessons Learned6.1 NASA Lessons LearnedA documented lesson from the NASA Lessons Learned database notes the following:
6.2 Other Lessons LearnedNo other Lessons Learned have currently been identified for this requirement. |
| Div | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
7. Software Assurance
7.1 Tasking for Software Assurance
7.2 Software Assurance Products
7.3 Metrics
7.4 GuidanceConfirm that the project documents the software architecture. The software architecture is drafted during the early life-cycle phases of a project and baselined during Preliminary Design Review (PDR) (see Topic 7.08 - Maturity of Life-Cycle Products at Milestone Reviews ). The drafting begins when the top-level (systems) requirements are collected and organized. The project's operational concepts document is prepared based on these top-level requirements. From this point, the project development team develops, decomposes, and sub-allocated these requirements to multiple and more narrowly focused activities. (Tarullo
Confirm that the software architecture addresses or contains the software structure, qualities, interfaces, and external/internal components.
Analyze the software architecture features to determine if any software architecture features impact safety and mission assurance.
|


