Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently in real machines.
(Figure: Software Engineering Layers)
Software Engineering is a layered technology
A quality Focus:
- Main principle of Software Engineering is Quality Focus.
- An engineering approach must have a focus on quality.
- Total Quality Management (TQM), Six Sigma, ISO 9001, ISO 9000-3, CAPABILITY MATURITY MODEL (CMM), CMMI & similar approaches encourages a continuous process improvement culture
Process:
- It is a foundation of Software Engineering
- It is the glue the holds the technology layers
- It defines a framework with activities for effective delivery of software engineering technology
Methods:
- It provides technical how-to’s for building software
- It encompasses many tasks including communication, requirement analysis, design modeling, program construction, testing and support
Tools:
- Software Engineering Tools allows automation of activities which helps to perform systematic activities. A system for the support of software development, called computer-aided software engineering (CASE). Examples: Testing Tools, Bug/Issue Tracking Tools etc…
- Computer-aided software engineering (CASE) is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products
- CASE tools automate many of the activities involved in various life cycle phases