Software Architecture: A Roadmap David Garlan Presented by: Divya Chopra. – ppt download
Presentation on theme: “Software Architecture: A Roadmap David Garlan Presented by: Divya Chopra.”— Presentation transcript:
1
Software Architecture: A Roadmap David Garlan Presented by: Divya Chopra
2
What is Software Architecture? The organization of the overall system: “ The organization of the overall system: “how the system is composed of interacting parts, where are the main pathways of interaction, and what are the key properties of the parts.” “The structure of the components of a pro- gram/system, their interrelationships, and principles and guidelines governing their design and evolution over time.” (developed at SEI 1994)
3
Software Architecture as a Bridge Requirements Implementation Software Architecture
4
Roles of Software Architecture Understanding: top-level view of system design Reuse: component libraries and frameworks Construction: blueprint of main components & their dependencies Evolution: distinguishes between component functionality and interactions Analysis: consistency, dependency, constraints, quality and domain-specific Management: critical evaluation improves software development process
5
Yesterday Box-and-line diagrams Informal with vague semanticsInformal with vague semantics No formal checking for consistency, completeness or correctnessNo formal checking for consistency, completeness or correctness Non conformance of constraints with evolutionNon conformance of constraints with evolution Developments within Industry Recognized the need of shared methods, patterns for structuring systems and improve semantics.Recognized the need of shared methods, patterns for structuring systems and improve semantics. Exploit commonalities in specific domains to provide reusable frameworks e.g. user interface toolkitsExploit commonalities in specific domains to provide reusable frameworks e.g. user interface toolkits
6
Today Architecture is a critical design activity in software development Technological advances through: Architectural Description Languages & ToolsArchitectural Description Languages & Tools Product Lines & StandardsProduct Lines & Standards Codification & DisseminationCodification & Dissemination
7
Architecture Description Languages and Tools Formal notations for representation and analysis Provides a conceptual framework and concrete syntax for analysis Tools for parsing, displaying, compiling, analyzing or simulating descriptions Examples: Adage, Aesop, SADL, Darwin C2 etc.
8
Examples of ADLs Avionics Domain Application Generation Environment (ADAGE) is an environment for developing, specifying, and analyzing helicopter avionics software. C2 supports description of user interface systems using an event-based style
9
Product Lines and Standards Rationale behind this is to make use of the commonality across multiple products Challenges: Arch. must consider requirements for an entire family of systems and the relationships between those requirements. Progress made: Case studies have been published about product line approach which provide a better understanding about the issues involved.Case studies have been published about product line approach which provide a better understanding about the issues involved. SEI has developed guidelines and processes.SEI has developed guidelines and processes.
10
Cross vendor Integration Requires architectural FWs that permit a system developer to configure a wide variety of specific systems by instantiating the FW.Requires architectural FWs that permit a system developer to configure a wide variety of specific systems by instantiating the FW. Integration standards allow “gluing” of parts provided by multiple vendors.Integration standards allow “gluing” of parts provided by multiple vendors. Example: HLA for distributed simulation prescribes interface standards to co-ordinate the behavior of multiple independent simulations. Example: HLA for distributed simulation prescribes interface standards to co-ordinate the behavior of multiple independent simulations.
11
Codification & Dissemination Publication of books on architectural design and courses. Use standard arch. styles which include a specific vocabulary, constraints on its usage and semantic assumptions.Use standard arch. styles which include a specific vocabulary, constraints on its usage and semantic assumptions. Advantages: valuable documentation for others to use and adopt. Reality: systems comprise of parts architected in different styles hence there is a need for techniques to bridge mismatches.
12
Tomorrow Relatively new field – takes time for new ideas and approaches to propagate. Technological basis – still immature. Prominent Trends Changing Build Vs Buy balanceChanging Build Vs Buy balance Network-centric computingNetwork-centric computing Pervasive computingPervasive computing
13
Changing Build-Versus-Buy Balance Key issue in the development of systems. Advantage Saves development time.Saves development time.Disadvantages: Needs are not met.Needs are not met. Less under the developing organization’s control.Less under the developing organization’s control.
14
Consequences Need for industry-wide standards Component-based engineering uses components that work on a common FW reducing architectural mismatches. E.g. COM, JavaBeans or CORBA.Component-based engineering uses components that work on a common FW reducing architectural mismatches. E.g. COM, JavaBeans or CORBA. Architecture-based engineering (HLA, EJB)Architecture-based engineering (HLA, EJB) New SW subcontracting process Higher standards of architecture conformance (commercial or governmental) Higher standards of architecture conformance (commercial or governmental) Standardization of notations and tools across vendors Architectural modeling (UML, XML)Architectural modeling (UML, XML)
15
Network-Centric Computing Advantages: Wider base/range of services provided.Wider base/range of services provided. Access to a rich set of computing & information retrieval services.Access to a rich set of computing & information retrieval services. Promotes user mobility through ubiquitous access.Promotes user mobility through ubiquitous access. Example: Internet which is an open system, where the standardization is low allowing variations in hardware and applications.
16
Challenges Need for archs. to scale up to the size and variability of the Internet. Support for computing with dynamically- formed coalitions of autonomous resources. Flexible architectures that accommodate commercial application service providers. Archs. that allow end users to make their own compositions.
17
Pervasive Computing It is computing power freed from the desktop – embedded in wireless handheld devices, home appliances, and commercial tools-of the-trade. It expands our freedom to exchange information anytime, anywhere.
18
Challenges Need architectures suitable for systems in which resource usage is critical. Need flexible architectures to handle dynamic re-configuration without affecting the processing. Need architectures to handle user mobility by providing automated control over the management of computational services.
19
Strengths & Weaknesses: Provides a useful insight in the field of Software Architecture and covers the major challenges associated with it. It speaks of various styles like event- based, client-server based, but does not specify which is suitable for embedded software.
20
Conclusions Software Architecture is emerging as an independent engineering field. Grown in the last decade and will continue to do so. It is still a very immature field, but we are moving in the right direction.