Software Engineering (2160701)

BE | Semester-6   Winter-2018 | 16-11-2018

Q1) (a)

Explain Software Engineering as a Layered technology.

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.
Software Engineering Layers
(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