39
1 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems L aboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh Software Architecture: a Roadmap David Garlan 2000 By: A. Rasoolzadegan

Software Architecture: a Roadmap

  • Upload
    kevlyn

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Software Architecture: a Roadmap. David Garlan 2000 By: A. Rasoolzadegan. Abstract. During 1990-2000 Software Architecture Has received increasing attention as an Important subfield of software engineering - PowerPoint PPT Presentation

Citation preview

Page 1: Software Architecture: a Roadmap

1Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Software Architecture: a Roadmap

David Garlan2000

By: A. Rasoolzadegan

Page 2: Software Architecture: a Roadmap

2Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Abstract

During 1990-2000 Software Architecture

Has received increasing attention as an Important subfield of software engineering

Developing the technological and methodological base for treating architectural design as an

Engineering Discipline

Purposes of this paper: Examines some of the important trends of software

architecture in research and practice Speculate on the important emerging trends, challenges, and

aspirations

Page 3: Software Architecture: a Roadmap

3Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Introduction

Architecture: A critical issue in the design and construction of any complex

software system Gross organization of a complex software as a collection of

interacting components A good architecture ensure that a system will satisfy key

requirements in: Performance Reliability Portability Scalability Interoperability …

Page 4: Software Architecture: a Roadmap

4Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Introduction (Con.)

Progresses occurred during 1990-2000: Software Architecture

has received increasing attention as an important subfield of software engineering

Practitioners: Realize that

getting an architecture right is a critical success factor for system design and development

Leveraging past architectural designs in the development of new products

Numerous books, regular conferences and workshops, commercial tools, courses, major government and industrial research projects, …

Codification of Formal architectural standards and principles …

Page 5: Software Architecture: a Roadmap

5Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Introduction (Cont.)

Despite this progresses, as engineering disciplines go, the field of software architecture remains relatively immature

While the outline of an engineering basis for S.A. are becoming clear, there remain numerous challenges and unknowns

We can expect to see major new development in S.A. over the next decade both in research and practice

Page 6: Software Architecture: a Roadmap

6Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A.

Architecture of a system describes its gross structure which illuminates: The top level design decisions including things such

as: How the system is composed of interacting parts Where are the main pathways of interactions What are the key properties of the parts

An architectural description includes sufficient information to allow high-level analysis and critical evaluation

Page 7: Software Architecture: a Roadmap

7Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.)

S.A typically plays a key role as a bridge between requirements and implementation

Requirements

Code

Software Architecture

Page 8: Software Architecture: a Roadmap

8Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.)

Architecture exposes certain properties of a system, while hiding others, by providing an abstract description of the system which provides: An intellectually tractable guide to the overall system

Permits designers To reason about the ability of a system to satisfy certain

requirements Suggests a blueprint for system construction and

composition

Page 9: Software Architecture: a Roadmap

9Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.)

Role of S.A. at software development: Understanding Reuse Construction Evolution Analysis Management

Page 10: Software Architecture: a Roadmap

10Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Understanding

S.A. simplifies our ability to comprehend large systems by presenting them at a level of abstraction at which a

system’s high level design can be easily understood Architectural description exposes the high level

constraints on system design

Page 11: Software Architecture: a Roadmap

11Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Reuse

Architectural design supports both reuse of large components and frameworks into which components can be

integrated Related existing works in this aspect

Domain specific software architecture Reference frameworks Architectural design patterns

Page 12: Software Architecture: a Roadmap

12Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Construction

An architectural description provides a partial blueprint for development by Indicating the major components and dependencies between

them

Example: A layered view of an architecture typically

documents abstraction boundaries between parts of a system’s implementation

clearly identifying the major internal system interfaces constraining what parts of a system may rely on services

provided by other parts

Page 13: Software Architecture: a Roadmap

13Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Evolution

S.A. can expose the dimensions along which a system is expected to evolve

By making explicit the “load-bearing walls” of a system system maintainers can better understand the

ramifications of changes thereby more accurately estimate costs of

modifications

Page 14: Software Architecture: a Roadmap

14Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Evolution

Architectural descriptions separate concerns about the functionality of a components from the ways in which that components is connected to other components Permits one to more easily change connection

mechanisms to handle evolving concerns about Performance, Interoperability, Prototyping, Reuse.

Page 15: Software Architecture: a Roadmap

15Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Analysis

Architectural descriptions provide new opportunities for analysis including System consistency checking Conformance to constraints imposed by an

architectural style Conformance to quality attributes …

Page 16: Software Architecture: a Roadmap

16Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

The Roles of S.A. (Cont.) - Management

Experiments has shown that successful projects view achievement of a viable software architecture as a key milestones in an industrial software development process

Critical evaluation of an architecture typically leads to a much clearer Understanding of requirements Implementation strategies Potential risks

Page 17: Software Architecture: a Roadmap

17Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Yesterday

During 1990-2000 Architecture was largely an ad hoc affair Descriptions relied on informal box and line diagrams

Rarely maintained once a system was constructed Architectural choices were made in idiosyncratic fashion

Typically by adapting some previous design There was no way to check that a given system

implementation faithfully represented its architectural design

Page 18: Software Architecture: a Roadmap

18Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Yesterday (Cont.)

Despite their informality, architectural description were central to system design

Recognize the need for a more disciplined and unified approach

Tool vendors began thinking about explicit support for architectural design

Language designers began to consider notations for architectural representation

Page 19: Software Architecture: a Roadmap

19Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Yesterday (Cont.)

Within industry two trends highlighted the importance of architecture Recognition of a shared repertoire of methods, techniques,

patterns and idioms for structuring complex software systems such as “pipeline”, “blackboard oriented design” or “client-server systems”

Exploiting commonalities in specific domains to provide reusable frameworks for product families

Low cost Instantiating shared design

Page 20: Software Architecture: a Roadmap

20Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Today

The technological basis for architectural design has improved dramatically

Three of the important advancements have been Development of architecture description languages

and tools Emergence of product line engineering and

architectural standards Codification and dissemination of architectural

design expertise

Page 21: Software Architecture: a Roadmap

21Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TodayArchitecture Description Languages and Tools

The informality of most box and line depictions of architectural designs leads to a number of problems The meaning of the design may not be clear Informal diagrams can not be formally analyzed for

Consistency Completeness Correctness …

There are few tools to help architectural designers with their tasks

Page 22: Software Architecture: a Roadmap

22Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Today Architecture Description Languages and Tools (Cont.)

Proposing formal notations for representing and analyzing architectural designs Architectural Description Languages (ADLs)

ADLs typically provide tools for Parsing Displaying Compiling Analyzing Simulating

Architectural Descriptions

Page 23: Software Architecture: a Roadmap

23Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Today Architecture Description Languages and Tools (Cont.)

Recently there have been a number of proposal that attempt to show how the concepts founds in ADLs can be mapped directly into an object oriented notation like UML

Requirements

Code

ArchitectureIn an ADL

ArchitectureIn UML

A

D E

C

B

Page 24: Software Architecture: a Roadmap

24Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TodayProduct lines and Standards

Exploit commonality across multiple products Create product lines within an organization Emergence of cross-vendor integration standards

Page 25: Software Architecture: a Roadmap

25Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TodayProduct Lines (Cont.)

Must consider requirements for a family of systems relationship between those requirements ones associated with each particular instance

We need a reusable architecture that can be instantiated for each product

Product line engineering is not yet widespread

Page 26: Software Architecture: a Roadmap

26Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TodayCross-vendor Integration Standards

Like product line approaches require architectural frameworks

that permit a system developer to configure a wide variety of specific systems

by instantiating that framework

Typically provide the system glue Integrate parts provided by multiple vendors

Such standards may be Formal international standards sponsored by IEEE, ISO or … Ad hoc and de facto standards promoted by an industrial leader

Page 27: Software Architecture: a Roadmap

27Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TodayCodification and Dissemination

One of improvements has occurred nowadays is the use of standard architectural styles

An architectural style typically specifies a design vocabulary, constraints on how that vocabulary is used, semantic assumptions about that vocabulary such as

pipe and filter style, blackboard architectures, client-server architecture, event-based architecture, object-based architectures

Each style is appropriate for certain purposes

Page 28: Software Architecture: a Roadmap

28Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Tomorrow

Although S.A. is on much more solid footing than a decade ago, it is not yet established as a discipline that is taught and practiced universally across the software industry

Reasons: It takes time for new approaches and perceptions to

propagate Technological basis for architecture design is still

immature

Page 29: Software Architecture: a Roadmap

29Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowChanging Build Versus Buy Balance

A critical issue in the development of systems has been the decision about what parts of the system to obtain elsewhere

Advantages and disadvantages Saving development time Often incompletely satisfying the needs Being less under control of the development organization …

what parts to build in-house

Page 30: Software Architecture: a Roadmap

30Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowChanging Build Versus Buy Balance (Cont.)

Economic pressures to reduce time-to-market are drastically changing the build versus buy balance For an increasing number of products, introducing a product a

month early may be the difference between success and failure

In such situations building systems using software that others have written becomes the only feasible choice

Indeed, many companies are rapidly finding themselves more in the position of system integrators than software developers

This trend is evident in the rising popularity of “component-based” software development

Page 31: Software Architecture: a Roadmap

31Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowChanging Build Versus Buy Balance (Cont.)

Today’s component technologies work at a fairly low level of architectural abstraction Essentially at the level of procedure call between objects

To obtain more significant integration will require higher level architectural standards This is Likely to lead us from “component-based” engineering

to “architecture-based” engineering

This trend is also leading toward standardization of notations and tools across vendors

Page 32: Software Architecture: a Roadmap

32Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowNetwork Centric Computing

There is a clear trend from a PC centric computational model to a network centric model

Reasons of this trend Network centric computing

Provides a much broader base of services Permits access to a rich set of computing and

information retrieval services through portable computers that can be used almost anywhere

Page 33: Software Architecture: a Roadmap

33Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowNetwork Centric Computing (Cont.)

For such systems a new set of software architecture changes emerges First is the need for architectures that scale up to the size and

variability of the Internet Second is the need to support computing with dynamically

formed, task specific, coalitions of distributed autonomous resources (e.g. Internet)

The need to handle dynamically evolving collections of components obtained from a variety of sources will require new techniques for managing architectural models at run time

Page 34: Software Architecture: a Roadmap

34Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowPervasive Computing

The next related trend is toward pervasive computing in which the computing universe is populated by a rich variety of heterogeneous computing devises Such as toasters, home heating systems,

entertainment systems, smart carts, …

Page 35: Software Architecture: a Roadmap

35Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

TomorrowPervasive Computing (Cont.)

Some of consequent challenges for S.A Architectures for these systems will have to be more

flexible than they are today Devices are likely to come and go in an unpredictable

fashion Handling reconfiguration dynamically while guaranteeing

uninterrupted processing is a hard problem Need for architectures that will better handle user

mobility Provide much more automated control over the

management of computational services

Page 36: Software Architecture: a Roadmap

36Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Conclusion

The field of S.A. has experienced considerable growth over the past decade

It promises to continue that growth for the foreseeable future

There are a number of significant challenges that will need to be solved before architectural design matures into an engineering discipline Many of these challenges will be solved as a natural

consequence of dissemination and maturation of the architectural practices and technology

Others arise because of the shifting landscape of computing and the needs for software

That will require significant new innovations

Page 37: Software Architecture: a Roadmap

37Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Reference

David Garlan, “Software Architecture: a Roadmap”, in The Future of Software Engineering, A. Finkekstein (Ed),

ACM Press, 2000.

Page 38: Software Architecture: a Roadmap

38Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Related Papers

Architecture-driven Modelling and Analysis, David Garlan and Bradley Schmerl.  In Tony Cant editor, Proceedings of the 11th Australian Workshop on Safety Related Programmable Systems (SCS'06), Vol. 69 of Conferences in Research and Practice in Information Technology, Melbourne, Australia, 2006.

Architecture-based Simulation for Security and Performance, Bradley Schmerl, Shawn Butler and David Garlan. 2006. Submitted for publication.

Analyzing Architectural Styles, Jung Soo Kim and David Garlan.  2007. Submitted for Publication Software Architecture-based Adaptation for Grid Computing, Shang-Wen Cheng, David Garlan,

Bradley Schmerl, Peter Steenkiste, and Ningning Hu, The 11th IEEE Conference on High Performance Distributed Computing (HPDC’02), Edinburgh, Scotland, July 2002.

Understanding Tradeoffs among Different Architectural Modelling Approaches, Roshanak Roshandel, Bradley Schmerl, Nenad Medvidovic, David Garlan, and Dehua Zhang, Proceedings of the 4th Working IEEE/IFIP Conference on Software Architectures, Oslo, Norway, June 11-14, 2004.

Differencing and Merging of Architectural Views, Marwan Abi-Antoun, Jonathan Aldrich, Nagi Nahas, Bradley Schmerl, and David Garlan, Carnegie Mellon University Institute for Software Research International Technical Report CMU-ISRI-05-128, 2005.

...

Page 39: Software Architecture: a Roadmap

39Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh

Conclusion