Architecture Flashcards
architecture definition
basic idea - its about the big picture, the large scale motivations constraints organization pattern responsibilies connections of a system
architectural design decisions
generic architecture i can use? how will system be dstributed across the hardware arch patterns how to control components documentation non-functional requirements how will components be decomposed fundemental approach used to structure the system
name the different UML views
logical view process view physical view development view conceptual view
why so many views
different stakeholders are interested in the overal design
logical view
concerned about the outputs and how it will affect end users
splits system into a set of abstractions or modules
- enables functional analysis
- helps in identification of common mechanisms and design elements that are common across the system
communication diagram
development/allocation view
describes the static organization of the software in its development environemt
deals with modules, work allocation, cost and planning
component/package diagram
process view
deals with concurrency and distribution, system integrirt and fault tolerance
- explains how system components interact
activity diagram
physical view (deployment)
describes how software maps onto the hardware
- networking and distribution
- considers system requirements
deployment diagram
what are uml packages
group elements - groups of classes in a single namespace
used to illustrate the logical architecture in layers
what is a component
modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment
- defines behavior in terms of provided and required interfaces
- do not represent concrete software
intent of using componenets
emphasize that interfaces are important and
it is modular, self-contained and replaceable
common steps in architectural analysis
- identify and analyse the non-functional requirements that have an impact on the architecture
- ## for those that have a significant impact, analyze alternatives and create solutions that resolve the impact
basic architectural design principles
low coupling - separate components are not densely linked
high cohesion - elements within a given component are strongly related
separation of concerns and localization of impact