Preliminaries and Software Design Principles
UPDATED ACTUAL Exam Questions and
CORRECT Answers
What is software analysis? - CORRECT ANSWER - Capturing project requirements
(including functional and quality) to produce artifacts like use case diagrams, use case
descriptions, CRCs, and class diagrams to lead to software design.
What is software design? - CORRECT ANSWER - Process of determining
implementation and deployment details of the project requirements. Key decision is determining
software architecture.
What are the 3 contributing components of software architecture design? - CORRECT
ANSWER - Domain requirements and risk analysis, hardware architecture design, code
design.
What is Object Oriented Decomposition and what are the different types? - CORRECT
ANSWER - Identifying systems as a collection of objects and dividing them into sub-
objects that establish relationships and implementation. Includes data oriented, event oriented,
functional, and feature oriented decomposition.
What is data oriented decomposition? - CORRECT ANSWER - Data intensive
applications designed based on data storages, processing, and visualization requirements.
What is event oriented decomposition? - CORRECT ANSWER - Event driven systems
using sensors etc. have different ecosystems that respond to external events.
What is functional decomposition? - CORRECT ANSWER - Identify system as a
collection of functions and divide those into smaller subsystems in a procedural approach.
, What is feature oriented decomposition? - CORRECT ANSWER - Divide system into
features and divide those features into different architecture styles.
What are the 4 major software architecture viewpoints? - CORRECT ANSWER -
Conceptual View - high level view of important design modules/elements
Module view - design of different modules/subsystems
Execution View - How modules are mapped to the runtime platform
Code View - how module view and execution view can be accomplished through code.
Others - dependencies view and work assignment view
What is software architecture conceptual view? - CORRECT ANSWER - High level view
of impart units and how they are related to eachother. Does not focus on hardware/software
configs and platforms needed for deployment. Includes application specific domains like does
software meet requirements, how does it react with 3rd party clients, how does functionality get
divided into product releases, how can changes be incorporated with less impact.
What is software architecture module view? - CORRECT ANSWER - Focuses on the
design of different modules/subsystems and explores how elements are mapped into each
module. Explores module decomposition and relationships between modules. Minimize
dependency between components. Maximize code reuse.
What is software architecture execution view? - CORRECT ANSWER - Focuses on how
modules are mapped to the runtime platform of the software system such as memory usage,
hardware, and other integrations at run time. Explores quality considerations like performance,
fault tolerance, recoverability. Impact of runtime platform with future changes. Runtime
considerations like concurrency, cloud and web API usage.
What is software architecture code view? - CORRECT ANSWER - How module view and
execution view can be accomplished through code. Explores code organization in packages and
package dependencies, manages versions and product upgrages, tools and platforms used in
development, minimize time/effort for updates, and best coding/algorithm approaches.