Upload
andreluizpsilveira77
View
215
Download
0
Embed Size (px)
Citation preview
8/12/2019 ser_ch2
1/45
2005 IAS, Universitt Stuttgart 1
SER
Objectives of chapter 2
To define the exact meaning of software engineering
To introduce the most important terms and acronyms related to it
To outline general software engineering principles and methods
To understand what are the major development stages in a softwareproject
Software Engineering for Real-Time Systems
8/12/2019 ser_ch2
2/45
2005 IAS, Universitt Stuttgart 2
SERSoftware Engineering for Real-Time Systems
2 Fundamentals
2.1 Terminology
2.2 Quality Characteristics
2.3 Software Development Phases
2.4 Summary
8/12/2019 ser_ch2
3/45
2005 IAS, Universitt Stuttgart 3
SER
What can I do, if ...
2.1 Terminology
Quality
characteristics
Procedure
Concept
Method
Reliability
Terms
are important
for a
common
understanding
8/12/2019 ser_ch2
4/45
2005 IAS, Universitt Stuttgart 4
SER
General Terms
2.1 Terminology
Definition Software:Computer programs, procudures, rules and possible associated
documentation and data pertaining to operation of a computer system.
[IEEE 610.12]
Definition Software Product:
Self-contained result of a successfully completed software project, projectpart or software process.
Definition Software System:
Part of the physical or intellectual world consisting of software elements
and a software structure in which the software elements are arranged.
Exterior view on software
(customers point of view)
Interior view on software
(developers point of view)
8/12/2019 ser_ch2
5/45
2005 IAS, Universitt Stuttgart 5
SER2.1 Terminology
Definition Software Engineering:
Targeted provision and systematical use of principles, methods, concepts,
notations and tools for the partitioned, engineering-like development and
utilization of large software systems. Targeted means the consideration of
e.g. cost, time and quality.
[Balzert, Lehrbuch der Softwaretechnik]
Quality Cost
Time
Magic triangle:
Software
engineering
aims to
achieve theoptimum
8/12/2019 ser_ch2
6/45
2005 IAS, Universitt Stuttgart 6
SER
Characteristics
universal, abstract, general
constitute the theoretical basis
no statement about how the principle can be accomplished
independent of application domain or development phases
2.1 Terminology
Definition:
Principles are fundamental assumptions that can be taken as a basis for
actions.
[Balzert, Lehrbuch der Softwaretechnik]
Example
principle of structuring (basis of structured programming, e.g.)
8/12/2019 ser_ch2
7/45
2005 IAS, Universitt Stuttgart 7
SER
General principles of software engineering
Abstraction
Decomposition
Forming perspectives
2.1 Terminology
Abstraction
a generalization which is achieved by omitting properties
separation of essential and unimportant aspects
the decision on what unimportant is is not obvious and strongly depends
on the problem under consideration
especially in the early development stages abstractions are useful
in software development they concentrate on data and information flows
Advantages:
by omitting unimportant properties complexity can be reduced
the solution is getting more general and may be used in a broader context
8/12/2019 ser_ch2
8/45
2005 IAS, Universitt Stuttgart 8
SER
Decomposition
Delimiting elements from a whole
Separate consideration of each element
May be performed based on different aspects: hierarchy or modules
Always leads to some kind of structure, therefore the principle of
decomposition is also known as principle of structuring
2.1 Terminology
Advantages:
Complexity of elements is less than of the whole, i.e. decomposition results
in a better understanding and less errors
Elements may be realized in parallel
8/12/2019 ser_ch2
9/45
8/12/2019 ser_ch2
10/45
2005 IAS, Universitt Stuttgart 10
SER
Forming perspectives
Separate consideration or analysis of a circumstance from different pointsof view
Seeing the same thing from different angles is the key ability of a good
system analyst an important to understand what the customer is expecting
2.1 Terminology
Advantages: Consideration of all relevant aspects of a given problem
Less errors in early development stages
Example: Office automation
Economic perspective
Perspective of working place arrangement
Perspective of integration into existing EDP infrastructure
Perspective of user friendliness (one of the most important!)
8/12/2019 ser_ch2
11/45
2005 IAS, Universitt Stuttgart 11
SER
Definition:
Methods are systematically used, well-founded procedures for reaching
predefined goals (in general within the scope of predefined principles)Balzert, Lehrbuch der Softwaretechnik]
2.1 Terminology
Characteristics
make principles ready to use concrete in terms of separation into single steps
utilization and success has to be verifiable and measurable
state when and how which concept has to be used
methods are put in concrete form by procedures
Example
principle of structuring
associated method is structured programming, i.e.
designing programs by using sequences, selections and loops only
8/12/2019 ser_ch2
12/45
2005 IAS, Universitt Stuttgart 12
SER
General methods of software engineering
2.1 Terminology
Top-down method
Bottom-up method
Yo-yo approach
The direction of the development process being described allows todistinguish between different method classes:
User sphere or view
Basis sphere or machine
Top-down Bottom-up
8/12/2019 ser_ch2
13/45
2005 IAS, Universitt Stuttgart 13
SER
Top-down method
Starting point: abstract and complete description of the system to bedeveloped
Decomposition into subsystems and concretion at each development step
Consistency between abstract an concrete levels must be guaranteed
Also known as outside-in method
2.1 Terminology
Advantages: User sphere is the central point of the system development
Complete and precise specifications lead exactly to the expected system
The overall view facilitates finding appropriate abstraction levels and
getting a good system structure
Disadvantages: Highly developed ability of abstract thinking is essential
Hard to achieve transitions towards more concrete levels
Realization-related problems (constraints due to hardware, operating
system, or programming language) can be detected at the very end only
8/12/2019 ser_ch2
14/45
2005 IAS, Universitt Stuttgart 14
SER
Bottom-up method
Starting point: concrete basis machine with known functionality Step by step abstraction and combination of known elements to larger
system units
Last step consists of realizing the user machine
Also known as inside-out method
2.1 Terminology
Advantages:
The concrete starting point guarantees a solid basis for the system
development
Better chances that existing partial solutions are searched for and reused
Disadvantages:
Hard to match the user machine, which constitutes the actual objective of
the development, with what has been expected
Potential risk that low-level system components are created which later
turn out not to be relevant any more
8/12/2019 ser_ch2
15/45
2005 IAS, Universitt Stuttgart 15
SER
Yo-yo method
Pragmatic connection of top-down and bottom-up methods
Basically the same as top-down but switch to bottom-up allowed whenever
it is needed
Reason for switch: abstract description not possible or useful without
having considered some more concrete aspects and properties of the
system
2.1 Terminology
Advantages:
Allows flexible adaptation of the method to current situation
lower demand for abstract thinking ability
Disadvantages:
Decision of when to switch the development direction is arbitrary
8/12/2019 ser_ch2
16/45
2005 IAS, Universitt Stuttgart 16
SER2.1 Terminology
Definition:A concept is an abstraction allowing to model a defined fact from one or
several points of view.
[Balzert, Lehrbuch der Softwaretechnik]
Definition:
A notation represents one or several concepts by means of symbols.
[Balzert, Lehrbuch der Softwaretechnik]
Examples
Concepts of structured programming: sequence, selection, loop
Suitable notation: structure chart
8/12/2019 ser_ch2
17/45
8/12/2019 ser_ch2
18/45
2005 IAS, Universitt Stuttgart 18
SER2.1 Terminology
Definition:Tools provide an automated support for methods, procedures, concepts
and notations.
[Balzert, Lehrbuch der Softwaretechnik]
Characteristics
force to follow methods, procedures, standards, concepts and notations
increase the productivity
in software development tools are necessary but not sufficient
Examples
compilers, debuggers
test systems like micro-controller emulators or network packet generators
CASE tools (Computer Aided Software Engineering)
8/12/2019 ser_ch2
19/45
8/12/2019 ser_ch2
20/45
2005 IAS, Universitt Stuttgart 20
SER
2 Fundamentals
2.1 Terminology
2.2 Quality Characteristics
2.3 Software Development Phases
2.4 Summary
Software Engineering for Real-Time Systems
8/12/2019 ser_ch2
21/45
2005 IAS, Universitt Stuttgart 21
SER2.2 Quality Characteristics
Quality characteristics = development goals
How reliable is
the software?
Is the software
easy to use?
How efficient is
the software?
How easy can the
software be
modified?
How easy can the
software transfered
to another environment?
Are the required functionsavailable in the software?
Functionality
Reliability
Usability
Efficiency
Transferability
Maintainability
ISO/IEC
9126-1
8/12/2019 ser_ch2
22/45
2005 IAS, Universitt Stuttgart 22
SER2.2 Quality Characteristics
Definition:
Functionality is the set of attributes that bear on the existence of a set of
functions and their specified properties. The functions are those that
satisfy stated or implied needs.
[ISO/IEC 9126:1991]
Subdivision in:
Suitabilityappropriateness of the functions for specified tasks,
e.g. the search function of a text editor may be based on regular
expressions but wouldnt be suited for non-advanced users then
Accurateness
provision of right or agreed results or effects,
e.g. the correctness and the required accuracy of computed values
Interoperability
ability to interact with specified systems
8/12/2019 ser_ch2
23/45
2005 IAS, Universitt Stuttgart 23
SER2.2 Quality Characteristics
Compliance
adherence to application related standards or conventions or regulations
in laws and similar prescriptions
Security
ability to prevent unauthorized access, whether accidental or deliberate,
to programs or data
8/12/2019 ser_ch2
24/45
8/12/2019 ser_ch2
25/45
2005 IAS, Universitt Stuttgart 25
SER2.2 Quality Characteristics
Definition:
Usability is the set of attributes that bear on the effort needed for use,
and on the individual assessment of such use, by a stated or implied set
of users.
[ISO/IEC 9126:1991]
Subdivision in:
Understandabilitythe users effort for recognizing the logical concept and its applicability
Learnability
the users effort for learning an application,
i.e. the introduction
Operability
the users effort for operation and operation control
8/12/2019 ser_ch2
26/45
2005 IAS, Universitt Stuttgart 26
SER2.2 Quality Characteristics
Definition:
Efficiency is the set of attributes that bear on the relationship between
the level of performance of the software and the amount of resources
used, under stated conditions.
[ISO/IEC 9126:1991]
Subdivision in:
Time behaviorresponse and processing times and on throughput rates in performing
the function
Resource behavior
amount of resource used and the duration of such use in performing the
function
8/12/2019 ser_ch2
27/45
2005 IAS, Universitt Stuttgart 27
SER2.2 Quality Characteristics
Definition:
Maintainability is the set of attributes that bear on the effort needed to
make specified modifications.
[ISO/IEC 9126:1991]
Analyzability
effort needed for diagnosis of deficiencies or causes of failures, or foridentification of parts to be modified
Changeability
effort needed for modification, fault removal or for environmental change
Stability
risk of unexpected effect of modifications
Testability
effort needed for validating the modified software
Subdivision in:
8/12/2019 ser_ch2
28/45
2005 IAS, Universitt Stuttgart 28
SER2.2 Quality Characteristics
Example of a maintainable development: defining the
architecture of an embedded web server
Running on a micro-controller platform with Ethernet connectivity
Allows to serve HTML or XML documents from within a device to a
standard web browser
Incorporates an optimized implementation of needed Internet protocols
HTTP
TCP/IP
ARP
Ethernet
Option 1:
Whole protocol stack in a singlemodule
TCP
Option 2:
Each protocol layer in its own module
IP
ARP
Ethernet
HTTP
Hard to analyze because all layers
have to be regarded at once
Modifications are very likely to
cause side effects
Protocol layers can be inspected
changed and tested independently
of each other
8/12/2019 ser_ch2
29/45
2005 IAS, Universitt Stuttgart 29
SER
Definition:
Portability is the set of attributes that bear on the ability of software to be
transferred from one environment.
[ISO/IEC 9126:1991]
Adaptability
opportunity for its adaptation to different specified environments withoutapplying other actions or means than those provided for this purpose for
the software considered
Installability
effort needed to install the software in a specified environment
Conformanceadherence to standards or conventions relating to portability
Replacability
opportunity and effort using a software in the place of specified other
software in the environment of that software
Subdivision in:
2.2 Quality Characteristics
8/12/2019 ser_ch2
30/45
2005 IAS, Universitt Stuttgart 30
SER
Example of a portable development: migrating the
embedded web server to another micro-controller platform
HTTP
TCP/IP
ARP
Ethernet
Different micro-controller platform means there is different hardware
environment (CPU, memory resources, Ethernet chip, other peripherals)
But: most of the protocol layers dont access any hardware resources; the
Ethernet device driver constitutes the only exception
Option 1:
Whole protocol stack in a singlemodule
Option 2:
Each protocol layer in its own module
The whole software package is
getting involved
High probability of errors cropping
up while porting to new platform
Only the Ethernet device driver
needs to be touched
2.2 Quality Characteristics
TCP
IP
ARPEthernet
HTTP
8/12/2019 ser_ch2
31/45
2005 IAS, Universitt Stuttgart 31
SER2.2 Quality Characteristics
Weighting of quality characteristics
quality characteristic compete
in general: accurateness is more important than efficiency
order of precedence depends on the system
Examples of competing quality characteristics
maintainabiliy, portability efficiency
resource consumption fault tolerance
8/12/2019 ser_ch2
32/45
8/12/2019 ser_ch2
33/45
2005 IAS, Universitt Stuttgart 33
SER
How to increase the system quality
attach great importance to a complete and careful project documentation
decompose the system into modules, hide information, keep interfaces
smart
structure the system, adapt it to environment and resources
use problem-oriented modeling and programming languages, take care fortestability and readability, minimize fault probability
consider the qualification of your staffing and plan training programs
2.2 Quality Characteristics
general measures
8/12/2019 ser_ch2
34/45
8/12/2019 ser_ch2
35/45
2005 IAS, Universitt Stuttgart 35
SER
Overall view
2.3 Software Development Phases
Requirements
engineering
System
analysis
System and
software design
Implementation
Test
Requirements
specification
ProblemPhases can be
iterated and
may overlap
Xxx
Legend:
Development phase
Development resultYyy
System
model
Design
specification
Realized
system
Test
documentation
Maintenance,
enhancements
System
ready for use
8/12/2019 ser_ch2
36/45
2005 IAS, Universitt Stuttgart 36
SER
Requirements engineering
Finding out and describing the services the system is expected to provideand the constraints under which it must operate
Consultation and negotiation with the system users
2.3 Software Development Phases
Examples of typical requirements:
required functions
description of correct and invalid input data as well as
the required output data in either cases
start-up and shutdown phase
optional system enhancements
documentation-related requirements
performance parameters
quality characteristics
major test scenarios
8/12/2019 ser_ch2
37/45
2005 IAS, Universitt Stuttgart 37
SER2.3 Software Development Phases
Examples of constraints to be considered:
user profile
number of users
expertise of users
system environment
hardware performance
existing system software (operating system, common services)
existing software packages (other applications or software libraries)
Requirements engineering result:
Requirements specification
8/12/2019 ser_ch2
38/45
8/12/2019 ser_ch2
39/45
2005 IAS, Universitt Stuttgart 39
SER
System and software design
planning of the method applied for solving the problem
description of the parallel processes, of how they have to be synchronized,
their relationships with each other (interfaces and data) and their
relationships with the technical process (external interfaces and events)
description of involved devices and computers
accomplishment of the requirements as defined by the requirements
specification
2.3 Software Development Phases
Design specification
Design result:
8/12/2019 ser_ch2
40/45
2005 IAS, Universitt Stuttgart 40
SER
Implementation
Software realization of a program on the basis of the design specification using a
programming language
allocation of tasks and threads for the parallel processes
selection of appropriate control flow operators
selection of appropriate data types for the data, the interfaces and the
events
addition of comments to the program code
compiling, linking, loading and executing the realized programs
2.3 Software Development Phases
Hardware
realization of the hardware required by the design specification
creation or provision of needed devices
Program code and executables, assembled devices
Implementation results:
8/12/2019 ser_ch2
41/45
2005 IAS, Universitt Stuttgart 41
SER
Test
Unit test regarding single systems parts
verification against design specification
Integration test
regarding the whole system
verification against design specification
System test
regarding the whole system
validation against requirements
performance benchmarks, optimizations
2.3 Software Development Phases
Test specification and reports
Test results:
8/12/2019 ser_ch2
42/45
2005 IAS, Universitt Stuttgart 42
SER
Maintenance and enhancements
Life span of huge systems may last longer than
2.3 Software Development Phases
the underlying hardware is available
the staff having been involved in the development is available
Maintenance tasks:
elimination of errors enhancements due to new requirements
update of underlying hardware system or parts of it
General rule:
10 % of the development costs
= maintenance costs per year
8/12/2019 ser_ch2
43/45
8/12/2019 ser_ch2
44/45
2005 IAS, Universitt Stuttgart 44
SERSoftware Engineering for Real-Time Systems
2.1 Terminology
2.2 Quality Characteristics
2.3 Software Development Phases
2.4 Summary
2 Fundamentals
8/12/2019 ser_ch2
45/45
2005 IAS, Universitt Stuttgart 45
SER
Summary
Software Engineering means to achieve a high software quality whilekeeping software costs at the very minimum
Software Engineering guides to a systematic development by adopting
principles, methods, concepts, notations and tools
Software quality has a great variety of aspects; different quality
characteristics often influence and compete each other
Software quality is not an absolute term but has to be defined a new in
every upcoming software project
There are characteristic assignments and activities to be performed during
a software development which can be summarized in development phases
Each development phase consists of a set of activities to be carried out
and a set of expected results at the end of the phase
2.4 Summary