PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
System - CORRECT ANSWERS A logical entity, having a set of definable responsibilities or
objectives
Specification implemented by a collection of components
Continues to exist even if components are changed or replaced
Subsystem - CORRECT ANSWERS System that is part of a larger system
Top-down design - CORRECT ANSWERS Start with high level structure
Gradually work down to detailed decisions and low-level constructs
Bottom-up design - CORRECT ANSWERS Make decisions about reusable low-level components
Decide how to put them together to create high-level constructs
Good design - CORRECT ANSWERS Reduces cost and increases quality
Conforms to requirements
Accelerates (helps) development
Design principles - CORRECT ANSWERS Divide and conquer
Increase cohesion
Reduce coupling
Maximize abstraction
Increase reusability
Reuse other designs and code
Design for flexibility
,PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Divide and conquer - CORRECT ANSWERS Split into smaller components
E.g. Distributed system - clients and servers, subsystems, packages, etc.
Increase cohesion - CORRECT ANSWERS Keep things together that are related
Keep unrelated things out
Reduce coupling - CORRECT ANSWERS Coupling occurs when modules have interdependence
Maximize abstraction - CORRECT ANSWERS Ensure your designs allow you to hide or defer
consideration of details
Information hiding
Increase reusability - CORRECT ANSWERS Design components so they can be used again in
other contexts
Reuse - CORRECT ANSWERS Complementary to design for reusability
Using designs or code allows you to take advantage of the investment you and others have made in
reusable components
Flexibility (Design principle) - CORRECT ANSWERS Actively anticipate changes that a design may
undergo in the future, and prepare for them
Anticipate obsolescence - CORRECT ANSWERS Plan for changes in technology and environment
so the software can continue to run
Defensive design - CORRECT ANSWERS Never trust how others will use a component that you
are designing
,PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Software architecture - CORRECT ANSWERS Set of structures that can be used to reason about a
system
Comprises software elements, relations among them, and properties of both
Good architectural models - CORRECT ANSWERS Contain a logical breakdown of subsystems
Document interfaces between subsystems
Capture dynamics of component interactions
Outline shared data
Are quality-driven
Stability - CORRECT ANSWERS Features and components can be added or changed without
impacting the overall architecture
Architectural patterns - CORRECT ANSWERS Consist of context, problem and solution
Multi-Layer pattern - CORRECT ANSWERS Problem - system components need to be built and
tested independently
Solution - define layers (groupings of cohesive modules) and a unidirectional allowed-to-use relation
among the layers
Client-server architecture - CORRECT ANSWERS Problem - large number of distributed clients
need access to shared resources or services
Solution - client components initiate interactions with server components, invoking services as needed
and waiting on results
, PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Transaction-processing pattern - CORRECT ANSWERS Problem - system must read and handle
series of inputs that change stored data
Solution - dispatcher component that decides how to handle each transaction (input), calling a
procedure or messaging a component
Pipe-and-filter - CORRECT ANSWERS Stream of data is passed through a series of processes,
each transforming it in some way
Model View Controller - CORRECT ANSWERS Problem - UI needs frequent modification without
impacting system's functionality
Solution - break system into three components - model, view, and controller
Service-oriented pattern - CORRECT ANSWERS Problem - service consumers must be able to
use/access a number of service providers
Solution - cooperating peers that request service from and provide services to one another across a
network
Revision/Version control - CORRECT ANSWERS Mechanism for managing changes made to files
Centralized model - CORRECT ANSWERS Single authoritative repository
All code checked in/out from this location
Single source of version history
Local changes are not "versioned"
Distributed model - CORRECT ANSWERS No authoritative copy, only working copies
Each repository (copy) contains all branches and revision history
Common operations are fast
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
System - CORRECT ANSWERS A logical entity, having a set of definable responsibilities or
objectives
Specification implemented by a collection of components
Continues to exist even if components are changed or replaced
Subsystem - CORRECT ANSWERS System that is part of a larger system
Top-down design - CORRECT ANSWERS Start with high level structure
Gradually work down to detailed decisions and low-level constructs
Bottom-up design - CORRECT ANSWERS Make decisions about reusable low-level components
Decide how to put them together to create high-level constructs
Good design - CORRECT ANSWERS Reduces cost and increases quality
Conforms to requirements
Accelerates (helps) development
Design principles - CORRECT ANSWERS Divide and conquer
Increase cohesion
Reduce coupling
Maximize abstraction
Increase reusability
Reuse other designs and code
Design for flexibility
,PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Divide and conquer - CORRECT ANSWERS Split into smaller components
E.g. Distributed system - clients and servers, subsystems, packages, etc.
Increase cohesion - CORRECT ANSWERS Keep things together that are related
Keep unrelated things out
Reduce coupling - CORRECT ANSWERS Coupling occurs when modules have interdependence
Maximize abstraction - CORRECT ANSWERS Ensure your designs allow you to hide or defer
consideration of details
Information hiding
Increase reusability - CORRECT ANSWERS Design components so they can be used again in
other contexts
Reuse - CORRECT ANSWERS Complementary to design for reusability
Using designs or code allows you to take advantage of the investment you and others have made in
reusable components
Flexibility (Design principle) - CORRECT ANSWERS Actively anticipate changes that a design may
undergo in the future, and prepare for them
Anticipate obsolescence - CORRECT ANSWERS Plan for changes in technology and environment
so the software can continue to run
Defensive design - CORRECT ANSWERS Never trust how others will use a component that you
are designing
,PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Software architecture - CORRECT ANSWERS Set of structures that can be used to reason about a
system
Comprises software elements, relations among them, and properties of both
Good architectural models - CORRECT ANSWERS Contain a logical breakdown of subsystems
Document interfaces between subsystems
Capture dynamics of component interactions
Outline shared data
Are quality-driven
Stability - CORRECT ANSWERS Features and components can be added or changed without
impacting the overall architecture
Architectural patterns - CORRECT ANSWERS Consist of context, problem and solution
Multi-Layer pattern - CORRECT ANSWERS Problem - system components need to be built and
tested independently
Solution - define layers (groupings of cohesive modules) and a unidirectional allowed-to-use relation
among the layers
Client-server architecture - CORRECT ANSWERS Problem - large number of distributed clients
need access to shared resources or services
Solution - client components initiate interactions with server components, invoking services as needed
and waiting on results
, PURDUE CS 307 FINAL QUESTIONS AND ANSWERS
UPDATED 2025/2026 A COMPLETE EXAM SOLUTION ALL
ANSWERS GET IT 100% CORRECT DETAILED BEST RATED
A+ FOR PASS
Transaction-processing pattern - CORRECT ANSWERS Problem - system must read and handle
series of inputs that change stored data
Solution - dispatcher component that decides how to handle each transaction (input), calling a
procedure or messaging a component
Pipe-and-filter - CORRECT ANSWERS Stream of data is passed through a series of processes,
each transforming it in some way
Model View Controller - CORRECT ANSWERS Problem - UI needs frequent modification without
impacting system's functionality
Solution - break system into three components - model, view, and controller
Service-oriented pattern - CORRECT ANSWERS Problem - service consumers must be able to
use/access a number of service providers
Solution - cooperating peers that request service from and provide services to one another across a
network
Revision/Version control - CORRECT ANSWERS Mechanism for managing changes made to files
Centralized model - CORRECT ANSWERS Single authoritative repository
All code checked in/out from this location
Single source of version history
Local changes are not "versioned"
Distributed model - CORRECT ANSWERS No authoritative copy, only working copies
Each repository (copy) contains all branches and revision history
Common operations are fast