Chapter 9: Software Specification and Design

9.1 Introduction

In Chapter 10 we will discuss how to measure a software system that is running. To facilitate this discussion it will be necessary to understand just what we are measuring. In the final analysis, a typical computer program is nothing more than a poorly designed set of machine-level instructions. The typical instruction repertoire on a typical computer is crafted by hardware engineers who have little understanding of or interest in what a programmer will need to perform his or her work most efficiently. We will learn very little if we just monitor these instructions as they execute. We will, in fact, be overwhelmed with data. It is appropriate, then, to take the time to understand just what is going on when the machine instructions are executing.

Each software system begins with a set of requirements. These requirements are either explicit and well defined, or they are implicit and not so well defined. In either case, the requirements will specify what the software system will do. These requirements will delineate a set of operations that a user will perform in interacting with the system. The user can be a person, a hardware system, or another software system.

Once we have defined what the system will do, we next will turn our attention to how the operations will be accomplished on our computer system. The design of a system will articulate a set of functionalities that describe how each operation will be implemented in the new software system. Again, under the best of circumstances, the functionalities will be completely and unambiguously defined. In the worst of circumstances, but far more typical, the functionalities will reside only in the heads of key software developers.

Ultimately, the structure of the system will resolve into a set of program modules. Each of the modules will implement one or more of the functionalities. At the design stage, these modules can be specified with some level of precision in the low-level design. More typically, the modular structure will simply emerge in source code as developers struggle to implement their ad hoc design.

For measurement purposes, we will need a bit more definition on the software development process. To that end, we will now specify each of the activities in the software specification process a little more precisely.



Software Engineering Measurement
Software Engineering Measurement
ISBN: 0849315034
EAN: 2147483647
Year: 2003
Pages: 139

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net