Introduction to Software Engineering

Software Engineering A Layered View

TOPIC ONESoftware Engineering 1

Software Engineering

Fritz Bauer [NAU69]

Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software. (2) The study of approaches as in (1).

A culture that is committed to continuous improvement on the software development process is fostered. A culture that enables the development of more effective approaches to software engineering. A culture that defines quality as building software that meets users requirements and complies with defined standards that is delivered on time and within budget.

Software Engineering

Software Process

It defines a framework that consists of key process areas that define and enable rational and timely delivery of the computer software. It integrates the other layers together because it establish what technical methods are applied, what tools are used, what work products need to be produced, what milestones need to be defined, what techniques to ensure quality is addressed, and how to control change properly.

Software Engineering

Methods

It provides the technical how-to's for building software. It is a systematic, established, or orderly procedure or way of doing anything. It includes a wide range of tasks such as requirements analysis, design, program construction, testing and maintenance.

It provides automated or semi-automated support for the process and methods. Computer-aided Software Engineering Tools provide a system of support to the software development project where information created by one tool can be used by another. Most tools are used to develop models.

Software Engineering

Model

Merriam-Webster and Garfield Dictionary

(1) structural design (2) a miniature representation; also : a pattern of something to be made a simplification of reality

Rational Rose

Software Engineering

10

What do we Model?

System Model

It is an inexpensive representation of complex system that one needs to study. It is a blueprint of building the components of the software.

Software Model

Software Engineering

11

Why do we Model?

It focuses on the important features of the system or software while downplaying less important features. We cannot comprehend the system in its entirety. It allows us to understand the system or software better which leads to openly discussing changes and corrections to the user's requirements at a low costs and minimal risks.