An Aspect-Oriented Strategy for Evaluating Software Architectures ...

3 downloads 39 Views 444KB Size Report
Mar 2, 2005 ... 2004-2005. The Aerospace Corporation. All Rights Reserved. An Aspect- Oriented Strategy for. Evaluating Software Architectures that Evolve.
An Aspect-Oriented Strategy for Evaluating Software Architectures that Evolve 2 March 2005

Phillip Schmidt [email protected]

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

1

Agenda z z z z z

Motivation Some current strategies New aspect-oriented (AO) strategy Comparison with scenario-based approaches Experiences applying the strategy

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

2

Architectural Value z

Your architectural value will be reflected in how you perceive architecture: „ „ „ „ „ „ „

z z

Strategic tool? Something in the minds of competent people? General preliminary design only, to be discarded after coding Merely drawings or documentation? An accurate, evolving reflection of the design? Something analyzable Something executable

Perceptions have consequences and risks Choose wisely

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

3

Architectural Needs z

Do your architectural values address your problems?

z

Do you know you have problems?

z

Is there an architectural value gap between you and your architectural provider?

z

Architectural values are stressed when: „ „ „

Managing complex, evolving architectural relationships Architectural modeling practices are unclear Unexpected concerns arise © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

4

Architectural Artifact Relationships Use Cases Requirements Requirements Requirements Requirement Specification

Course of action Course of action Course of action COA step Course of action COA step COA COA step step COA COA step step COA step COA step

Test Test Procedure Test Procedure Test Procedure Procedure Code Code Code Code Test Test Procedure Test Procedure Procedure Unit Test

Unified Modeling Language Unified Modeling Language Unified (UML) Modeling (UML) Language (UML)

… … …

Class Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Diagrams Sequence Diagrams

ICD ICD SW ICD © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

5

Architectural Artifacts Use Cases Requirements Requirements Requirements Requirement Specification

Allocation

Coverage Test Test Procedure Test Procedure Test Procedure Procedure

Course of action Course of action Course of action COA step Course of action COA step COA COA step step COA COA step step COA step COA step

Behavioral Integrity

Traceability

Code Code Code Code

Unified Modeling Language Unified Modeling Language Unified (UML) Modeling (UML) Language Consistency (UML)

… … …

Test Test Procedure Test Procedure Procedure Unit Test

Architecture artifacts are ICD life cycle concerns ICD SW

Class Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Diagrams Sequence Diagrams

Completeness

ICD © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

6

Complexity of Requirement Evolution

Course of action dependency

Course of action steps

16 months later

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

Problematic references

GSAW 2005

7

Architectural Modeling Practices (What we think we want) System Engineering Activities

Software Engineering Activities

Define assumptions Identify simplifications, tradeoffs Identify limitations Define system constraints Identify preferences Identify, analyze and manage requirements, specifications

Evaluate design tradeoffs Define concrete classes, interactions, relationships, states, activities Identify infrastructure Develop prototypes, deployment views Identify product constraints, timing Ensure traceability to requirements Integrate and Test

Analysis Model

Architectural Design (system in context) (styles, views, patterns, relationships) Design Engineering (classes, data structures) Component Layering

Design Model

What How

System Modeling (abstracted world view use cases) Informational models (data flow) Functional models (activity flow) Behavioral models (events, sequences)

Coherent, thorough, well planned representations

Abstract

Completeness, correctness

Problem domain oriented

Concrete realizations

Traceable to requirements,

Solution domain oriented © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

8

Architectural Modeling Practices (What tends to happen)

Software Engineering Activities

System Engineering Activities

Evaluate design tradeoffs Define concrete classes, interactions, relationships, states, activities Identify infrastructure Develop prototypes Identify preferences Ensure traceability to requirements Integrate and Test

Define assumptions Identify simplifications Identify limitations Define constraints Identify preferences Identify, analyze and manage requirements, specifications

Architectural Design (system in context) (styles, views, patterns, relationships) Design Engineering (classes, data structures) Component Layering

Analysis Model

What

Design Model

How

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

9

Architectural Modeling Practices (Blurring of models)

Analysis Model Design Model

What

How

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

10

Architectural Modeling Practices (What we usually get)

Architecture Model

Huh?

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

11

Level of Architectural Detail z

Architectural models tend to be a mix of conceptual and implementation based information

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

12

Impact Assessment of Crosscutting Concerns Use Cases Requirements Requirements Requirements Requirement Specification

ICD ICD ICD

Unified Modeling Language Unified Modeling Language Unified (UML) Modeling (UML) Language (UML)

Concern

ECP

Test Test Procedure Test Procedure Test Procedure Procedure

Course of action Course of action Course of action COA step Course of action COA step COA COA step step COA COA step step COA step COA step

Code Code Code Code

… … …

Class Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Class Diagrams Sequence State Diagrams Diagrams Diagrams Sequence Diagrams

Point of interest © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

13

Good Intentions z

Even the “best” of architectural values can be overwhelmed by the complexity of our problems

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

14

Software Architecture Realities z

We don’t know everything „ „ „

z

We can’t predict everything „ „

z

What we know may be correct, but irrelevant What we do know, may not be represented clearly Scalability of manual techniques Things change unexpectedly Unplanned feature interactions

We tend to ignore the hard stuff „ „ „ „

Non-functional requirements Conflicting operational concepts/goals Domain-specific details within commercial tools Subtle software-hardware real-time dependencies

Space architectures are handicapped by their complexity © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

15

Strategies for Managing Handicapped Architectures z

Ignore It: „

z

Contract It „

z

Have contractor develop the appropriate level of architectural granularity

Evangelize It „

z

Just put the required level of detail on contract

Enforce It „

z

It’s the contractor’s problem.

Motivate best practices through conferences, tutorials

Analyze It „

Stakeholder collaboration for effective automated analysis © 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

16

Strategic Advice z

Develop analyzable architectures

z

An aspect-oriented strategy can help with assessing evolving, handicapped architectures that might not be natively analyzable.

z

Reduce architectural value gaps through aspectoriented augmentation

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

17

Aspect-Oriented Assessment Periodic Deliveries of Evolving Artifacts

UML Model UML Model UML Model

Use Use Cases Use Cases Cases

Sizing, Test Reqts Sizing, Timing, Test Reqts Sizing, Procedures Allocations Timing, Test Constraints Reqts Procedures Allocations Timing, Procedures Allocations Constraints Constraints

Code Code Code

Other Other Other

… Use case Meta info info Use case UML MetaAs-designed Model UML Meta Model UML (multi-viewpoint Metamodel)

Allocation Allocation info info

Project/tool-specific Profiles Project/tool-specific Project/tool-specific Profiles Profiles

Test Procedure info Test Procedure Testinfo Procedure info

UML Meta Model UML MetaAs-built Model UML Model



Profiles Profiles

XML

Augmentation Support

Constraint Constraint info info

Architectural handles (augmented) Re-augmentation Aspects Re-augmentation Aspects Re-augmentation Aspects

Extraction Aspects Concern Management/ Extraction Aspects Extraction Aspects

Architectural handles (native) COTS translation

Rule Sets Rule Sets

Other Assessment Tools

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

Project-specific and reusable translations

GSAW 2005

18

Comparison of Scenario-based and Aspect-Oriented SW Assessments Scenario-based Strategy

Aspect Oriented Strategy

Quality attributes, prior to development interpreted in context of pre-planned provided scenarios. Feature management in terms of planned change.

Planned or unplanned concerns described as aspects of interest over an architecture. Crosscutting concerns support unplanned changes

Predictive strategy. E.g. quality attributes depend on some pre-defined scenario context.

Corrective strategy. Some quality attributes do not have a scenario context that can be predicted. Concern evaluation assumes an architectural representation.

Questioning technique with reliance on human consultation for completeness of scenario interactions; qualitative metric formulation. Good for conceptual overview of whole system

Managing complex interactions require measurement and evaluation. Quantitative emphasis on completeness. Good for investigating issues raised from questioning techniques

Use of taxonomic hierarchies to define quality attributes

Uses architectural profiles to support augmentation, derivation, monitoring, and evaluation of architectural aspects of interest.

Phased application

Periodic application during life cycle

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

19

Applying an Aspect-Oriented Strategy z z

Periodic assessment more costly Concern management more general than feature management „

z

Aspect mining helpful in investigating potential problems „ „

z

Not everything is preplanned

Multiple inter-related representation spaces A code-centric viewpoint was inadequate for addressing unexpected change impacts, subsystem test dependencies, schedule/resource dependencies

UML2 profiles/XML schemas as a framework for architectural augmentation „ „ „

Requirements evolution Constraint enforcement Parameterizing real-time embedded systems for analysis

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

20

References z

Aspect-Oriented Architectural Assessment „

„ z

Related UML Approaches „ „

z

Schmidt, P., Milstein, J., Alvarado, S., “An Analysis of Aerospace Software Architectures Using Aspect-Oriented Programming Principles,” ATR2004(8343)-1, 28 May 2004. Schmidt, P. “Representing and Evaluating Software-Intensive Architectures that Evolve,” ATR-2004(8343)-3, 30 Sep 2004. Selonen,P., Xu, J. “Validating UML Models against Architectural Profiles,” ESEC/FSE 2003, September 1-5, 2003, Helsinki, Finland Hakala,M.,et al. “Annotating Reusable Software Architectures with Specialization Patterns,” http://practice.cs.tut.fi

Scenario-Based Approaches „ „ „

Bass, L., Clements, P., Kazman R., Software Architecture in Practice, Addison Wesley, 1998. Bosch J., Design and use of Software Architectures: Adopting and evolving a product-line approach, Addison Wesley, 2000. Clements, P., Kazman, R., Klein, M. Evaluating Software Architectures: Methods and Case Studies, Addison Wesley, 2001.

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

21

Backup Charts

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

22

REACT Implementation Elements Analysis Results

REACT Plug-ins

Eclipse

REACT Augmentation

UML 2.0 Model

Model Extractor

Derivation/Analysis Aspects Project-Specific Aspects REACT Profile Augmentation Aspects Project-Specific Profile Augmentation Aspects Sequence-State Diagram Support Aspects

Project-Specific Augmentation

Model Execution and Dynamic Assessment Tools

UML Profiles UML 2.0 Reflexive Editor

UML 2.0 Metamodel

RTPS Profile

Analysis Results

OMG Based: Schedulability, performance Timing, Resources, etc.

REACT Profile

REACT Representation

Environment Dynamic Assessment Requirements Other Augmentation

Eclipse Modeling Framework

Project-Specific Profiles

Contractor-provided

Sequence Diagram

Domain-Specific

State Diagrams Other Schemas

Ecore XML schemas

Requirements

Use cases

Eclipse Environment Eclipse Support

REACT Data REACT-Implementation REACT-generated

Model Generator Requirement Visualization

UML 1.x Models

Config Config Files Config Files Files

RTPS Augmentation

Project Data

Code

Other

© 2004-2005. The Aerospace Corporation. All Rights Reserved.

GSAW 2005

23

Suggest Documents