1.2.3 Software Development.
03 December 2024 12:19
Elements of software development
Feasibility study
To determine if a project is likely to be successful. First step to address issues making the project unviable or set the
project aside until it can be completed.
Reasons why a project may fail:
• Not economically feasible: budget is not big enough / cost of project is too high compared to the benefits.
• Not legally feasible: break laws on data protection / privacy.
• Not technically feasible: overly ambitious and go beyond what current hardware/algorithms can achieve.
Requirement specification
Requirements - what the end user needs the final system to be able to do.
Should be easily understandable and measurable.
Testing
Destructive testing -try to cause the program to crash / behave unexpectedly.
Black-box testing - not how it works, checks an input produces the expected output.
White-box testing - testing algorithms/functions work expectedly, identify test all paths, checks code efficiency.
Alpha testing - project used within the company by people who haven't worked on the project.
Beta testing - small group of users outside the company use the software.
Acceptance testing -user tests the program against every requirement in the requirement specification.
Methodologies
Waterfall
Suited for large-scale, less complex projects.
Advantages:
☺ Simple
☺ Clear responsibilities at each stage
☺ Clear outputs at each stage
☺ Easy to see if on time
☺ Clear deliverables
☺ Easy to manage
Disadvantages:
Risky
User only sees something tangible at the test stage
If requirements are misunderstood it can be costly to rectify it.
Rapid Application Development (RAD)
Uses prototypes, allows the end user to see part of the system early on.
Computer Science Page 1
03 December 2024 12:19
Elements of software development
Feasibility study
To determine if a project is likely to be successful. First step to address issues making the project unviable or set the
project aside until it can be completed.
Reasons why a project may fail:
• Not economically feasible: budget is not big enough / cost of project is too high compared to the benefits.
• Not legally feasible: break laws on data protection / privacy.
• Not technically feasible: overly ambitious and go beyond what current hardware/algorithms can achieve.
Requirement specification
Requirements - what the end user needs the final system to be able to do.
Should be easily understandable and measurable.
Testing
Destructive testing -try to cause the program to crash / behave unexpectedly.
Black-box testing - not how it works, checks an input produces the expected output.
White-box testing - testing algorithms/functions work expectedly, identify test all paths, checks code efficiency.
Alpha testing - project used within the company by people who haven't worked on the project.
Beta testing - small group of users outside the company use the software.
Acceptance testing -user tests the program against every requirement in the requirement specification.
Methodologies
Waterfall
Suited for large-scale, less complex projects.
Advantages:
☺ Simple
☺ Clear responsibilities at each stage
☺ Clear outputs at each stage
☺ Easy to see if on time
☺ Clear deliverables
☺ Easy to manage
Disadvantages:
Risky
User only sees something tangible at the test stage
If requirements are misunderstood it can be costly to rectify it.
Rapid Application Development (RAD)
Uses prototypes, allows the end user to see part of the system early on.
Computer Science Page 1