future directions of the software architecture technology ... · why focus on software...

29
Sponsored by the U.S. Department of Defense © 2006 by Carnegie Mellon University Future Directions of the Software Architecture Technology Initiative Mark Klein Second Annual SATURN Workshop April 2006

Upload: others

Post on 13-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

page 1

Sponsored by the U.S. Department of Defense © 2006 by Carnegie Mellon University

Future Directions of the Software Architecture Technology Initiative

Mark Klein

Second Annual SATURN Workshop

April 2006

Page 2: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

Report Documentation Page Form ApprovedOMB No. 0704-0188

Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering andmaintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information,including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, ArlingtonVA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if itdoes not display a currently valid OMB control number.

1. REPORT DATE APR 2006 2. REPORT TYPE

3. DATES COVERED 00-00-2006 to 00-00-2006

4. TITLE AND SUBTITLE Future Directions of the Software Architecture Technology Initiative

5a. CONTRACT NUMBER

5b. GRANT NUMBER

5c. PROGRAM ELEMENT NUMBER

6. AUTHOR(S) 5d. PROJECT NUMBER

5e. TASK NUMBER

5f. WORK UNIT NUMBER

7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) Carnegie Mellon University ,Software Engineering Institute (SEI),Pittsburgh,PA,15213

8. PERFORMING ORGANIZATIONREPORT NUMBER

9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR’S ACRONYM(S)

11. SPONSOR/MONITOR’S REPORT NUMBER(S)

12. DISTRIBUTION/AVAILABILITY STATEMENT Approved for public release; distribution unlimited

13. SUPPLEMENTARY NOTES presented at the SEI Software Architecture Technology User Network (SATURN) Workshop, 25-26 April2006, Pittsburgh, PA.

14. ABSTRACT

15. SUBJECT TERMS

16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF ABSTRACT Same as

Report (SAR)

18. NUMBEROF PAGES

28

19a. NAME OFRESPONSIBLE PERSON

a. REPORT unclassified

b. ABSTRACT unclassified

c. THIS PAGE unclassified

Standard Form 298 (Rev. 8-98) Prescribed by ANSI Std Z39-18

Page 3: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 2

Presentation Outline

Getting (Re)acquainted

State of the SAT Initiative

Future Directions

Page 4: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 3

Product Line Systems Program

The Product Line Systems (PLS) Program is one of five technical programs at the SEI.

PLS’s mission: Enable widespread product line practice and architecture-centric development throughout the global community.

PLS’s initiatives:• Software Architecture Technology (SAT) Initiative• Product Line Practice Initiative• Predictable Assembly from Certifiable Components Initiative

Page 5: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 4

What Is a Software Architecture?

“The software architecture of a program or computing system is the structure or structures of the system, which comprise the software elements, the externally visible properties of those elements, and the relationships among them.”1

1 Bass, L.; Clements; P. & Kazman, R. Software Architecture in Practice, Second Edition. Boston, MA: Addison-Wesley, 2003.

Page 6: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 5

Why is Software Architecture Important? -1

Represents earliest design decisions

• hardest to change • most critical to get right• communication vehicle among

stakeholders

First design artifact addressing• performance

• reliability

• modifiability

• security

Key to systematic reuse• transferable, reusable abstraction

The right architecture paves the way for system success.The wrong architecture usually spells some form of disaster.

Page 7: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 6

Why Focus on Software Architecture?

The quality and longevity of a software system is largely determined by its architecture.

Too many experiences point to inadequate software architecture education and practices and the lack of any real software architecture evaluation early in the life cycle.

Without an explicit course of action focused on software architecture, these experiences are being and will be repeated.

The cost of inaction is too great.

Page 8: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 7

Without Software Architecture Focus

Poorly designed software architectures result in• greatly inflated integration and test costs • inability to sustain systems in a timely and affordable way• lack of system robustness• in the worst case, program/system cancellation• in all cases, failure to best support the business and mission

goals

Page 9: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 8

Presentation Outline

Getting (Re)acquainted

State of the SAT Initiative

Future Directions

Page 10: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 9

Software Architecture Technology (SAT) Initiative’s FocusEnsure that business and mission goals are predictably achieved by using effective software architecture practices throughout the development lifecycle.

Axioms Guiding Our Work • Software architecture is the bridge between business and

mission goals and a software-intensive system.• Quality attribute requirements drive software architecture

design. • Software architecture drives software development throughout

the life cycle.

Page 11: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 10

SEI’s Architecture Tradeoff Analysis Method®

(ATAM®)

ATAM is an architecture evaluation method that• focuses on multiple quality attributes

• illuminates points in the architecture where quality attribute tradeoffs occur

• generates a context for ongoing quantitative analysis

• utilizes an architecture’s vested stakeholders as authorities on the quality attribute goals

Page 12: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 11

Conceptual Flow of the ATAMSM

ArchitecturalDecisions

ScenariosQuality

Attributes

ArchitecturalApproaches

BusinessDrivers

Software Architecture

impacts

Risk Themes

distilledinto

Analysis

Risks

Sensitivity Points

Tradeoffs

Non-Risks

Page 13: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 12

ATAM Led to the Development of Other Methods and Techniques

ArchitecturalDecisions

ScenariosQuality

Attributes

ArchitecturalApproaches

BusinessDrivers

Software Architecture

impacts

Risk Themes

distilledinto

Analysis

Risks

Sensitivity Points

Tradeoffs

Non-RisksWhat if there’s no architecture?

Attribute Driven Design

What if the quality requirements are not well-understood?

Quality Attribute Workshop

Views and Beyond Approach

What information should be included in my architecture documentation?

Which risks should I work on first?

Cost Benefit Analysis Method

Our scenarios tend to be incomplete or ambiguous.

Quality Attribute General Scenarios

What are some of the most important questions to ask?

Quality Attribute Tactics

What if I don’t know my system’s architecture?

Architecture Reconstruction using ARMIN

Page 14: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 13

SAT: Technology

In Transition

In Application

In Research

ArchitectureReconstruction

ArchitectureDocumentation

ATAM

CBAM ARID

ArchitectureEvaluation

Quality AttributeRequirements

Elicitation

QAW

Automated Architecture

Support

DALI

AttributeModels

ReasoningFrameworks

ArchitectureDefinition

ADD

ARMIN

ArchE

“Views and Beyond”

Page 15: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 14

SAT:Transition

Ongoing

In Sustainment

Just Begun

Acquisition Guidelines

Six Course Curriculum

Certificate andCertification Programs

Case Studies

Papers, ReportsPresentations

Web Site

Templates

Trainthe

TrainerCourses

AutomatedSupport

Workshops(SATURN, Educators,

ATAM Leaders)

Books

Methods

CourseLicensing

ATAM Lead Observation and

Certification

Transition Products

Reconstruction Tools

Page 16: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 15

Other Recent Work

Showed how to use aspects for architecture enforcement

Investigated categorization of business goals accumulated from ATAM evaluations

Building tradeoff analysis into ArchE

Conducted first annual ATAM Lead Evaluator Workshop

Launched licensing of the Software Architecture Principles and Practices Course

Page 17: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 16

Work “Hot Off the Press”

“A Comparison of Requirements Specification Methods from a Software Architecture Perspective”• What does it mean for a requirements document to be really

what an architect needs?• What do the existing requirement specification methods offer

in capturing architecturally significant requirements?

Business goal and risk theme analysis• Based on examining data collected from ATAM evaluations, is

there a useful categorization of business goals and risk themes?

• Is there a correlation between business goal categories and risk theme categories?

• What is a useful data collection and analysis methodology for analyzing the results of the ATAMs?

Page 18: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 17

Presentation Outline

Getting (Re)acquainted

State of the SAT Initiative

Future Directions

Page 19: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 18

Architecture-Centric Life-Cycle Practices -1

Page 20: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 19

Architecture-Centric Life-Cycle Practices -2

In support of the SAT axioms:

• Since “Software architecture is the bridge between mission/business goals and a software-intensive system”, we need to better understand- The relationship between business goals and quality attribute

requirements- How to specify business goals

• Since Software architecture drives software development through the life cycle”, we need to better understand- Refining architectures to detailed designs- Techniques for ensuring that detailed designs conform to the

architectures

Page 21: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 20

Architecture Evolution -1

Since “Quality attribute requirements drive software architecture design” and “Software architecture is the bridge between mission/business goals and a software-intensive system”:

• The quality and longevity of a software system is largely determined by its architecture.

• Therefore a system’s software architecture offers leverage for ensuring that a system continues serving an organization’s business as those goals evolve.

Page 22: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 21

Architecture Evolution -2

Evolution requires making architectural decisions under uncertainty:• Responding to change effectively while maximizing value-

added using notions from utility theory• Exploiting theories such as real options theory to place a

value on flexibility• Exploiting quality attribute theories to make sound quality

decisions• “Optimizing” the timing of and trade-offs in design decisions

Page 23: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 22

Architecture Evolution -3

Methodological support• Defining practical and economics-driven methods for valuing

architectural decisions in relation to quality attributes. The Architecture Improvement Workshop (AIW) is a starting point.

• Tying together existing methods such as QAW, ADD, ATAM and CBAM

Augmenting methods with automation support• ArchE – automated architectural design assistant• ARMIN – architecture reconstruction• Prototype documentation environment

Page 24: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 23

Architecture Practice in Context

Page 25: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 24

Architecture CompetenceWhat does an organization need to do to model, measure and improve its competence in performing architecture-centric software engineering?• What are the skills that enable a competent architect such as

technical, social, leadership skills and situation-specific skill profiles?- We plan to start by conducting structured interviews and

surveys

• How do you systematically capture organizational experience?- We plan to build simple models using checklists and then look

at Design for Six Sigma

• What’s the relationship between organizational structures and architectural structures?- We plan to build on the results of an SEI IR&D investigating

communication patterns vis-à-vis architectural dependencies

Page 26: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 25

Systems Architecture Practices

How can we close the gap between the engineering practices of system architecture and software architecture?

• How do you manage the system's quality attributes within and between the system and software architecture(s)?

• How do you describe the mapping between the operational architecture, system architecture and software architecture representations? How do you relate the views in the architectures?

Game Plan• Use structured interviews to assess state of the practice• Augment current methods to account for system architecture

practices

Page 27: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 26

Architecture Technology

We plan to continue investigating technologies such as• Service Oriented Architectures• Aspect-oriented design

As systems continue to get larger and more complex does the nature of architecture change?• We intend to investigate potentially applicable techniques

from areas such as- Mechanism and institutional design- Self-adaptive systems- Complex adaptive systems

Page 28: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 27

SAT “Axioms” and New Directions“Axioms” Guiding Our Work • Software architecture is the bridge between mission/business

goals and a software system• Software architecture drives software development throughout

the life-cycle.• Quality attribute requirements drive software architecture

design.

New Directions• Expand current work from design and development to also

address system evolution • Investigate architectural competence• Investigate the use of economic models, various theories of

design, and theories from other disciplines• Investigate the nature of architecture as systems become

ultra-large

Page 29: Future Directions of the Software Architecture Technology ... · Why Focus on Software Architecture? The quality and longevity of a software system is largely determined by its architecture

© 2006 by Carnegie Mellon University 28

We want your input!

Our ongoing goals are to

• Respond to the needs of the world

• Increase our level of impact

• Base techniques and methods on theoretically sound foundations

We are very much looking forward to getting your thoughts!