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 |
|
|