1/55
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is Software Architecture?
The large-scale organization of elements in a software system, addressing structural elements, interfaces, collaboration, and composition.
What are the four main architectural decision concerns?
Structural elements, interfaces, collaboration, and composition of software components.
What is Architectural Analysis?
An activity to identify factors influencing the architecture, understand their variability and priority, and resolve them.
What makes a requirement 'architecturally significant'?
It has a large impact on design, potentially affecting system structure or requiring significant redesign if not addressed early.
Give two examples of architecturally significant functional requirements.
Auditing (providing audit trails) and Localization (supporting multiple languages).
Give two examples of architecturally significant non-functional requirements.
Reliability (availability, failover) and Performance (throughput, response time).
What are variation points in architecture?
Places where requirements may change or vary, necessitating flexible design to accommodate future changes.
What are evolution points?
Factors indicating how the system should evolve over time and support future extensions.
What are the common steps in Architectural Analysis?
1) Identify architectural factors; 2) Analyze alternatives and create solutions; 3) Record decisions.
What are the three priority categories in architectural decision-making?
Inflexible constraints, business goals, and other goals.
What is an Architectural Factor Table?
A table documenting factors, quality scenarios, variability, impact, priority, and difficulty/risk for architectural factors.
List the columns of an Architectural Factor Table.
Factor; Measures and Quality Scenarios; Variability; Impact; Priority; Difficulty/Risk.
What is a Technical Memo?
A document recording architectural issues, solution summaries, factors, motivations, unresolved issues, and alternatives considered.
List the sections of a Technical Memo.
Issue; Solution Summary; Factors; Solution; Motivation; Unresolved Issues; Alternatives Considered.
What is Logical Architecture?
The organization of software classes into packages, subsystems, and layers without deployment concerns.
Which UML diagram is used to illustrate Logical Architecture?
UML Package Diagram.
What are common layers in a layered architecture?
User Interface; Application Logic/Domain; Technical Services; Foundation.
What distinguishes strict from relaxed layered architecture?
Strict: layers only call directly lower layer; Relaxed: higher layers may call several lower layers.
Name three guidelines for layered architecture.
Maintain separation of concerns; dependencies only downward; avoid showing external resources as internal layers.
What is the purpose of a UML Component Diagram in architecture?
Provide a high-level implementation view showing components and external services.
How do SSD system operations map to layered architecture?
They represent calls from the UI layer to operations in the Application/Domain layer.
What are the benefits of layered architecture?
Reduces coupling, separates concerns, improves reuse, simplifies division of development work.
Why avoid placing external resources in the bottom layer of the logical architecture?
External resources are not part of the system and should not be mistaken for internal layers.
What is the goal of recording architectural decisions?
To capture rationale, alternatives, and unresolved issues for future reference and maintenance.
How does architectural analysis align with business goals?
By prioritizing high-impact requirements and focusing design effort on features critical to business success.
Who was the client in the Week 11 case study?
The Chauffeured Car Company, with about 30 drivers, whose core business was bookings and dispatch.
What distinguishes the Chauffeured Car Company’s business model from Uber?
They offer pre-booked guaranteed pickups at scheduled times (e.g., 5 pm), catering to busy or elderly clients, resulting in lower car utilization and premium pricing.
List the client-perceived issues with the existing system.
Slow or hung UI; reliance on paper/pen during outages; missing invoicing/reporting; lack of customer portal; unhelpful IT provider; high maintenance costs.
Describe the system's current architecture in the case study.
Thin client via Remote Desktop to Developer A's server; backend SQL Server; two front ends (V3 in VB6 and V5 in C#/.NET) sharing the same database.
Why did the company maintain two versions of the system?
V3 provided the familiar booking workflow; V5 rewrite lacked that workflow, so operators continued using V3 for bookings while using V5 for customer management.
What three main options were considered for system improvement?
1) Commercial off‑the‑shelf software; 2) Rebuild from scratch; 3) Modify the existing system.
Which option was selected and why?
Modify the existing system—easier business transition, control over software, and leverage existing functionality—given a willing developer was found.
What were the four stages of the planned system improvement?
Stage 1: Local thick client and merge V3 features into V5; Stage 2: Migrate SQL Server to AWS; Stage 3: Introduce pricing service and website; Stage 4: Add booking service and portal.
What were the key goals of Stage 1?
Eliminate VB6 dependency, consolidate V3 functionality in V5, run V5 locally to reduce UI lag and simplify maintenance.
What benefits did Stage 2 deliver?
Removed dependency on Developer A, increased reliability, scalability, redundancy, and reduced maintenance costs by migrating database to AWS.
What new component was added in Stage 3?
A centralized pricing service and website integration, replacing in-system pricing logic for reuse and customer transparency.
What did Stage 4 introduce?
A booking service and customer portal for online bookings, partitioning the database to separate booking data and enabling self‑service.
What architectural style emerged from the case study?
Service-based architecture, encapsulating business functions (pricing, booking) as reusable services.
Name two lessons learned from the case study.
Balance client perspective with technical analysis; plan incremental migration paths; design-driven options generation.
What is the Inception phase in the Unified Process?
An initial short phase to establish vision, scope, feasibility, analyze ~10% of use cases, identify key non‑functional requirements, and decide go/no‑go.
Name three artefacts produced during Inception.
Vision & Business Case; Use‑Case Model (with ~10% detailed); Supplementary Specification for critical non‑functional requirements.
What does the Supplementary Specification capture?
Non‑functional requirements (e.g., performance, reliability, security) that significantly influence the architecture.
What is the Elaboration phase?
A series of initial iterations to develop and test the core architecture, define ~80% of requirements, and mitigate high‑risk elements.
What is an executable architecture?
A working subset of the system demonstrating core structural and behavioral elements of the software architecture.
Explain 'Do the Right Thing' vs 'Do the Thing Right'.
'Do the Right Thing' refers to validating requirements; 'Do the Thing Right' refers to verifying the correctness of the design/implementation.
Why is early iteration important?
It surfaces inevitable changes early, stabilizes goals, and reduces the cost and risk of later modifications.
How should complex use cases be managed across iterations?
Break them into smaller scenarios or features and allocate each to successive iterations for progressive elaboration.
List three approaches to object design.
1) Code-first; 2) Draw UML then code; 3) Only draw and generate code (rare in practice).
What is Agile Modeling in UP?
Lightweight UML/static and dynamic modelling (class and interaction diagrams), hand-drawn or tool-assisted, done in short exercises near iteration start.
What distinguishes object design skill from UML notation skill?
Design skill focuses on responsibility assignment and patterns; notation skill ensures clear communication but is secondary.
When do modelling and design occur in the Unified Process?
During Inception and Elaboration phases, iteratively across development iterations before full construction.
Why keep modelling overhead minimal?
Models are communication tools capturing key decisions; excessive detail isn’t worth the effort.
What is a domain model?
A static UML class diagram representing conceptual classes, attributes, and associations in the problem domain.
What is a design sequence diagram?
A dynamic UML diagram showing message sequences and interactions among objects for a specific scenario.
What does a Technical Memo record?
Architectural issues, solution summaries, factors, motivations, unresolved issues, and alternatives considered.
How does the Unified Process differ from Waterfall?
It’s iterative and incremental; Inception isn’t final requirements gathering and design overlaps implementation in iterations.