Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

SOFTWARE ENGINEERING PRINCIPLES

Introduction
Software engineering is concerned with all aspects of software production from the early
stages of system specification through to maintaining the system after it has been used.
As a discipline, software engineering has progressed very far in a very short period of
time, particularly when compared to classical engineering field (like civil or electrical
engineering). In the early days of computing, not more than 50 years ago, computerized
systems were quite small. Most of the programming was done by scientists trying to
solve specific, relatively small mathematical problems. Errors in those systems
generally had only “annoying consequences to the mathematician who was trying to find
“the answer. Today we often build monstrous systems, in terms of size and complexity.
Principles of Software Engineering
Separation of Concerns
Modularity
Abstraction

When specifying the behavior of a data structure component, there are often two
concerns that need to be dealt with: basic functionality and support for data integrity. A
data structure component is often easier to use if these two concerns are divided as
much as possible into separate sets of client functions. It is certainly helpful to clients if
the client documentation treats the two concerns separately.
The principle of modularity is a specialization of the principle of separation of concerns.
Following the principle of modularity implies separating Software into components
according to functionality and responsibility. It describes a responsibility-driven
methodology for modularization in an object-oriented context.
The principle of abstraction is another specialization of the principle of separation of
concerns. Following the principle of abstraction implies separating the behavior of
software components from their implementation. It requires learning to look at software
and software components from two points of view: what it does, and how it does it.
INTRO TO SOFTWARE ENGINEERING

You might also like