Delta-oriented Development of Software Product Lines

Size: px
Start display at page:

Download "Delta-oriented Development of Software Product Lines"

Transcription

1 Delta-oriented Development of Software Product Lines Ina Schaefer Institut für Software Systems Engineering Technische Universität Braunschweig Philipps-Universität Marburg 27. Juni 2011

2 Software Product Lines A product line is a family of products designed to take advantage of their common aspects and predicted variabilities. [Weiss; 1999] A product line is a set of systems sharing a common set of features that satisfy the specific needs of a particular market segment. [Clements, Northrop; 2001] 2

3 Product Lines in Industry Industrial-scale Approach for Reuse in Software Engineering Members of Product Line Hall of Fame: ( HP, Ericsson, Nokia, GM Powertrain, Boeing, Bosch, Lucent, Philips, Toshiba Commercially successful, e.g., HP Owen Firmware Cooperative: 1/4 of the staff, 1/3 of the time, and 1/25 of the bugs (compared to previous single application engineering) 3

4 Product Line Development Feature Family Engineering Model Product Line Artifacts Base Feature Configuration Application Engineering Product 4

5 Product Line Development Feature Family Engineering Model Product Line Artifacts Base Feature Configuration Automated Product Derivation Product 4

6 Outline Delta Modeling Delta Modeling and Model-based Development Delta-oriented Programming in DeltaJava Incremental Product Line Analysis Pure Delta-oriented Programming 5

7 Delta Modeling of Product Lines Core Product Product Delta1 [...] Product Deltan Product for valid feature configuration. Developed with Standard Techniques Modifications of Core Product. Application conditions over product features. Partial ordering for conflict resolution. I. Schaefer, A. Worret, A. Poetzsch-Heffter: A Model-based Framework for Automated Product Derivation. Workshop on Model-driven Approaches to Product Line Engineering (MAPLE), August

8 Configuration For a Feature Configuration: Determine product deltas with valid application condition. Determine linear ordering of product deltas compatible with partial ordering. Apply changes specified by product deltas to core product in the linear order. 7

9 Feature-based Variability Example: Trading System Software Product Line 8

10 Feature-based Variability Example: Trading System Software Product Line Payment Features 8

11 Component Modeling Component Core Model (for Cash Payment): Inv Inventory Cash Desk Inventory Inv Inv Bank Cash Desk! + Cash Desk Component Delta Model (for Card Payment): Inv Cash Desk! Bank Bank Bank Credit Card + + Delta-oriented Inv Development of Software Product Lines 9

12 Component! Modeling + (2) Inv Bank Cash Desk Bank Credit Card Configured Component Model (for Cash and Card Payment): Inv Bank Inventory Cash Desk Bank 10

13 Delta Modeling Evolutionary Development by Adding Product Deltas Explicit Treatment of Combinations of Features by Complex Application Conditions Proactive, Reactive and Extractive SPL Development Usable with Different Modelling Formalisms and Implementation Techniques Model Refinements are Orthogonal to Variability Modeling. 11

14 Model-based Development Feature Modelling Feature Model configure Feature Configuration create Modelling Level 1 Core Model1 Delta Models1 configure Product Models1 refine refine Modelling Level 2 Core Model2 Delta Models2 configure Product Models2 refine [...] refine Implementation Core Module Delta Modules configure Product Impl. I. Schaefer: Variability Modelling for Model-driven Development of Software Product Lines. Intl. Workshop on Variability Modelling of Software-intensive Systems (VaMoS 2010), Linz, January

15 Model-based Development Feature Modelling Feature Model configure Feature Configuration create Modelling Level 1 Core Model1 Delta Models1 configure Product Models1 refine refine Modelling Level 2 Core Model2 Delta Models2 configure Product Models2 refine [...] refine Implementation Core Module Delta Modules configure Product Impl. I. Schaefer: Variability Modelling for Model-driven Development of Software Product Lines. Intl. Workshop on Variability Modelling of Software-intensive Systems (VaMoS 2010), Linz, January

16 Model Refinement A Component Design can be refined to Class Diagrams: Each Component in Core Model is realized by a Class Core Diagram. Component Delta Models are realized by Class Delta Diagrams. For each Component: 1 Class Core Diagram Δ- Set of Δ- Class Implementation Delta Diagrams 13

17 Core Class Diagram Inv Inventory Cash Desk! + -Order Cash Desk Keyboard Cash Desk Bank Bank Display Inv tory Cash Desk Bank Bank 14

18 Core Class Diagram Inv Inventory Cash Desk Cash Desk! Refinement of Core Cash Desk Component Bank Bank + -Order Cash Desk Keyboard Display Inv tory Cash Desk Bank Bank 14

19 Class Delta Diagram ConnectionAgent Cash Desk Inventory Inv Bank +bool validatepaymentdata(int, int, float) + +Bank getbank() +void registerbank(bank) +! Credit Card + Inv Bank Cash Desk + Bank CashDesk Credit Card Inventory Inv CashDesk Cash Desk +void activatenoncashcontrollers() -Bank +void deactivatenoncashcontrollers() + Bank Cash Desk+void creditcardscanned(int) Bank +void CreditCardScanned(int) +void creditcardpinentered(int) +void CreditCardPinEntered(int) -void connectwithbank() -connectwithbank() * + +void startpaymentprocess() +!! + Keyboard CashDeskDisplay Card Reader CardReader + Printer +void enable() +void disable() +void enterpincode() 15

20 Class Delta Diagram ConnectionAgent Cash Desk Inventory Inv Bank +bool validatepaymentdata(int, int, float) + +Bank getbank() +void registerbank(bank) + Inv Cash Desk! Bank + Bank CashDesk Credit Card + Refinement of Inventory Inv Cash Desk Component Delta Model CashDesk Cash Desk +void activatenoncashcontrollers() -Bank +void deactivatenoncashcontrollers() + Bank Cash Desk+void creditcardscanned(int) Bank +void CreditCardScanned(int) +void creditcardpinentered(int) +void CreditCardPinEntered(int) -void connectwithbank() -connectwithbank() +void startpaymentprocess() Printer * + +!! + Keyboard CashDeskDisplay Card Reader CardReader Credit Card +void enable() +void disable() +void enterpincode() + 15

21 Commutativity Modelling Level i Core Modeli Delta Modelsi refine Modelling Level i+1 Core Modeli+1 Delta Modelsi+1 configure configure Product Modelsi refine Product Modelsi+1 If Model Refinement and Model Configuration are compatible, it holds that: refine(configurei((corei, Δsi),fc)) = configurei+1(refine (Corei, Δsi),fc)

22 Compatibility Additions of Modeling Elements are refined to Additions only. Removals of Modeling Elements are refined to Removals only. Modifications of Modeling Elements are refined to Additions, Modifications and Removals, such that for each Modification operation mod(e)of a Modelling Element e, it holds that apply(refine(e), refine(mod e)) = refine(e ) 17

23 Model-based Development Feature Modelling Feature Model configure Feature Configuration create Modelling Level 1 Core Model1 Delta Models1 configure Product Models1 refine refine Modelling Level 2 Core Model2 Delta Models2 configure Product Models2 refine [...] refine Implementation Core Module Delta Modules configure Product Impl. 18

24 Model-based Development Feature Modelling Feature Model configure Feature Configuration create Modelling Level 1 Core Model1 Delta Models1 configure Product Models1 refine refine Modelling Level 2 Core Model2 Delta Models2 configure Product Models2 refine [...] refine Implementation Core Module Delta Modules configure Product Impl. 18

25 DeltaJava - A PL for SPL Extension of Java with Core and Delta Modules Core Product is implemented by Core Module. Product Deltas are implemented by Delta Modules. A Product Implementation is obtained by Application of Delta Modules to Core Module. Type System ensures Safety of Delta Application. I. Schaefer, L. Bettini, V. Bono, F. Damiani, N. Tanzarella: Delta-oriented Programming of Software Product Lines. Proc. of 14th Software Product Line Conference (SPLC 2010), Korea, September

26 Example Product Line Feature Model: Expression Product Line Data Operations Lit Add Neg Print Eval 20

27 Core Module A core module contains a set of Java classes. core Print, Lit { class Lit implements Exp{ int value; Lit(int n) { value=n; } void print() { System.out.println(value); } } class Test { Exp a; void run() { a=new Lit(3); a.print(); } } } 21

28 Delta Modules Modifications on Class Level: Addition, Removal and Modification of Classes Modifications of Class Structure: Changing Super Class and Constructor Adding/Removing Fields/Methods Modifying Methods (wrapping with original call) Application Condition in when clause: Boolean Constraint on Features in Feature Model Partial Ordering of Delta Modules by after clauses 22

29 Delta Module for Add delta DAdd when Add { adds class Add { Exp expr1; Exp expr2; Add(Exp a, Exp b) { expr1=a; expr2=b; } } } 23

30 Delta for Add and Print delta DAddPrint after DAdd when Add && Print{ modifies class Add { adds void print() { expr1.print(); System.out.print(" + "); expr2.print(); } } } modifies class Test { adds Exp e; modifies void run() { original(); e=new Add(a, a); e.print(); } } Direct access to run method before modification. 24

31 Product Generation For a Feature Configuration: Determine product deltas with valid application condition in when clauses. Determine linear ordering of product deltas compatible with partial ordering in after clauses. Apply changes specified by product deltas to core product in the linear order. 25

32 Product Lit, Add, Print class Lit { int value; Lit(int n) { value=n; } void print() { System.out.print(value); } } class Add { Exp e1; Exp e2; Add(Exp a, Exp b) { e1=a; e2=b; } void print() { e1.print(); System.out.print(" + "); e2.print();} } class Test { Exp a; Exp e; void run() { a=new Lit(3); a.print(); e=new Add(a,a); e.print(); } } 26

33 DeltaJava Product Lines Starting from a Simple Core (Proactive Development) features Lit, Add, Neg, Print, Eval configurations Lit && Print && (Add Neg Eval ) core Lit, Print { [... ] } delta DEval when Eval { [...] } delta DAdd when Add { [...] } delta DAddPrint after DAdd when Add && Print { [...] } delta DAddEval after DAdd when Add && Eval { [...] } delta DNeg when Neg { [...] } delta DNegPrint after DNeg when Neg && Print { [...] } delta DNegEval after DNeg when Neg && Eval { [...] } Listing 5: Product Line Implementation in DELTAJAVA starti to implement all valid products. The feature model is described 27

34 modifies interface Exp { removes eval;} DeltaJava modifies class Lit Product { removes eval;} Lines (2) modifies class Add { removes eval;} } Starting from a Complex Core Listing (Extractive/Reactive 6: Removing Eval Development) from Complex C features Lit, Add, Neg, Print, Eval configurations Lit && Print && (Add Neg Eval ) core Lit, Print, Add, Eval { [... ] } delta DRemEval when!eval && Add { [...] } delta DRemAdd when!add { [...] } delta DRemAddEval when!add &&!Eval { [...] } delta DNeg when Neg { [...] } delta DNegPrint after DNeg when Neg && Print { [...] } delta DNegEval after DNeg when Neg && Eval { [...] } Listing 7: Product Line Implementation in DELTAJAVA starti features are not selected. Further, the delta modules DNeg, DN in the previous Delta-oriented implementation Development of Software areproduct required. Lines 28

35 Deltas vs. Feature Modules [AHEAD, Batory et al. 2004] Feature-oriented Programming Delta-oriented Programming Expressiveness Design from Base Module Design from Any Product Domain Features Optional Feature Problem Bijection between Features and Feature Modules Rearrange Code, Multiple Impl., Derivative Modules Delta Modules for Feature Combinations Direct Implementation of Interaction Safe Composition External Tools, Type Systems Partial Order for Conflict Resolution, Type System Evolution Refactoring Addition of Delta Modules Table 1: Summary of Comparison Jak DELTAJAVA DELTAJAVA Simple Core Complex Core 29 # feature LOC # delta LOC # delta LOC

36 Deltas vs. Feature Modules (2) # feature modules Jak DELTAJAVA DELTAJAVA Simple Core Complex Core LOC # delta modules LOC # delta modules LOC EPL [1] EPL [26] Calculator [7] List [7] GraphPL [25] Table 2: Evaluation Results (LOC is the number of lines of code) Summary. Feature-oriented programming is a general software engineering approach based on the principles of stepwise development that has been used to implement software product lines. In contrast, delta-oriented programming is specifically designed for this task such that it differs from feature-oriented programming as summarized in Table 1. 5 Evaluation 30

37 Applicability A set of delta-modules is applicable to a class table if all removed or modified classes exists. for every delta modifies-clause, all removed methods and fields exist. all modified methods exists. if added classes, methods and fields do not exist. 31

38 Well-formedness 1. The core configuration is a valid feature configuration. 2. No delta module has a valid application condition for the core configuration. 3. The partial order ensures that for every feature configuration, the set of delta modules with valid application condition a. is applicable to the respective intermediate product b. and conflict-free (all conflicting modifications are ordered). 32

39 Constraint-based Type System Type check and generate constraints for core and delta modules in isolation. A product is type checked by generating the product constraints (application of the delta module constraints to the core product constraints) checking the derived product constraints against the product s class signature table. I. Schaefer, L. Bettini, F. Damiani: Compositional Type-Checking for Delta-oriented Programming. Intl. Conference on Aspect-oriented Software Development (AOSDʼ11), March

40 Implementation Based on Xtext Language Development Framework Using XPAND for Code Generation Ecplise plugin with syntax highlighting, background parsing with error marking, code completion Stand-alone compiler 34

41 Implementation Based on Xtext Language Development Framework Using XPAND for Code Generation Ecplise plugin with syntax highlighting, background parsing with error marking, code completion Stand-alone compiler 34

42 Implementation Based on Xtext Language Development Framework Using XPAND for Code Generation Available at Ecplise plugin with syntax highlighting, background parsing with error marking, code completion Stand-alone compiler 34

43 Behavioral Specifications We consider design-by-contract specifications with class invariants and method contracts. Core module can be specified as a standard Java program using JML. Delta modules are specified by Specification Deltas Addition and removal of invariants Addition and removal of method contracts Modification of method contracts Delta-oriented Software Product Lines 35

44 Verification of DeltaJava SPL We use the KeY System for deductive verification of DeltaJava SPL. Input to KeY: Java Program with JML Specifications (generated from DeltaJava SPL) KeY generates proof obligations in dynamic logic and supports automatic and interactive verification. Delta-oriented Software Product Lines 36

45 Verification with KeY Delta-oriented Software Product Lines 37

46 Verification with KeY Delta-oriented Software Product Lines 37

47 Verification with KeY Delta-oriented Software Product Lines 37

48 Incremental Analysis Product P + Spec Proof Daniel Bruns, Vladimir Klebanov, Ina Schaefer: Verification of Software Product Lines with Delta-oriented Slicing. Intl. Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2010), Revised Selected Papers, Springer, January Delta-oriented Software Product Lines 38

49 Incremental Analysis Product P + Delta Application Code-Deltas Spec-Deltas Product P + Spec Spec Proof Daniel Bruns, Vladimir Klebanov, Ina Schaefer: Verification of Software Product Lines with Delta-oriented Slicing. Intl. Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2010), Revised Selected Papers, Springer, January Delta-oriented Software Product Lines 38

50 Incremental Analysis Product P + Spec Delta Application Code-Deltas Spec-Deltas 1. Determine valid proof obligations by Delta-oriented Slicing Product P + Spec Proof Daniel Bruns, Vladimir Klebanov, Ina Schaefer: Verification of Software Product Lines with Delta-oriented Slicing. Intl. Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2010), Revised Selected Papers, Springer, January Delta-oriented Software Product Lines 38

51 Incremental Analysis Product P + Spec Delta Application Code-Deltas Spec-Deltas 1. Determine valid proof obligations by Delta-oriented Slicing Product P + Spec Proof 2. Proof Reuse for changed proof obligations Proof Daniel Bruns, Vladimir Klebanov, Ina Schaefer: Verification of Software Product Lines with Delta-oriented Slicing. Intl. Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2010), Revised Selected Papers, Springer, January Delta-oriented Software Product Lines 38

52 Specification of Base Account public class BaseAccount { public instance invariant balance >= int balance; public BaseAccount(){ balance = 0; } public requires x > assignable ensures balance >= public void update(int x){balance += x; } } Balance of a Base Account is always positive. Method Contract Instance Invariant Delta-oriented Software Product Lines 39

53 Specification of Delta Sync delta DSyncUpdate after Dretirement, Dinvestment when Sync { modifies class Account { add public instance invariant lock!= null; adds Lock lock; add public requires x > assignable balance, ensures balance >= \old(balance); adds void sync_update(int x) {[...] } } } Delta-oriented Software Product Lines 40

54 Specification of SyncAccount by Application on Code and Specification Deltas public class BaseAccount { public instance invariant balance >= public instance invariant lock!= Lock lock; int balance; public BaseAccount(){ balance = 0;} Balance of a synchronized account is always positive. public requires x > assignable ensures balance >= public void update(int x){ balance += x; } public requires x > assignable balance, ensures balance >= \old(balance); void sync_update(int x) {[...]} } } Delta-oriented Software Product Lines 41

55 Example delta DSyncUpdate after Dretirement, Dinvestment when Sync { modifies class Account { add public instance invariant lock!= null; adds Lock lock; add public requires x > assignable balance, ensures balance >= \old(balance); adds void sync_update(int x) {[...] } } } Delta-oriented Software Product Lines 42

56 Example delta DSyncUpdate after Dretirement, Dinvestment when Sync { modifies class Account { add public instance invariant lock!= null; adds Lock lock; add public requires x > assignable balance, ensures balance >= \old(balance); adds void sync_update(int x) {[...] } } } Prove Invariant for methods accessing lock Delta-oriented Software Product Lines 42

57 Example delta DSyncUpdate after Dretirement, Dinvestment when Sync { modifies class Account { add public instance invariant lock!= null; adds Lock lock; add public requires x > assignable balance, ensures balance >= \old(balance); adds void sync_update(int x) {[...] } } } Prove Invariant for methods accessing lock Prove Contract and Existing Invariants Delta-oriented Software Product Lines 42

58 Core DOP Strengths: Any product can be core product. Feature combinations in application conditions. Explicit ordering for conflict resolution. Usable with different modelling and implementation languages. 43

59 Core DOP (2) Weaknesses: Selection of core product (e.g., for mandatory exclusive features). Only partial generalization of FOP. Limited support for product line evolution (e.g., if core product is no longer valid). 44

60 Pure DOP Core Product Product Delta1 [...] Product Deltan Product for valid feature configuration. Modifications of core product. Application conditions over product features in when clauses. Partial ordering for conflict resolution in after clauses. I. Schaefer, F. Damiani: Pure Delta-oriented Programming. 2nd Intl. Workshop on Feature-oriented Software Development (FOSDʼ10), October

61 Pure DOP Core Product Product Delta1 [...] Product Deltan Product for valid feature configuration. Modifications of core product. Application conditions over product features in when clauses. Partial ordering for conflict resolution in after clauses. I. Schaefer, F. Damiani: Pure Delta-oriented Programming. 2nd Intl. Workshop on Feature-oriented Software Development (FOSDʼ10), October

62 Pure DOP Core Product Product Delta1 [...] Product Deltan Product for valid feature configuration. Modifications of core product. Application conditions over product features in when clauses. Partial ordering for conflict resolution in after clauses. I. Schaefer, F. Damiani: Pure Delta-oriented Programming. 2nd Intl. Workshop on Feature-oriented Software Development (FOSDʼ10), October

63 Pure DOP Core Product Product Delta1 [...] Product Deltan Product for valid feature configuration. Modifications of core product. Application conditions over product features in Product when clauses. line specification contains application conditions and ordering. Partial ordering for conflict resolution in after clauses. I. Schaefer, F. Damiani: Pure Delta-oriented Programming. 2nd Intl. Workshop on Feature-oriented Software Development (FOSDʼ10), October

64 Pure DOP Product Line Feature Model: Expression Product Line Data Operations Lit Add Neg Print Eval 46

65 e tions delta DLit{ adds interface Exp { } Eval adds class Lit implements Exp { } int value; } Lit(int n) { value = n; } } } on Product Line Delta delta Modules DLit{ adds interface Exp { n embedding of LFJ LP J in Section Listing 4. 1: Delta delta module DLitPrint{ for Lit feature oactive, extractive and re DOP is a conceptual delta DLitPrint{ modifies interface Exp { void print(); ing } } modifies class Lit implements Exp { adds void print() { System.out.println(value); delta DLitEval{ } Pure DOP, we use the } adds class Lit implements Exp { int value; Lit(int n) { value = n; } Listing 1: Delta module for modifies interface Exp { void print(); } modifies class Lit implements Exp { adds void print() { System.out.println(value); } } 47

66 Product Line Specification features Lit, Add, Neg, Print, Eval configurations Lit & Print deltas [ DLit, DAdd when Add, DNeg when Neg ] [ DPrint, DEval when Eval, DAddPrint when Add, DAddEval when (Add & Eval), DNegPrint when Neg, DNegEval when (Neg & Eval) ] Listing 5: Pure DOP specification of the EPL 48

67 Product Line Specification features Lit, Add, Neg, Print, Eval configurations Lit & Print deltas [ DLit, DAdd when Add, DNeg when Neg ] [ DPrint, DEval when Eval, DAddPrint when Add, DAddEval when (Add & Eval), DNegPrint when Neg, DNegEval when (Neg & Eval) ] Application ordering is defined by Sequence of delta sets. Deltas in the same set must be commutative. Listing 5: Pure DOP specification of the EPL 48

68 FOP and PureDOP Lightweight Feature Java [Delaware et al.; FOAL 09/FSE 09] FMD ::= feature ϕ {cd rcd} feature module rcd ::= refines class C extending C { fd; md rmd } class refinement rmd ::= refines ms {s; Super(); s; return y;} method refinement Figure 3. LFJ: syntax of feature modules CT (C)= CT(C) CD APPLY(δ(C), CT(C)) if C dom(dmt(δ)) if δ(c)=adds CD if C modifiesdom(δ) where APPLY(δ(C), CT(C)), the application of the delta clause δ(c)=dc = modifies C { } to the class definition CT(C)= CD, is the class definition Delta-oriented CD Development definedof as Software follows: Product Lines 49

69 FOP and PureDOP Lightweight Feature Java [Delaware et al.; FOAL 09/FSE 09] FMD ::= feature ϕ {cd rcd} feature module rcd ::= refines class C extending C { fd; md rmd } class refinement rmd ::= refines ms {s; Super(); s; return y;} method refinement Figure 3. LFJ: syntax of feature modules Embedding of LFJ into LPΔJ - Defines same set of products: feature ϕ {cd rcd} = delta CT(C) ϕ { adds cd rcd if} C dom(dmt(δ)) refines CT (C)= classcd C extending C { fd; ifmd δ(c)=adds rmd } = CD modifies APPLY(δ(C), C extending CT(C)) C if{ Cadds modifiesdom(δ) fd adds md rmd } refines ms {s; Super(); s; return y;} = where APPLY(δ(C), CT(C)), the application of the delta clause δ(c)=dc = modifies modifies C ms {s; { } original(); to the class s; return definition y;} CT(C)= CD, is the Figure class 4. definition Translation CD of defined a feature as follows: module to a delta module 49

70 Extractive PL Development Listing 9: Delta module removing the features Lit, Add, Neg, Print, Eval configurations Lit & Print deltas [ DLitNegPrint when (!Add & Neg) ] [ DLitAddPrint when (Add!Neg) ] reactive ules to re comditions to capxisting product a prodct connsform ding to [ DNeg when (Add & Neg), DremAdd when (!Add &!Neg) ] [ DNegPrint when (Add & Neg), DLitEval when Eval, DAddEval when (Add & Eval), DNegEval when (Neg & Eval) ] Listing 10: Pure DOP specification of the 50

71 Extractive PL Development reactive ules to re comditions to cap- Existing Products Listing 9: Delta module removing the features Lit, Add, Neg, Print, Eval configurations Lit & Print deltas [ DLitNegPrint when (!Add & Neg) ] [ DLitAddPrint when (Add!Neg) ] xisting product a prodct connsform ding to [ DNeg when (Add & Neg), DremAdd when (!Add &!Neg) ] [ DNegPrint when (Add & Neg), DLitEval when Eval, DAddEval when (Add & Eval), DNegEval when (Neg & Eval) ] Listing 10: Pure DOP specification of the 50

72 Extractive PL Development reactive ules to re comditions to cap- Existing Products Listing 9: Delta module removing the features Lit, Add, Neg, Print, Eval configurations Lit & Print deltas [ DLitNegPrint when (!Add & Neg) ] [ DLitAddPrint when (Add!Neg) ] Feature xisting product a prodct connsform ding to Removal [ DNeg when (Add & Neg), DremAdd when (!Add &!Neg) ] [ DNegPrint when (Add & Neg), DLitEval when Eval, DAddEval when (Add & Eval), DNegEval when (Neg & Eval) ] Listing 10: Pure DOP specification of the 50

73 Product Line Evolution Expression Product Line Data Operations Lit Add Neg Sub Print Eval e 5. Feature model for evolved Expression Product Line 51

74 Product Line Evolution Listing 6: Delta modules for Sub feature features Lit, Add, Neg, Sub, Print, Eval configurations Lit & Eval & choose1(neg,sub) deltas [ DLit, DAdd when Add, DNeg when Neg, DSub when Sub ] [ DLitPrint when Print, DLitEval, DAddPrint when (Add & Print), DAddEval when Add, DNegPrint when (Neg & Print), DNegEval when Neg, DSubPrint when (Sub & Print), DSubEval when Sub ] Listing 7: Pure DOP specification of the evolve 52

75 Product Line Evolution Listing 6: Delta modules for Sub feature features Lit, Add, Neg, Sub, Print, Eval configurations Lit & Eval & choose1(neg,sub) deltas [ DLit, DAdd when Add, DNeg when Neg, DSub when Sub ] [ DLitPrint when Print, DLitEval, DAddPrint when (Add & Print), DAddEval when Add, DNegPrint when (Neg & Print), DNegEval when Neg, DSubPrint when (Sub & Print), DSubEval when Sub ] Listing 7: Pure DOP specification of the evolve 52

76 Product Line Evolution Listing 6: Delta modules for Sub feature Change in Feature Model New and Reconfigured Delta Modules features Lit, Add, Neg, Sub, Print, Eval configurations Lit & Eval & choose1(neg,sub) deltas [ DLit, DAdd when Add, DNeg when Neg, DSub when Sub ] [ DLitPrint when Print, DLitEval, DAddPrint when (Add & Print), DAddEval when Add, DNegPrint when (Neg & Print), DNegEval when Neg, DSubPrint when (Sub & Print), DSubEval when Sub ] Listing 7: Pure DOP specification of the evolve 52

77 Pure DOP vs. Core DOP Core DOP PL can be transformed to Pure DOP PL by introducing core product in first delta module. Pure DOP PL can be transformed to Core DOP PL by adding empty product to Core DOP PL. 53

78 Conclusion Summary: Delta Modeling of Software Product Lines Pure Delta-oriented Programming Incremental Product Line Analysis Delta-oriented Programming with Delta Java Future Work: Patching and Transforming DOP Product Lines Familiy-based and Compositional Analyses Development Guidelines for DOP Product Lines 54

79 Future Work Transformation of Core DOP Product Lines (to only additive versions) Patching Pure/Core DOP Product Lines Development Guidelines for DOP Product Lines Familiy-based and Compositional Analyses for DOP Product Lines 55

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science University of Magdeburg,

More information

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University

More information

Fully Abstract Operation Contracts

Fully Abstract Operation Contracts Fully Abstract Operation Contracts Richard Bubel, Reiner Hähnle, and Maria Pelevina Department of Computer Science Technical University of Darmstadt bubel [email protected] [email protected]

More information

Generative Software Product Line Development using Variability-Aware Design Patterns

Generative Software Product Line Development using Variability-Aware Design Patterns Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Generative Software Product Line Development using Variability-Aware Design Patterns Christoph Seidl, Sven Schuster, Ina Schaefer May

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]

More information

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Flávio Medeiros 1, Thiago Lima 2, Francisco Dalton 2, Márcio Ribeiro 2, Rohit Gheyi 1, Baldoino Fonseca 2

More information

Handling Database Schema Variability in Software Product Lines

Handling Database Schema Variability in Software Product Lines Handling Database Schema Variability in Software Product Lines Niloofar Khedri School of Electrical and Computer Engineering College of Engineering University of Tehran, Tehran, Iran [email protected] Ramtin

More information

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism Composability Gary R. Mayer [email protected] Hessam S. Sarjoughian [email protected] Arizona Center for Integrative Modeling

More information

Reactive Variability Realization with Test-Driven Development and Refactoring

Reactive Variability Realization with Test-Driven Development and Refactoring Reactive Variability Realization with Test-Driven Development and Refactoring Glauco Silva Neves Informatics and Statistics Department - INE Federal University of Santa Catarina - UFSC Florianópolis, Brazil

More information

A Configuration Management Model for Software Product Line

A Configuration Management Model for Software Product Line A Configuration Management Model for Software Product Line Liguo Yu 1 and Srini Ramaswamy 2 1 Computer Science and Informatics Indiana University South Bend South Bend, IN 46634, USA [email protected] 2 Computer

More information

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

More information

FeatureIDE: An Extensible Framework for Feature-Oriented Software Development

FeatureIDE: An Extensible Framework for Feature-Oriented Software Development FeatureIDE: An Extensible Framework for Feature-Oriented Software Development Thomas Thüm a, Christian Kästner b, Fabian Benduhn a, Jens Meinicke a, Gunter Saake a, Thomas Leich c a University of Magdeburg,

More information

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.

Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development. Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Systematic Review

More information

Unification of AOP and FOP in Model Driven Development

Unification of AOP and FOP in Model Driven Development Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer

More information

Incremental Model-based Testing of Delta-oriented Software Product Lines

Incremental Model-based Testing of Delta-oriented Software Product Lines Incremental Model-based Testing of Delta-oriented Software Product Lines Ina Schaefer (joint work with Malte Lochau and Sascha Lity) IFIP WG 2.11 Meeting, Halmstad, 26 June 2012 Software Product Line Engineering

More information

Formal Specification and Verification of Avionics Software

Formal Specification and Verification of Avionics Software Formal Specification and Verification of Avionics Software June 7th, 2006 Outline 1 Introduction Software in the avionics domain Certification requirements Object-oriented technologies 2 Specification

More information

A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems

A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems Carlos Cetina, Pau Giner, Joan Fons and Vicente Pelechano Research Center on Software Production Methods Universidad Politécnica de

More information

StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java

StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.

More information

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

Variability in Service-Oriented Systems: An Analysis of Existing Approaches Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

MDE Adoption in Industry: Challenges and Success Criteria

MDE Adoption in Industry: Challenges and Success Criteria MDE Adoption in Industry: Challenges and Success Criteria Parastoo Mohagheghi 1, Miguel A. Fernandez 2, Juan A. Martell 2, Mathias Fritzsche 3 and Wasif Gilani 3 1 SINTEF, P.O.Box 124-Blindern, N-0314

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

Verification of Software Product Lines Using Contracts

Verification of Software Product Lines Using Contracts Verification of Software Product Lines Using Contracts Thomas Thüm School of Computer Science University of Magdeburg Magdeburg, Germany Abstract Software product lines are widely used to achieve high

More information

Software Product Lines

Software Product Lines Software Product Lines Software Product Line Engineering and Architectures Bodo Igler and Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Sommersemester 2015 Questions:

More information

The Timing Definition Language (TDL)

The Timing Definition Language (TDL) The Timing Definition Language (TDL) Prof. Dr. Wolfgang Pree Dr. (ETH) Josef Templ Department of Computer Science Universität Salzburg cs.uni-salzburg.at MoDECS.cc PREEtec.com Overview TDL programming

More information

Chapter 6: Programming Languages

Chapter 6: Programming Languages Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective

More information

Dungeon: A Case Study of Feature-Oriented Programming with Virtual Classes

Dungeon: A Case Study of Feature-Oriented Programming with Virtual Classes Dungeon: A Case Study of Feature-Oriented Programming with Virtual Classes Vaidas Gasiunas Ivica Aracic Technische Universität Darmstadt, Germany {gasiunas,aracic}@informatik.tu-darmstadt.de Abstract A

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, [email protected] 2 Dep.

More information

Seamless Method- and Model-based Software and Systems Engineering

Seamless Method- and Model-based Software and Systems Engineering Seamless Method- and Model-based Software and Systems Engineering Manfred Broy Institut für Informatik, Technische Universität München D-80290 München Germany, [email protected] http://wwwbroy.informatik.tu-muenchen.de

More information

Advanced Topics in model-based Software Development

Advanced Topics in model-based Software Development Advanced Topics in model-based Software Development Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse-tubs.de/ Seite 1 Trends in software development Size and complexity of systems

More information

SPLConfig: Product Configuration in Software Product Line

SPLConfig: Product Configuration in Software Product Line SPLConfig: Product Configuration in Software Product Line Lucas Machado, Juliana Pereira, Lucas Garcia, Eduardo Figueiredo Department of Computer Science, Federal University of Minas Gerais (UFMG), Brazil

More information

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management Agile SPL-SCM: Agile Software Product Line Configuration and Release Management APLE 2006 Workshop SPLC 2006, Baltimore, MD [email protected] Phonak Hearing Systems Presentation Roadmap 1. Introduction

More information

Integration of an open source rule engine to enhance the IHTSDO Workbench testing

Integration of an open source rule engine to enhance the IHTSDO Workbench testing Integration of an open source rule engine to enhance the IHTSDO Workbench testing Dr. Guillermo Reynoso Dr. Alejandro Lopez Osornio termmed IT Buenos Aires, Argentina 2009 termmed SA Terminology maintenance

More information

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology Jendrik Johannes, Mirko Seifert, Christian Wende, Florian Heidenreich, and Uwe Aßmann DevBoost GmbH D-10179,

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24 Table of Contents CHAPTER 1 Web-Based Systems 1 The Web 1 Web Applications 2 Let s Introduce a Case Study 3 Are WebApps Really Computer Software? 4 Are the Attributes of WebApps Different from the Attributes

More information

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig [email protected]

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig dirk.muthig@iese.fraunhofer.de Trends in Embedded Software Development in Europe Dr. Dirk Muthig [email protected] Problems A software project exceeds the budget by 90% and the project time by 120% in average Project Management

More information

J a v a Quiz (Unit 3, Test 0 Practice)

J a v a Quiz (Unit 3, Test 0 Practice) Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points

More information

Variation Management for Software Production Lines 1

Variation Management for Software Production Lines 1 Variation Management for Software Production Lines 1 Charles W. Krueger BigLever Software, Inc. 10500 Laurel Hill Cove Austin TX 78730 USA [email protected] Abstract. Variation in a software product

More information

Unified Static and Runtime Verification of Object-Oriented Software

Unified Static and Runtime Verification of Object-Oriented Software Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

This is an author-deposited version published in : http://oatao.univ-toulouse.fr/ Eprints ID : 15447

This is an author-deposited version published in : http://oatao.univ-toulouse.fr/ Eprints ID : 15447 Open Archive TOULOUSE Archive Ouverte (OATAO) OATAO is an open access repository that collects the work of Toulouse researchers and makes it freely available over the web where possible. This is an author-deposited

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

Foundations of Model-Driven Software Engineering

Foundations of Model-Driven Software Engineering Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster ([email protected]) Contents Introduction to Models and Modeling Concepts of Model-Driven Software

More information

Salion s Experience with a Reactive Software Product Line Approach

Salion s Experience with a Reactive Software Product Line Approach Salion s Experience with a Reactive Software Product Line Approach Ross Buhrdorf Dale Churchett Salion, Inc., 720 Brazos St., Ste. 700 Austin TX 78701 USA [email protected] [email protected]

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

An Approach to Detect the Origin and Distribution of Software Defects in an Evolving Cyber-Physical System

An Approach to Detect the Origin and Distribution of Software Defects in an Evolving Cyber-Physical System An Approach to Detect the Origin and Distribution of Software Defects in an Evolving Cyber-Physical System Christian Manz, Michael Schulze 2, and Manfred Reichert Group Research & Advanced Engineering

More information

Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools

Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools Michaela Rindt, Timo Kehrer, Udo Kelter Software Engineering Group University of Siegen {mrindt,kehrer,kelter}@informatik.uni-siegen.de

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Software Architecture

Software Architecture Cairo University Faculty of Computers and Information Computer Science Department Premasters Studies Software Architecture Report on Software Product Line Submitted to: Dr. Hany Ammar Submitted by: Hadeel

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

Product Derivation Process and Agile Approaches: Exploring the Integration Potential

Product Derivation Process and Agile Approaches: Exploring the Integration Potential Product Derivation Process and Agile Approaches: Exploring the Integration Potential Padraig O Leary, Muhammad Ali Babar, Steffen Thiel, Ita Richardson Lero, the Irish Software Engineering Research Centre,

More information

Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis

Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis José A. Galindo, David Benavides and Sergio Segura Department of Computer Languages and Systems Av Reina Mercedes

More information

How To Write An Slcm Project Plan

How To Write An Slcm Project Plan SLCM 2003.1 Artifacts in a Nutshell ( as of 01/21/2005) Project Development Phases Pension Benefit Guaranty Corporation s (PBGC) System Life Cycle Methodology (SLCM) is comprised of five project development

More information

The SPES Methodology Modeling- and Analysis Techniques

The SPES Methodology Modeling- and Analysis Techniques The SPES Methodology Modeling- and Analysis Techniques Dr. Wolfgang Böhm Technische Universität München [email protected] Agenda SPES_XT Project Overview Some Basic Notions The SPES Methodology SPES_XT

More information

Federated, Generic Configuration Management for Engineering Data

Federated, Generic Configuration Management for Engineering Data Federated, Generic Configuration Management for Engineering Data Dr. Rainer Romatka Boeing GPDIS_2013.ppt 1 Presentation Outline I Summary Introduction Configuration Management Overview CM System Requirements

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

MKS Integrity & CMMI. July, 2007

MKS Integrity & CMMI. July, 2007 & CMMI July, 2007 Why the drive for CMMI? Missed commitments Spiralling costs Late delivery to the market Last minute crunches Inadequate management visibility Too many surprises Quality problems Customer

More information

Configuration Management

Configuration Management 83 Chapter 6 Configuration Management Published as: Configuration Management in Component Based Product Populations, Rob van Ommering, 10th International Workshop on Software Configuration Management,

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Software Development Process

Software Development Process Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously

More information

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions?

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions? Logistics Project Part 3 (block) due Sunday, Oct 30 Feedback by Monday Logistics Project Part 4 (clock variant) due Sunday, Nov 13 th Individual submission Recommended: Submit by Nov 6 th Scoring Functionality

More information

A METHOD FOR REWRITING LEGACY SYSTEMS USING BUSINESS PROCESS MANAGEMENT TECHNOLOGY

A METHOD FOR REWRITING LEGACY SYSTEMS USING BUSINESS PROCESS MANAGEMENT TECHNOLOGY A METHOD FOR REWRITING LEGACY SYSTEMS USING BUSINESS PROCESS MANAGEMENT TECHNOLOGY Gleison Samuel do Nascimento, Cirano Iochpe Institute of Informatics, Federal University of Rio Grande do Sul, Porto Alegre,

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Mining a Change-Based Software Repository

Mining a Change-Based Software Repository Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland 1 Introduction The nature of information found in software repositories determines what

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules Overview Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering Iterative design and prototyping Design rationale A. Dix, J.

More information

Development of Enterprise Architecture of PPDR Organisations W. Müller, F. Reinert

Development of Enterprise Architecture of PPDR Organisations W. Müller, F. Reinert Int'l Conf. Software Eng. Research and Practice SERP'15 225 Development of Enterprise Architecture of PPDR Organisations W. Müller, F. Reinert Fraunhofer Institute of Optronics, System Technologies and

More information

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT CONTENTS 1. THE NEED FOR DATA GOVERNANCE... 2 2. DATA GOVERNANCE... 2 2.1. Definition... 2 2.2. Responsibilities... 3 3. ACTIVITIES... 6 4. THE

More information

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other.

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other. WSJ: SOA Myths About Service-Oriented Architecture Demystifying SOA Service-oriented architecture (SOA) refers to an architectural solution that creates an environment in which services, service consumers,

More information

Use software to define silicon p. 15

Use software to define silicon p. 15 April 2008 Use software to define silicon p. 15 >> Domain-specific modeling p.20 >> Efficient CRC calculation p.24 >> Linux development tools p.28 >> Verification enters the atomic age p.33 >> Advantages

More information

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes Well-known development processes Development Process RUP (Rational Unified Process) (Capability Maturity Model Integration) Agile / XP (extreme Programming) Waterfall Development Process Iterative Process

More information

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Database System Concepts, 5th Ed. See www.db book.com for conditions on re use Chapter 1: Introduction Purpose of Database Systems View of Data Database Languages Relational Databases

More information

A Mind Map Based Framework for Automated Software Log File Analysis

A Mind Map Based Framework for Automated Software Log File Analysis 2011 International Conference on Software and Computer Applications IPCSIT vol.9 (2011) (2011) IACSIT Press, Singapore A Mind Map Based Framework for Automated Software Log File Analysis Dileepa Jayathilake

More information