Software abstraction and modeling
software engineering is the application of
engineering to software .
We deal with software systems that are large and complex ,
built
by teams ,
exist in many versions .
Last many
years ,
and undergo
In software look
changes .
engineering ,
we at the
system as a whole .
Engineers abstract
away from a number of details that can
safely be
ignored .
I
idea
1
The with abstraction is to safely neglect the irrelevant details
"
for the task I want to do
A model is a simplified or partial representation of reality ,
defined in
order to accomplish a task or to reach an
agreement .
An abstraction is the
activity of
generalizing setting aside specific
and individual features .
Software design is activity of land using ) models
the
creating representing
an abstract view of the system .
software design ==
decision making
Design decisions are made on models .
There is a
design tradeoff :
design
"
the concept of
taking a decision in a
system usually trades off
some of the consequences this decision can have
"
A model represents a real There three features of model
system are a
good
:
.
i.
mapping feature a model is based on an original system
2. reduction feature reflects (relevant) selection of the
a model only a
original 's properties
3. pragmatic feature a model needs to be usable in place of an original
-
with respect to some purpose
~ model created
~
the thing that subject model intent with the intent
the model is about that satisfies
uses the model to a particular purpose
satisfy Iachieve his goals consumer
A consumer
may be human or software .
Consumer and intent influence
the abstraction level of a model .
The importance of a model
may vary .
, The purpose of a model can be descriptive or prescriptive .
'
descriptive purpose the model is created for describing a
phenomenon / subject
:
sketches and throw -
away models have a short life time and
are used to understand the reality better and to explore
possible solutions .
models of ideas and vision about the system to be
for
developed to exploit the model
having feedback before
implementing the
system .
models extracted from a
running system or source code
-
-
prescriptive purpose the model is meant to guide the
realisation of the system being modeled :
They guide the development of the system
The most common consumers of prescriptive models are
-
code
generators
Prescriptive models are often used for development
software development process
The software development process is the ordered set of activities .
of
''
the
The
goals of a development process are to determine order
stages involved in software development and evolution , and to establish
the transition criteria for
progressing from one stage to the next .
Thus ,
a process model addresses the following software project questions :
what shall we do next?
"
How shall continue do it ?
long we to
The main development activities are :
'
requirements engineering create the software specification .
specifies the main features of the system .
defines the quality to be met .
'
design detailed design of the
system descriptive and/or
bridge prescriptive) based on the
requirements .
'
implementation the executable software
testing
'
, The waterfall development process
-
The process exists in many variants ;
requirements all sharing sequential flow style .
definition .
Issues are poor agility ,
poor quality ,
and high risk .
system and i
document -
driven
software design
implementation
and unit testing
integration and
system testing
operation and
maintenance
Agile Traditional
#
§ continuous one -
off
€ Analysis Design Code Test
% activities activities
§
§
5
Agile principles
Agile methods iterative development with :
-
are
processes
g frequent releases of the product
-
1
A continuous interaction between the development
team and customer
*
a
a
reduce product documentation
continuous and
systematic assessment of
produced value and risks
in
"
the main characteristic of
agile is that a sprint all phases
"
are covered
"
in feature implemented
"
a sprint ,
one is selected to be
software engineering is the application of
engineering to software .
We deal with software systems that are large and complex ,
built
by teams ,
exist in many versions .
Last many
years ,
and undergo
In software look
changes .
engineering ,
we at the
system as a whole .
Engineers abstract
away from a number of details that can
safely be
ignored .
I
idea
1
The with abstraction is to safely neglect the irrelevant details
"
for the task I want to do
A model is a simplified or partial representation of reality ,
defined in
order to accomplish a task or to reach an
agreement .
An abstraction is the
activity of
generalizing setting aside specific
and individual features .
Software design is activity of land using ) models
the
creating representing
an abstract view of the system .
software design ==
decision making
Design decisions are made on models .
There is a
design tradeoff :
design
"
the concept of
taking a decision in a
system usually trades off
some of the consequences this decision can have
"
A model represents a real There three features of model
system are a
good
:
.
i.
mapping feature a model is based on an original system
2. reduction feature reflects (relevant) selection of the
a model only a
original 's properties
3. pragmatic feature a model needs to be usable in place of an original
-
with respect to some purpose
~ model created
~
the thing that subject model intent with the intent
the model is about that satisfies
uses the model to a particular purpose
satisfy Iachieve his goals consumer
A consumer
may be human or software .
Consumer and intent influence
the abstraction level of a model .
The importance of a model
may vary .
, The purpose of a model can be descriptive or prescriptive .
'
descriptive purpose the model is created for describing a
phenomenon / subject
:
sketches and throw -
away models have a short life time and
are used to understand the reality better and to explore
possible solutions .
models of ideas and vision about the system to be
for
developed to exploit the model
having feedback before
implementing the
system .
models extracted from a
running system or source code
-
-
prescriptive purpose the model is meant to guide the
realisation of the system being modeled :
They guide the development of the system
The most common consumers of prescriptive models are
-
code
generators
Prescriptive models are often used for development
software development process
The software development process is the ordered set of activities .
of
''
the
The
goals of a development process are to determine order
stages involved in software development and evolution , and to establish
the transition criteria for
progressing from one stage to the next .
Thus ,
a process model addresses the following software project questions :
what shall we do next?
"
How shall continue do it ?
long we to
The main development activities are :
'
requirements engineering create the software specification .
specifies the main features of the system .
defines the quality to be met .
'
design detailed design of the
system descriptive and/or
bridge prescriptive) based on the
requirements .
'
implementation the executable software
testing
'
, The waterfall development process
-
The process exists in many variants ;
requirements all sharing sequential flow style .
definition .
Issues are poor agility ,
poor quality ,
and high risk .
system and i
document -
driven
software design
implementation
and unit testing
integration and
system testing
operation and
maintenance
Agile Traditional
#
§ continuous one -
off
€ Analysis Design Code Test
% activities activities
§
§
5
Agile principles
Agile methods iterative development with :
-
are
processes
g frequent releases of the product
-
1
A continuous interaction between the development
team and customer
*
a
a
reduce product documentation
continuous and
systematic assessment of
produced value and risks
in
"
the main characteristic of
agile is that a sprint all phases
"
are covered
"
in feature implemented
"
a sprint ,
one is selected to be