Software measurement as basis for software engineering.
Munson's primary ideas revolve around measurement of software properties as the basis for sound, high quality software development. With his experience with the Space Shuttle Primary Avionics Software System (PASS) forming a significant basis for his approach.
Software Specification and Design
Munson's book "Software Specification and Design" describes a process for converting a user-level operational specification into working software via a series of refinements that produce inter-linked documents. This approach provides complete traceability from user operations down to code. A high-level description of the refinement model is shown below:
The levels of refinement are:
- Operational - System definition from the user's perspective including a operational model describing the user interface for performing the operations.
- Operational Overview - A simple précis of the system. A concise statement of the basic operation of the system from the user's perspective.
- Operational Model - Answers what the system does. Should be a precise user's overview of the system. Includes any constraints around reliability, security, availability, maintainability, survivability, and performance. Should also include a graphical representation of the system.
- Operations - Set of external events to which the operational model must respond. Defined as a stimulus, response, and any sequential dependencies on other prior operations.
- Operational Specification - Document tying together the operational overview, operational model, and operations.
- Functional - Tackles the problem of how each operation is performed by defining a new abstract machine onto which Operations are mapped. This new machine is typically divided into functional units that communicate with one another.
- Functional Overview - First step in restricting degrees of freedom in the design process. An executive summary of the systems that are to be designed.
- Functional Model - A system-level description of how the system will be implemented. Describes an abstract machine functionally equivalent to the operational model with identical inputs from and outputs to the user, however it is composed of the functional subsystem components and their interfaces. Describes how the operational model actually works under the hood.
- Functionalities - Individual functionality of the abstract machine defined by transfer of control (receive from, transferred to), temporal constraints (preceding and following functionalities), data (incoming and outgoing), data protocols, and a brief descriptoin of the data transformations performed. Each functionality maps itself to Operations as well as to Modules
- Functional Specification - Document tying together the functional overview, functional model, and functionalities.
- Module - Low-level implementation of functionalities. It describes how each functionality is implemented under a programming-language specific model and further constrains degrees of freedom on design.
- Architectural Overview - Summarizes the nature of the abstract, programming-language specific machine the modules will operate on.
- Architectural Model - Complete description of the low-level, programming-language specific machine the modules will operate on.
- Modules - Precise pseudocode implementations of a particular function. Each module implements some or all of a particular functionality. Functionalities are mapped to one or more modules.
- Code - Finally, this the actual software implementation. Each Module maps to exactly one software module.
incoming(2): software toolsmunson
Last update on 7E550F, edited 1 times. 2/2thh