UNIT 1.1 ArchBusCycle

  • Upload
    joel-k

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    1/19

    The Architecture

    Business Cycle

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    2/19

    Software Architecture

    DefinitionThe 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.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    3/19

    The Architecture Business

    Cycle(ABC) Software architecture is a result of

    technical, business, and socialinfluences.

    Its existence, in turn, influences thesetechnical, business, and socialenvironments.

    This cycle of influences from theenvironment to the architecture and backto the environment is called theArchitecture Business Cycle.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    4/19

    Where Do Architectures Come

    From?Architectures are influenced by:

    System stakeholders

    The developing organization The background and experience of the

    architects

    The technical environment

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    5/19

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    6/19

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    7/19

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    8/19

    ARCHITECTURES INFLUENCED BY

    SYSTEM STAKEHOLDERS

    Having an acceptable system involvesproperties such as performance,reliability, availability, platformcompatibility, memory utilization,

    network usage, security The underlying problem, of course, is

    that each stakeholder has differentconcerns and goals, some of which maybe contradictory

    The reality is that the architect often hasto fill in the blanks and mediate theconflicts.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    9/19

    ARCHITECTURES INFLUENCED BY

    THE DEVELOPING ORGANIZATION

    There are three classes of influencethat come from the developing

    organization immediate business

    long-term business

    organizational structure

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    10/19

    ARCHITECTURES INFLUENCED BY THE

    BACKGROUND AND EXPERIENCE OF THE

    ARCHITECTS

    architects for a system have had goodresults using a particular architecturalapproach, chances are that they will try

    that same approach on a newdevelopment effort

    Architectural choices may also come froman architect's education and training,exposure to successful architectural

    patterns, or exposure to systems thathave worked particularly poorly orparticularly well

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    11/19

    ARCHITECTURES INFLUENCED BY

    THE TECHNICAL ENVIRONMENT

    architect's background and experience isreflected by the technical environment

    It is a brave architect who, in today'senvironment, does not at least consider aWeb-based, object-oriented, middleware-supported design for an informationsystem

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    12/19

    Ramifications of the Various

    Influences on an Architecture The properties required by the business and

    organizational goals are seldom completelyunderstood.

    Customer requirements are often not completeor well documented.

    Architects must identify and actively engagestakeholders to solicit their needs andexpectations.

    In addition to technical skills, architects need tobe skilled in diplomacy, negotiation, andcommunication.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    13/19

    Architectures Affect the

    Factors that Influence Them The architecture affects the structure of the

    developing organization.

    The architecture can affect the goals of the

    developing organization.

    The architecture can affect customer

    requirements for the next system.

    The architecture will affect the architectures of

    future systems.

    The architecture may affect the software

    engineering culture.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    14/19

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    15/19

    Software Architecture

    ActivitiesCreating the business case for the

    system.

    Understanding the requirementsCreating or selecting the architecture

    Communicating the architecture

    Analyzing or evaluating the architecture Implementing based on the architecture

    Ensuring conformance to an architecture

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    16/19

    What Makes a Good

    Architectural Process? The architecture should be the product of a single

    architect or small group of architects.

    The architect should gather both the functional

    requirements and a well specified, prioritized list

    of quality attributes.

    The architecture should be well documented, with

    at least one static view and one dynamic view.

    The architecture should be reviewed by the

    systems stakeholders.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    17/19

    What Makes a Good

    Architectural Process? (Contd) The architecture should be analyzed for

    applicable quantitative measures and

    formally evaluated for quality measures.A skeletal system should be developed

    to facilitate incremental implementation.

    Resource contention areas should be

    minimized and clearly identified.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    18/19

    What Makes a Good

    Architectural Structure? The architecture should feature well-defined

    modules based on the principles of information

    hiding and separation of concerns.

    Each module should have a well-defined

    interface that hides changeable aspects.

    Quality attributes should be achieved using

    well-know architectural tactics.

    The architecture should be independent of

    particular versions of commercial products or

    tools.

  • 7/31/2019 UNIT 1.1 ArchBusCycle

    19/19

    What Makes a Good

    Architectural Structure? (Contd) Modules that produce data should be separate

    from modules that consume data.

    For parallel-processing systems, the

    architecture should feature well-definedprocesses or tasks that do not necessarilymirror the module decomposition structure.

    Every task or process should be specified sothat its assignment to a particular processor canbe easily changed.

    The architecture should contain a small numberof simple interaction patterns.