![Page 1: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/1.jpg)
1
Programming Language Constructs as Basis for Software Architectures
![Page 2: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/2.jpg)
2
From individual parts to components
In the 50s:Machine/Assembler programs: bound to specific hardware
In the 60s-70s:Higher programming languages (such as Pascal, C)Instructions can be combined into functions/procedures
Individual partsIn the 80s and 90s:
Functions/procedures are combined into Modules (Modula, Oberon, C++, Java, C#)
Software components
![Page 3: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/3.jpg)
3
Example: A File handler component
Read file
Write file
. . .
Sim
ple
Inte
rfac
e
Hidden implementation details:-Access to hard disc-Splitting up file contents, etc.
![Page 4: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/4.jpg)
4
Architecture-Patterns
Software-Patterns
![Page 5: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/5.jpg)
5
The Timeless Way of Building
Christopher Alexander, Professor of Architecture, Univ. of California, Berkeley:
1979 published Books:The Timeless Way of BuildingA Patttern Language (253 Patterns)
Quality without a name
Discovered by the Software-Community in 1991
![Page 6: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/6.jpg)
6
Example: Windows Overlooking Life
![Page 7: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/7.jpg)
7
Examples of Software Patterns
![Page 8: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/8.jpg)
8
How can software PlugIn-Architectures be created?
Described in Architecture manuals (1995):E. Gamma, R. Helm, R. Johnson, J. Vlissides:Design Patterns: Elements of Reusable Software
W. Pree:Design Patterns for Object-Oriented Software Development
![Page 9: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/9.jpg)
9
What are PlugIn-Architectures?
Modern cooking machine: plugging in various tools makes it a mixer, a mincer, a blender
New automodels resemble older ones in their core: chassis, transmission, engine pallet.
![Page 10: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/10.jpg)
10
Software Examples
Dedicated software:Hotel reservation systemCar rental systemSki rental systemMotorcycle rental systemetc.
PlugIn-Architecture:Reservation system(of rental property)
![Page 11: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/11.jpg)
11
Dedicated Software
Dependence between components is hard-coded
Coupling with another component requires changes
Hotel room
Car
![Page 12: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/12.jpg)
12
Pattern: PlugIn-Architectures require the definition of „Plugs“
Plug „Rental property“
Plug-compatibleComponents
![Page 13: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/13.jpg)
13
The so-called dynamic binding of calls makes changes in the source code unnecessary
m1()
m1()
m1()
call m1
![Page 14: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/14.jpg)
14
The Rental property „Plug“
Defines general, abstract characteristics:
isFree(Period)reserve(Period)estimatedPrice(Period)etc.
![Page 15: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/15.jpg)
15
Software Techniques –Quo vadis?
![Page 16: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/16.jpg)
16
Cost intensive maintenance of software, which is 20 - 30 years oldEngineering approaches will be established at least in sub - domains such as safety critical systems
![Page 17: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/17.jpg)
17
The simple, mechanical view is hardly scalable
Biological systems model→ Internet growth by a factor of 100 million
![Page 18: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/18.jpg)
Analysis and Design with UML
Software Engineering IWinter 2006/2007
Basics of Object-Oriented Modeling
Dr. Stefan Resmerita
![Page 19: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/19.jpg)
19
Tools for OO Analysis and
Design
![Page 20: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/20.jpg)
20
OO expectations
Improved modularityImproved reusability
Potential for reusable software architectures (= generic complex components) has not been fully investigated so far
General development modelAnalisys → Design → Implementation
Support for OO modeling is important
![Page 21: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/21.jpg)
21
What can be expected from OOAD Tools (I)
Great designs come from great designers, not from great tools.
Tools help bad designers create ghastly designs much more quickly.
Grady Booch(1994)
![Page 22: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/22.jpg)
22
What can be expected from OOAD Tools (II)
OOAD tools can perform:Providing and editing diagrams based on various OO notations Checking of consistency and constraints
Does an object have the called method?Are the invariants (e.g. single instance, etc.) satisfied?...
Completness evaluationAre all the Methods/Classes used?...
![Page 23: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/23.jpg)
23
Conventional (SA/SD) versus OO tools (I)
The main differences regard two aspects:
(1) Software ArchitectureConventional tools are based on a separation between data and functions
OO tools are based on the grouping of data and functions into meaningful „closed“ objects
![Page 24: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/24.jpg)
24
Conventional (SA/SD) versus OO tools (II)
(2) Semantic possibilities
Relationships in the conventional EROne-to-one (1:1) – has_a, is_aOne-to-many (1:m) – owns, contains, is_contained_inMany-to-many (m:n) – consists_of
![Page 25: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/25.jpg)
25
Conventional (SA/SD) versus OO tools (III)
OO modeling has more comprehensive means of expression
Class/Object relations and dependanciesInheritanceAssociationHas_a (by value, by reference)Uses_a (by value, by reference)
Class attributesIs_abstract, is_metaclassIs_parameterized
Access rights
![Page 26: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/26.jpg)
26
OO Techniques at the beginning of the 90s
OOD / Rational RoseGrady Booch
Object Modeling Technique (OMT)James Rumbaugh et al.
OO Software EngineeringIvar Jacobson et al.
OO Analysis (OOA)Peter Coad und Ed. Yourdon
Responsibility-Driven Design (RDD)Rebecca Wirfs-Brock et al.
OO System Analysis (OOSA)Sally Shlaer and Steve Mellor
. . .
![Page 27: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/27.jpg)
27
Example for Booch notation
Folder
TextDocument
Mailer
1
N
1
1
N
N
1
![Page 28: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/28.jpg)
28
Example of OMT notation
Mailer
... ...Folder
Mailbox
EmployeeGroup
Employee DesktopItem
![Page 29: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/29.jpg)
29
Common features of OOAD methods (I)
They aim to represent the physical world without artificial transformations as a software system
Application of the same concepts in all phases of software developmentThe border between Analysis and Design becomes more blurred
Moreover, very vague usage guidelines are indicated
![Page 30: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/30.jpg)
30
Common features of OOAD methods (II)
OOAD methods permit the modeling of the following aspects of a system:
Static aspectsThe Class/Object model stands in the foregroundHigher abstraction levels are represented by Subsystems
Dynamic aspectsInteraction diagram State diagramUse case diagram
![Page 31: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/31.jpg)
31
Differences between OOAD methods
The differences between the methods lie mostly in the notationThe notations are to a large extent language independent=> Standardization is obvious
All of the OO methodologies have much in common and should be contrasted more with non-OO methodologies than with each other.
James Rumbaugh(1991)
![Page 32: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/32.jpg)
32
UML influences
The Unified Modeling Language contains various aspects and notations from different methods
BoochHarel (State Charts)
Rumbaugh (Notation)Jacobson (Use Cases)Wirfs-Brock (Responsibilities)Shlaer-Mellor (Object Life Cycles)Meyer (Pre- und Post-Conditions)
![Page 33: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/33.jpg)
33
The UML standard
The first draft (version 0.8) was published in 1995Various adjustments and the inclusion of Ivar Jacobson led to version 0.9 in 1996Version 1.0 (an then 1.1) was submitted to the Object Management Group (OMG) in 1997 as basis for standardisationVersion 1.3 came out in 1999Version 1.4.2 became an international standard in 2005Current OMG standard: version 2.0Version 2.1 is in the works
![Page 34: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/34.jpg)
34
The Unified Modeling Language (I)
What is the UML?
LanguageCommunicationExchange of ideas
Modeling languageWords and rules for representing aspects of systems
![Page 35: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/35.jpg)
35
The Unified Modeling Language (II)
What is UML not?
No methodSpecifies how models are made but not which and when This is a task of the software development process
Method = Process + Modeling Language
![Page 36: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/36.jpg)
36
The Unified Modeling Language (III)
Why is UML needed?
Model visualizationModel specificationModel checkingSystem construction
Forward and reverse engineeringSystem documentation
![Page 37: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/37.jpg)
37
The Unified Modeling Language (IV)
ModelsProjections of systems on certain aspectsUsed for understanding systems
![Page 38: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/38.jpg)
38
OO concepts UML representationObjects, Classes, Messages/MethodsInheritance, Polymorphism, Dynamic BindingAbstract Classes, Abstract Coupling
![Page 39: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/39.jpg)
39
OO versus Procedural (I)
Procedural: Separation between data and procedures
![Page 40: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/40.jpg)
40
OO versus Procedural (II)
Object-oriented: Data and procedures form a logical unit an Object
![Page 41: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/41.jpg)
41
Objects(I)
An object is a representation of
A physical entity E.g. Person, Car, etc.
A logical entityE.g. Chemical process, mathematical formula, etc.
![Page 42: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/42.jpg)
42
Objects (II)
The main characteristics of an object are:
Its identityIts state
Its behavior
![Page 43: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/43.jpg)
43
Objects (III)
StateThe state of an object consists of its static attributes and their dynamic values
Values can be primitive: int, double, booleanValues can be references to other objects, or they can be other objects
![Page 44: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/44.jpg)
44
Objects(IV)
ExampleDrinks machine
1) Ready2) Busy3) Ready
Attributes – valuesPaid: booleanCans: number of cans
Pay
Remove drink
![Page 45: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/45.jpg)
45
Objects(V)
The behavior of an object is specified by its methods (=operations)
In principle, methods are conceptually equivalent to procedures/functions:
Methods = Name + Parameters + Return values
![Page 46: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/46.jpg)
46
Objects(VI)
Example Rectangle
Name of the operation: setColorParameter: name of the color (e.g. Red)Return values: none
Calling an operation of an object is reffered to as sending a message to the object
![Page 47: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/47.jpg)
47
Objects(VII)
IdentityThe identity of an object is the characteristic that differentiates the object from all the other objects
Two objects can be different even if their attributes, values and methods coincide
![Page 48: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/48.jpg)
48
Object – Orientation
ClassificationObject grouping
Polymorphism Static and dynamic typesDynamic binding
InheritanceType hierarchy
![Page 49: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/49.jpg)
49
Classification
Class
A class represents a set of objects that have the same structure and the same behavior
A class is a template from which objects can be generated
![Page 50: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/50.jpg)
50
Classification Example
Class PersonAttributes:
Name: StringAge: int
Operations:eat, sleep, ...
Object of type Person: SteffenAttributes:
Name: SteffenAge: 24
![Page 51: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/51.jpg)
51
Class as a template/type (I)
Comparison with C
struct{int day, month, year;
} date;date d1, d2;
⇒ All are accessible⇒ There is no method
![Page 52: Programming Language Constructs as Basis for … programming languages ... What can be expected from OOAD Tools (I) ... zVersion 1.4.2 became an international standard in](https://reader034.vdocuments.mx/reader034/viewer/2022051723/5ab978d97f8b9ad13d8dbca0/html5/thumbnails/52.jpg)
52
Class as a template/type (II)
A class indicates which type an object has, i.e., which messages understands and which attributes it has.
A class consists ofA unique nameAttributes and their typesMethods/Operations