Abderrahman MOKNI, Marianne HUCHARD, Christelle URTADO, Sylvain VAUTTIER et Huaxi (Yulin) ZHANG
A formal approach for fostering component reuse and managing software change
11/07/2014 1 SATToSE 2014
A formal approach for fostering component reuse and managing - - PowerPoint PPT Presentation
A formal approach for fostering component reuse and managing software change Abderrahman MOKNI, Marianne HUCHARD, Christelle URTADO, Sylvain VAUTTIER et Huaxi (Yulin) ZHANG SATToSE 2014 1 11/07/2014 Context and problematic
Abderrahman MOKNI, Marianne HUCHARD, Christelle URTADO, Sylvain VAUTTIER et Huaxi (Yulin) ZHANG
11/07/2014 1 SATToSE 2014
Reduce development time and costs, Reduce maintenance costs (usually takes 60%).
A better reuse, A better evolution handling (unanticipated changes), A better software architecture documentation.
2 11/07/2014 SATToSE 2014
3 11/07/2014 SATToSE 2014
4
11/07/2014 SATToSE 2014
Component code storage and indexation Component development and documentation Component code & models Component repository
Component design for reuse
Lifecycle step Production
Component-based software design by reuse
Lifecycle step
System requirement analysis Architecture specification Architecture configuration Instantiated component assembly
Production
Functional & non- functional requirements Abstract architecture description Concrete architecture description Instantiated assembly description & software Component search Component instantiate Caption: Uses Produces Precedes
5
Specification level
Architecture as intended by the architect and conform to user
Component roles: partial and ideal description of software
Used to guide the search for concrete components.
Configuration level
A concrete implementation of the software Concrete component classes selected from repositories
Assembly level
Description of the architecture at runtime Parameterized component instances
6 11/07/2014 SATToSE 2014
HomeOrc hestrator
ILight ITime ITherm ICon
Interface types and their signatures: lLight{ void switchOn(); void switchOff(); } ITime{ int getTime(); } ITherm{ int getTemp(); } ICon{ void setCondMode(CondMode mode); CondMode getCondMode(); }
Light Time
Thermometer CoolerHeater
Component role Provided interface Required interface
Caption
7 11/07/2014 SATToSE 2014
Lamp AndroidOrc hestrator
IClock ITherm IAirCon Interface types and their signatures: lPower{ void switchOn(); void switchOff(); } IIntensity{ void setIntensityLevel(int intensity); int getIntensityLevel(); } IClock{ void setDateTime(int time, Date date); int getTime(); Date getDate(); } ITherm{ int getTemp(); } … … lPower lIntensity
Clock AirConditioner
Component class Provided interface Required interface
Caption Thermost at AirConditioner composition
ITherm ICon ITemp
CHEngine
Delegation link
8
lamp1 lamp2 clock1
airConditioner 1
androidOrchestrator1
Component instance Provided interface Required interface
Caption
9 11/07/2014 SATToSE 2014
10 11/07/2014 SATToSE 2014
11 11/07/2014 SATToSE 2014
12
13 11/07/2014 SATToSE 2014
14 11/07/2014 SATToSE 2014
15
Clock ClockV2
ISettingV2 setTime(Time time) setDateFormat(DateFormat format) ISetting setTime(Time time) setDateFormat(SimpleDateFormat format) IInfo getTime() : Time getDate() : Date getDateFormat() : DateFormat ILanguage getLanguageInfo(): String IlocationAndGMT getLocation() : Point getGMT() : TimeZone ILocation getLocation() : Point Interface substitutability Interface subtyping Component substitutability
Légende
inheritance
DateFormat SimpleDateFormat
16 11/07/2014 SATToSE 2014
17 11/07/2014 SATToSE 2014
Abstract architecture specification Concrete architecture configuration Instantiated architecture assembly <<implements>> <<instantiates>> <<realizes>> <<instantiates>> Component role Component class Component instance
18
19 11/07/2014 SATToSE 2014
20 11/07/2014 SATToSE 2014
R1 R2 R3 C1 sig1 sig2 sig3 sig4 sigB sigA sig1’ sig2’ sig3’ sig4’ sig5 sigA’ sigB’ I1 I2 I3 J1 J2 I J Interface typing: I1 I2 I3 I Signature matching: sig1 <-> sig1’ sig2 <-> sig2’ sig3 <-> sig3’ sig4 <-> sig4’ sigA <-> sigA’ sigB <-> sigB’
21
J1 J2 J
11/07/2014 SATToSE 2014
22 11/07/2014 SATToSE 2014
23 11/07/2014 SATToSE 2014
24 11/07/2014 SATToSE 2014
25
11/07/2014 SATToSE 2014
26
11/07/2014 SATToSE 2014
27 11/07/2014 SATToSE 2014
28
29 11/07/2014 SATToSE 2014
30 11/07/2014 SATToSE 2014
31 11/07/2014 SATToSE 2014