14.11.2014 Views

software engineering - Se.uni-oldenburg.de

software engineering - Se.uni-oldenburg.de

software engineering - Se.uni-oldenburg.de

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!