1/81
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
False
Software design is the same as writing program code.
True
Software design acts as the blueprint or plan before system construction begins.
False
Design principles are unchanging and do not evolve.
True
Interface design defines how software, hardware, and users communicate.
True
A good design must implement all explicit and implicit requirements from the customer.
True
Design should always be traceable to the requirements model.
True
The goal of software design is to make systems understandable, maintainable, and high quality.
Planning structure and components of a system before coding
Which of the following best describes software design?
Interface Design
What design activity defines communication among software, hardware, and users?
Product promotion design
Which of the following is not part of the four main design activities?
Refactoring
The process of reorganizing code without changing its function is called:
Components do one thing independently
High cohesion and low coupling mean:
Principle #1
Which design modeling principle emphasizes that "design should be traceable to the requirements model"?
Complete, sufficient, and primitive
A design class should be:
Randomly connected classes
Which of the following is not a quality guideline?
Iteratively
The design should be developed:
Functional independence
You want your components to work independently so changes in one won't break others. What principle applies?
Refactoring
Your manager asks you to improve messy code but keep its behavior the same. Which concept should you apply?
Traceability
During design review, a teammate cannot trace features back to requirements. Which principle was ignored?
Abstraction
The design team wants to focus on key data and ignore unneeded details at first. Which design concept is this?
User interface design principle
The client requests that the user interface be simple and user-friendly. Which design principle are you focusing on?
Modularity and functional independence
A developer says, “Our software should be easy to update in the future.” What quality guideline supports this idea?
Stepwise refinement
Your team plans to improve design details gradually instead of all at once. What concept are you using?
Use iterative, flexible design models
Your project uses an Agile process. How should you approach design modeling?
Design and Quality principle
The client wants to see how data, function, and behavior connect before coding starts. Which design principle is this?
Abstraction
What concept means simplifying complex systems by focusing on essential details?
Modularity
What design concept allows dividing the system into manageable, independent parts?
Traceability
What principle ensures that each design element can be linked back to a requirement?
Architecture
What do we call the overall structure of software components and how they interact?
Refactoring
What is the process of improving or reorganizing design without changing functionality?
Reducing unnecessary detail through abstraction
The principle of Economy in architecture emphasizes:
The ease of understanding architectural decisions
Visibility in architectural design refers to:
Visual design
What layer represents the artistic endeavor that complements the technical aspects of user experience design?
Clear separation of concerns
What does Spacing ensure in software architecture?
A balanced and consistent system structure
Symmetry in architecture implies:
Self-organizing, scalable behavior
Emergence in architecture is most associated with:
Interface design
What layer defines a set of interface objects and actions that enable a user to perform all defined tasks?
Walking Skeleton
A simplified, runnable architectural model used in Agile development before coding begins.
MVC
The architectural style that separates data, user interface, and control logic.
Understanding how the system must respond to situations
In ATAM, “collecting scenarios” primarily helps in:
Process view
Which architectural view type represents runtime behavior and concurrency?
The geometric structure of control relationships
In Architectural Refinement, “control topology” refers to:
Change isolation and maintainability
An architecture that divides the system into layers of abstraction best supports which design goal?
Initiates control or computation itself
An active data component is one that:
When design changes are still easy to make
When should alternative architectural decisions be evaluated?
Principle #1
Design should be traceable to the requirements model.
Principle #2
Always consider the architecture of the system to be built.
Principle #3
Design of data is as important as design of processing functions.
Principle #4
Interfaces (both internal and external) must be designed with care.
Principle #5
User interface design should be tuned to the needs of the end-user and stress ease of use.
Principle #6
Component-level design should be functionally independent.
Principle #7
Components should be loosely coupled to each other than the environment.
Principle #8
Design representations (models) should be easily understandable.
Principle #9
The design should be developed iteratively.
Principle #10
Creation of a design model does not preclude using an agile approach.
Usability Guidelines
• Anticipation
• Communication
• Consistency
• Controlled Autonomy
• Efficiency
• Flexibility
• Focus
• Human Interface Objects
• Latency Reduction
• Learnability
• Metaphors
• Readability
• Track State
• Visible Navigation
Anticipation
An application should be designed so that it anticipates the user's next move.
Communication
The interface should communicate the status of any activity initiated by the user.
Consistency
The use of navigation controls, menus, icons, and aesthetics (For example, color, shape, layout) should be consistent throughout.
Controlled Autonomy
The interface should facilitate user movement throughout the application, but it should do so in a manner that enforces navigation conventions that have been established for the application.
Efficiency
The design of the application and its interface should optimize the user's work efficiency.
Flexibility
The interface should be flexible enough to enable some users to accomplish tasks directly and others to explore the application in a somewhat random fashion.
Focus
The interface (and the content it presents) should stay focused on the user task(s) at hand.
Human Interface Objects
A vast library of reusable human interface objects has been developed for both Web and mobile apps. Use them.
Latency Reduction
Rather than making the user wait for some internal operation to complete (for example, downloading a complex graphical image), the application should use multitasking in a way that lets the user proceed with work as if the operation has been completed.
Learnability
An application interface should be designed to minimize learning time and, once learned, to minimize relearning required when the app is revisited.
Metaphors
An interface that uses an interaction metaphor is easier to learn and easier to use, as long as the metaphor is appropriate for the application and the user.
Readability
All information presented through the interface should be readable by young and old.
Track State
When appropriate, the state of the user interaction should be tracked and stored so that a user can log off and return later to pick up where he left off.
Visible Navigation
A well-designed interface provides the illusion that users are in the same place, with the work brought to them.
Accessibility Guidelines
• Application Accessibility
• Response Time
• Help Facilities
• Error Handling
• Menu and Command Labeling
• Internationalization
Application Accessibility
Software engineers must ensure that interface design encompasses mechanisms that enable easy for people with special needs.
Response Time
System response time has two important characteristics: length and variability. Aim for consistency to avoid user frustration.
Help Facilities
Modern software should provide online help facilities that enable a user to get a question answered or resolve a problem without leaving the interface.
Error Handling
Every error message or warning produced by an interactive system should: use user understandable jargon, provide constructive error recovery advice, identify negative consequences of errors, contain an audible or visual cue, and never blame user for causing the error.
Menu and Command Labeling
The use of window-oriented, point-and-pick interfaces has reduced reliance on typed commands. How every it is important to: ensure every menu option has a command version, make commands easy for users to type, make
commands easy to remember, allow for command abbreviation, make sure menu labels are self-explanatory, make sure submenus match style of master menu items, and ensure command conventions work across the family of applications.
Internationalization
Software engineers and their managers invariably underestimate the effort and skills required to create user interfaces that accommodate the needs of different locales and languages.

Data Centered Architecture
Focuses on a central data store (e.g., database or repository) that different components access, update, and share.

Data Flow Architecture
Uses a pipeline or series of transformations where input data flows through processing steps until output is produced.

Call-Return Architecture
Organizes software into modules with a hierarchy of control, where higher-level modules call lower-level ones and get results back.

Object-Oriented Architecture
Structures the system as a collection of interacting objects that encapsulate data and behavior.

Layered Architecture
Divides the system into layers (e.g., presentation, logic, data) where each layer provides services to the one above it.