Title: Software Architecture: An Overview
1Software Architecture An Overview
- Vanilson Burégio
- vaab_at_cin.ufpe.br
2Agenda
- History
- Software Architecture
- Definition
- Motivation
- Roles
- Architectural Styles
- Architectural Views
- Architectural Description Language (ADL)
- Architecture and Reuse
- DSSA based reuse
- PLA
3History 1950s
- Machine language
- programmers placed instructions and data
explicitly in the computers memory - Symbolic Assemblers
- Symbolic names
- Memory layout and update references could be
automated - High-level Programming Languages
- Procedures invocations, loops, modules,
4History 1960s
- Problems of developing large-scale software
Systems - Software structure
- Specifications
- Language issues
- Abstract Data Types
5History 1970s
- Software Design
- Design is an activity separate from
implementation - Research results
- Notation
- Techniques
- CASE tools
6History 1980s
- The focus of software engineering research
- Integrating designs and the design process
- Result
- many of the notations and techniques developed
for software design have been absorbed by
implementation languages
7History 1990s
- Software Architecture
- Design Vs Architecture
- "use the term architecture, in contrast to
design, to evoke notions of codification, of
abstraction, of standards, of formal training (of
software architects), and of style " Perry and
Wolf,92
8History Summary
Abstraction level
- 1950s - High-level Programming Languages
- 1960s - large-scale software Systems
- 1970s - Software Design
- 1980s - Integrating designs and the design
process - 1990s - Software Architecture
9Software Architecture Definition
- There are several different definitions of
software architecture in the literature, all of
them agree that it - The most commonly used definitions
- Perry Wolf, 1992
- Garlan Shaw, 1994
Describes the organization of the overall system
concentrate on the topological view
10Software Architecture Definition
- Perry Wolf, 1992
- Set of architectural elements that have a
particular form, and an underlying rationale - Elements - processing, data and connecting
elements - Form - consists of weighted properties of
architectural elements - Rationale - captures the motivation for the
choice of architectural style, the choice of
elements, and the form - It is the connecting elements ("glue") that
especially distinguish one architecture from
another
11Software Architecture Definition
- Garlan Shaw, 1994
- Define software architectures as including
components, connectors and configurations.
Where - components - define the locus of computation,
- connectors - define the interactions between
components - configurations define the topology of the
components and connectors
The structure of the components of a
program/system, their interrelationships, and
principles and guidelines governing their design
and evolution over time. Software architecture
discussion group at the SEI, 1994
12Software Architecture Motivation
- High cost of software
- Evolution
- customization
Software architecture simplifies our ability to
comprehend large systems by presenting them at a
level of abstraction at which high-level design
can be understood Garlan and Shaw 1993 Perry
and Wolf 1992
13Software Architecture Roles
- Eden Kazman, 2003
- Communication among stakeholders
- Early design decisions
- Transferable abstraction of a system
- Main considerations Szyperski, 2002
- Functionality
- Performance
- Reliability
- Security
Commonly, these aspects are ignored, emphasizing
functionality. The consequences can be fatal!
14Software Architecture Context
Requirements
Architecture
Design
Implementation
15Architectural styles
16Architectural styles
- Observation
- Many systems have a similar solution structure
- Defines a family of architectures constrained by
Garlan Shaw, 1994 - Component/connector vocabulary
- Topology
- Semantic constraints
- Benefits of styles
- Reuse of experience
- Reuse of code
- Insight in/analysis of solution characteristics
17Most Common Architectural Styles Garlan Shaw
- Pipes and Filters
- Data Abstraction and Object-Oriented Organization
- Event-based, Implicit Invocation
- Layered Systems
- Repositories
- Table Driven Interpreters
- Heterogeneous Architectures
18Most Common Architectural Styles Garlan Shaw
19Most Common Architectural Styles Garlan Shaw
- Data Abstraction and Object-Oriented Organization
20Most Common Architectural Styles Garlan Shaw
- Event-based, Implicit Invocation
21Most Common Architectural Styles Garlan Shaw
22Most Common Architectural Styles Garlan Shaw
23Most Common Architectural Styles Garlan Shaw
- Table Driven Interpreters
24Most Common Architectural Styles Garlan Shaw
- Heterogeneous Architectures
- There are different ways in which architectural
styles can be combined - Hierarchy
- pipe connector may be implemented internally as a
FIFO - A single component using a mixture of
architectural connectors - an active database
25Architectural styles
- Formal approach Abowd, 1993
mapping
Abstract Sintaxe
Semantic Domain
Z especification
26Architectural views
27Architectural views
- Gacek, 1994
- To accommodate the different expectations of the
various stakeholders,a software architecture
must incorporate different, multiple views
28Architectural views
- Views of a Software Architecture Gacek, 1994
- Static Topological
- Behavioral / Operational
- Dataflow
- Computing Environment
- Process Environment
29Architectural views
- Kruchten, 1995
- The 41 View Model
- Logical view
- Process view
- Physical view
- Development view
- Scenarios
- Scenario-driven approach capture the systems
critical functionality - Style Vs View
End users, customers, data specialists
System engineers
Project managers, software-configuration staff
members
30ADL - Architecture Description Language
Architecture Description Languages (ADLs) lay
the formal basis for architecting
- ADLs differ in their scope of use Abd-Allah,
1994
31ADL - Architecture Description Language
- Goals
- Rapid Prototyping
- Reengineering
- Better understanding of overall system
- Main problem
- A lot of ADLs are loosely coupled to
implementation languages, causing problems in - Analysis
- Implementation
- Understanding
- evolution
32ADL - Architecture Description Language
- Early ADLs were restricted to static connectivity
- Rapide
- Darwin
- Wright
- DICAM
-
- Later ADLs added support for dynamic connectivity
and dynamic reconfiguration - ArchJava Aldrich, 2002
33ADL ArchJava
- Key concept Communication Integrity Luckham
Vera, 1995 - A system has Communication Integrity if
implementation components only communicate
directly with the components they are connected
to in the architecture - Example
34ADL Design Model
- Integrating ADL with a Standard Design Method
Robbins, 1998
Wrights CSP constructor
C2 architecture expressed in UML
35Architecture and Reuse
- DSSA Based Reuse
- Product-line architecture (PLA)
-
36Domain Specific Software Architecture Based Reuse
- Artifact involved
- Reference architecture, design, requirements and
code - General characteristics
- Requires thorough domain understanding
- Domain specific repository
- Domain model, reference architecture and
repository evolution - Example
- SGS Reference Architecture Gacek, 1995
37DSSA Based Reuse
- Lifecycle Balzer et al. 1993
38Product-line architecture Context
- Product-line architecture (PLA) have received
special attention in software industry - Increase reuse
- minimize product-specific development
- Competitive advantage
- Recent Area
39PLA Cases
- Bosch, 1999
- Axis Communications AB
- Securitas Larm AB
40PLA Problems
- Background knowledge
- Information Distribution
- Multiple versions of assets
- Dependencies between assets
- Assets in new contexts
- Documentation
- Tool support
- Effort estimation
41PLA recently
- PLA Development toolkit Lesaint
Papamargaritis, 2004 - Support two operations
- Application configuration
- Application generation
- Process
- Specifying the architecture
- Configuring the application
- Generating applications
42References
- Abd-Allah, 1994 Ahmed A. Abd-Allah.
Architecture Description Languages. 1994. - Abowd, 1993 Gregory Abowd, Robert Allen, David
Garlan. Using Style to Understand Descriptions of
Software Architecture. 1993. - Aldrich, 2002 Jonathan Aldrich, Craig Chambers,
David Notkin. ArchJava Connecting Software
Architecture to Implementation. 2002. - Balzer et. al. 1993 R. Balzer, C. Braun, F.
Belz, L. Coglianese, L. Erman, K. Harbison, R.
Might, R. Platek, and S. Vestal. DSSA Process
Summary. Copies available from Chris Braun
(braun_at_europa.eng.gtefsd.com), 1993. - Bosch, 1999 Jan Bosch Product-Line
Architectures in Industry A Case Study. 1999. - Clements, 1996 Paul C. Clements. A Survey of
Architecture Description Languages. 1996. - Eden Kazman, 2003 Amnon H. Eden, Rick Kazman.
Architecture, Design, Implementation. 2003. - Gacek et. al. 1995 Cristina Gacek, Ahmed
Abd-Allah, Bradford Clark, Barry Boehm. On the
Definition of Software System Architecture. 1995.
- Gacek, 1994 Cristina Gacek. Domain Specific
Software Architecture Based Reuse. 1994.
43References
- Gacek, 1995 Cristina Gacek. Exploiting Domain
Architectures in Software Reuse. 1995. - Garlan Shaw, 1994 David Garlan, Mary Shaw. An
Introduction to Software Architecture. 1994. - Garlan et. al.. 1995 David Garlan, Robert
Allen, Jihn Ackerbloom. Architectural Mismatch
Why Reuse is So Hard. 1995. - Garlan, 1995 David Garlan. Research Directions
in Software Architecture. 1995. - Kruchten, 1995 P. Kruchten. The 41 View Model
of Architecture. IEEE Software, Nov 1995. - Lesaint Papamargaritis, 2004 David Lesaint,
George Papamargaritis. Aspects and Constraints
for Implementing Configurable Product-Line
Architectures. 2004. - Luckham Vera, 1995 David C. Luckham, James
Vera. An Event Based Architecture Definition
Language. IEEE Trans. Software Enginering 21(9),
Sep 1995. - Lutz Gannod, 2003 Robyn R. Lutz, Gerald C.
Gannod. Analysis of a software product line
architecture an experience report. 2003. - Meekel, 2001 Jacques Meekel, Thomas B. Hortont,
Robert B. Francet, CharlieMellone L Sajid Dalvi.
From Domain Models to Architecture Frameworks.
1997.
44References
- Perry Wolf, 1992 Dewayne E. Perry, Alexander
L. Wolf. Foundations for the Study of Software
Architecture. 1992. - Robbins, 1998 Jason E. Robbins, Nenad
Medvidovic, David F. Redmiles, David S.
Rosenblumart.Integrating Architecture Description
Languages with a Standard Design Method. 1998. - Shaw, 1995 Mary Shaw. Comparing Architectural
Design Styles. 1995. - Szyperski, 2002 C. Szyperski, D. Gruntz, S.
Murer, Component Software Beyond Object-Oriented
Programming, Addison-Wesley, 2002, pp. 588 - Wallnau, 2001 Kurt Wallnau, Judith Stafford,
Scott Hissam, Mark Klein. On the Relationship of
Software Architecture to Software Component
Technology. 2001.