I.
Knowledge
Remembering information.
1. List the five main stages of the program development life cycle in order.
2. What is the purpose of the analysis stage in program development?
3. Name three development methodologies mentioned in the text.
4. What is a "requirements specification"?
5. In the coding stage, what is the term for converting pseudocode into actual
program code?
6. What are the two main approaches mentioned for planning a solution?
7. What does RAD stand for in software development?
8. In the waterfall model, what do the arrows pointing backward represent?
II. Comprehension
Explaining the meaning of information.
9. Explain in your own words what "stepwise refinement" means in program
design. [Link] is maintenance considered part of the program development
life cycle? [Link] the main difference between the waterfall model and
the iterative model. [Link] is meant by a "working model" or prototype in
the RAD model?
[Link] is an identifier table useful in the design stage?
[Link] does it mean when a program "crashes" during coding?
[Link] why testing is necessary even after a program appears to work.
III. Application
Using abstractions in concrete situations.
[Link] a simple calculator program, list three requirements that might be
included in the requirements specification.
[Link] a simple flowchart for a program that checks if a number is positive, negative, or
zero.
[Link] a programming language and explain why it might be suitable for developing
a mobile app.
[Link] an identifier table for a program that stores student names and grades.
[Link] a scenario where a program fails when the user enters text instead of a
number, suggest a way to handle this during testing.
[Link] the iterative model to develop a simple login system: what would be
developed in the first iteration?
IV. Analysis
Breaking down a whole into component parts.
[Link] and contrast the bottom-up and top-down approaches to problem-solving in
program development.
[Link] the benefits and drawbacks of the waterfall model for a large, complex
software project.
[Link] is the RAD model considered riskier than the waterfall model in terms of
project management?
[Link] down the testing stage into different types of testing (e.g., unit testing,
integration testing).
[Link] are the potential consequences of skipping the analysis stage in program
development?
[Link] why the iterative model is better suited for large, mission-critical projects
than the waterfall model.
V. Synthesis
Putting parts together to form a new and integrated whole.
[Link] a hybrid development model that combines the best features of the
waterfall and iterative models.
[Link] a complete development plan for a school library management system,
including stages, methodologies, and tools.
[Link] a risk assessment table for a RAD project, identifying potential risks and
mitigation strategies.
[Link] a method for involving end-users throughout the development process in
an iterative model.
[Link] a template for a requirements specification document for a generic e-
commerce website.
[Link] the concepts of prototyping and user feedback into a coherent
development strategy for a new mobile app.
VI. Evaluation
Judging the value of information or methods.
[Link] the suitability of the waterfall model for developing a small, well-defined
accounting system.
[Link] why the iterative model might be preferred over RAD for a government security
system.
[Link] the statement: "All programs can be totally error-free."
[Link] the RAD model for its reliance on highly skilled developers. Is this a major
limitation?
[Link] the long-term maintainability of software developed using waterfall versus
iterative methodologies.
[Link] or challenge the idea that testing should be integrated into every stage of
development, not just as a separate phase.
1. Analysis, design, coding, testing, maintenance
2. To investigate the issues and plan the solution
3. Waterfall, rad, iterative
4. Specification what software must do and how it should behave
5. Implementation
6. Bottom-up, top-down
7. Rapid application development
8. More work is required on the previous stage to complete it
9. Breaking hard problem into smaller ones
10. Because there is no perfect code and it always can be upgraded, sometimes software
must be updated with new features or to the new environment
11. In waterfall developers implement one part, for example analysis and after it they
continue working on the next part, while iterative development splits problems into
smaller ones and works on each problem separately
12. beta/alpha/mvp of the product
13. To understand which data structures you are going to use
14. Run-time or syntax error is occurred
15. Because it may work with basic circumstances but not with rare circumstances which
were not tested before
16. input , calculation, output
17.
start
input
yes no
Number ==
Number > 0?
yes
no
Output Output
equals Output
end
18. Dart, for cross-platform mobile development
19.
identifier type
students array<object>
name string
grade int
20. Input validation
21. Simple ui
22. Bottom-up: start with sub-problems and build software based on this. Top-down: split
hard problems into smaller ones, represent it with pseudocode, flowcharts, charts
23. Benefits: every error is found on closest steps, simple to understand every stage.
Drawbacks: mvp will not be available on early life-cycle, hard to represent complex
projects
24. Rad is not based on planning every decision is made during the life-cycle increasing
speed of the development but may decrease the accuracy. While waterfall is planned
for every stage increasing the accuracy but decreasing the speed
25. Unit testing - testing with programming functions, beta testing - testing with user-
feedback, alpha testing - testing with feedback from testers, integration testing -
testing every module separately and then join module to test how they work together
26. Developers won't represent critical functions or use required approaches for solutions
27. It allows to see the progress of development, program parallel testing, results are
obtained earlier
28. Break the whole project into sub-problems and apply waterfall into each one
29. Stages: analysis, design, coding, testing, maintenance. Methodologies: waterfall or
rad. Tools: python for scripts, postgresql for storing data
30.
31. Provide beta-product so end-users can test it before and share feedback with
developers
32. Login, product catalog, search, shopping cart, payment
33. Create basic ui for core features, share beta-version with end-users, get feedback
from users and repeat the cycle until users won't be satisfied with result
34. The waterfall will perform the best as requirements are clear, and unlikely to change.
35. Because RAD model does not depend on the planning it is just freestyle, while
government security system must be well-defined and tested, while iterative allows
government to see results throughout the stages and change the functionality of the
software if it is needed
36. Developers could not predict every circumstance and make the program work with
every environment, even with careful testing and designing, there might be bugs due
to human errors. Small programs may be error-free while complex systems will have
defects
37. It mostly depends on high skilled developers, it is a major limitation as not all
organizations have access to such developers and less skilled developers may
struggle to meet rad`s speed and demands, also it depends on user involvement
throughout the processes and product must be suitable for this model.
38. Waterfall offer better maintenance for stable and well-defined software, while iterative
require careful practices to ensure long-term maintenance
39. For hard projects it must be integrated into every stage of development, while for
small projects it won't benefit the product but decrease the speed of development.
For example TDD for complex software will increase the accuracy of the software and
decrease error rate in the code, while for small project it will just add overhead without
benefits