0% found this document useful (0 votes)
22 views

Software Engineering Overview

The document discusses software engineering and the software crisis. It defines software engineering as establishing sound engineering principles to create reliable and efficient software. It also discusses the goals of software engineering like maintainability and dependability. Principles like modularity and abstraction are covered. Methods like modeling, data-driven approaches, and object-oriented methods are summarized. Finally, process models like waterfall, incremental, and iterative development are briefly outlined.

Uploaded by

Kakz Karthik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Software Engineering Overview

The document discusses software engineering and the software crisis. It defines software engineering as establishing sound engineering principles to create reliable and efficient software. It also discusses the goals of software engineering like maintainability and dependability. Principles like modularity and abstraction are covered. Methods like modeling, data-driven approaches, and object-oriented methods are summarized. Finally, process models like waterfall, incremental, and iterative development are briefly outlined.

Uploaded by

Kakz Karthik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Review of Software

Engineering

The Software Crisis


Software Engineering
Goals of software engineering
Principles of software engineering
Methods
Process Models
1

The Software Crisis


Symptoms:

Unmanageable.
Over budget.
Late.
Poor quality.

Causes:

One word: Complexity.


2

Software Engineering (1of2)


Definition: The establishment and use
of sound engineering principles in
order to obtain economically software
that is reliable and works efficiently
on real machines. (Fritz Bauer, at
theFirst NATO Conference on
Software Engineering, 1969)
3

Software Engineering (2of2)


History:
Advances in hardware capability have enabled
increasingly complex software.
Our ability to intellectually manage this
complexity has always lagged the advances in
software complexity.
We continually require better tools.
CASE (Computer-Assisted Software Engineering)
tools.
Intellectual tools -- Software engineering techniques.
4

Goals of Software
Engineering
Maintainability the ability to easily make
changes, enhancements, or improvements.
Dependability the ability to rely on the
software to function properly when
needed.
Efficiency the ability for software to use
computing resources effectively (mainly
space and time).
Usability the ability for the end user to
easily and effectively put the software to
proper use.
5

Principles of Software
Engineering
Modularity divide and conquer.
Encapsulation hide the implementation.
Localization collect similar things
together.
Abstraction provide an illusion.
Uniformity make everything look similar.
Completeness do everything required.
Confirmability be able to prove that the
software works properly.
6

Methods
Modeling producing abstractions of
things.
Data-driven methods base the structure
of the solution on the structure of the
data.
Function-driven methods base the
structure of the solution on the required
functionality.
Object-oriented methods base the
structure of the solution on objects
(combinations of data and functions).

Process Models
Waterfall.

Strict sequence of activities.


One pass.

Incremental.

Multiple passes through sequence.


Start with skeletal system.
Add functionality in pre-planned increments.

Iterative.

Multiple passes.
Each pass starts with planning step.
Each pass ends with an evaluation step.

You might also like