winter term 2011/12 prof. dr. dr. h. c. dieter rombach ...€¦ · basics of se – software...
TRANSCRIPT
Software Engineering Research Group: Processes and MeasurementFachbereich InformatikTU Kaiserslautern
Last update: 31.10.2011
Grundlagen des Software EngineeringFundamentals of Software Engineering
Winter Term 2011/12
Prof. Dr. Dr. h. c. Dieter Rombach
Chapter 2.1:
Basics of Software Engineering – Software Product
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 1
Basics of SE –Software Product Goals
� The goals of this chapter are to
– understand the basic product-related principles for engineering based software development, including
→ Software product reference model
→ Software product related software engineering principles
→ Basics of description techniques
→ Basics of modularization techniques
– be able to apply these principles to any technology
– judge the engineering conformance of technologies
� Recommended Literature:
– Jalote, P.: “A Concise Introduction to Software Engineering”, Springer London, 2010.
– Jalote, P.: “An Integrated Approach to Software Engineering”, 3nd Edition, Springer-Verlag, 2005.
– Sommerville, I.: “Software Engineering”, 9. Edition, Addison Wesley, 2010.
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 2
Basics of SE –Software Product
Product Model- Virtual Product Model for Software Development?
Problem-Description
Unit-Requirements
Developer-Requirements
System-design
User-Requirements
Unit-design
Units(Code)
ExecutableUnits
ExecutableSystem
UsableSystem
Used System
Sys
tem
Req
uire
men
ts D
escr
iptio
n
Sys
tem
-Des
ign-
Des
crip
tion
Sof
twar
eU
nit P
rodu
cts
Sof
twar
e S
yste
m P
rodu
cts
Sof
twar
e A
pplic
atio
n P
rodu
cts
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 3
Basics of SE –Software Product Software Application Engineering Reference Document s
� Application Name:– Owner:– Version:– Last Update:
� Problem Description
� User Requirements/Specification– Functional (use case diagrams, scenarios)– Non-Functional– Inverse– Design decisions– Traceability Matrix
� Developer Requirements– Functional (class/sequence/collaboration/state diagrams)– Non-Functional– Inverse– Design decision– Traceability Matrix
� Requirements Verification (2)� Requirements Validation (2)
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 4
Basics of SE –Software Product Software System Engineering Reference Documents
� System Name:
– Owner:
– Version:
– Last Update:
� [Developer Specification]
– Functional
– Non-Functional
– Inverse
– Design decisions
� System Design
– Overall design (class/sequence/collaboration/state diagrams)
– Traceability Matrix
– Unit Requirements (n)
→ Exports
→ Imports
� System Verification
� System Validation
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 5
Basics of SE –Software Product Software Unit Engineering Reference Documents
� Unit Name:
– Owner:
– Version:
– Last Update:
� [Unit Specification]
– Functional
→ Exports
→ Imports
– Non-Functional
– Inverse
– Design decisions
� Unit Implementation
– Unit design (data/algorithm)
– Unit Code
– (Traceability)
� Unit Verification
� Unit Validation
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 6
Basics of SE –Software Product
Virtual vs Real Products- Many different Mappings?
� In Practice:
– Any virtual product may be omitted (justification!).
– Any mapping onto real products exist.
Problem descriptionLastenheftLastenheft
User requirements
Developer requirements
System design
Unit requirements
Unit design
Unit code
PflichtenheftPflichtenheft
SystembeschreibungSystembeschreibung
Source code filesSource code files
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 7
Basics of SE –Software Product
Virtual vs. Real Products- SW vs. System Engineering?
Problem-Description
Unit-Requirements
Developer-Requirements
System-design
User-Requirements
Unit-design
Units(Code)
System- UserRequirements
System-Dev.Requirements
SystemDesign
(Software) User-Requirements
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 8
Basics of SE –Software Product Reverse- /Re-/Forward Engineering
Problem-Description
Unit-Requirements
Developer-Requirements
System-design
User-Requirements
Unit-design
Units(Code)
ExecutableUnits
ExecutableSystem
UsableSystem
Used System
Sys
tem
Req
uire
men
ts D
escr
iptio
n
Sys
tem
-Des
ign-
Des
crip
tion
Sof
twar
eU
nit P
rodu
cts
Sof
twar
e S
yste
m P
rodu
cts
Sof
twar
e A
pplic
atio
n P
rodu
cts
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 9
Basics of SE –Software Product Reverse-/ Re-/Forward Engineering
Problem-Description
Unit-Requirements
Developer-Requirements
System-design
User-Requirements
Unit-design
Units(Code)
ExecutableUnits
ExecutableSystem
UsableSystem
Used System
Sys
tem
Req
uire
men
ts D
escr
iptio
n
Sys
tem
-Des
ign-
Des
crip
tion
Sof
twar
eU
nit P
rodu
cts
Sof
twar
e S
yste
m P
rodu
cts
Sof
twar
e A
pplic
atio
n P
rodu
cts
???
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 10
Basics of SE –Software Product Reverse-/Re-/ Forward Engineering
Problem-Description
Unit-Requirements
Developer-Requirements
System-design
User-Requirements
Unit-design
Units(Code)
ExecutableUnits
ExecutableSystem
UsableSystem
Used System
Sys
tem
Req
uire
men
ts D
escr
iptio
n
Sys
tem
-Des
ign-
Des
crip
tion
Sof
twar
eU
nit P
rodu
cts
Sof
twar
e S
yste
m P
rodu
cts
Sof
twar
e A
pplic
atio
n P
rodu
cts
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 11
Basics of SE –Software Product
General Development Model- What is the role of any document?
� Goal for Product Xi
– Readily useable for developing the product of level (i+1)
– Easily changeable (including effects on level (i+1))
– Easily verifiable against level (i-1)
– Easily useable as a reference document for verification and validation
Xi+1
Xiex
Is validated againstXi
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 12
Basics of SE –Software Product Forms of Refinement
� The “is developed into” relationship involves the a ddition of information to the lower layer to realize the upper layer
� There are four main forms of additions (refinements ):
– Decomposition ( Aggregation)→ Breaking a large entity into smaller parts (e.g., system consists of units)→ Complete or incomplete refinement?→ Abstraction?
– Specialization (Generalization)→ Creating a specific variant (e.g., room (square meters))→ Inherits characteristics of parent
– Formalization → Representing an entity in a more formal form (e.g., informal requirements as use
cases)
– Completion→ Adding information that was missing at the level above (e.g., algorithmic design
to code)
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 13
Basics of SE –Software Product
Principle 1- Easy to understand
� Easy to Understand
– Tailored notation (towards stake-holders, appropriate mathematics)
– Tailored decomposition techniques
– Completeness
– Consistency
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 14
Basics of SE –Software Product
Principle 2- Divide and Conquer
� Divide and Conquer
– Decomposition approach
→ Types of “units” (e.g. classes in OO)
→ Types of relationships (e.g. method invocation in OO)
→ Different views (e.g. in UML)
– Characteristics of good decomposition
→ Each decomposed unit must be understood completely (no implicit knowledge necessary)
� All exports & imports known
� No implicit dependencies
→ Minimal coupling
→ Maximum cohesion
→ Maximum information hiding (e.g., changes of implementation of a unit does not affect unit specification; change of developer requirement affects ONE unit only)
→ Decomposition is complete (see Principle P3)
→ Verification can be done incrementally
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 15
Basics of SE –Software Product
Principle 3- Level Completness
� Level Completeness (of refinements)
– Lower level is complete refinement & upper level is complete abstraction
– Enables stepwise, incremental verification
– Reduces rework via constant feedback
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 16
Basics of SE –Software Product
Principle 4 - Horizontal Traceability
� Horizontal Traceability
– With respect to a given product, on a given abstraction level
→ Relationships between the elements in a given view must be explicitly documented (= local horizontal traceability) (e.g., data & activities in an activity diagram)
→ Relationships between elements of different views must be explicitly documented (= global horizontal traceability) (e.g., different diagram types in UML)
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 17
Basics of SE –Software Product
Principle 5- Vertical Traceability
� Vertical Traceability
– With respect to two products at adjacent abstraction levels
→ Relationships between refined elements within one product of our reference product model (= local vertical traceability) (e.g., functional refinements (see: chapter 4))
→ Relationships between refined elements of different products of our reference product model (= global vertical traceability) (e.g., refinements of developer requirements into designs (see: chapter 5))
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 18
Basics of SE –Software Product
Principle 6- Explicit documentation of the "is verified" relati onship
� Explicit documentation of the “is verified” relatio nship
– Scope of the checks (including reading technique, e.g. checklists)
– Results of the checks
– Resulting changes
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 19
Basics of SE –Software Product
Principle 7- Explicit documentation of the “is validated” relatio nship
� Explicit documentation of the “is validated” relati onship
– Scope of the checks (e.g., test strategy, test cases)
– Results of the checks
– Resulting changes
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 20
Basics of SE –Software Product
Relation between goals and products- Principles participate to the achievement of goals
� P1 Easy to Understand
� P2 Divide and Conquer
� P3 Level Completeness (of refinements)
� P4 Horizontal Traceability (local/global)
� P5 Vertical Traceability (local/global)
� P6 Explicit Documentation of the “is verified” Relationship
� P7 Explicit Documentation of the Realization Level of the “is validated” Relationship
PRINCIPLES
P1 P2/3 P4 P5 P6 P7
GO
ALS
Easily usable by level (i+1)
X X X
Easily changed X X X X X X
Easily verified against level (i-1)
X X X
Readily usable as a reference document for V & V
X X
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 21
Basics of SE –Software Product Scope of description techniques
� WHAT?
– For all products of the virtual product model
– Facets of description (interface, behavior)
– Aspects of description (functionality, non-functionality)
� HOW?
– Overview of basic description techniques
– Mapping of basic description techniques to facets & aspects
– Instantiation of basic description techniques into actual description techniques (e.g., UML)
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 22
Basics of SE –Software Product Views of description
� Interface (external, static facet)
� Behavior (external, dynamic facet)
� Structure (internal, static facet)
� Flows / relationships (internal, dynamic facet)
interface
structure
flow
behavior
� Product Reference
Model�SW Application Eng
�SW System Eng
�SW Unit Eng
�Virtual vs. Real Product
�Reverse-/Re-/Forward Eng.
� SE Principles�Dev. Model
�Principles
�G x P Matrix
� Description
Techniques�Views of Description
�Basic Techniques
© Prof. Dr. Dr. h. c. Dieter Rombach, Fundamentals of Software Engineering, Winter Term 2011/12 23
Basics of SE –Software Product Basic techniques
Interface Behavior Structure Flow
Natural languages x x x x
Regular expressions x
Data flow graphs x x x
Structure chart x
Control flow graphs x x
Entity relationship diagrams x
Logical/algebraic specification x x
Functional specification x x
Axiomatic specification x
Decision tables x
State diagrams x
Petri Nets x
Class/object diagrams x x
Operational specifications x x
Interaction diagrams x x x
Use case diagrams x x