Important Concepts - Exam 1 Flashcards
What is the Unified Process (UP)
The Unified Process (UP) is an iterative and incremental software development methodology that emphasizes structured project management, risk management, and stakeholder involvement. It focuses on producing high-quality software that meets stakeholder needs through a disciplined and adaptive approach.
What are the phases in the Unified Process?
The four phases in the Unified Process are:
Inception – Define the project scope and feasibility.
Elaboration – Refine requirements and establish the architecture.
Construction – Build the system iteratively based on the architecture.
Transition – Deploy the system and ensure it meets user needs.
What happens in the Inception Phase of UP
In the Inception Phase, the business case is established, stakeholder requirements are gathered, and the project’s feasibility is assessed. It results in initial project estimates and a high-level vision of the system
What happens in the Elaboration Phase of UP?
The Elaboration Phase focuses on refining the system’s requirements, risk analysis, and establishing a stable architecture. Detailed project plans, costs, and schedules are also refined during this phase.
What happens in the Construction Phase of UP?
In the Construction Phase, the actual development (coding and testing) of the system takes place. The system is built iteratively based on the defined architecture, and functionality is delivered progressively.
What happens in the Transition Phase of UP?
The Transition Phase involves deploying the system to the user environment, training end-users, and ensuring that the system meets user expectations and is stable enough for release.
What are workflows in the Unified Process?
Workflows in UP represent the various activities that take place within each phase, such as requirements gathering, analysis, design, implementation, testing, and deployment. They span across all phases, ensuring continuous focus on quality and project goals.
What are use cases in software development?
Use cases are descriptions of how users (actors) interact with a system to achieve specific goals. They detail the functional requirements of the system from the user’s perspective, including the steps taken and the expected outcomes.
What is the benefit of having a user-centric focus in use cases?
Use cases prioritize user needs by emphasizing how users will interact with the system. This helps ensure that the final product aligns with user expectations and enhances user satisfaction
How do use cases improve communication among stakeholders?
Use cases provide a clear and understandable format for discussing system requirements, facilitating better communication among stakeholders, developers, and testers. They help bridge the gap between technical and non-technical participants.
How do use cases enhance requirements gathering?
Use cases promote a comprehensive understanding of functional requirements by detailing specific scenarios. This helps identify and document all necessary features and interactions, reducing the risk of overlooked requirements.
What is the benefit of clear testing criteria provided by use cases?
Use cases define specific interactions and expected outcomes, providing a solid basis for creating test cases. This leads to more effective and thorough testing processes, ensuring that all functionalities are validated.
How do use cases facilitate iterative development?
Use cases can be incrementally refined and prioritized, allowing teams to focus on delivering the most critical functionalities first. This supports an iterative approach, where feedback can be incorporated in successive development cycles.
How do use cases contribute to better change management?
Since use cases provide a clear understanding of user interactions and system functions, they help assess the impact of changes. This enables better management of scope changes and reduces the likelihood of misunderstandings during development.
What are the different levels of rigor in use cases?
The three levels of rigor in use cases are Brief, Casual, and Fully-Dressed
What is a Brief Use Case?
A Brief Use Case is a high-level description that outlines the main goal of the interaction without going into detail. It typically includes the actor, the goal, and a summary of the interaction.
What is a Casual Use Case?
A Casual Use Case provides more detail than a Brief Use Case but is still informal. It outlines the interaction steps between the actor and the system, describing the primary path and any exceptions in a simple narrative form.
What is a Fully-Dressed Use Case?
A Fully-Dressed Use Case is a comprehensive, detailed description that includes all relevant information, such as the main flow, alternative flows, preconditions, postconditions, and special requirements. It serves as a complete reference for developers and testers.
What are the different types of actors in use cases?
The two main types of actors in use cases are Primary Actors and Secondary Actors.
What is a Primary Actor?
A Primary Actor is an external entity that initiates a use case to achieve a goal. They are the main users of the system who interact directly with it, such as customers or end-users.
What is a Secondary Actor?
A Secondary Actor is an external entity that supports the primary actor in achieving their goal. They may provide additional services or information, such as external systems, administrators, or service providers.
What is an association in UML?
An association in UML (Unified Modeling Language) represents a relationship between two or more classes, indicating that they are connected in some way. It shows how instances of one class relate to instances of another.
What are association roles?
Association roles describe the specific function or responsibility of each class in a relationship. They provide clarity on how each class interacts within the association, often labeled at the ends of the association line.
What is an association class?
An association class is a class that is linked to an association, allowing you to define attributes and operations that pertain specifically to the relationship between the associated classes. It enables the representation of properties that belong to the association itself.
What is software architecture?
Software architecture is the high-level structure of a software system that defines its components, their interactions, and the principles governing its design and evolution. It serves as a blueprint for both the system and the project developing it.
Why is software architecture important?
Software architecture is crucial because it:
- Provides a framework for design and development.
- Ensures scalability, performance, and security.
- Facilitates communication among stakeholders.
- Helps manage risks and guides future development.
What are the key components of software architecture?
Key components of software architecture include:
- Components: The building blocks of the system (e.g., modules, services).
- Connectors: The relationships and interactions between components.
- Configuration: The arrangement of components and connectors.
- Constraints: The guidelines and standards governing design choices
What is logical architecture?
Logical architecture defines the system’s structure in terms of its components, their relationships, and the functionalities they provide, without considering the actual implementation or deployment specifics. It focuses on the organization of the system’s modules and their interactions.