Title: Software Architecture A Roadmap
1Software Architecture - A Roadmap
- Author - David Garlan
- Presented by - Ashish Grover
2Agenda
- Introduction to Software Architecture
- Roles of Software Architecture
- Older techniques
- Current techniques
- Supposed future
- Embedded Software
- Conclusions and review
3Introduction to software Architecture
- The software architecture of a program or
computing system is the structure or structures
of the system, which comprise software elements,
the externally visible properties of those
elements, and the relationships among them.
4Software Architecture as a Bridge
Requirements
Software Architecture
Code
5Roles of Software Architecture
- Describes a systems gross structure
- Composure of system as a collection of
interacting parts - Main pathways of interaction b/w parts
- Key properties of parts
6Imp role in six aspects
- Understanding of system
- Reuse at different levels
- Construction
- Evolution
- Analysis
- Management
7Antecedents of Software Architecture
Courtesy David Garlan
8Older Techniques
- Informal box and line diagrams
- New design evolved from previous designs
- No technique to
- Do analysis for consistency
- Check implementation is in accordance with
architectural description
9The two trends
- Shared set of methods, techniques, patterns
- Use of metaphors such as client server system
- Significant semantic content which reasoned about
their paradigms, evolution, relationships and
concerns - Searching similarities in specific domains to
reuse frameworks - Some examples are frameworks, 4GLs, UI toolkits
10Current Techniques (Yr 2000)
- Recognition of s/w architecture as a sub-field
- Organizations now have software architects who
chair the architecture review boards - Emerging use of product line architectures,
commercial architectural standards, component
integration frameworks - Codification of vocabulary, notations tools for
architectural design - Books/courses on software architecture
11Current Techniques (contd.)
- Three significant advancements
- Architecture Description Languages
- Product Lines and Standards
- Codification and Dissemination
12Current Techniques (Contd.)
- ADL
- Required for formal analysis of consistency,
completeness or correctness, enforcing
architectural constrains with system evolution - Provide framework and syntax for characterizing
architectures - Provide tools for parsing, compiling and
simulating architectural description - Different ADLs provide distinct capabilities
13Current Techniques (Contd.)
- Product Lines Standards
- Exploiting commonality across products
- Creating product lines within an organization
- Cross-vendor integration standards
Product Requirements
Product Architecture
Product Line Architecture
Product Line Requirements
14Current Techniques (Contd.)
- Codification and Dissemination
- Using standard architecture styles
- Styles provide a design vocabulary, assumptions
and constraints on the use of the vocabulary - Styles are a good starting point for software
architects
15Supposed future
- Future architecture will follow the current
trends in industry. - Build Vs Buy
- Requirement to decrease time to market
- Vendor built components come in picture
- But this requires components built on industry
accepted standards - Integrating in-house components with vendors
components is a nightmare
16Supposed future (contd.)
- Network-Centric Computing (challenges)
- No centralized control
- Need for architectures which scale
- Architectures which do not rely on resources as
resources can be mobile - Architectures which handle dynamically evolving
components - Accommodate commercial application service
providers
17Supposed future
- Pervasive Computing (Challenges)
- Architectures suited for resource constrained
environments - Dynamically reconfiguring uninterrupted service
providing architectures will be need of hour - Handle user mobility
18Types of Embedded S/W Architecture
- Control Loop
- Non Preemptive Multitasking
- Preemptive timers
- Preemptive tasks
- RTOS
19Diagram of an ARC integrated software platform
20Conclusions
- Points for
- S/W architecture development timeline analyzed
properly - Lot of examples discussed
- Speculated future work then has really become
active research areas of today - Foresees challenges that might be issued in
future environments
21Conclusions (Contd.)
- Points against
- Detailed but abstract paper
- Completely forgets other kind of future
environments and constraints - Security components?
- How to approach towards building systems for
these new environments?
22References
- http//www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/p
resent/garlanpres.pdf - http//www.arc.com/evaluations/29B12561.1_SW20Cap
abilities_8-09-04_final.pdf - http//www.brainyencyclopedia.com/encyclopedia/e/e
m/embedded_system.html - http//www.iec.org/online/tutorials/vocable/topic0
6.html - Foundations for the study of software
Architecture by Dewayne E. Perry and Alexander L.
Wolf - http//www-2.cs.cmu.edu/able/presentations/columb
ia-1-01.pdf
23