Home|Contents|Prev|Next|Chat


CSC 715 Answers 4 - L7 Architecture + L8 Design & implementation

SE-L7Q1 Importance of architecture

It is the link between requirements and detailed design and drives quality attributes. Three advantages: stakeholder communication, system analysis (can critical requirements be met?), large-scale reuse.

SE-L7Q2 The 4+1 view model

Logical (objects/classes), Process (runtime processes; performance/availability), Development (decomposition for programmers/managers), Physical (hardware/distribution), +1 Scenarios (use cases linking the four views).

SE-L7Q3 Model-View-Controller (MVC)

Separates presentation/interaction from data. Model = data/operations; View = presentation; Controller = user interaction. Appropriate when the same data has multiple views/interactions (web apps, GUIs).

SE-L7Q4 Layered architecture

Functionality in layers, each using only the layer below. Advantages: incremental development, portability, multi-level security. Disadvantages: performance overhead, hard to separate concerns cleanly.

SE-L7Q5 How NFRs influence architecture

Performance (localise critical ops, few large components); Security (layered, assets innermost); Safety (few safety components); Availability (redundancy, update without stopping); Maintainability (fine-grain, self-contained components).

SE-L8Q1 OO design activities

  1. System context and interactions (boundaries, context/interaction models).
  2. Architectural design (major components, patterns).
  3. Object class identification (tangible entities, roles, events).
  4. Design models (class, sequence, state diagrams).
  5. Interface specification (signatures and semantics).

SE-L8Q2 Design pattern elements

A well-tried solution to a common problem in reusable form. Elements: Name, Problem (when to use), Solution (parts, relationships, responsibilities), Consequences (results/trade-offs). Supports concept reuse, a common vocabulary and accumulated wisdom.

SE-L8Q3 Configuration management

Managing a changing system so the right component versions are used and changes are controlled. Activities: version management, system integration, problem tracking.

SE-L8Q4 Host-target development

Develop/compile on a host machine, then download and run on the target embedded device. Common in embedded systems because the target has limited resources, no keyboard/screen, or a different architecture - so the dev environment cannot run on it.

SE-L8Q5 Open-source issues and licences

Issues: licensing, quality/support, evolution, security, integration effort. Licences range from permissive (MIT, Apache) to copyleft (GPL - derivatives must stay open).


Home|Contents|Prev|Next|Top|Chat