Quiz 5
Type of quality attribute: Fault -> fault masked or repair made
Availability
Data Management Component (DMC)
Business and product data stored in database
Problem Domain Component (PDC)
Business logic and data, implementation independent, stored in best internal format
PIM Process View
Classes talk to each other through XUML sequence diagrams, and ultimately to component connections
Type of test case: Half the servers go down during normal operation. System availability should not be affected.
Exploratory (abuse case)
T/F: Architectural decisions do not have global impact
F
T/F: CIV is portal for network testing; SIC for integration testing
F
T/F: Can go into tight iterations without architecture being in place
F
T/F: DMC and HIC (or CIV) are all connected
F
Physical View extends _____ to _____
Development view PSM hardware technology
Component Interface Validator (CIV)
Filters and validates all data to/from HIC; translates from user format to internal format;
Process view
Flow and dynamics of a transaction through the system (PIM)
Type of test case: Remote user requests a DB report via Web during peak hours and receives it in 5 seconds
Functional (use case)
Logical view
Functional model of how the system fits together (PIM)
Type of test case: Add a new data server to reduce latency in scenario 1 to 2.5 second with 1 person-week
Growth
PIM Logical View
MVP Architectural Components consist of UML (non-implementation) Classes
Performance/Modifiability: How are priorities assigned to processes?
Performance
Performance/Modifiability: What are the message arrival rates?
Performance
Performance/Modifiability: What are the transaction processing times?
Performance
Type of quality attribute: Events arrive -> response generated within time constraints
Performance
Type of quality attribute: Attack -> System detects, resists, or recovers from attack
Security
• A holistic framework into which to build the product • Structure that supports both FR and NFRs • Architecture is NOT low-level design
Software Architecture
Development view
Static organization of software within the system (PSM)
T/F: All Components interact through protocols and sockets, no direct access between methods of different components (separation of concerns)
T
T/F: Architectural changes are difficult and time-consuming
T
T/F: Architectural decisions drive intermediate and low-level design dependencies
T
T/F: HIC not permitted to talk to anything except CIV
T
T/F: MVP illustrates strong horizontal separation of concerns
T
Type of quality attribute: Completion of an increment -> faults detected
Testability
IOPanel Proxy
Unit tests for CIV
Type of quality attribute: User request -> user given appropriate feedback and assistance
Usability
Human Interface Component (HIC)
User-specific representation for first input, and final output; includes print output
Platform specific model
a software system that is *dependent* of the specific technological platform used to implement it
Platform independent model
a software system that is *independent* of the specific technological platform used to implement it
Development View extends _____ to _____
logical PIM classes PSM implementation classes
MVP Vertical Architecture extends ____ into design with ____
requirements model (PDC) implementation classes (SIC, DMC, HIC, CIV)
Requirements (+1) view
the scenario-based view that anchors all the other views; i.e. all others must comply with each requirement scenario
Sensitivity point
An architectural decision on which the meeting of an architectural requirement depends
Systems Interface Component (SIC)
*External* Connects to/from external entities, e.g., network sockets, socket managers, protocol converters
Build
- A version of the project that has passed testing and can be compiled. - Stored in staging environment
Project Environment
- Collection of all env used by the tech team, incl. agile room - Data of other env used for tracking (e.g. Trello boards) and reporting (e.g. burn-up charts)
Test Environment
- Executes product Builds before they're approved - Must be isolated from Dev Env to avoid test interference - Receives test cases and defect reports
Requirements Environment
- For building and managing requirements (iteration backlog, UI designs, RTM) - Receives all requirement changes
Dev Environment
- For writing, executing, and managing code and unit tests (e.g., Eclipse) - Receives all defects to repair (e.g., Bugzilla, Jira)
Standard 4+1 Architectural Perspectives (5)
- Logical view - Process view - Development view - Physical view - Requirements (+1) view
Production Environment
- Operations, totally isolated from project environment - Receives Builds ready for Release and maintenance
Staging Environment
- Receives and stores the latest approved Build (with its tests and docs) that is scheduled for Release
Steps of architecture validation
1. Present architecture and how it meets FR/NRRs 2. Identify the quality attributes that the scenarios will test 3. Create evaluation scenarios using real word scenarios 4. Use scenarios to help ask Architectural questions
docBase/Codebase
All documents, code, tests, and other artifacts are stored in a shared area with a version control system (e.g., SVN or Git)
Environment
A computer work area and its tools for building and managing something
Trade-off point
A property of a component that affects or is a sensitivity point for more than one attribute.
Risk point
A sensitivity point that is close to its limits or operating on its margins.
Physical view
Mapping of the views onto the hardware (PSM)
Performance/Modifiability: Are there any places where layers/facades are circumvented?
Modifiability
Performance/Modifiability: What components are connect asynchronously? Bidirectional vs unidirectional?
Modifiability
Performance/Modifiability: What components rely on detailed knowledge of message formats?
Modifiability
Type of quality attribute: Changes arrive -> changes made, tested, and deployed within time and budget
Modifiability and Scalability
Requirements, Architecture, and Design
Requirements are WHAT, design is HOW; architecture is WHICH CATEGORY best allows design to meet requirements