Presentation is loading. Please wait.

Presentation is loading. Please wait.

Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California.

Similar presentations


Presentation on theme: "Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California."— Presentation transcript:

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 System’s 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

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 system’s 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

7 Architectural Smell Architectural smell A commonly used architectural decision that negatively impacts lifecycle properties Possible Causes Applying a design solution in an inappropriate context Mixing design fragments that have undesirable emergent behaviors Architectural Refactoring – The remedy Altering the internal structure of the system Altering the behaviors of internal system elements No change of the external system behavior Goal: Clearly codifying architectural smells will allow engineers to avoid and/or correct common design pitfalls. 7

8 Concrete Architectural Smells Definition of four concrete architectural smells 1. Connector Envy 2. Scattered Functionality 3. Ambiguous Interfaces 4. Extraneous Connector Quality impact of each smell Source: Recovery 18 Grid systems Refactoring of industrial middleware 8

9 Ambiguous Interfaces – Description An Ambiguous Interface offers only one public interface Internally dispatches to multiple services Appears especially in event- based publish-subscribe systems 9

10 Ambiguous Interfaces – Quality Impact User has to inspect the component’s implementation before knowing about its offered services Negatively affects Analyzability Understandability Example: JMS 10

11 Connector Envy – Description Connector roles Communication Coordination Conversion Facilitation Components with Connector Envy encompass extensive interaction- related functionality Example: Gridfarm Filesystem Daemon 11

12 Connector Envy – Quality Impact Violates separation of concerns Negatively affects Reusability Understandability Testability 12

13 Scattered Functionality – Description Multiple components are responsible for realizing the same high-level concern Some of those components are responsible for orthogonal concerns Example: Linux’s Status Reporting 13

14 Scattered Functionality – Quality Impact Violates the principle of separation of concerns twice Negatively affects Reusability Understandability Testability 14

15 Extraneous Connector - Description Two connectors of different types are used to link a pair of component Example: Events vs. Procedure Calls Example system: Example: Old MIDAS version 15

16 Extraneous Connector – Quality Impact Benefits of each connector type may cancel each other out This example negatively impacts Understandability Reusability Adaptability 16

17 Contribution Definition of Architectural Smell Identification of concrete architectural smells Definition of four concrete smells Connector Envy Scattered Functionality Ambiguous Interfaces Extraneous Connector Discussed quality impact of each smell 17


Download ppt "Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California."

Similar presentations


Ads by Google