software architecture in action -...
TRANSCRIPT
![Page 1: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/1.jpg)
Software Architecture in ActionFlavio Oquendo, Jair C Leite, Thais Batista
![Page 2: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/2.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+Chapter 9Designing Modifiability in Software Architectures
2
![Page 3: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/3.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Learning outcomes of this chapter
n You will learn:n what is modifiability as an architectural quality
n what are the architectural causes and effects of modifiability
n tactics to improve modifiability
n a taxonomy of modifiability primitives
n a comparison technique to evaluate the modifiability in alternative architectures
n You will know how to:n express modifiability in software architecture
n analyse an architecture to evaluate its modifiability
n apply tactics to improve modifiability
3
![Page 4: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/4.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
The structure of this chapter
n Introductionn Expressing modifiability using software architecture concepts
n Modifiability causes and effectsn Modifiability quality attributesn A classification of modifiability effectsn Examples of the add primitive
n Modifiability Tacticsn Using modifiability tactics
n Analysing Modifiability in the RTC Systemn RTC System requirementsn RTC System – causesn Analysing the ripple effect in ARCH1n Design a new architecture: ARCH2n Analysing the ripple effects in ARCH2n Comparing modifiability in ARCH1 and ARCH2
n Summary
4
![Page 5: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/5.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+
Introduction
![Page 6: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/6.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability
n Modifiability is a quality to refer to the degree to which a product or system can be effectively or efficiently modified without introducing defects or degrading existing product quality [ISO 25010:2010]
n An example of modifiability in the case of a room temperature controller system is to maintain its functionality when n adding a temperature sensor
n to improve accuracyn removing a temperature sensor
n to remove a damaged sensorn replacing a temperature sensor
n to change a Fahrenheit temperature sensor to a Celsius sensor
6
Conceptual overview (1/2)
![Page 7: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/7.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability
n Extra-funcional requirements are expressed as qualityattributes in the architecture
n The modification in an element can impact other elements (ripple effect) requiring new modifications in them.
n The degree of modifiability is related to the number of elements that need to be modified. n The best case is to have no additional modifications in the
architecture.
7
Conceptual overview (2/2)
![Page 8: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/8.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+Expressing
modifiabilityusing software
architectureconcepts
![Page 9: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/9.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability causes and effects
n Modifiability can be defined as a cause-effect relationship
n We need to express the causes and the effectsn architectural causes refer to identify the need of architectural
modifications addressing the extra-functional requirements
n architectural effects refer to the impact of each modification in other elements of the architecture
n all causes of modification need to be identified as a taxonomy
n for each cause, all effects need to be identified and quantified
![Page 10: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/10.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability causes
n We need to consider causes that may require modificationsboth in the use and in the definition of elementsn modifications in the use mean to add, remove, and replace an element in
a defined architecture without modifying their typesn modifications in the definition mean to add, remove, and replace, an
element in its type definition
n In the RTC system, examples of modification in use aren to add a new Fahrenheit temperature sensor to increase measure
precision
n In the RTC system, examples of modification in definitionaren to add a new port to the sensor monitor component type to
receive data from a new temperature sensor
10
![Page 11: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/11.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability effects
n Effects are the consequences of the causes in the architecturen the impact on the effectiveness and efficiency of the system
n Effectiveness refers to meeting the goals of the systemn Efficiency refers to meeting these goals optimizing the use of
resourcesn we use quality attributes to quantify the effects (see next slide)
n According to the requirements of the RTC Systemn Effectiveness is to assure that the control-loop correctly adjust
the room temperature n according to the user desired temperature, the current average
temperature and the presence of a personn Efficiency refers to the resources used to adjust the
temperature
11
![Page 12: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/12.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability quality attributes
n Modifiability quality attributes refers to a quality used to quantify theeffectsn The ripple effect
n refers to a spreading effect caused by a modification in an architecturalelement
n as an examplen if we add a new sensor, we need to add a new port to the sensor monitor,
to create a new connector, and to connect the sensor to the monitor. Toadd that new port we need to modify the sensor monitor definition.
n The cost of modificationsn refers to the global cost implied by the modificationsn as an example
n if we add a new sensor, the cost of this modification includes the cost ofthe sensor, the cost of modifying the architecture, the cost of refining thearchitecture towards the implementation, and the cost of deploying thesystem
12
![Page 13: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/13.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
A classification of modifiabilityeffects
n We can express modifiability effects using the following actionprimitivesn Types
n add, remove, or replace a component type, a port type, a connector type, a value type and a configuration type
n configuration typesn add, remove, or replace a componentn add, remove, or replace a connectorn add, remove, or replace a port in a component
n component typesn add, remove, or replace a port
n Instancesn add, remove, or replace a component in a configurationn add, remove, or replace a port in a componentn add, remove, or replace a connector between the ports of components in a
configuration
13
Action primitives
To modify a connector type we can replace it
![Page 14: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/14.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
A classification of modifiabilityeffects
n We can add existing instances using the add primitiven Types
n Component typesn add a port in a component type
n add localTemp3:CTemperatureIPT in RoomTemperatureControllerCP type
n Instancesn add a component in a configuration
n add s3:TemperatureSensorCP in RTCSystemARCH2 configuration
n add a connector in a configurationn add c3:FahrenheitToCelsiusCN between
localTemp3:CTemperatureIPT of rtc:RoomTemperatureControllerCP and current:FTemperatureOPT of s3:TemperatureCP
14
Examples of the add primitive
![Page 15: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/15.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+Modifiability
Tactics
![Page 16: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/16.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability Tactics
n Tactics are design decisions that influence quality attributesn Tactics are used to minimize effects
n Example of modifiability tactics:n T1 - localize modifications
n to assign responsibilities to elements during design such that anticipatedchanges will be limited in scope
n as an example, in the RTC System, we can design a component to eachresponsibility: a component to monitor sensor, another to monitor presence and a third component to control the heater and cooler
n T2 - minimize ripple effectsn to avoid that a modification in an architectural element causes a series of
other modificationsn as an example, in the RTC System, we can design a component using a
multiplex port: a monitor sensor temperature having a multiplex portdoes not need to be modified when adding a new sensor.
16
![Page 17: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/17.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+Analysing
Modifiabilityin the RTC
System
![Page 18: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/18.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n In this example, we present two modifiability requirements. For each requirement, we enumerate the causes and then we depict the effects. Our analysis is not complete. We explain the analysis for one cause in two different architectures of the RTC system.
n First, we analyse the ARCH1 architecture. n This architecture has two simple ports in the controller to
receive data from two sensors.
n Then, we design and analyse the ARCH2 architecture. n This architecture has one port that allows multiple connectors.
18
![Page 19: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/19.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n We use an AND/OR tree to depict the requirements (R), causes (C) and effects (E)
n RTC modifiability requirements (AND)n R1 – The system must allow the modification of the temperature
sensors to improve temperature measures
n R2 – The system must allow the modification of the user interface to display the current average temperature
19
RTC System – modifiability requirements
![Page 20: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/20.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n RTC modifiability requirements (AND)n R1 – The system must allow the modification of temperature sensors
to improve temperature measures (OR)n C1 – Add a new temperature sensor of a defined type to improve
accuracy n C2 – Add a new temperature sensor of a new type to include sensors
supporting other temperature metric systemsn C3 – Replace a temperature sensor of the same type n C4 – Replace a temperature sensor for a new type to improve accuracy
or to support other temperature unitsn C5 – Remove a temperature sensor when it is not needed anymore
n R2 – The system must allow the modification of the user interface to display the current average temperature (OR)n C6 – Replace the user interface
20
RTC System – causes
![Page 21: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/21.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n We analyse the ripple effect on two different architecturesof the RTC system considering the same cause ofmodificationn the modification is to improve temperature measures
(Requirement R1) by adding a new sensor to the RTC system (Cause C1)
21
Analysing the ripple effect in ARCH1
![Page 22: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/22.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n Here we depict the effects to cause C1
n C1 – add a new temperature sensor component of a defined type to improve accuracy implies to (AND) n E1 – add a NewRoomTemperatureControllerCP component type,
which is to (AND)
n add NewRoomTemperatureControllerCP as a subtype of RoomTemperatureController
n add the localTemp3:CTemperatureIPT port in NewRoomTemperatureControllerCP
n E2 – add a NewSensorMonitorCP component type, which is to(AND)
n add a NewSensorMonitorCP as a subtype of SensorMonitorCP
n add the s3:CTemperatureIPT port to the SensorsMonitorCPcomponent type
22
RTC System ARCH1 – effects (1/2)
![Page 23: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/23.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n Here we depict the effects to cause C1 (continued)n E3 - modify the RoomTemperatureControllerCP configuration, which is to
(AND)
n replace the sm:SensorsMonitorCP component by the sm:NewSensorMonitorCP component
n add a delegation between s3 and localTemp3
n E4 - modify the RTC System ARCH1 configuration, which is to (AND)
n replace rtc:RoomTemperatureControllerCP byrtc:NewRoomTemperatureControllerCP
n add the s3:TemperatureSensorCP component in ARCH1 configuration
n add c3:FahrenheitToCelsiusCN between localTemp3:CTemperatureIPT of rtc:RoomTemperatureControllerCP and current:FTemperatureOPT of s3:TemperatureCP
23
RTC System ARCH1 – effects (2/2)
![Page 24: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/24.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n An and-or tree of the C1 cause and the corresponding effects .
24
RTC System ARCH1
![Page 25: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/25.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n Considering the previous analysis, we have 9 modifications: n 7 add actions n 2 replace actions.
n Summarizingn the cause C1 states that to add a new temperature sensor we need to
perform the effect actions E1, E2, E3 and E4. n each of the effects
n E1 states that we need to define a new RoomTemperatureControllerCP. n In other to do it we must
n add a new RoomTemperatureControllerCP as a subtype of RoomTemperatureController and
n add the localTemp3:CTemperatureIPT port in the new RoomTemperatureControllerCP.
25
Quantifying the modification
![Page 26: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/26.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability Example
n Adding a new port to the RoomTemperatureControllerCPdefinition.
26
ARCH1
![Page 27: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/27.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n The new BDD showing the new port
27
ARCH1
![Page 28: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/28.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n E2 states that we need to add a new SensorsMonitorCPcomponent definition, which involves n adding a new SensorsMonitorCP as a subtype of SensorsMonitorCP, and
n adding the s3:CTemperatureIPT port to the SensorsMonitorCPcomponent definition
28
ARCH1
![Page 29: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/29.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
n E3 states that we need to modify the RoomTemperatureControllerCP configuration, which is ton replace the sm:SensorsMonitorCPcomponent by the sm:NewSensorsMonitorCPcomponent, and
n add a delegation between s3and localTemp3
29Modifiability exampleARCH1
![Page 30: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/30.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n E4 states that we need to modify the ARCH1 configuration, which is ton replace rtc:RoomTemperatureControllerCP by rtc2:NewRoomTemperatureControllerCP;
n add the s3:TemperatureSensorCP component in ARCH1configuration;
n add c3:FahrenheitToCelsiusCN between localTemp3:CTemperatureIPT of rtc:RoomTemperatureControllerCPand current:FTemperatureOPT of s3:TemperatureCP
n The resulting configuration in next slide
30
ARCH1
![Page 31: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/31.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
31
Modifiability exampleThe new configuration of ARCH1
31
![Page 32: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/32.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Applying the Modifiability Tactics
n To minimize the ripple effect (T2 modifiability tactic) weredesign the architecture of RTC System to be more modifiable (cheaper to modify) than ARCH1.n we use a multiplex port in the SensorMonitorCP component
n using multiplex port we can add new temperature sensorswithout modifying the RoomTemperatureControllerCP component
n In the next slides we present the differences between the twoarchitectures (ARCH1 and ARCH2)
32
Designing a new architecture – ARCH2
![Page 33: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/33.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
33
ARCH1 ARCH2
Applying the Modifiability TacticsThe Component BDDs of ARCH1 and ARCH2
![Page 34: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/34.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
ARCH1
ARCH2
34Applying the Modifiability TacticsThe Connector BDDs of ARCH1 and ARCH2
![Page 35: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/35.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
35
ARCH1 ARCH2
Applying the Modifiability TacticsTwo different configurations of ARCH1 and ARCH2
![Page 36: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/36.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n In ARCH2, the FahrenheitToCelsiusCN connector supports connection from 1 or more FTemperatureOPT ports to 1 CTemperatureIPT.
n In the ARCH2 definition, we have a RoomTemperatureController CP with just one CTemperatureIPT Port.
n We need now to depict the effects to cause C1, considering ARCH2:n C1 – add a new temperature sensor component of a defined type to improve
accuracy requires to n E1 - modify the architecture description (ibd configuration)
n add s3:TemperatureSensorCP in ARCH2,n add c3: FahrenheitToCelsiusCN between the localTemp3:CTemperatureIPT
of rtc:RoomTemperatureControllerCP and current:CTemperatureOPT of s3:TemperatureSensorCP.
36
Analysing the ripple effect in ARCH2
![Page 37: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/37.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
37
Modifiability exampleThe resulting configuration of ARCH2
37
![Page 38: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/38.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Analysis
n To add a new sensor in ARCH1, the Ripple effect determines that we need to do 9 modificationsn Quantification of the modification quality attribute in ARCH 1
n 9 modifications ( 7 add and 2 replace)
n The same modification in ARCH2 requires only 2 modificationsn Quantification of the modification quality attribute in ARCH2
n 2 modifications (2 add)
n Therefore, ARCH2 is more modifiable than ARCH1
Comparing ARCH1 and ARCH2
![Page 39: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/39.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
+
Modifiability
Example
![Page 40: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/40.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
40
Example – RTC System ARCH140
![Page 41: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/41.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
41
Example – add a new sensorRTC System ARCH1 – the bdd of the componentsbefore the modificationn modify the RoomTemperatureControllerCP component
definition
![Page 42: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/42.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
42
Example – add a new sensorRTC System ARCH1 – the modification
n modify the RoomTemperatureControllerCP component definition, which requires to (AND)n add the localTemp3:CTemperatureIPT port in the RoomTemperatureControllerCP
component type
![Page 43: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/43.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Example – add a new sensor
n modify the RTC System ARCH1 configuration
RTC System ARCH1 – the components bdd aftermodification
![Page 44: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/44.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
44
Example – add a new sensorRTC System ARCH1 – ibd before the modification
n modify the RoomTemperatureControllerCP configuration
44
![Page 45: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/45.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
45
Example – add a new sensorRTC System ARCH1 – the modifications in the ibd
n replace rtc:RoomTemperatureControllerCP by rtc2:RoomTemperatureControllerCP
n add the s3:TemperatureSensorCP component in ARCH1 configuration
n add c3:FahrenheitToCelsiusCN between localTemp3:CTemperatureIPT of rtc:RoomTemperatureControllerCP and current:FTemperatureOPT of s3:TemperatureCP
45
![Page 46: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/46.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
46
Example – add a new sensorRTC System ARCH1 – the ibd after the modification
46
![Page 47: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/47.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
47
Example – RTC System ARCH247
![Page 48: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/48.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
48
Example – RTC System ARCH2The FahrenheitToCelsiusCN connector
n In ARCH2, the FahrenheitToCelsiusCN connector supportsconnection from 1 or more FTemperatureOPT ports to 1 CTemperatureIPT
![Page 49: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/49.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
49
Example – RTC System ARCH2 the bdd components
![Page 50: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/50.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Modifiability example
n Here we depict the effects to cause C1, considering theARCH2
n C1 – add a new temperature sensor component of a defined type to improve accuracy requires to (AND) n E1 - modify the architecture description (ibd/configuration)
n add s3:TemperatureSensorCP in RTCSystem ARCH2n add c3: FahrenheitToCelsiusCN between the
localTemp3:CTemperatureIPT of rtc:RoomTemperatureController CP and current:CTemperatureOPT of s3:TemperatureSensorCP
n Quantifying the modificationsn 2 modifications (2 add primitives)
50
RTC System ARCH2 – effects
![Page 51: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/51.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
51
Example – add a new sensorRTC System ARCH2 – ibd before the modification
51
![Page 52: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/52.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
52
Example – add a new sensorRTC System ARCH2 – the modifications in the ibd
n modify the architecture description (ibd/configuration)
n create a new s3:TemperatureSensorCP component
n create a new c3: FahrenheitToCelsiusCN connector between the localTemp3:CTemperatureIPT and current:CTemperatureOPTof s3.
52
![Page 53: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/53.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
53
Example – add a new sensorRTC System ARCH2 – the ibd after the modification
53
![Page 54: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/54.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
Summary
n In this chapter you learntn the modifiability concept
n the architectural causes and effects of modifiability
n tactics to improve modifiability
n a taxonomy of modifiability primitives
n a comparison technique to evaluate the modifiability in alternative architectures
n You learnt how ton express modifiability in software architecture using a cause-effect
relationship
n compare two alternative architectures to evaluate their modifiability by quantifying the ripple effect quality attribute
54
![Page 55: Software Architecture in Action - Springerextras.springer.com/2016/978-3-319-44337-9/SAIA-Chapter9.pdf · Software Architecture in Action – Part II – Chapter 9. Designing Modifiability](https://reader033.vdocuments.us/reader033/viewer/2022053002/5f0626c47e708231d4168c9d/html5/thumbnails/55.jpg)
Software Architecture in Action – Part II – Chapter 9. Designing Modifiability in Software Architectures
For Further Reading
n Bass, L., Clements, P., Kazman, R.: Software Architectures in Practice, 2nd edn. Addison Wesley, Reading (2003)
n Clements, P., Bachmann, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R.: Documenting Software Architecture: Views and Beyond. SEI Series in Software Engineering (2003)
55