Architecture Documentation and Technical/cross-cutting concepts Flashcards
Name examples for technical/cross-cutting concerns
- flow control
- error handling
- security
- monitoring
- integration
- internationalization
- persistence
- deployment
What is the base principle of cross-cutting concerns?
- often used in most subareas of software system
- but are themselves independent from another (except for selective interaction)
- can be mapped across different dimensions in diagrams without great overlay
What are typical error handling tasks?
- Identifying error cause
- Defining appropriate reactions to dealing with errors:
- Classification into categories and severity levels
- Differentiation between technical and functional errors
- Minimizing the impact of the error
- Making diagnosis of error causes easier
- What went wrong?
- Where did it happen?
- Why did it happen?
- Using error prevention by the software system (processing tolerances, early warnings)
- Defining technology for error handling
- ensure end-to-end error handling
What are a minimum amount of security issues to be considered?
- Authentication
- Authorization
- Integrity
- Availability
- Confidentiality
- Non-repudiation
How should the relationship between Architecture plan and implementation should be specifeid?
- documents where the mapping between architecture plan and implementation are described are extremely useful
- should be formulated in rules/specifications
- for example, that a UML component diagram itself is always implemented as its own package
- this allows a direct correlation between diagrams and code
What types of documents are usual for software architectures?
- central architecture description
- architecture overview
- documentation overview
- documentation handbook
- architecture wallpaper
- overview presentation (2 variants)
- Architecture Decision record
- Technical Information
What is the Central architecture description?
- core document for software architecture
- all information with relevance to architecture
Name examples for the information contained in the Central Architecture Description
- Architectures task, objectives, quality requierements and stakeholders
- Technical and organizational conditions and constraints
- Views, decisions, patterns used
- Technical concepts
- Quality evaluations
- identified risks
What is the Architecture overview document?
- brief, easy-to-read summary of central architecture description
- max. 30 pages
- similiar contents like central architecture description, but focus on certain elements
- if not possible to create central architecture description, this can be created instead, pared-down alternative to a complete description
What does the architecture overview document focus on?
- central views
- main requirements
- core decisions
What is the document overview document and what purpose does it serve?
- either per-project or per-application
- directory that serves as index of all architecture-relevant documents and documents and their dependencies
- organizational policies on where this directory is to be found and how it should be structured should be given
- including information on which documents should be read by whom
What is the overview presentation document?
- presentation slides with most important aspects of architecture for management target group
- two versions:
- max. 1 hour, with technical info, presentation of architecture
- concise, max. 10 min with central statements and business benefit
What is the Architecture wallpaper document?
- used to present complete overview of a large number of architecture aspects
- usually collection of poster-sized prints detailing views with refinements, quality aspects and so on
- used for interactive discussions of specific topics
- not be-all and end-all solution, can have deterrent effect on those focused on implementation, testing, operating the system
What is the document handbook document?
- explains structure and function of complete project documentation
- explains the notations used
What is an Architecture Decision Record (ADR)
- fixed format for documenting architectural decisions made
- shows the decisions in isolation in its own document or section
What does an ADR focus on beside the result of the decision?
- assumptions made
- motives
- influencing factors
at the time of decision
What does an ADR consist of?
- Title: info about topic
- Context: what influences decision, representation of circumstances and a list of boundary conditions or previous decisions that lead to the current need for a decision
- Decision: answer to previous sections, available discussions often listed and discussed here
- Status: info whether decision is in effect, a suggestion or already outdated
- Consequences: how context changes as result of decision, including positive and negative effect of decision to ensure comprehensibility
What is contained in the Technical information document?
- one or more documents containing important decisions for project developers and testers
- should store programming guidelines, development methods
- as well as info about building, starting and testing of the system
What is important about the documentation of external interfaces?
- extra care and time should be spent early in the project on interface documentation
- much better than later in the project
What information should be part of an Interface documentation template?
- Identification
- Resouces provided
- Error scenarios
- Variability and configuration
- Quality characteristics
- Design decisions
- Notes
What are Best-practice rules for documentation?
- Write from readers perspective
- Avoid unnecessary repitition
- Avoid ambiguity
- Standardized Organizational structure or templates
- Justify important decisions in writing
- Check the documentation’s suitability for use
- Unclutterd diagrams
- Regular Updates
- Adapt the changeability of the documentation to the architecture
Under what circumstances would it be acceptable to allow repition inside documentation? (2.)
Only if they do:
- simplify the use of the documentation
- Significantly simplify its maintenance and updating
What do you have to think about when repitition occurs with only slight variations?
- is the variation intentional
- should importance be attached to this variation
documentation from different perspectives is not repitition but helps to deepen the understanding.
How do you Avoid ambiguity in Architecture documentation? (3.)
- use formal description languages
- when symbolic notations (e.g. UML) are used, symbols should be explained or a reference to an explanatory source should be included
- in verbal and written communication the identical terms and arguments should be used