Software Engineering: A Layered Technology
S.E is a layered technology. Any engineering approach must rest on an organization commitment to quality i.e. if the quality is good then we can build increasingly more matured project.
A quality focus
The foundation for software engineering is the process layer. Process defines a framework for a set of key process areas (kpa’s) that must be established for effective delivery of s/w engineering technology. The kpa’s form the basis for management control of software projects and establish the context in which technical methods are applied, data, reports etc are produced, quality is ensured and change is properly managed.
Software engineering methods provide the technical how-to’s for building s/w i.e. they include requirements analysis, design, program construction, testing and support
Software engineering tools provide support for the process and the methods. When the tools are integrated, so that info created by one tool can be used by another, a system for the support for s/w development called CASE is established. CASE combines s/w, h/w and s/w engineering database.
A Generic view of software engineering:
The work associated with s/w engineering can be categorized into three generic phases regardless of application area, project size or complexity i.e. definition phase, development phase, and support phase.
· The definition phase focuses on what. That is during definition phase ,the software engineer attempts to identify what info is to be processed, what function and performance are desired, what interfaces are to be established, what design constraints exists and what validation criteria are required to define a successful system. Thus the key requirements of system and the s/w are identified.
· The development phase focuses on how. That is , during development a software engineer attempts to define how data are to be constructed, how function is to be implemented within a s/w architecture , how procedural details are to be implemented, how interfaces are to be characterized, how the design will be translated into programming language and how testing will be performed. The results of this phase are s/w design, code generation and s/w testing.
· The support phase focuses on change associated with error correction, adaptations required and changes due to enhancements brought about by changing customer requirements i.e. this phase reapplies the steps of definition and development phases. Four types of changes are encountered i.e. correction, adaptation, enhancement and prevention.
o Corrective maintenance changes the s/w to correct defects.
o Adaptive maintenance results on modification to the s/w to accommodate changes to its external environment (i.e.C.P.U, O.S etc).
o As software is used, the customer /user will recognize additional functions that will provide benefit i.e. future enhancements.
o Preventive maintenance often called s/w engineering must be conducted to enable the s/w to serve the needs of its users I.e. it makes changes to computer programs so that they can be more easily corrects, adapted and enhanced.
Generic process framework activities:
Communication, planning, modeling, construction and deployment.
There are also a no of umbrella …