1/32
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
For complex software products, experts believe that it is more effective for software engineers to start writing code as soon as possible.
false
what is Agile development model?
The Agile development model emphasizes flexibility, collaboration, and customer satisfaction. Agile teams work in short iterations called sprints, delivering working software at the end of each iteration.
Sprints refer to short, time-boxed periods in which Agile teams work on specific tasks or goals. They typically last from one to four weeks, with two weeks being a common duration. This means that at the end of each sprint, the team should have a working and tested piece of software that can be potentially released to customers.
Iterations, on the other hand, are the repetitive cycles within a sprint. They are the smaller time frames in which the team plans, develops, tests, and reviews their work. Iterations allow the team to break down the project into manageable chunks and provide regular opportunities for feedback and adjustment.
what is requirements engineering ?
Requirements engineering is the process of eliciting, analyzing, documenting, and managing the requirements for a system or software project. It involves understanding the needs and expectations of stakeholders, defining system functionalities, and ensuring that the requirements are complete, consistent, and feasible. The goal of requirements engineering is to establish a clear and shared understanding of what the system should do, serving as a foundation for the development and validation of the final product.
Which of the following are different levels of requirements? Question options: Explicit requirements User requirements System requirements Component requirements Subsystem requirements
The different levels of requirements are:
User requirements
System requirements
Component requirements
Subsystem requirements
Which of the following are types of non-functional requirements? Question options:
Timing Constraints
Specific coding language requirements
Requirements that describe what the system should do
Requirements that describe how the system should behave.
Timing Constraints
Specific coding language requirements
what are non-functional requirements?
Nonfunctional requirements specify the qualities or constraints of a system, while functional requirements describe what the system should do. Nonfunctional requirements include performance, reliability, security, usability, and scalability, among others. They focus on how the system should behave, rather than its specific features or functionality. Examples of non-functional requirements include:
Performance: The system should respond to user actions within 2 seconds.
Reliability: The system should have an uptime of at least 99%.
Security: The system should implement user authentication and data encryption.
Usability: The system should have an intuitive and user-friendly interface.
Scalability: The system should be able to handle a growing number of users without significant performance degradation.
These are just a few examples, and nonfunctional requirements can vary depending on the specific system and its intended use.
what are functional requirments? include examples
Functional requirements are specific tasks or actions that a system or software must be able to perform to meet the needs of its users. They describe the desired behavior and functionality of the system. Here are a few examples of functional requirements:
User Authentication: The system should allow users to create accounts, log in, and manage their personal information.
Search Functionality: The system should provide a search feature that allows users to find specific information or resources.
Payment Processing: If the system involves e-commerce, it should support secure payment processing for online transactions.
Data Entry and Validation: The system should allow users to input data and validate it to ensure accuracy and completeness.
Reporting and Analytics: The system should generate reports and provide analytical insights based on the data it collects.
Notifications: The system should send notifications to users for important events or updates.
Integration with External Systems: If required, the system should be able to integrate with other external systems or APIs.
what is SDLC and its phases?
SDLC stands for Software Development Life Cycle. It is a systematic approach to developing software applications. The phases of SDLC typically include:
Requirements Gathering: Gathering and documenting the software requirements.
System Design: Creating a high-level design that outlines the system architecture and components.
Implementation: Writing code and developing the software based on the design.
Testing: Conducting various tests to ensure the software meets the specified requirements.
Deployment: Installing and configuring the software in the production environment.
Maintenance: Providing ongoing support, bug fixes, and updates to the software.
Software requirements are derived from higher level system requirements. t or f?
true
As a software engineer gains more years of experience, keeping track of the configuration of their software artifacts is no longer necessary. t or f?
false
It is often prudent to perform architectural trades to determine the best approach to satisfy software requirements. t or f?
true
After a software product is deployed, it is not common for enhancements to be made to that product. t or f?
false
In Agile, a team retrospective is typically done at the start of a new sprint. t or f?
false
In Agile, sprint planning is typically done at the start of a new sprint. t or f?
true
Quite often, requirements engineering is not performed consistently or rigorously. t or f?
true
It is not common to perform requirements engineering in the Agile development model. t or f?
False. Requirements engineering is an integral part of Agile development.
When developing requirements for a software product, it is rarely necessary to understand the perspectives of different types of stakeholders. t or f?
false
Which of the following are functional requirements?
How the system should respond to different stimuli.
Training time
Statements of services the system provides.
Mean time to failure requirements
How the system should respond to different stimuli.
Statements of services the system provides.
In what phase of the SDLC is it important to maintain quality and configuration control of deployed software, including bug reports, enhancements, etc?
Test
Coding
Requirements
Deployment / Production Support
Deployment / Production Support
In what phase of the SDLC is Unit testing performed?
Test
Coding
Requirements
Deployment / Production Support
coding
In what phase of the SDLC are verification and validation plans developed?
Test
Coding
Requirements
Deployment / Production Support
Requirements
In what phase of the SDLC are models typically created?
design
Which of the following development models most closely has the phases aligned with complementary testing phases?
Incremental
"V" Method
Waterfall
Agile
"V" Method
Which software development model was popular before the advent of Agile approaches?
Waterfall
KanBan
Incremental
"V" Method
Incremental
Which of the following are the primary roles of an Agile Scrum team?
Product Owner
Development Team
Scheduler
Scrum Master
Product Owner
Development Team
Scrum Master
what is agile scrum team?
An agile Scrum team is a cross-functional group of individuals who work together to deliver a product incrementally and iteratively using the Scrum framework. The team typically consists of a product owner, a Scrum master, and development team members. They collaborate closely, following the principles of agility, to plan, execute, and review work in short time frames called sprints. The team self-organizes and collectively takes responsibility for delivering high-quality, valuable software or product increments.
teams in agile and what they do?
Scrum Team: consists of a product owner, a Scrum master, and development team members. The product owner defines and prioritizes the product backlog, the Scrum master facilitates the Scrum process, and the development team delivers the product increment.
Kanban Team: Kanban teams focus on visualizing and optimizing workflow. They use a Kanban board to track work items and limit work in progress (WIP). The team collaborates to ensure a smooth flow of work and continuous improvement.
Lean Team: Lean teams apply Lean principles to eliminate waste and maximize value. They focus on delivering value to the customer by minimizing non-value-added activities and optimizing the entire value stream.
Cross-functional Team: This type of team consists of individuals with diverse skills and expertise necessary to deliver a product. They work collaboratively to complete all aspects of the work, from analysis and design to development and testing.
Self-organizing Team: Agile teams are encouraged to be self-organizing, meaning they have the autonomy to plan, execute, and review their work. They collectively decide how to best achieve their goals and continuously improve their processes.
What is the name of the document where software requirements are captured? Explain why it is important to capture software requirements in its own document?
The document where software requirements are captured is commonly known as a "Software Requirements Specification" (SRS). It is important to capture software requirements in its own document for several reasons:
Clarity and Communication: The SRS provides a clear and concise description of what the software should do, ensuring that all stakeholders have a common understanding of the requirements.
Documentation: The SRS serves as a reference for developers, testers, and other team members throughout the software development lifecycle, helping them stay aligned with the project goals.
Verification and Validation: By having requirements documented in a separate document, it becomes easier to verify and validate whether the software meets the specified requirements.
Change Management: The SRS acts as a baseline for managing changes to the software requirements. It helps in assessing the impact of proposed changes and maintaining traceability.
Overall, capturing software requirements in a dedicated document like the SRS promotes effective communication, documentation, verification, and change management throughout the software development process.
Explain why multiple levels of testing are required for the development a large software product.
Multiple levels of testing are required for the development of a large software product for several reasons:
Verification of functionality: Testing at different levels ensures that each component of the software functions correctly and meets the specified requirements.
Identification of defects: Testing helps in identifying and fixing defects or bugs at various stages of development, preventing them from propagating to later stages or the final product.
Validation of system integration: Testing at different levels ensures that individual components of the software work together seamlessly and integrate properly into the larger system.
Performance evaluation: Testing at various levels helps evaluate the performance and efficiency of the software under different conditions, ensuring it meets the desired performance benchmarks.
User acceptance: Testing at multiple levels allows for user feedback and validation, ensuring that the software meets user expectations and requirements.
Risk mitigation: Testing at different levels helps identify and mitigate risks associated with the software, such as security vulnerabilities or compatibility issues.
Overall, multiple levels of testing are necessary to ensure the quality, functionality, and reliability of a large software product.
In software engineering, what is one of the most common ways to capture a software architecture and design? Why do software engineers use this method to capture their designs?
Answer:
One of the most common ways to capture a software architecture and design is through the use of architectural diagrams, such as UML (Unified Modeling Language) diagrams. Software engineers use this method to capture their designs because it provides a visual representation of the system's structure, components, and relationships, making it easier to communicate and understand the design among team members. UML diagrams also allow for the identification of potential design flaws or improvements before the actual implementation phase.
Explain what change management is and why it is important.
Change management is a structured approach to transitioning individuals, teams, and organizations from a current state to a desired future state. It involves planning, implementing, and monitoring changes to ensure successful outcomes. Change management is important because it helps organizations adapt to new technologies, processes, or strategies, minimizing resistance and maximizing employee engagement. It also helps mitigate risks, improve communication, and enhance overall organizational performance.
Explain why requirements traceability is important.
Requirements traceability is important because it allows for the tracking and verification of requirements throughout the development process. It ensures that each requirement is properly implemented and tested, and provides a clear understanding of how changes to requirements may impact the overall system. This helps to ensure that the final product meets the intended objectives and satisfies stakeholder needs. Additionally, requirements traceability aids in identifying and managing risks facilitates effective communication and collaboration among project teams, and supports regulatory compliance and auditing processes.
List and describe the 4 primary activities that we discussed in requirements engineering.
The 4 primary activities in requirements engineering are:
Elicitation: This involves gathering information from stakeholders to understand their needs and expectations for the system.
Analysis: In this step, the collected requirements are analyzed to identify inconsistencies, conflicts, and missing information.
Specification: The requirements are documented in a clear and unambiguous manner, using appropriate notations and formats.
Validation: The specified requirements are reviewed and validated to ensure they accurately represent the stakeholders' needs and can be implemented effectively.