Identifying%20Architectural%20Bad%20Smells - PowerPoint PPT Presentation

View by Category
About This Presentation
Title:

Identifying%20Architectural%20Bad%20Smells

Description:

Recovery 18 Grid systems. Refactoring of industrial middleware. 8 ... Example: Linux's Status Reporting. 13. Scattered Functionality Quality Impact ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 18
Provided by: davidsc1
Learn more at: http://csse.usc.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Identifying%20Architectural%20Bad%20Smells


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

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?

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

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

6
Examples of Architectural Decompositions
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.

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

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

10
Ambiguous Interfaces Quality Impact
  • User has to inspect the components
    implementation before knowing about its offered
    services
  • Negatively affects
  • Analyzability
  • Understandability
  • Example JMS

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

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

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 Linuxs Status Reporting

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

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

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

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
About PowerShow.com