Вы находитесь на странице: 1из 14

Introduction to Software Engineering

Software Engineering A Layered View


TOPIC ONE
Software 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).

IEEE [IEEE93]

Software Engineering

A Layered View
To o ls Mt o s eh d S f wr Po e s ot ae r c s Qa t F c s u li y o u

Software Engineering

A Quality Focus

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.

Software Engineering

Examples of Methodology

Structured Methodologies

Information Engineering Systems Development Life Cycle/Project Life Cycle Rapid Application Development Methodology Joint Application Development Methodology CASE*Method

Software Engineering

Examples of Methodology

Object-oriented Methodology

Booch Method Coad and Yourdon Method Jacobson Method Rambaugh Method Wirfs-Brock Method

Software Engineering

Tools

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.

Software Engineering

12

Examples of Modeling Tools

Structured Approach

Data Flow Diagrams Entity-relationship Diagrams Structured English/Pseudocodes Flow Charts Unified Modeling Language (UML)

Object-oriented Approach

Software Engineering

13

Summary of Topic One


Software Engineering A Layered View


A Quality Focus Software Process Methods (Modeling) Tools

Software Engineering

14