Software Engineering Overview
Software Engineering Overview
Engineering
Unmanageable.
Over budget.
Late.
Poor quality.
Causes:
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.
Incremental.
Iterative.
Multiple passes.
Each pass starts with planning step.
Each pass ends with an evaluation step.