390 likes | 594 Views
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
E N D
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 • 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 Amirkabir 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 • … Amirkabir 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 • … Amirkabir 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 Amirkabir 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 Amirkabir 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 Software Architecture Code Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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. Amirkabir 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 • … Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh
TodayArchitecture 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 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh
TodayArchitecture 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 B A C Architecture In an ADL Architecture In UML D Code E Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir 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 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh
TomorrowChanging Build Versus Buy Balance (Cont.) • Today’scomponent 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 Amirkabir 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 • … Amirkabir 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 • … Amirkabir 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, … Amirkabir 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 Amirkabir 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 Amirkabir 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. Amirkabir 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. • ... Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh
Conclusion Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Large Scale Software Architecture Course, Dr. Abdollahzadeh