software engineering - Se.uni-oldenburg.de
software engineering - Se.uni-oldenburg.de
software engineering - Se.uni-oldenburg.de
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Software <strong>engineering</strong> and<br />
Key aspect of the field<br />
© © Andreas Dilshod Winter Kuryazov 10.08.2012 Software-Engineering 1
Carl von Ossietzky University<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 2
Statistics<br />
Stu<strong>de</strong>nts: 11325<br />
o Female: 6354<br />
o Male: 4971<br />
Professors: 182<br />
o Female: 57<br />
o Male: 125<br />
Researcher: 999<br />
o Female: 436<br />
o Male: 563<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 3
Software Engineering Group<br />
Head<br />
© Andreas Winter<br />
o Andreas Winter<br />
<strong>Se</strong>cretary<br />
o Marion Bramkamp<br />
PhD Stu<strong>de</strong>nts<br />
o Jan Jelschen<br />
o Maxat Kulmanov<br />
o Dilshodbek Kuryazov<br />
o Yvette Teiken (OFFIS)<br />
Stu<strong>de</strong>nt Assistants<br />
o Marion Gottschalk<br />
12.10.12 Software Engineering Group 4
Software Engineering Group<br />
Topics in Research and Teaching<br />
o Software-Engineering<br />
o Mo<strong>de</strong>ling and Metamo<strong>de</strong>ling<br />
o Graph-Technology<br />
• Graph based mo<strong>de</strong>ling and implementation<br />
o Process-Mo<strong>de</strong>ls in Software Development<br />
o Software Evolution<br />
Mission<br />
o Development and Application of Graph-<br />
Technology<br />
to improve Software Evolution<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 5
Software Engineering and<br />
Software Evolution<br />
© Andreas Winter<br />
12.10.12 6<br />
Software Engineering
Software Engineering<br />
Software Crisis<br />
© Andreas Winter<br />
o Software <strong>de</strong>velopment<br />
in the sixties<br />
• Increase of <strong>software</strong><br />
complexity<br />
• missing suitable<br />
programming languages<br />
• missing suitable methods<br />
and techniques for<br />
<strong>engineering</strong><br />
<strong>software</strong> systems<br />
• No mail, internet, Java, .net,<br />
eclipse, Google, sourceforge,<br />
twitter, facebook, ...<br />
[http://homepages.cs.ncl.ac.uk/brian.ran<strong>de</strong>ll/NATO/]<br />
12.10.12 Software Engineering Group 7
Software Engineering<br />
[F. L. Bauer]<br />
o<br />
"[Software <strong>engineering</strong> is] the establishment<br />
and use of sound <strong>engineering</strong><br />
principles in or<strong>de</strong>r to obtain economically<br />
<strong>software</strong> that is reliable and works<br />
efficiently on real machines."<br />
(Software Engineering, Garmisch, October 7-11, 1968)<br />
[IEEE Std. 601.12-1990, 1993]<br />
o<br />
Software Engineering:<br />
(1) The application of a systematic,<br />
disciplined, quantifiable approach to the <strong>de</strong>velopment, operation,<br />
and maintenance of <strong>software</strong>; that is, the application of<br />
<strong>engineering</strong> to <strong>software</strong>.<br />
(2) The study of approaches as in (1).<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 8
Software Engineering<br />
Engineering<br />
o<br />
o<br />
o<br />
o<br />
follows established principles<br />
applies methods and techniques purposefully<br />
looks for technically and costly efficient solutions<br />
rejects blindly and impru<strong>de</strong>ntly ad hoc problem solving<br />
Software Engineering<br />
o<br />
o<br />
o<br />
o<br />
o<br />
elicits and clearly <strong>de</strong>fined system requirements<br />
constructs (mo<strong>de</strong>ls) alternative solutions (<strong>software</strong> architecture)<br />
evaluates solutions<br />
realizes solutions (i.e. programming)<br />
reviews solutions according their requirements<br />
Conclusion<br />
o <strong>software</strong> <strong>engineering</strong> != programming<br />
http://www.mobileslead-just-needs-high-efficiency/<br />
© Andreas Winter 12.10.12 Software Engineering Group 9
http://www.solovatsoft.com/<br />
waterfall-mo<strong>de</strong>l-<strong>software</strong><strong>de</strong>velopment.html<br />
Externe Vorgaben (AG)<br />
Rahmenbedingungen (für SE 1.7)<br />
Protokoll<br />
SE 1<br />
System-Anfor<strong>de</strong>rungsanalyse<br />
SE 1.1 bis SE 1.8<br />
SWPÄ-Konzept<br />
System<br />
(installiert und in Betrieb)<br />
SE 9<br />
Überleitung<br />
in die Nutzung<br />
SE 9.1 bis 9.3<br />
Anwen<strong>de</strong>rfor<strong>de</strong>rungen<br />
Produktinformationen<br />
Kosten-/Nutzenanalyse<br />
Angebotsbewertung<br />
Betriebsinformationen<br />
System (installierbar)<br />
SE 2<br />
System-Entwurf<br />
SE 2.1 bis SE 2.6<br />
Integrationsplan<br />
SE 8<br />
System-Integration<br />
SE 8.1 bis SE 8.3<br />
System-<br />
Ebene<br />
Software Engineering<br />
Schnittstellenübersicht<br />
Systemarchitektur<br />
Schnittstellenbeschreibung<br />
Betriebsinformationen<br />
Technische Anfor<strong>de</strong>rungen<br />
SE 3<br />
SW-/HW-Anfor<strong>de</strong>rungsanalyse<br />
SE 3.1 bis SE 3.5<br />
Betriebsinformationen<br />
Technische Anfor<strong>de</strong>rungen<br />
SE 4-SW<br />
SW-Grobentwurf<br />
SE 4.1-SW bis SE 4.3-SW<br />
Schnittstellenübersicht<br />
Schnittstellenbeschreibung<br />
Betriebsinformationen<br />
SW-Architektur<br />
Datenbank<br />
SW-Modul<br />
Implementierungsdokumente<br />
(SW-Modul, Datenbank)<br />
Software <strong>de</strong>velopment activities<br />
o<br />
o<br />
o<br />
o<br />
o<br />
o<br />
plan and organize projects<br />
elicit requirements<br />
<strong>de</strong>fine <strong>software</strong> architecture<br />
construct <strong>software</strong> systems<br />
test <strong>software</strong> systems<br />
run <strong>software</strong> systems<br />
Today´s <strong>software</strong> <strong>de</strong>velopment challenge<br />
o<br />
o<br />
[Kruchten, 2001]<br />
Software<br />
Evolution<br />
is<br />
missing<br />
improve <strong>software</strong> <strong>de</strong>velopment methods and technologies<br />
keep existing <strong>software</strong> systems fulfilling user´s needs<br />
SE 5-SW<br />
SW-Feinentwurf<br />
SE 5.1-SW und SE 5.2-SW<br />
Datenkatalog<br />
SW-Entwurf<br />
Betriebsinformationen<br />
SE 6-SW<br />
SW-Implementierung<br />
SE 6.1-SW bis SE 6.3-SW<br />
HW-Einheit<br />
Nicht-IT-Anteile<br />
SW-Einheit<br />
Implementierungsdokumente<br />
(SW-Einheit)<br />
SW-Einheits-/<br />
HW-Einheits-<br />
SE 7-SW<br />
Ebene<br />
SW-Integration<br />
SE 7.1-SW bis<br />
SE 7.4-SW<br />
Implementierungsdokumente<br />
(SW-Komponente)<br />
SW-Kompo-<br />
SW-Komponente<br />
nenten-<br />
Ebene<br />
Modul-/Datenbank-<br />
Ebene<br />
Legen<strong>de</strong>:<br />
Prüfaktivitäten<br />
(siehe QS)<br />
[BWB IT, 1997]<br />
[Beck, 2000]<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 10
Software Evolution Life Cycle<br />
Software Evolution<br />
o<br />
covers all activities to keep an existing <strong>software</strong> system running in<br />
its changing environment<br />
complete and<br />
extend <strong>software</strong><br />
system<br />
iteratively<br />
repair and<br />
correct small<br />
issues<br />
initial<br />
<strong>de</strong>velopment<br />
Evolution<br />
<strong>Se</strong>rvicing<br />
Phase Out<br />
improving Software Quality<br />
adapting to changed environment<br />
missing<br />
evolvability<br />
missing<br />
adaptablitiy<br />
[Rajlich/Bennett, 2000]<br />
© Andreas Winter<br />
12.10.12 Software Engineering Group 11
Activities in Software Evolution<br />
supports<br />
(if required)<br />
corrective<br />
maintenance<br />
Reverse<br />
Engineering<br />
Software<br />
Correction<br />
Extracting a more<br />
abstract system <strong>de</strong>scription<br />
<strong>software</strong> → documentation<br />
eliminating <strong>software</strong> errors<br />
<strong>software</strong> → more (?) correct <strong>software</strong><br />
Software<br />
Evolution<br />
perfective<br />
maintenance<br />
adaptive<br />
maintenance<br />
Software<br />
Re<strong>engineering</strong><br />
Software<br />
Migration<br />
improving <strong>software</strong> quality<br />
(not changing functionality)<br />
<strong>software</strong> → better (?) <strong>software</strong><br />
transferring <strong>software</strong> to new<br />
environment<br />
(not changing functionality)<br />
<strong>software</strong> → <strong>software</strong> in environment<br />
© Andreas Winter<br />
enhancive<br />
maintenance<br />
12.10.12<br />
Software<br />
Extension<br />
extending <strong>software</strong><br />
<strong>software</strong> → <strong>software</strong> with new or<br />
changed functionality<br />
Software Engineering Group 12
Software Evolution<br />
<strong>software</strong> extension<br />
50%<br />
(inclu<strong>de</strong>s perfective maintenance)<br />
initial<br />
<strong>de</strong>velopment<br />
25%<br />
adaptive<br />
maintenance<br />
13%<br />
initial<br />
<strong>de</strong>velopment<br />
is <strong>de</strong>creasing<br />
corrective<br />
maintenance<br />
12%<br />
Conclusion<br />
most work in <strong>software</strong> <strong>de</strong>velopment<br />
has to <strong>de</strong>al with existing systems<br />
© Andreas Winter<br />
[Lientz/Swanson, 1980,<br />
McKee, 1984, Nosek/Palvia, 1990]<br />
12.10.12 Software Engineering Group 13
1.1. What is a Mo<strong>de</strong>l?<br />
A mo<strong>de</strong>l is<br />
- a simplification of reality;<br />
- a representation in a certain medium of something in the same<br />
or other medium;<br />
- a systematic <strong>de</strong>scription of an object or phenomenon that<br />
shares important characteristics with the object or phenomenon.<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 14
1.1. What is a Mo<strong>de</strong>l?<br />
Characteristics of mo<strong>de</strong>ls:<br />
- a representation, on a smaller scale, of a <strong>de</strong>vice, structure, etc;<br />
- a standard to be imitated;<br />
- a representative form, style, or pattern;<br />
- a person who wears clothes to display them;<br />
- a <strong>de</strong>sign or style, <strong>de</strong>signs of particular product;<br />
- a simplified representation or <strong>de</strong>scription of a system or complex<br />
entity, <strong>de</strong>signed to facilitate calculations and predictions;<br />
- an interpretation of a formal system;<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 15
What is a Mo<strong>de</strong>l in computer science?<br />
A mo<strong>de</strong>l is a <strong>de</strong>scription of (part of ) a system<br />
written in well-<strong>de</strong>fined language.<br />
Abstraction<br />
Mo<strong>de</strong>l<br />
ML<br />
Is written in<br />
<strong>de</strong>scribes<br />
Reality<br />
Mo<strong>de</strong>lling<br />
A well-<strong>de</strong>fined language is a language with well-<strong>de</strong>fined<br />
form (syntax), and meaning (semantics), which is suitable<br />
for automated interpretation by a computer.<br />
An abstraction helps system users to un<strong>de</strong>rstand (part of )<br />
a system and interaction of subsystems in it.<br />
System<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 16
1.2. Why do we need mo<strong>de</strong>ls?<br />
Mo<strong>de</strong>ls are to<br />
- visualize a system;<br />
- analyst to un<strong>de</strong>rstand the functionality of the system;<br />
- comm<strong>uni</strong>cate with customers;<br />
- document the <strong>de</strong>cisions;<br />
- show external and internal prespective of a system‘s context;<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering<br />
17
1.3. What kind of mo<strong>de</strong>ls are in <strong>software</strong><br />
<strong>engineering</strong>?<br />
Types of mo<strong>de</strong>ls in <strong>software</strong> <strong>engineering</strong><br />
Dynamic mo<strong>de</strong>ls<br />
Static mo<strong>de</strong>ls<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 18
1.3. What kind of mo<strong>de</strong>ls are in <strong>software</strong><br />
<strong>engineering</strong>?<br />
Dynamic mo<strong>de</strong>ls – <strong>de</strong>scribe<br />
dynamic aspects of a system do<br />
change as a system runs<br />
Process mo<strong>de</strong>ls<br />
Behavioral mo<strong>de</strong>ls<br />
Data flow mo<strong>de</strong>ls<br />
Process maturity mo<strong>de</strong>ls<br />
User interaction mo<strong>de</strong>ls<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 19
1.3. What kind of mo<strong>de</strong>ls are in <strong>software</strong><br />
<strong>engineering</strong>?<br />
Static mo<strong>de</strong>ls – <strong>de</strong>scribe static<br />
aspects of a system do not<br />
change as a system runs<br />
Structural mo<strong>de</strong>ls<br />
Architectural mo<strong>de</strong>ls<br />
Data mo<strong>de</strong>ls<br />
Use case mo<strong>de</strong>ls<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 20
Mo<strong>de</strong>ling tools<br />
Mo<strong>de</strong>ling languages<br />
Querying tools<br />
Metalanguages &<br />
Metamo<strong>de</strong>ls<br />
1. UML – Unified Mo<strong>de</strong>ling<br />
language<br />
2. SysML – System<br />
Mo<strong>de</strong>ling Language<br />
3. EEML – Exten<strong>de</strong>d<br />
Enterprise Mo<strong>de</strong>ling<br />
Language<br />
4. ORM – Object Role<br />
Mo<strong>de</strong>ling<br />
5. SOMF – <strong>Se</strong>rvice –<br />
Oriented Mo<strong>de</strong>ling<br />
Framework<br />
6. JML – Java Mo<strong>de</strong>ling<br />
Language<br />
1. XMI – XML Metadata<br />
Interchage<br />
2. JMI – Java Metadata<br />
Interface<br />
3. IDL – Interactive Data<br />
Language<br />
1. MOF – Meta Object<br />
Facality<br />
2. BNF - Backus Naur Form<br />
3. CWM – Common<br />
Warehouse Metamo<strong>de</strong>l<br />
4. ODM – Ontology<br />
<strong>de</strong>finition Metamo<strong>de</strong>l<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering<br />
21
2. UML overview<br />
The UML is a language for<br />
• Visualizing<br />
• Specifying<br />
• Constructing<br />
• Documenting<br />
© © Andreas Dilshod Winter Kuryazov<br />
07.02.2012<br />
Software-Engineering<br />
22
2.1. Un<strong>de</strong>rstanding concepts of UML.<br />
The complete UML 2.0 package<br />
Superstructure<br />
Defines user constructs for the<br />
mo<strong>de</strong>ling of structure and<br />
performance of systems<br />
(e.g. class diagrams)<br />
Diagram interchange<br />
Defines the exchange of UML<br />
mo<strong>de</strong>ls, including diagram<br />
presentation<br />
Infrastucture<br />
Defines basic constructs for<br />
the <strong>de</strong>finition and adaptation<br />
of UML (e.g. profile for<br />
business mo<strong>de</strong>ling)<br />
Object constraint language<br />
(OCL)<br />
Defines language for the<br />
specification of restrictions<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 23
2.2. Building blocks of the UML<br />
Elements<br />
Relationships<br />
Diagrams<br />
1. Structural<br />
2. Behavioral<br />
3. Grouping<br />
4. Annotational<br />
1. Depen<strong>de</strong>ncy<br />
2. Association<br />
3. Generalization<br />
4. Realization<br />
1. Class<br />
2. Object<br />
3. Use case<br />
4. <strong>Se</strong>quence<br />
5. Collaboration<br />
6. Statechart<br />
7. Activity<br />
8. Component<br />
9. Deployment<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 24
Elements in the UML<br />
Structural elements are<br />
the nouns of UML mo<strong>de</strong>ls.<br />
These are the mostly<br />
static parts of a mo<strong>de</strong>l,<br />
representing elements<br />
that are either conceptual<br />
or physical.<br />
Behavioral elements<br />
are the dynamic parts of<br />
UML mo<strong>de</strong>ls. These are<br />
the verbs of a mo<strong>de</strong>l,<br />
representing behavior<br />
over time and space.<br />
Grouping elements are<br />
the organizational parts<br />
of UML mo<strong>de</strong>ls. These<br />
are the boxes into which<br />
a mo<strong>de</strong>l can be<br />
<strong>de</strong>composed..<br />
Annotational elements<br />
are the explanatory parts<br />
of UML mo<strong>de</strong>ls. These are<br />
the comments you may<br />
apply to <strong>de</strong>scribe,<br />
illuminate, and remark<br />
about any element in a<br />
mo<strong>de</strong>l.<br />
1. Class<br />
2. Interface<br />
3. Collaboration<br />
4. Use case<br />
5. Active class<br />
6. Component<br />
7. No<strong>de</strong><br />
1. Interaction<br />
2. State machine<br />
1. Packages 1. Note<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 25
Relationships in the UML<br />
A <strong>de</strong>pen<strong>de</strong>ncy is a<br />
semantic relationship<br />
between two things in<br />
which a change to one<br />
thing (the in<strong>de</strong>pen<strong>de</strong>nt<br />
thing) may affect the<br />
semantics of the other<br />
thing.<br />
An association is a<br />
structural relationship<br />
that <strong>de</strong>scribes a set of<br />
links, a link being a<br />
connection among<br />
objects. Aggregation is a<br />
special kind of<br />
association, representing<br />
a structural relationship<br />
between a whole and its<br />
parts.<br />
A generalization is a<br />
specialization/generaliza<br />
tion relationship in which<br />
objects of the<br />
specialized element (the<br />
child) are substitutable<br />
for objects of the<br />
generalized element (the<br />
parent). In this way, the<br />
child shares the<br />
structure and the<br />
behavior of the parent.<br />
A realization is a semantic<br />
relationship between<br />
classifiers, wherein one<br />
classifier specifies a<br />
contract that another<br />
classifier guarantees to<br />
carry out. In two places:<br />
between interfaces and the<br />
classes or components that<br />
realize them, and between<br />
use cases and the<br />
collaborations that realize<br />
them.<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 26
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 27
2.3. UML Metamo<strong>de</strong>ling<br />
A metamo<strong>de</strong>l<br />
- is at a higher level of abstraction than a mo<strong>de</strong>l;<br />
- is called “a mo<strong>de</strong>l of a mo<strong>de</strong>l“;<br />
- is the rules/grammar for the mo<strong>de</strong>lling language (ML) itself;<br />
- <strong>de</strong>scribes the rules and constraints of metatypes and metarelationships;<br />
- is a <strong>de</strong>scription of a mo<strong>de</strong>lling language;<br />
- <strong>de</strong>fines all the concepts that can be used within a language.<br />
Mo<strong>de</strong>l<br />
is<br />
written<br />
in<br />
Mo<strong>de</strong>ling<br />
language<br />
is<br />
<strong>de</strong>fined<br />
by<br />
MetaMo<strong>de</strong>l<br />
is<br />
written<br />
in<br />
Metalanguage<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 28
Architecture of metamo<strong>de</strong>l layers<br />
Layer<br />
Description<br />
M3<br />
M2<br />
M1<br />
M0<br />
The infrastructure for a<br />
metamo<strong>de</strong>ling architecture.<br />
Defines the language for<br />
specifying metamo<strong>de</strong>ls.<br />
An instance of a metametamo<strong>de</strong>l.<br />
Defines the<br />
language for specifying a<br />
mo<strong>de</strong>l<br />
An instance of a metamo<strong>de</strong>l.<br />
Defines a language to<br />
<strong>de</strong>scribe an information<br />
domain.<br />
An instance of a mo<strong>de</strong>l.<br />
Defines a specific<br />
information domain.<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 29
Metamo<strong>de</strong>ling layers<br />
© © Andreas Dilshod Winter Kuryazov<br />
07.02.2012 Software-Engineering 30
What is Meta Object Facility (MOF)?<br />
Metadata management framework and set of metadata<br />
services;<br />
Enable <strong>de</strong>velopment and interoperability of mo<strong>de</strong>l and metadata<br />
driven systems;<br />
MOF is used in most MDA-related technologies (UML, XMI, UML<br />
profiles, JMI);<br />
MOF has improved interoperability and productivity (all<br />
metamo<strong>de</strong>ls are based on the same metametamo<strong>de</strong>l);<br />
MOF 2.0 Mo<strong>de</strong>l is a framework for metamo<strong>de</strong>lling and metadata<br />
representation and management;<br />
MOF 2.0 IDL and MOF 2.0 Java are the mappings from MOF 2.0<br />
to IDL and Java respectively;<br />
MOF 2.0 Query/View/Transformation is a framework to <strong>de</strong>fine<br />
transformations based on MOF metamo<strong>de</strong>ls.<br />
© © Andreas Dilshod Winter Kuryazov<br />
07.02.2012 Software-Engineering 31
3. UML in Action<br />
UML Mo<strong>de</strong>ling<br />
1. Requirements<br />
2. Architecture<br />
3. Design<br />
4. Implementation<br />
5. Deployment<br />
UML Diagrams<br />
1. Use case<br />
2. Class<br />
3. Object<br />
4. <strong>Se</strong>quence<br />
5. State<br />
6. Component<br />
7. Collaboration<br />
8. Activity<br />
9. Deployment<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering
Un<strong>de</strong>rstanding mo<strong>de</strong>ling <strong>de</strong>ltas (Δs)<br />
Software evolution<br />
Version I.<br />
Requirements<br />
Version II.<br />
Requirements<br />
Design<br />
Design<br />
Co<strong>de</strong><br />
t0<br />
Co<strong>de</strong><br />
t1<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 33
3.1. Mo<strong>de</strong>ling <strong>de</strong>ltas<br />
Person<br />
Age : int<br />
Get_age() : int<br />
Before changes<br />
Person<br />
Age : int<br />
Get_age() : int<br />
After changes<br />
Stu<strong>de</strong>nt<br />
id : int<br />
Get_GPA() : Float<br />
1.. 1..<br />
Professor<br />
Age : int<br />
Get_age() : int<br />
Stu<strong>de</strong>nt<br />
id : int<br />
Get_GPA() : Float<br />
Subject_id : int<br />
1.. 1..<br />
Professor<br />
Age : int<br />
Get_age() : int<br />
Subject_id : int<br />
1..<br />
1..<br />
1.. 1..<br />
Subject<br />
id : int<br />
Get_name(id:int) : string<br />
© © Andreas Dilshod Winter Kuryazov<br />
07.02.2012 Software-Engineering 34
3.1. Mo<strong>de</strong>ling <strong>de</strong>ltas<br />
(presentation, merging, storing, adapting)<br />
Designer 1<br />
A<br />
C<br />
Source mo<strong>de</strong>l<br />
Final mo<strong>de</strong>l<br />
A<br />
C<br />
A<br />
C<br />
B<br />
Designer 2<br />
D<br />
A<br />
C<br />
B<br />
D<br />
© © Andreas Dilshod Winter Kuryazov<br />
07.02.2012 Software-Engineering 35
Difference Algorithms<br />
I<br />
AM<br />
II<br />
AM<br />
ReeD<strong>Se</strong>dS requirements driven<br />
<strong>software</strong> <strong>de</strong>velopment system<br />
(MOLA tools), SIDIFF (CDDiff,<br />
ADDiff).<br />
DM<br />
DM<br />
SIDIFF (CDDiff, ADDiff), ReeD<strong>Se</strong>dS<br />
CM<br />
t0<br />
CM<br />
t1<br />
A text based versioning tools RCS,<br />
CVS, SCCS and subversion,<br />
ReeD<strong>Se</strong>dS.<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 36
Motivation<br />
Software<br />
System<br />
(version. i)<br />
Mo<strong>de</strong>l<br />
repository<br />
A group of tools<br />
Software<br />
System<br />
(version. i+1)<br />
Collaborative<br />
mo<strong>de</strong>ling<br />
Calculating<br />
differences<br />
Representing<br />
differences<br />
Visualizing<br />
differences<br />
Merging<br />
(mo<strong>de</strong>ls with)<br />
differences<br />
Analyzing<br />
differences<br />
© © Andreas Dilshod Winter Kuryazov 25.05.2012 Software-Engineering 37
State of the Art<br />
● There is need for more sophisticated approach which<br />
addressed to represent mo<strong>de</strong>l differences<br />
● Integrability of an approach brings huge amount of<br />
possiblities<br />
● Tool support is still in its infancy<br />
● Mixture of <strong>de</strong>sign and co<strong>de</strong> levels. Recently, round-trip<br />
<strong>engineering</strong> raises the challenge of synchronizing mo<strong>de</strong>ls and<br />
co<strong>de</strong><br />
© © Andreas Dilshod Winter Kuryazov<br />
25.05.2012 Software-Engineering 38
Proposed approach<br />
© © Andreas Dilshod Winter Kuryazov 25.05.2012 Software-Engineering<br />
39
Rule representation of operations<br />
mm_OSV1, mm_OSV2<br />
Conforms to<br />
Conforms to<br />
Δ=[let a3: OSV1->addActivity(“pay invoice”);<br />
OSV1->cf1.changeTo(a3);<br />
let cf4: OSV1->addControlFlow(a3, a2);]<br />
Mapping<br />
© © Andreas Dilshod Winter Kuryazov 25.05.2012 Software-Engineering<br />
40
Meta-mo<strong>de</strong>l for UML Activity diagram<br />
© © Andreas Dilshod Winter Kuryazov 25.05.2012 Software-Engineering<br />
41
Benefits<br />
<br />
helps to make <strong>de</strong>cision<br />
<br />
focus on the problem with polymetric view<br />
<br />
structural and behavioural representation<br />
<br />
<strong>de</strong>tect and resolve of conflicts<br />
<br />
share mo<strong>de</strong>l artefacts among the team members<br />
<br />
speeds up <strong>de</strong>velopment process, and traces evolution process<br />
<br />
store differences instead of complete mo<strong>de</strong>ls<br />
© © Andreas Dilshod Winter Kuryazov 25.05.2012 Software-Engineering<br />
42
Thank you for<br />
attention!<br />
© © Andreas Dilshod Winter Kuryazov 07.02.2012 Software-Engineering 43