01 Architecture Workshop Introduction

Embed Size (px)

Citation preview

  • 8/6/2019 01 Architecture Workshop Introduction

    1/15

    IntroductionArchitecture Workshop

  • 8/6/2019 01 Architecture Workshop Introduction

    2/15

    Agenda

  • 8/6/2019 01 Architecture Workshop Introduction

    3/15

    oftware Architectureefinition 1

    The software architecture of a programor computing system is the structure

    ,or structures of the system which

    ,comprise software elements theexternally visible properties of

    ,those elements and the relationships.among them

    - (Software Architecture in Practice 2nd) . , . ,edition by L Bass P Clements and

    .R Kazman

  • 8/6/2019 01 Architecture Workshop Introduction

    4/15

    Software Architecture Definition 2

    Architecture is defined by therecommended practice as the

    fundamental organization of asystem, embodied in its components,their relationships to each other andthe environment, and the principles

    governing its design and evolution.- ANSI/IEEE Std 1471-2000,

    Recommended Practice for

    Architectural Description of Software-

  • 8/6/2019 01 Architecture Workshop Introduction

    5/15

    oftware Architectureefinition 3

    [ ]Software architecture goes beyond thealgorithms and data structures of the;computation designing and specifying the

    overall system structure emerges as a new.kind of problem Structural issues include

    gross organization and global control; ,structure protocols for communication

    , ;synchronization and data access assignment;of functionality to design elements physical

    ; ;distribution composition of design elements;scaling and performance and selection among.design alternatives

    - . , . ,D Garlan M Shaw An Introduction to SoftwareArchitecture

  • 8/6/2019 01 Architecture Workshop Introduction

    6/15

    Architecture

    Is an Abstraction Defines Structure Defines Behavior Focuses on Significant Elements Balances Stakeholder Needs Embodies Decisions based on Rationale Specifies Component Communication Addresses Non-functional Requirements

    Business constraints Technical constraints Quality attributes

    Influences team structure

  • 8/6/2019 01 Architecture Workshop Introduction

    7/15

    .rchitecture vs Design :Architecture is used to

    Make buy decisions Discriminate between options Discover the true requirements

    Drive one or more systems to a common use orpurpose /Provides guidelines blue print and a set of

    best practices for design

    :Design is used to Develop system components Build the system Understand configuration changes as the

    system is modified

  • 8/6/2019 01 Architecture Workshop Introduction

    8/15

    ypes of Architecturesbstraction Granularity ey Design Concerns

    Enterprise Architecture Business Process and ModelsBusiness Data

    Organizational Structure and RelationshipsEnterprise Stakeholders

    IT Infrastructure

    System Architecture

    Identification of system context

    ( / )Partitioning hardware software focus/Identification of S W requirements

    Overall systemic Functional requirementsSystemic Integration and Testing

    Software Architecture (Identification of Crosscutting Design Concerns quality)attributes

    Software Functional RequirementsPartitioning of Software Applications

    Software and Systemic Integration and Testing

    Detailed Software DesignLanguage Features

    Algorithmic EfficienciesData Structure Design

    Software Application TestingImplementation of Functionality

  • 8/6/2019 01 Architecture Workshop Introduction

    9/15

    Types of Architects

    Technical Architect Specialist in a particular technology Understands the strengths and limitations of a

    technology

    Determines the applicability of the technology anddefines the architecture using that particulartechnology

    Guides the team to implement the solution Knows various vendor tools in the technology area the

    latest trends in the market, and various

    architectural alternatives for implementing thesolution

    Other Flavors : .NET architect, J2EE architect,integration architect, BPM architect,

    Solution Architect

  • 8/6/2019 01 Architecture Workshop Introduction

    10/15

    rchitect s Focus

    Enterprise

    Architect

    Enterprise

    Architect

    SolutionArchitect

    SolutionArchitect

    Application or SoftwareArchitect

    Application or SoftwareArchitect

    Development LeadDevelopment TeamDevelopment LeadDevelopment Team

    Specialized

    Architects

    ,

    ,

    .

    Data

    SecurityNetwork

    Level of Detail

    Scope

    an

    d

    Res

    pons

    ibi

    li

    ty

    Strategic Hands on Coder

  • 8/6/2019 01 Architecture Workshop Introduction

    11/15

    rchitect s Play a Majorole in

    .1 Analysis of the problem domain

    .2 Risk management

    .3 Requirements management

    .4 Estimation

    .5 Technology roadmap management

    .6 Determination of implementation approaches.7 Assessment of technical feasibility through POCs

    .8 Definition of an architecture that meets the system( ),requirements functional and quality attributes

    ,goals of the organization budget and schedule.9 Interface design.10 Oversight of the mapping from the architecture to the

    design and implementation.11 Communication of the software architecture totechnical and -o n t ec hni ca l a ud ie nc es.12 Maintenance of the software architecture throughout

    the project lifecycle.13.14

  • 8/6/2019 01 Architecture Workshop Introduction

    12/15

    Competencies

    Strategy

    Communication

    Technical Acumen

    Domain Knowledge Project Mgmt

    Leadership Relationship Mgmt Experience

    Mindset

    Skills

    Foundation

  • 8/6/2019 01 Architecture Workshop Introduction

    13/15

    SDLC Processes &Architecture

    Waterfall Iterative

  • 8/6/2019 01 Architecture Workshop Introduction

    14/15

    Architects Involvementacross Phases (Ideal)

  • 8/6/2019 01 Architecture Workshop Introduction

    15/15

    ou will learn about General approach to designing application

    architectures Different types of applications that you

    can build Key factors you must consider whendesigning application architectures

    Layered approach to application design Quality attributes that affect the overall

    success and acceptance of an application