Software Development Flashcards

1
Q

What 7 stages should be completed when developing a new application?

A
  1. Feasibility study
  2. Requirements analysis
  3. Design
  4. Development
  5. Testing
  6. Documentation
  7. Review/sign off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explain the first stage that should be taken when developing a new application

A

Feasibility study = determines whether the project is likely to be possible, worthwhile, cost-effective and legal. If any of these outcomes are missing the project should be avoided

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

Explain the second stage that should be taken when developing a new application

A

Requirements Analysis = The users requirements for the project most be ascertained to ensure the developers understand exactly what the user wants from the software. A checklist of requirements is created which forms the basis of the design, development and testing of the software

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

Explain the third stage that should be taken when developing a new application

A

Design = Project must be planned before coding. Modules, functions and procedures are planned in advance. UI designs are created, algorithms are developed and tested and database and file structures are decided

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

Explain the fourth stage that should be taken when developing a new application

A

Development = Once design has been finalised, development can begin. Team of programmers working on Separate modules which are then combined to create the finished program

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

Explain the fifth stage that should be taken when developing a new application

A

Testing = software is tested throughout development to ensure it does what it’s supposed to. Entire system will be tested as a whole once all modules are put together. Any bugs are passed back to developers to fix

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

Explain the sixth stage that should be taken when developing a new application

A

Documentation = detailed user guide and instructions may be required to installation, usage and trouble-shooting of finished software. Code should also be fully documented and commented to ensure it can be maintained in the future

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

Explain the seventh stage that should be taken when developing a new application

A

-Review/sign off = Once testing is complete the end user will test the software to ensure it works on their hardware. When the user is happy that all requirements have been met the project can be signed off as complete. Maintenance contract may also be in place

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

What is the waterfall lifecycle?

A
  • only advance to the next stage once the previous stage is complete
  • You can also go up the waterfall if a previous stage needs altering
  • Stages in order = requirements, analysis, design, coding, testing and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

+/- of waterfall lifecycle

A

+simple therefore easy to manage
+Everyone knows what they are doing at each stage
+As there is an expected output it is clear to see whether or not a project is running to schedule
+suitable for large scale projects
-High risk as it isn’t until the end stage that the user sees proper software therefore if requirements have not been met it will be hard and expensive to go all the way back and alter it
-Only suitable for straightforward tasks

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

What are agile methodologies? +/-

A

-Refers to collection of different software development methods which are designed to cope with evolving project requirements and solutions
-iterative and allows projects to be flexible by adapting to changing requirements.
-Produced in versions each building on the previous and each increasing the requirements it meets. User can see software early on and ask for adaptations to be made
+Shorter development times and end product will meet exact requirements of user
+Good for complex tasks

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

What is pair programming?

A
  • Two programmers work together on a single workstation
  • The “driver” writes the code wh silt they “navigator” reviews each line of code as it is types and considers the strategic direction of the code
  • Roles are frequently switched
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is extreme programming?

A
  • Type of agile software dev in which the focus is on the programming
  • Purpose is to improve the quality of the software and be more responsive to changing customer requirements
  • Iterative process in which user is heavily involved. Iterations are very short with frequency checkpoints to allow additional user requirements. Each iteration produces a full version of the system that can be used in final product
  • Requirements are drip fed to developers rather than being dumped onto them which makes process more flexible
  • Example of pair programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

+/- of extreme programming

A
\+cost effective
\+less dependent on individuals 
\+robust solutions 
\+Meets exact requirements
-requires constant end see involvement 
-no quality assurance of coding
-code-centred means often poorly documented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the spiral model?

A
  • Similar to the waterfall model but places a greater emphasis on risk analysis
  • Consists of four iterative phases; planning, risk analysis, engineering and evaluation
  • Software project repeatedly passes through these phases in iterations
  • Used when cost and risk evaluation is important. If the project is very risky or when there are potential changes to economic priorities. Also used when user is unsure of needs or requirements are complex
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explain each phase of the spiral model

A
  • Planning = user requirements gathered and approach on how to meet them is decided
  • Risk analysis = possible risks are identified and alternate solutions are addressed. Prototypes are produced, if any risks are found alternative solutions are suggested and implemented
  • Product development = software development and testing
  • Evaluation = End user evaluation of the project so far. Plan next iteration of product
17
Q

+/- of spiral model

A

+reduced risk due to high amount of risk analysis
+suitable for large and mission-critical projects
+good documentation control
+additional functionality can be added at a later date
+software is produced early in the software life cycle
-can be costly
-risk analysis requires highly specific expertise
-projects success is dependent on the risk analysis
-not suitable for smaller projects

18
Q

What is Rapid Application Development?

A

-Method of designing and writing software that includes producing successive prototype versions of the software until the final version is produced
-fits closely with spiral model
-Three steps are repeated with each cycle lasting 1-3 weeks (longer than XP).
The steps are; produce prototype with reduced functionality, reviewed by end user who may suggest changes and improved prototype is created & reviewed

19
Q

+/- of RAD?

A

+End user involvement in development process allows for flexibility/changes in user requirements
+prototyping means tangible products can be seen at early stages of the project
+length of dev time is shorter than waterfall model
-not efficient when dealing with very large scale projects
-focuses on end result rather than processing thus producing solution which may be inefficient.
-Client may keep changing their minds on what they want product to do

20
Q

What is black box testing?

A
  • Different sets of input data are tested to see if they produce the expected output. Not concerned about what is happening within the code
  • sets of test data are carefully chosen to represent all possible scenarios. Valid, invalid and borderline data
21
Q

What is white box testing?

A
  • Algorithm in the code is tested to check that all parts of the code work as intended
  • Every possible route or path of execution through the program Is identified and tested
22
Q

What is alpha testing?

A
  • Testing carried out by a restricted group within the company acting as though they were potential users
  • Any bugs found are reported and fixed quickly
23
Q

What is beta testing?

A
  • Program is nearly complete and is realised to potential users outside the company to test it in normal operating conditions
  • If there are still any bugs which the programs had not anticipated these are reported to the company
24
Q

What is acceptance testing?

A
  • Program is now complete and it is demod to the end user. The purpose is to show that it works correctly and all desired features are implemented
  • The program is tested against the requirements which were agreed between the end user and the programmers