GoConqr has a new look! Let us know what you think.

Mind map

Software Architecture

Santiago Gutiérrez Bárcenas Spanish

Map content

Software Architecture

  1. Set of software structures needed to reason about the system

    • Categories
      • Module
        • Implementation units
        • Specific computational responsabilities
        • In large projects are divided into sub-teams
        • Decomposition Structure, Uses Structure, Layer Structure, Class Structure, Data Model
      • Component and Connector
        • Interaction between elements at runtime to carry out system's functions
        • Service Structure, Concurrency Structure
      • Allocation
        • Mapping from software structures to the system's environments
        • Organizational, Developmental, Installation, Execution
        • Deployment Structure, Implementation Structure, Work Assignment Structure
  2. Structure

    • Easy to identify in software
    • Powerful tool for system design
    • Set of elements held together by a relation
    • Architectural Structure
      • Supports reasoning about the system and its properties
      • Functionality achieved by the system
      • Availability in the face of faults
      • Difficulty of making specific changes
      • Responsiveness to user requests
  3. Architectural abstraction let us look at the system details

    • Essential to time the complexity of an architecture
  4. Can exists independently of its description or specification

  5. Behaviour

    • How elements interact with each other
  6. Views

    • Representation of a set of elements and the relations among them
  7. Architectural Patterns

    • Delineate the element types and their forms of interaction
      • Shared-data (repository)
        • Comprises components and connectors that create, store, and access persistent data
      • Client-server
        • Components are clients and servers
        • Connectors are protocols and messages
      • Multi-tier
        • Describes how to distribute and allocate the components of a system in distinct subsets of hardware and software connected by a communication medium
      • Competence Center and Platform
        • Work is allocated to sites depending on the technical or domain expertise
  8. Importance

    • Inhibit or enable a system's driving quality attributes
      • Whether a system will be able to exhibit its desired quality attributes is substantially determined by its architecture
    • Reason about and manage change
      • Local
        • Modifying a single element
      • Nonlocal
        • Multiple element modifications but leaves the architectural approach intact
      • Architectural
        • Affects the fundamental ways in which the elements interact with each other
    • Enables early prediction of system's qualities
      • If we know certain kinds of architectural decisions lead to certain quality attributes, we can make the according decisions
    • Enhances communication among stakeholders
      • Is sufficiently abstract that most nontechnical people can understand it adequately
    • Carrying Early Design Decisions
      • Decisions with enormous weight with respect to the system lifecycle
    • Defines constraints on implementation
      • The implementation must be implemented as the set of prescribed elements
      • Elements must interact with each other in the prescribed fashion
      • Elements must fulfill its responsability to the other elements
    • Dictates the structure of an organization
      • Prescribes the structure of the system being developed
    • Provide the basis for evolutionary prototyping
      • Once an architecture has been defined, it can be analized and prototyped as a skeletal system
    • Reason about cost and schedule
      • An architect must help the project manager to create cost and schedule estimates early in the project life cycle
    • Supplying a Transferable Reusable Model
      • Reuse of architectures provides tremendous leverage for systems with similar requirements
    • Using Independently Developed Components
      • Focuses on components that are likely to have been developed separately, even independently, from each other
    • Reduces design and system complexity
      • Minimize complexity, Enhance reuse, more regular and simpler designs, more capable analysis, shorter selection time, greater ineroperability
    • Foundation for training
      • Can serve as the first introduction to the system for new project members

Information

Description
Mind Map on Software Architecture, created by Santiago Gutiérrez Bárcenas on 20/02/2020.
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?