Software Development is a Layered Technology
Software development is totally a layered technology. Therefore, to develop software one will have to go from one layer to another. The layers are related and each layer demands the fulfillment of the previous layer.
Layers of Software Development
- Quality Focus
- Process
- Methods
- Tools
A Quality Focus
Software engineering must rest on an organizational commitment to quality. Total quality management and similar philosophies foster a continuous process improvement culture, and this culture ultimately leads to the development of increasingly more mature approaches to software engineering. The bedrock that supports software engineering is a quality focus.
Process
The foundation for software engineering is the process layer. Process defines a framework for a set of Key Process Areas (KPAs) that must be established for effective delivery of software engineering technology. Consequently, this establishes the context in which technical methods are applied, work products such as models, documents, data, reports, forms, etc. are produced, milestones are established, quality is ensured, and change is properly managed.
Methods
Software engineering methods provide the technical how-to’s for building software. Methods will include requirements analysis, design, program construction, testing, and support. This relies on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques.
Tools
Software engineering tools provide automated or semi-automated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called computer-aided software engineering, is established.
Read Next: Describe the Key Process Areas (KPAS).