180 likes | 479 Views
Contribution. Definition of notion Architectural SmellDefinition of four concrete architectural smellsQuality impact of each smell. 2. Motivation. Successful systems are maintained over multiple yearsSystem's Life-Cycle Properties worsen over timeUnderstandabilityTestabilityExtensibilityReusa
E N D
1. Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic
University of Southern California
2. Contribution Definition of notion Architectural Smell
Definition of four concrete architectural smells
Quality impact of each smell 2
3. Motivation Successful systems are maintained over multiple years
Systems Life-Cycle Properties worsen over time
Understandability
Testability
Extensibility
Reusability
Restructuring/Refactoring helps to improve life-cycle properties
What structures need to be refactored? 3 Software systems live over multiple years (different goals, different software maintainer)
Architecture erodesSoftware systems live over multiple years (different goals, different software maintainer)
Architecture erodes
4. Code Smells Code smells are implementation structures that negatively affect system lifecycle properties
Defined in terms of implementation-level constructs
Classes
Methods
Statements
Examples
Long parameter list
Large methods
Code smells do not address architectural decisions 4
5. Software Architecture Software systems architecture is the set of principal design decisions made about the system
Usually includes system decomposition
Subsystems/Components
Services offered and required by a component
Component interactions
5
6. Examples of Architectural Decompositions 6