MIS 495 -- Dr. Reithel
Chapter 13
Abstraction
In the highest level of abstraction, a solution is stated in broad terms using the language of the problem environment. At lower levels of abstraction, a more procedural orientation is taken. Finally, at the lowest level of abstraction, the solution is stated in a manner that can be directly implemented. Each step in the software engineering process is a refinement in the level of abstraction of the software solution.
Stepwise Refinement
Stepwise refinement is a top-down design strategy. The architecture of a program is developed by successively refining levels of procedural detail. Refinement is actually a process of elaboration. The beginning statement describes function or information conceptually, but provides no information about the internal workings of the function or the internal structure of the information. Refinement causes the designer to elaborate on the original statement, providing more and more detail.
Modularity
The concept of modularity states that software is divided into separately named and addressable components, called modules, that are integrated to satisfy problem requirements. This is done because it is easier to solve a complex problem when you break it into manageable pieces.
Software Architecture
Software architecture alludes to the overall structure of the software and the ways in which that structure provides conceptual integrity for a system. In its simplest form, architecture is the hierarchical structure of program components, the manner in which these components interact, and the structure of the data that are used by the components.
Cohesion
Cohesion is the natural extension of the information hiding concept. A cohesive module performs a single task within a software procedure, requiring little interaction with procedures being performed in other parts of a program. Stated simply, a cohesive module should ideally do just one thing.
Coincidental cohesion | Logical cohesion | Temporal cohesion | Procedural cohesion | Communicational cohesion | Sequential cohesion | Functional cohesion |
Low | ...... | ....... | ........ | ........ | ........ | High |
Coupling
Coupling is a measure of interconnection among modules in a program structure. Coupling depends on the interface complexity between modules, the point at which entry or reference is made to a module, and what data pass across the interface. Software design strives for the lowest possible coupling. Below is a measure of the interdependence among software modules.
No direct coupling | Data coupling | Stamp coupling | Control coupling | External coupling | Common coupling | Content coupling |
Loose | ...... | ....... | ........ | ........ | ........ | Tight |
Design Specification Outline
I. Scope
II. Data Design
III. Architectural Design
IV. Interface Design
V. Procedural Design
VI. Requirements Cross-reference
VII. Test Provisions
VIII. Special Notes
IX. Appendices
Last Modified: Wednesday, 13-Jan-99 9:10:00 CDT
Copyright ©
1999 University of Mississippi. All rights reserved.
Comments: reithel@bus.olemiss.edu