Docstoc

Software Architecture - A Roadmap

Document Sample
Software Architecture - A Roadmap Powered By Docstoc
					Software Architecture
    - A Roadmap

      Author - David Garlan
   Presented by - Ashish Grover
                 Agenda
   Introduction to Software Architecture
   Roles of Software Architecture
   Older techniques
   Current techniques
   Supposed future
   Embedded Software
   Conclusions and review
        Introduction 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.
Software Architecture as a Bridge




        Requirements




    Software Architecture




             Code
 Roles 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
       Imp role in six aspects
 Understanding  of system
 Reuse at different levels
 Construction
 Evolution
 Analysis
 Management
Antecedents of Software Architecture




            Courtesy: David Garlan
             Older Techniques
 Informalbox and line diagrams
 New design evolved from previous
  designs
 No technique to
     Do analysis for consistency
     Check implementation is in accordance with
      architectural description
                  The 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
    Current 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
     Current Techniques (contd.)
    Three significant advancements

1.   Architecture Description Languages
2.   Product Lines and Standards
3.   Codification and Dissemination
  Current 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 ADL’s provide distinct capabilities
    Current Techniques (Contd.)
   Product Lines & Standards
     Exploiting commonality across products

     Creating product lines within an organization

     Cross-vendor integration standards


             Product                Product
           Requirements           Architecture




           Product Line           Product Line
           Requirements           Architecture
  Current 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
                 Supposed 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
        vendor’s components is a nightmare
       Supposed 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
              Supposed future
 Pervasive    Computing (Challenges)
     Architectures suited for resource constrained
      environments
     Dynamically reconfiguring uninterrupted
      service providing architectures will be need of
      hour
     Handle user mobility
      Types of Embedded S/W
            Architecture
 ControlLoop
 Non Preemptive Multitasking
 Preemptive timers
 Preemptive tasks
 RTOS
Diagram of an ARC integrated software platform
                 Conclusions
 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
          Conclusions (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?
                        References
   http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose/present/garlanpres.p
    df
   http://www.arc.com/evaluations/29B12561.1_SW%20Capabilities_8-
    09-04_final.pdf
   http://www.brainyencyclopedia.com/encyclopedia/e/em/embedded_
    system.html
   http://www.iec.org/online/tutorials/vocable/topic06.html
   Foundations for the study of software Architecture by Dewayne E.
    Perry and Alexander L. Wolf
   http://www-
    2.cs.cmu.edu/~able/presentations/columbia-1-
    01.pdf
 Questions   ?