Software Development Model Flashcards

1
Q

What is the waterfall development cycle?

A

The waterfall development cycle is a sequential software development process in which each phase of the development process is completed before moving on to the next phase.

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

What are the different phases in the waterfall development cycle?

A

The different phases in the waterfall development cycle are requirements gathering and analysis, design, implementation, testing, deployment, and maintenance.

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

What is the goal of the requirements gathering and analysis phase?

A

The goal of the requirements gathering and analysis phase is to gather and analyze the customer or user requirements for the software being developed, and to define the software’s scope.

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

What is the goal of the design phase?

A

The goal of the design phase is to create a detailed technical design for the software based on the requirements gathered in the previous phase.

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

What is the goal of the implementation phase?

A

The goal of the implementation phase is to actually build the software based on the design specifications created in the previous phase.

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

What is the goal of the testing phase?

A

The goal of the testing phase is to test the software to ensure that it meets the requirements specified in the requirements gathering and analysis phase, and that it is free of defects and errors.

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

What is the goal of the deployment phase?

A

The goal of the deployment phase is to release the software to the end-users or customers.

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

What is the goal of the maintenance phase?

A

The goal of the maintenance phase is to ensure that the software continues to meet the requirements of the end-users or customers, and to fix any issues or bugs that are discovered after the software has been released.

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

What are the advantages of the waterfall development cycle?

A

The advantages of the waterfall development cycle include the clear and well-defined phases, which help to ensure that each phase is completed before moving on to the next one. This can help to minimize the risk of errors or defects in the software, and can also make it easier to manage the development process.

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

What are the disadvantages of the waterfall development cycle?

A

The disadvantages of the waterfall development cycle include the fact that it can be inflexible, as changes made to the requirements or design later in the process can be difficult and expensive to implement. It can also be difficult to estimate the time and resources required for each phase, which can lead to delays and cost overruns.

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

What is the role of the project manager in the waterfall development cycle?

A

The project manager is responsible for overseeing the entire development process, from requirements gathering to deployment and maintenance. They are responsible for ensuring that each phase is completed on time and within budget, and for communicating with stakeholders about the project’s progress.

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

What is the role of the development team in the waterfall development cycle?

A

The development team is responsible for implementing the design specifications created in the design phase. They are responsible for writing the code, testing the software, and ensuring that it meets the requirements specified in the requirements gathering and analysis phase.

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

How does the waterfall development cycle differ from agile development?

A

The waterfall development cycle is a sequential process in which each phase is completed before moving on to the next one, whereas agile development is an iterative process in which each phase is completed in short cycles, with frequent feedback and collaboration between the development team and stakeholders.

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

What are some common tools and techniques used in the waterfall development cycle?

A

Some common tools and techniques used in the waterfall development cycle include project management software, requirements gathering and analysis tools, design and modelling tools, programming languages and development environments, and testing and debugging tools.

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

What is the role of testing in the waterfall development cycle?

A

Testing is an important part of the waterfall development cycle, and is typically conducted in the testing phase. The goal of testing is to ensure that the software meets the requirements specified in the requirements gathering and analysis phase, and that it is free of defects and errors. Testing may involve manual testing, automated testing, or a combination of both.

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

What is the purpose of the System Architecture document produced in the Design phase?

A

The System Architecture document is a high-level overview of the overall structure of the software system being developed. It outlines the major components of the system, their relationships to each other, and how they function together to achieve the system’s goals.

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

What is the purpose of the User Handbook document produced in the Design phase?

A

The User Handbook document is a guide for end-users on how to use the software system. It provides instructions on how to perform common tasks, as well as information on the system’s features, functions, and limitations.

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

What is the purpose of the Verification Plan document produced in the Design phase?

A

The Verification Plan document outlines the testing strategy and methodology that will be used to ensure that the software system meets the requirements specified in the Requirements document. It includes information on the types of tests that will be performed, the tools and techniques that will be used, and the acceptance criteria that must be met for the system to be considered complete.

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

What is the purpose of the Implemented Modules and their documentation document produced in the Implementation and Debugging phase?

A

The Implemented Modules and their documentation document provides a detailed overview of the modules that have been implemented in the software system, as well as documentation on how they function and how they interact with other system components.

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

What is the purpose of the Test Data document produced in the Implementation and Debugging phase?

A

The Test Data document provides a set of test cases and input data that will be used to verify that the implemented modules of the software system are functioning correctly. It includes information on the expected results of each test case, as well as any necessary setup or configuration instructions.

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

What is the purpose of the Running System document produced in the Testing phase?

A

The Running System document provides a functional version of the software system that has been tested and verified to meet the requirements specified in the Requirements document. It includes documentation on how to install and configure the system, as well as instructions on how to use its features and functions.

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

What is the purpose of the Evaluation of the Software Project document produced in the Testing phase?

A

The Evaluation of the Software Project document is a summary report that outlines the results of the testing and verification process. It includes information on any issues or defects that were identified, as well as recommendations for improving the software system in future iterations.

23
Q

What are the main stages in the Spiral Model?

A

The Spiral Model consists of four main stages: Planning, Risk Analysis, Engineering, and Evaluation.

24
Q

What is the purpose of the Planning stage in the Spiral Model?

A

The Planning stage involves identifying the project objectives, requirements, constraints, and risks. It also involves developing a plan for the project, including a schedule and a budget.

25
Q

What is the purpose of the Risk Analysis stage in the Spiral Model?

A

The Risk Analysis stage involves identifying and assessing potential risks and uncertainties that could impact the success of the project. It also involves developing strategies for mitigating or managing those risks.

26
Q

What is the purpose of the Engineering stage in the Spiral Model?

A

The Engineering stage involves developing and testing the software solution based on the requirements and specifications identified in the previous stages. This stage also involves reviewing and revising the project plan and risk management strategies as necessary.

27
Q

What is the purpose of the Evaluation stage in the Spiral Model?

A

The Evaluation stage involves testing and evaluating the software solution to ensure that it meets the requirements and objectives of the project. This stage also involves assessing the effectiveness of the project plan and risk management strategies, and making any necessary adjustments.

28
Q

How does the Spiral Model differ from other software development models?

A

The Spiral Model differs from other software development models in that it emphasizes an iterative approach to development, with each iteration involving a cycle of planning, risk analysis, engineering, and evaluation. The model is designed to be flexible and adaptable, allowing for changes and adjustments to be made throughout the development process.

29
Q

What are some advantages of using the Spiral Model?

A

Some advantages of using the Spiral Model include its flexibility and adaptability, its emphasis on risk management, and its focus on customer requirements and objectives. The iterative nature of the model also allows for early detection and correction of errors or issues, which can save time and resources in the long run.

30
Q

What are some potential drawbacks or challenges of using the Spiral Model?

A

Some potential drawbacks or challenges of using the Spiral Model include its complexity and the need for a high level of expertise and experience to effectively implement the model. The iterative nature of the model can also result in increased time and cost if not managed effectively. Additionally, the success of the model depends heavily on the accuracy of the risk assessment and management strategies, which can be difficult to predict or control in some cases.

31
Q

What does XP stand for, and what is its main focus?

A

XP stands for Extreme Programming, and its main focus is on improving the software development process and making it more efficient and effective.

32
Q

What is the philosophy behind XP, and how is it different from traditional software development approaches?

A

The philosophy behind XP is to put the needs of programmers and customers first, and to continuously improve the development process through iterative feedback and collaboration. It differs from traditional software development approaches in that it emphasizes simplicity, communication, and flexibility.

33
Q

What is a “story” in XP, and how is it used in the development process?

A

In XP, a “story” refers to a unit of customer-visible functionality that is used to define requirements and guide development. Stories are typically written in simple, user-friendly language and are used to prioritize and plan development tasks.

34
Q

Who is involved in the XP development team, and what are their roles?

A

The XP development team consists of a variety of roles, including testers, interaction designers, architects, project managers, product managers, executives, technical writers, users, and programmers. Each role contributes to the development process uniquely and works collaboratively to achieve project goals.

35
Q

What are some of the benefits of using XP in software development?

A

Some benefits of using XP include improved productivity, reduced defects, and lower costs. XP also emphasizes customer satisfaction and collaboration, which can lead to higher-quality software and better user experiences.

36
Q

Are there any non-substantiated claims or criticisms of XP?

A

Yes, there have been some criticisms of XP, including claims that its focus on simplicity can lead to oversimplification of complex problems, and that it may not be suitable for large-scale or highly regulated projects. Additionally, some of the claims about the benefits of XP, such as lower costs and higher productivity, may not be substantiated without proper measurement and evaluation.

37
Q

What is the process for weekly deployment, and how does it help with time management?

A

The process for weekly deployment involves reviewing progress, selecting a week’s worth of stories, breaking those stories into tasks, and having team members sign up for those tasks. This helps with time management by providing a clear plan for the week, breaking down larger goals into manageable tasks, and ensuring that team members are working efficiently and effectively.

38
Q

What is the purpose of reflecting on the team, project, and progress once a quarter?

A

The purpose of reflecting on the team, project, and progress once a quarter is to evaluate the effectiveness of the development process, identify areas for improvement, and ensure that the project is aligned with larger goals. This helps to ensure that the team is working efficiently and effectively, and that the project is meeting its objectives.

39
Q

What are some of the coding principles used in software development, and how do they help with time management?

A

Some coding principles used in software development include writing automated tests before writing code, and having a ten-minute build process that automatically builds the entire system and runs all test cases. These principles help with time management by reducing the amount of time spent on debugging and manual testing, and by ensuring that the code is tested and functioning correctly before being integrated into the system.

40
Q

How does the ten-minute build process work, and what are its benefits?

A

The ten-minute build process involves automatically building the entire system and running all test cases in ten minutes or less. This helps to ensure that any problems or errors are caught early in the development process, reducing the amount of time spent on debugging and manual testing. It also helps to ensure that the code is stable and functioning correctly before being deployed, which can save time and reduce the risk of errors in the final product.

41
Q

How does the Lightweight approach differ from the Waterfall model in terms of documentation?

A

The Lightweight approach (specifically, XP) typically involves fewer documents than the Waterfall model. For example, there is no specification document, as this is replaced by the use of tests. There is also no verification plan, as this is replaced by a ten-minute build process. Additionally, there is typically less emphasis on module documentation, as this is replaced by code commenting.

42
Q

How does the Lightweight approach differ from the Waterfall model in terms of flexibility?

A

The Lightweight approach (specifically, XP) is typically more flexible than the Waterfall model. This is because the system specification can change based on user or market needs at any time. Additionally, functionality can change during development, and architecture revisions can be made if necessary. This allows for greater adaptability and responsiveness to changing needs and requirements.

43
Q

What is pair programming, and how does it work?

A

Pair programming is a software development practice in which two programmers work together at one computer. The pair takes turns writing code and reviewing each other’s work. This helps to keep both programmers on task, brainstorm ideas, clarify concepts, and take initiative when one partner is stuck. It also helps to hold each other accountable to the team’s practices and to improve overall code quality.

44
Q

How does pair programming help with time management and productivity?

A

Pair programming can help with time management and productivity by allowing for faster problem solving, improved code quality, and reduced need for debugging and testing. It can also help to reduce the likelihood of errors and increase overall knowledge sharing and communication between team members.

45
Q

What is the importance of testing in Extreme Programming?

A

Testing is an integral part of Extreme Programming (XP). XP places a strong emphasis on testing, with the goal of finding defects and bugs as early as possible in the software development process. The aim is to reduce the cost and time associated with fixing defects that are found later in the process.

46
Q

What is the process of testing in Extreme Programming?

A

In XP, testing is an ongoing activity that is integrated into every stage of development. Tests are written before the code is written, and the code is developed incrementally to pass the tests. This process is called test-driven development (TDD). Automated tests are used to ensure that the code works as intended and meets the requirements. The test suite is considered an integral part of the system and is designed to be run frequently.

47
Q

What is the purpose of a test suite in XP?

A

The purpose of a test suite in XP is to ensure that the code meets the requirements and works as intended. Instead of giving a complete input/output, XP focuses on creating a comprehensive test suite that covers all possible scenarios for a particular feature or function. The tests are designed to be run frequently, so any defects or errors can be identified and fixed early in the development process.

48
Q

How does XP testing differ from traditional testing approaches?

A

In traditional testing approaches, the focus is on testing individual components or modules of the system, often after the code has been developed. In XP, testing is integrated into every stage of development, and the goal is to find defects as early as possible. XP testing emphasizes the use of automated tests, and the test suite is considered an integral part of the system.

49
Q

What are customer tests in XP?

A

Customer tests are tests that are written by the customer or a representative of the customer to ensure that the system meets their requirements. These tests are designed to be user-focused, so they test the system from the perspective of the user, rather than the developer. Customer tests are an important part of XP testing, as they help to ensure that the system meets the needs of the customer.

50
Q

What is the central question of testing in the classical approach?

A

The central question of testing in the classical approach is “when can we stop testing and be confident that the system ‘works’?”

51
Q

What is the additional question of testing in Extreme Programming?

A

The additional question of testing in Extreme Programming is “when can we stop writing test cases as they allow to ‘reconstruct’ the desired input/output relation?”. Reconstruction is needed in maintenance or refactoring

52
Q

What are the advantages and disadvantages of extreme programming compared to conventional software engineering models?

A

The advantage of extreme programming over conventional software engineering models is that it involves less work since fewer documents need to be produced, specifically there is no need for specifications.
However, the disadvantage is that quality assurance is weaker since the input/output relation is only given in sample rather than in total. Additionally, more work is required in test development to ensure that the sample is “good” enough to allow for reconstruction.

53
Q

Can classical testing techniques be applied to extreme programming?

A

Yes, classical testing techniques can be applied to extreme programming. Blackbox techniques can be used in “spirit” as there are no specifications to reference, and whitebox techniques can be used to a certain extent since tests are written before the code is developed.

54
Q

Where do the tests come from in extreme programming?

A

In extreme programming (XP), the tests come from the customer or the customer representative. The customer provides high-level requirements called user stories, and these serve as the basis for creating test cases. The development team breaks down the user stories into smaller tasks and writes tests for each task. This approach, known as Test-Driven Development (TDD), involves writing tests before writing the actual code. It ensures that the code meets the desired functionality and maintains good test coverage. The customer’s active involvement in the process helps drive the test development.