O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Software Architecture

Santiago Gutiérrez Bárcenas Espanhol

Conteúdo do mapa

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

Informações

Descrição
Mapa Mental sobre Software Architecture, criado por Santiago Gutiérrez Bárcenas em 20-02-2020.
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?