L2-L3 Flashcards

1
Q

What is the Software Crisis?

A

A period in the history of software development characterized by significant challenges in creating and maintaining software systems

The Software Crisis highlights the difficulties faced by the software industry during its evolution.

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

Define Software Development.

A

A systematic process that outlines the phases a software project goes through from initiation to completion and maintenance

It includes various core tasks essential for successful software delivery.

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

List the core tasks of Software Development.

A
  • Analysis
  • Design
  • Construction
  • Testing
  • Delivery
  • Management

Each task plays a crucial role in the software development lifecycle.

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

What is Software Architecture?

A

The high-level structure of a software system, defining its components and their interactions

It sets the foundation for the design and implementation phases of software development.

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

What is Reference Architecture?

A

The set of principal decisions applicable to multiple related systems within an application domain

It includes explicitly defined points of variation.

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

What are Design Decisions?

A

Choices made during the creation or planning phase of a system

These decisions influence the system’s architecture and functionality.

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

Define Principal in the context of software design.

A

Critical or fundamental choices that influence the overall architecture, functionality, or behavior of a system

These decisions are often foundational to the system’s success.

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

What does Temporal refer to in design decisions?

A

Choices made/unmade over time related to periods within a system

Temporal aspects can affect the evolution and maintenance of software.

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

What is Requirements Engineering?

A

The process of gathering, documenting, analyzing, prioritizing, validating, and managing requirements throughout the project lifecycle

It ensures that the final product meets the intended needs.

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

Define Software Requirements.

A

Specifications that define what a software system should accomplish and how it should behave

Requirements serve as a guideline for development.

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

What are Functional Requirements?

A

Describe the specific tasks and functionalities that the software system must perform

They are essential for defining the system’s capabilities.

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

What are Non-Functional Requirements?

A

Describe the behaviors and characteristics that the software must possess

These include performance, security, and usability aspects.

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

What is UML?

A

A standardized way to visualize the design of a system

UML (Unified Modeling Language) is widely used for software design.

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

What does a Use Case Diagram represent?

A

Visually represents the interactions between actors and the functionalities of the system being developed

It helps in understanding functional requirements.

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

What does ‘Include’ mean in Use Case Diagrams?

A

Adds mandatory functionality and represents additional behaviors always part of the base use case

It ensures that certain functions are always executed.

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

What does ‘Extends’ mean in Use Case Diagrams?

A

Adds additional functionality that is optional

It allows for flexibility in the design.

17
Q

What is Generalization in Use Case Diagrams?

A

Passes along characteristics and behaviors of use cases and actors

It promotes reusability in the design.

18
Q

What is a Requirements Traceability Matrix?

A

Provides accountability to project requirements by mapping the relationship between requirements, architecture, and project work

RTM is critical for ensuring that all requirements are addressed.

19
Q

List the components of a Requirements Traceability Matrix.

A
  • Requirement ID
  • Requirement Description
  • Source
  • Status

Each component serves to track and manage requirements effectively.

20
Q

What is the purpose of Requirement ID in RTM?

A

A unique identifier for each requirement

It ensures that each requirement can be distinctly referenced.

21
Q

What does Requirement Description entail?

A

A clear statement of what the requirement entails

It provides a detailed understanding of the requirement.

22
Q

What does Source indicate in RTM?

A

Where the requirement originated from (e.g., stakeholder, regulation)

It helps in understanding the context and importance of the requirement.

23
Q

What does Status refer to in RTM?

A

Current status of the requirement (e.g., In Progress, Completed, Verified)

It tracks the progress of each requirement throughout the project.

24
Q

What is the RTM process?

A
  1. Requirement Identification
  2. Traceabbility Links
  3. Bidirectional Traceability
  4. Change Management
  5. Quality Assurance
  6. Communication/Collaboration
25
Define the following terms? Class Name Attributes Methods/Operations
* Class Name: Representing an entity or concept in the system. * Attributes: Characteristics or properties of the class (e.g., name, email, price). Attributes represent the state of the class. * Methods/Operations: Functions or behaviors the class can perform. Methods represent the behavior of the class.
26
What is association, generation, aggregation and composition?
Association 📌 Definition: A general relationship between two or more classes where objects interact but do not "own" each other. 2. Aggregation (Weak Relationship) 📌 Definition: A "whole-part" relationship where the part can exist independently of the whole. 3. Composition (Strong Relationship) 📌 Definition: A stronger form of aggregation where the "part" cannot exist without the "whole." 4. Generalization (Inheritance - "is-a") 📌 Definition: A relationship where a subclass inherits properties and behavior from a superclass.
27
What are the signs for public, private and protected?
public(+) private(-) protected(#)