Mind map
What is Software Architecture?
Map content
What is Software Architecture?
- Software architecture of a system is a set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both
Architectural Structure
- Structure is only a set of elements held together by some relation. A structure is architectural if it supports reasoning about the system and system's properties
- A structure is a set of elements itself, as they exist in software or hardware.
- Each structure provides the architect with a different insight into the design(that is each structure can be analyzed for its ability to deliver a quality attribute)
- Kinds of structures
- Module
- Partition systems into implementations units
- Embody decisions as to how the system is to be structured as a set of code or data units that have to be constructed or procured.
- Answer Questions Like
- What is the primary functional responsibility assigned to each module?
- What other software elements is a module allowed to use ?
- What other software does it actually use and depend on?
- What modules are related to other modules, by generalization or specialization?
- Types
- Decomposition Structure
- Uses Structure
- Layer Structure
- Class (Generalization Structure)
- Data Model
- Component & Connector
- Focus on the way the elements interact with each other at run time to carry out the system's functions.
- Embody decisions as to how the software elements need to be structured as a set of elements that have runtime behavior (components) and interaction (connectors)
- Components are the principal units of computation and could be services, peers, clients, servers, filters, or many other types of runtime elements
- Connectors are the communication vehicles among components, such as call return, process synchronization operators, pipes, and others
- Answers Questions Like
- What are the major software components and how they interact at runtime?
- What are the major shared data stores?
- Which parts of the system are replicated?
- How does data progress through the system?
- What parts of the system can run in parallel?
- Can the system's structure can change as it executes, and if so, how ?
- Types
- Service Structure
- Concurrency Structure
- Allocation
- Describes the mapping to system's organizational, developmental, installation and execution environments
- Embody decisions as to how the system will relate to non software structures in its environment (such as CPUs, file systems, networks, developmental teams)
- Types
- Deployment Structure
- Implementation Structure
- Work Assignment Structure
- Answer Questions Like
- What processor does each software element executes on?
- In what directories or files is each element stored during development, testing, and system building?
- What is the assignment of each software element to development teams?
- Module
Abstraction
- Architecture specifically omits certain information about elements that is not useful for reasoning about the system. Architecture is an abstraction of a system that selects certain details and suppresses others
- Public Parts (Interfaces)
- Elements interact with each other by means of interfaces that partition details about an element into public and private parts. Architecture is only interested on the public side of this division
- Goals
- How elements are arranged
- How elements interact
- How elements are composed
- What their properties are
Objetive
- Software Systems
- Software systems are constructed to satisfy organization's business goals. The architecture is a bridge between those business goals and the final resulting system.
- Software Systems
Diciplines
- System Architecture
- is a representation of a system on where there is a mapping of functionality onto hardware and software components, a mapping of the software architecture onto the hardware architecture, and a concern for the human interaction with these components. That is, system architecture is concerned with a total system, including hardware, software and humans
- Constraints
- How Software architecture distributed the functionality to different processors and the network types that connect those processors
- Enterprise Architecture
- Is a description of the structure and behavior of an organization's processes, information flow, personnel, and organization sub units, aligned with the organization's core goals and strategic direction.
- Software is only one concern of enterprise architecture. Two other common concerns addressed by enterprise architecture are how the software is used by humans to perform business processes, and the standards that determine the computational environment.
- Constraints
- How software architectures supports the business processes and the goals of the enterprise
- System Architecture
Views
- A view is a representation of a structure
- Is a representation of a coherent set of architectural elements, as written by and read by the system stakeholders. It consists of a representation of a set of elements and the relations among them
- A view is a representation of a structure
Architectural Patterns
- Provide packaged strategies for solving some of the problems facing a system. An architectural pattern delineates the element types and their forms of interaction used in solving the problem.
- Layered Pattern
- Shared Data or Repository Pattern
- Client Server Pattern
- Multi tier Pattern
- Competence Center and platform Pattern
Information
- Description
- Mind Map on What is Software Architecture?, created by gahhmal on 07/08/2015.
- Created by
- gahhmal
- Views
- 4
- Tags
- Rating