Mapa mental
Software Architecture
Contenido del mapa
Software Architecture
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
- Module
- Categories
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
Architectural abstraction let us look at the system details
- Essential to time the complexity of an architecture
Can exists independently of its description or specification
Behaviour
- How elements interact with each other
Views
- Representation of a set of elements and the relations among them
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
- Shared-data (repository)
- Delineate the element types and their forms of interaction
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
- Local
- 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
- Inhibit or enable a system's driving quality attributes
Información
- Descripción
- Mapa Mental sobre Software Architecture, creado por Santiago Gutiérrez Bárcenas el 20/02/2020.
- Creado por
- Santiago Gutiérrez Bárcenas
- Visitas
- 0
- Valoración