introduction to the software architecture

Upload: usaid-khan

Post on 07-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Introduction to the Software Architecture

    1/18

    Software Design and Architecture

    Muhammad Nasir

    Introduction to Software Architecture

    [email protected]

  • 8/6/2019 Introduction to the Software Architecture

    2/18

    Agenda Challenges in Software Engineering

    How Software Architectures can Help

    What is Software Architecture?

    Why Develop a Software Architecture?

    Software Architecture is Abstraction

    Factors Influence Architecture

    Software Architecture Design Methods

    Challenges when Creating a Software Architecture Design and Architecture Difference

  • 8/6/2019 Introduction to the Software Architecture

    3/18

    Goal (s) of this lecture To give you an understanding of the concept

    Software Architectures, and its importance in

    software development. To make you understand the challenges of

    Software Architectures.

  • 8/6/2019 Introduction to the Software Architecture

    4/18

    Challenges in Software Engineering

    Reduce Development Cost

    Delivery on time and within budget

    Increase System Quality

    Decrease Maintenance Costs

    80% of a systems lifespan is spent in

    maintenance phase. Reduce Time-To-Market

    Manage increasing Complexity

  • 8/6/2019 Introduction to the Software Architecture

    5/18

    How Software Architectures can

    Help

    Understanding System

    Theoretical Limitations

    Planning Resources

    Labor

    Communication

    Customer Stakeholders

    Evaluating Quality

    Identifying Opportunities for Reuse

  • 8/6/2019 Introduction to the Software Architecture

    6/18

    What is Software Architecture?

    The software architecture of a program or

    computing system is the structure or

    structures of the system, which comprisesoftware elements, the externally visible

    properties of those elements, and the

    relationships among them. (Bass, Clements, Kazman)

    For more (much more),

    http://www.sei.cmu.edu/architecture/definitions.html

  • 8/6/2019 Introduction to the Software Architecture

    7/18

    Software Architecture is Abstraction

  • 8/6/2019 Introduction to the Software Architecture

    8/18

    Software Architecture in Development?

  • 8/6/2019 Introduction to the Software Architecture

    9/18

    Why Develop a Software Architecture?

    Why spend time on developing a Software

    Architecture?

    We have the requirements It takes time

    We want to start coding

    Ostrich Algorithm

  • 8/6/2019 Introduction to the Software Architecture

    10/18

    Why Develop a Software Architecture!

    Early Problem Analysis

    Communicate back to Customer

    Define Interfaces Avoid Problems during Integration

    Early Information for

    Testing

    Planning

  • 8/6/2019 Introduction to the Software Architecture

    11/18

    Challenges with Software Architectures

    Requirements alone do notgenerate aspecific Software Architecture?

    There are other factors. Which? Who has input to the Software Architecture?

    Who are users of the Software Architecture?

    What are the ramifications of a Software

    Architecture?

  • 8/6/2019 Introduction to the Software Architecture

    12/18

    Influencing Factors Technical & Organizational Factors

    Development Organization

    Previous Experiences

    Quality Requirements from Target Domain

    Technical Environment

    Business Factors Overall Business Goals

    System Stakeholders Management Low cost, keep people employed

    Marketing Neat features, low cost, time-to-market

    End UserBehavior, performance, reliable Maintenance org. Modifiable, understandable

    Customer Low cost, timely delivery

    Other Quality Requirements

  • 8/6/2019 Introduction to the Software Architecture

    13/18

    Factors Influence Architecture

    ArchitectureInfluence Factors

    A Software Architecture Manifest Early Design Decisions

    Constrains an Implementation

    Dictates Organizational Structure

    Impacts Change Management

    Facilitates Evolutionary Prototyping

    A Developed Software System Adds to previous experiences

    May affect business goals

    Refines development organization(Process Improvement)

    Affect customer requirements

    May revolutionize Computer Industry (e.g.GUI)

  • 8/6/2019 Introduction to the Software Architecture

    14/18

    Software Architecture DesignM

    ethods

    Not one method!

    Multiple approaches, depending on the

    system that is built. Different methods in different companies.

    Different attitudes towards SA: Formal

    Semi-formal Agile

    etc.

  • 8/6/2019 Introduction to the Software Architecture

    15/18

    How to Develop a Software Architecture

    A Software Architecture sets the theoreticalmax & min boundaries of Quality Attributes

    for a Software System E.g. Performance, Modifiability, Reliability

    Hence, Requirements on Quality Attributesshould drive Software Architecture Design.

    Structured Software Architecture DesignMethods Bosch

    Hofmeister et al.

  • 8/6/2019 Introduction to the Software Architecture

    16/18

    Challenges when Creating a

    Software Architecture

    To model an architecture that meets therequirements. Trade-offs between conflicting requirements.

    That can adapt to changed requirements.

    To document the architecture models in the rightway. Everyone should understand!

    To maintain/manage the architecture.

    To spread knowledge about the architecture In the project

    Outside the project

  • 8/6/2019 Introduction to the Software Architecture

    17/18

    Design and Architecture Difference

    No clear boundary line.

    All architecture is design all design is

    notarchitecture!

    Architecture building blocks:

    Components, modules

    Design building blocks:

    Classes/objects

  • 8/6/2019 Introduction to the Software Architecture

    18/18

    The End

    Thanks for listening

    Questions would be appreciated.