Basic Flashcards
What is a software-intensive system?
- collection of building blocks
- organizied so that they together fulfill the purpose of the system
What do Building blocks as part of a software intensive system do?
- carry out essential tasks for achievement of the purpose of the system
What does the software part of a software-intensive system consist of?
Collection of:
- programs
- procedures
- data
- associated documentation
What types of software-intensive systems exist?
- Information systems
- Embeddedd systems
- mobile systems
What characterizes an Information system?
- huge amounts of and/or complex data
- processing, storing, evaluating and calculation of said data
- potentially many multiple users to be served simultanuously and interactively
What characterizes an Mobile system?
- communication with a central system
- link to central system not permanently given
- local and (semi-)autonomous function
What characterizes an Embedded system?
- limited hardware resources
- tasks critical in security in functional reliability
- functions involve mostly regulation, control, or communication
What is software architecture and what does it do?
Defines fundamental principles and rules / guidelines for:
- the organization of a system
- its structure into building blocks and interfaces
- their relationship to each other and the surrounding environment
- the entire software lifefycle
- the developer & operator
- from analysis, via design and implementation to operation and enhancement
What is a building block?
- central basic element from which the static structure of a software architecture is constructed
- includes all software or implementation artifacts that ultimately represent abstractions of source code
- can consist themselves of building blocks
What does a building block do / principles it provides?
Provided and required interfaces:
- provides interfaces in the sense of a contract
- for that required interfaces must be made available in the belonging configuration
Encapsulation and interchangebility
- encapsulate logic and are handled as black boxes from the outside
- can be interchanged with other building blocks that provide the same interfaces and where appropriate require the same interfaces
Configuration and hierarchical (de)composition
- building blocks are the unit of hierarchical (de)composition of a software-intensive system
- building blocks can consist of sub-building blocks that are correctly configured
What types of different interface agreements exist between Importer, Exporter and Third Party?
- Standard Interface
- Provided Interface
- Required Interface
- Independent interfaces
What different levels of architectural description exist? What axis do they differentiate along?
- Architectural style - Technical infrastructure
- Functional architecture level - Technical architecture level
Perspective - x Axis
Degree of abstraction - y Axis
What does the abstraction level Architectural style comprise?
- central metaphor of the system
- e.g. “structured as three-layer architecture using a model-view controller in presentation layer and object-relational mapping in the data management layer”
What does the abstraction level technical infrastructure comprise?
- network profiles of the architecture
- e.g. “thin client with a web and application container and a relational database”
What does the abstraction level functional architecture level comprise?
- appropriate building blocks and their relationships
- for the implementation of the functional requierements
What does the abstraction level technical architecture level comprise?
- cross-disciplinary solution building blocks
- designed and docuemnted for the relevant aspects based on non-functional requierements
In what areas does Software architecture interact with the environment?
- project environment and management
- tool environment and implementation
- execution platform and operation
- product management and requierements
What people and landscapes are contained in the project environment and management?
People:
- Management
- quality management
Landscape:
- Project and application environment
What people and landscapes are contained in the tool and implementation?
People:
- Designer
- Programmer
- Tester
Landscape:
- Development and test landscape
What people and landscapes are contained in the product management and requirements?
People:
- Client
- User
- Requierement analyst
Landscape:
- Functional and procedural Landscape
What people and landscapes are contained in the execution platform and operation?
People:
- Operation
- Head of data processing centre
- Admin
Landscape:
- Hardware and infrastructure landscape
How is quality of software architecture assesable?
- only possible in relation to the specified objectives, constraints, requierements and future challenges to a certain extent
- only in context of specific quality objectives
According to ISO 25010 what are high-level quality characteristics?
- Reliability
- Security
- Performance
- Maintainability
- Usability
- Functional suitability
- Compatability
- Portability
What role do explicit objectives and implicit assumptions play in software architecture?
- explicit objectives build the basis for the derived requierements and quality objectives
- implicit assumptions must be made explicit
- implicit assumptions can lead to misunderstandings and cost-intensive changes later in the project
- depending on these implicit assumptions made explicit additional requierements and constraints have to be derived