Term
What are the 2 major outcomes (products/documents) of software requirements analysis phase? |
|
Definition
Statement of Need, Statement of Scope |
|
|
Term
The textbook discussed 7 requirements engineering tasks. List and briefly explain four of them. |
|
Definition
Inception: How do you get started? Elicitation: Getting information from the customers/users. Elaboration: Expand on the information gathered in Inception/Elicitation. Negotiation: Work with the client to make expectations reasonable. |
|
|
Term
Name the 2 common approaches to analysis modeling |
|
Definition
Structural & Object Oriented |
|
|
Term
OO technology (methodology/programming) is built on 5 key concepts. Name three of them. |
|
Definition
Inheritance, Polymorphism, Objects & Classes |
|
|
Term
The textbook discusses 7 key steps for conducting OO Analysis (i.e., OOA Process). List them. |
|
Definition
Communicate Requirements, Identify Classes, Define Class Hierarchy, Represent Object Relationships, Model Object Behavior, Repeat Iteratively. |
|
|
Term
Software design is based on fundamental concepts that are essential for building sounds and high quality software. The textbook discussed nine of them. Other than “Information Hiding” and “Refactoring,” list five of these concepts. |
|
Definition
Abstraction, Architecture, Patterns, Modularity, Independence |
|
|
Term
Give four benefits for “Information Hiding.” |
|
Definition
Easier to modify, Easier to Maintain, Data Less Vulnerable to Tampering, Data Safer in the Event of a System Crash. |
|
|
Term
Explain the concept of design refactoring and give three benefits for applying this concept to software design. |
|
Definition
Basically going back over existing code to see if it can be improved by combining/rewriting/correcting badly written objects/classes. You achieve greater efficiency, less redundancy, and higher cohesion. |
|
|
Term
During the design phase, there are three types of classes that are the design team defines. List the names and explain these three types of classes. |
|
Definition
Entity Classes: Refined Analysis Classes, Boundary Classes: Used to Create the Interface, Controller Classes: Manages data flow between objects and classes |
|
|
Term
The textbook describes software architecture to be a representation that helps the engineer to achieve some benefits. List four benefits for having an architecture for the software |
|
Definition
Gives an easily grasped model of how a system and components work together. Illustrates the decisions that have the most impact. Enables communication between stakeholders. Provides the basic blueprint for the system/software. |
|
|
Term
In chapter 10, the textbook explained four common software architectural styles. Name and briefly explain the main idea for two of them. |
|
Definition
Data Centered: Basically a centered database with client software interfacing with it. Data Flow: Data runs through various components before it is output |
|
|
Term
It is common that software architecture share common patterns (called architectural patterns). These patterns represent repeated aspects of software architectures. List and explain two common examples of software architectural patterns |
|
Definition
Concurrency: Running multiple tasks at once, Persistence: Data existing beyond the execution its creator. |
|
|
Term
Chapter 10 slides explained a number of Quality Factors. Explain what each of the flowing factors focus on. |
|
Definition
Reliability: Is the system Robust, Complete & Consistent? Efficiency: Resource Allocation Maintainability: The Lifetime of the System Usability: User Interface Design |
|
|