Working Draft Enterprise Architecture Roadmap for Business ...
Software Architecture: a Roadmap
description
Transcript of 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
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
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 …
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 …
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
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
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
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
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
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
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
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
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
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.
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 …
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
…
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
…
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, …
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
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
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.
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.
...
39Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh
Conclusion