Exam Flashcards

1
Q

Revisions vs. Variations

A

Revisions
are updates to a piece of software that happen to fix problems, add new features, or improve performance. Each update gets a new version number, replacing the old one.
Variations
are different versions of the same software made for specific uses, such as different hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Design Patterns

A

Design patterns
are reusable solutions for common software problems, guiding how to organize code.

Example,
The “adapter pattern” helps different classes work together by using an adapter class.
Benefits
Include reusing proven solutions, improving communication between developers, and making software easier to maintain.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Triple Constraints of Project Management

A

Scope defines what work will be done and the deliverables.
Time sets the project schedule and tracks its duration.
Cost determines the budget and monitors spending.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Role of the SQA Group

A

Verification and Validation (V&V): Ensures software meets specifications and user needs through systematic reviews and testing.
Testing: Plans and executes various types of tests to identify defects and ensure proper software operation.
Operationalization: Develops and enforces quality processes and standards, ensuring consistent and reliable development practices.
Preparation: Creates quality plans that outline goals, standards, and procedures, helping set clear expectations and manage risks.
Analytics: Collects, analyzes, and reports on quality metrics to track progress and identify improvement areas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

OOP vs. Classic

A

Object-Oriented Paradigm:
Uses objects and classes, emphasizing encapsulation, inheritance, and polymorphism, which promote modularity and reusability.

Classic Paradigm (Procedural Programming):
It focuses on functions and procedures, emphasizing the sequence of actions, but lacks modularity and reusability.

Need for Object-Oriented Paradigm:
Essential for breaking down complex systems, reusing code, simplifying maintenance, and scaling large projects effectively.

testing is integrated throughout development to ensure continuous feedback and improvement rather than isolated into a dedicated phase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Processes of Project Management

A
  1. Initiating: Define the project and get approval to start.
  2. Planning: Set goals, define tasks, create schedules, and allocate resources.
  3. Executing: Perform the tasks and activities as planned.
  4. Monitoring and Controlling: Track progress, review performance, and make adjustments to stay on schedule and budget.
  5. Closing: Complete all project activities, deliver results, and finalize documentation.
  6. Scheduling: Create a detailed timeline, set start and end dates for tasks, and ensure resources are properly allocated.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Two Types of Testing: V&V and the Absence of a Dedicated Phase

A

V&V (Verification and Validation):
Verification: ensuring the software artifacts (requirements, design, and code) are correctly implemented according to the specifications.
Validation: making sure the final software product meets the user’s needs and requirements.

Why No Dedicated Testing Phase?
Testing should be an ongoing activity throughout the software development lifecycle, not just a separate phase at the end.
Early Detection:Faults are much easier and cheaper to fix early on.
Continuous Improvement: Testing helps the team learn and improve as the project progresses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Waterfall Life Cycle Model

A

Sequential Steps:
A linear model where each phase must be completed before moving on to the next (requirements, design, implementation, testing, and deployment).
Strengths: Good for projects with clear, well-defined requirements and minimal change.
Weaknesses: less flexible to adapt to changing requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Life Cycle Model Selection (Case Study-based)

A

The best model depends on the specifics of the project.
Well-defined requirements, minimal change: Waterfall model
Complex requirements, frequent change, high risk: Agile, Spiral
Requirements unclear; need for user feedback: Prototyping

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Levels of Software Capability Model (CMM)

A

Level 1: Initial: Unpredictable and uncontrolled processes.
Level 2: Repeatable: Basic project management processes are established.
Level 3: Defined: Processes are documented and standardized.
Level 4: Managed: Quantitative measures are used to monitor and control processes.
Level 5: Optimizing: Continuous process improvement is emphasized.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

7 Categories of Cohesion

A

Coincidental: The module performs unrelated operations (bad).
Logical:The module performs related operations based on a selection (better, but still not great).
Temporal: The module performs operations related to time (not ideal).
Procedural: Operations are related by a sequence of steps (better than temporal).
Communicational: Operations work on the same data (better than procedural).
Functional: The module performs a single, well-defined function (ideal).
Informational: The module performs multiple operations on the same data structure, each with independent code (very good, often reflecting object-oriented design).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

5 Levels of Coupling

A

Content Coupling: One module directly modifies the code of another (very bad).
Common Coupling: Modules share the same global data (bad).
Control Coupling: One module controls the logic of another (not ideal).
Stamp Coupling: Modules share data structures but only use part of the data (better but not ideal).
Data Coupling: Modules communicate by passing data (ideal).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly