L2-L3 Flashcards
What is the Software Crisis?
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.
Define Software Development.
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.
List the core tasks of Software Development.
- Analysis
- Design
- Construction
- Testing
- Delivery
- Management
Each task plays a crucial role in the software development lifecycle.
What is Software Architecture?
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.
What is Reference Architecture?
The set of principal decisions applicable to multiple related systems within an application domain
It includes explicitly defined points of variation.
What are Design Decisions?
Choices made during the creation or planning phase of a system
These decisions influence the system’s architecture and functionality.
Define Principal in the context of software design.
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.
What does Temporal refer to in design decisions?
Choices made/unmade over time related to periods within a system
Temporal aspects can affect the evolution and maintenance of software.
What is Requirements Engineering?
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.
Define Software Requirements.
Specifications that define what a software system should accomplish and how it should behave
Requirements serve as a guideline for development.
What are Functional Requirements?
Describe the specific tasks and functionalities that the software system must perform
They are essential for defining the system’s capabilities.
What are Non-Functional Requirements?
Describe the behaviors and characteristics that the software must possess
These include performance, security, and usability aspects.
What is UML?
A standardized way to visualize the design of a system
UML (Unified Modeling Language) is widely used for software design.
What does a Use Case Diagram represent?
Visually represents the interactions between actors and the functionalities of the system being developed
It helps in understanding functional requirements.
What does ‘Include’ mean in Use Case Diagrams?
Adds mandatory functionality and represents additional behaviors always part of the base use case
It ensures that certain functions are always executed.
What does ‘Extends’ mean in Use Case Diagrams?
Adds additional functionality that is optional
It allows for flexibility in the design.
What is Generalization in Use Case Diagrams?
Passes along characteristics and behaviors of use cases and actors
It promotes reusability in the design.
What is a Requirements Traceability Matrix?
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.
List the components of a Requirements Traceability Matrix.
- Requirement ID
- Requirement Description
- Source
- Status
Each component serves to track and manage requirements effectively.
What is the purpose of Requirement ID in RTM?
A unique identifier for each requirement
It ensures that each requirement can be distinctly referenced.
What does Requirement Description entail?
A clear statement of what the requirement entails
It provides a detailed understanding of the requirement.
What does Source indicate in RTM?
Where the requirement originated from (e.g., stakeholder, regulation)
It helps in understanding the context and importance of the requirement.
What does Status refer to in RTM?
Current status of the requirement (e.g., In Progress, Completed, Verified)
It tracks the progress of each requirement throughout the project.
What is the RTM process?
- Requirement Identification
- Traceabbility Links
- Bidirectional Traceability
- Change Management
- Quality Assurance
- Communication/Collaboration