2.2: Problem Solving and Programming Flashcards

1
Q

What is meant by software development methodology?

A
  • The arrangement of phases and how programmers move from one phase to another - both forwards and backwards
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is meant by the term ‘SDLC’?

A
  • Software Development Lifecycle
  • Phases of software development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the stages of the SDLC?

A
  • Feasibility
  • Requirements
  • Analysis and design
  • Implementation
  • Testing
  • Deployment
  • Evaluation
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What happens during the feasibility stage?

A

Figuring out if the problem is solvable

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

What happens during the requirements stage?

A

Working out what the solution needs to do

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

What happens during the analysis and design stage?

A

Working out how the solution needs to do it

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

What happens during the implementation stage?

A

The solution is coded

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

What happens during the testing stage?

A

Checking if it actually works

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

What happens during the deployment stage?

A

Installing the program in the target environment

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

What happens during the evaluation stage?

A

Checking in with the user - is the solution complete?

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

What happens during the maintenance stage?

A

Ensuring it continues to function properly by the way of improvements, patches and updates

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

What are the 5 types of development methodologies?

A
  • Waterfall
  • RAD
  • Spiral
  • Agile
  • Extreme programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe the waterfall methodology.

A
  • It has a cascading effect from one phase to another
  • Each phase has a well defined start and end point with identifiable deliverables
  • A slight evolution of the waterfall model allows you to move back to a previous stage as well as forwards - this reflects the fact that developers often have to rework earlier stages in light of knowledge gained as development progresses
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Describe the RAD methodology.

A
  • Methodology that involves producing successive prototypes of the software until a final version is produced and approved
  • Following the initial approval of a feasible program, increasingly refined prototypes are made with reduced functionality
  • These are designed, coded, test and evaluated with the end user
  • Your user might decide they are happy with the system or that they want further improvements, which will start a new cycle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe the Spiral model methodology.

A
  • Risk-driven development methodology.
  • The spiral model is more of a guide for development teams, allowing them to adopt elements of one or more other methodologies like waterfall or RAD
  • This model is better thought of as a process model generator, where decisions on the software development methodology are made based on the risks identified
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe the agile methodology.

A
  • Refers to a group of methodologies
    -These methodologies focus on the idea that requirements will shift and change during development - this can only be dealt with by producing software in an iterative way
  • They are a more refined form of older concepts behind RAD
  • The product is built in a series of iterations known as sprints
  • These are short, time-boxed periods when a team has focused goals to complete a set amount of work
  • Each sprint should ideally be a bite-sized piece of focused work, taking no longer than one to four weeks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Describe the extreme programming methodology.

A
  • Aims to produce very high quality code
  • Encourages developers to adopt a set of common practices that focus on the values of:
    • Simplicity
    • Communication
    • Feedback
    • Courage
    • Respect
  • It is considered an agile framework as it encourages regular, small, iterative software releases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are the 5 core practices that are considered to boost the overall quality of completed solutions for a project?

A
  • Collective code ownership
  • Continuous integration
  • Code standards
  • Refactoring
  • Paired programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are some advantages of the waterfall model?

A
  • Simplicity makes it easy to manage
  • Everyone on the project is very clear on their responsibilities at each stage
  • Clear deliverables
  • Easy to see if a project is running to schedule
20
Q

What are some disadvantages of the waterfall model?

A
  • Carries a lot of risk
  • The user doesn’t get to see the product for the first time until the project is near its end
  • Misunderstanding requirements can lead to a project that is not easy to fix
  • Requirements must be very well understood, so this model is not suitable for complex projects
21
Q

Where would a waterfall model likely be used?

A
  • Large-scale development projects assuming they are well-understood and carry little risk
22
Q

What are some advantages of RAD?

A
  • Requirements don’t need to be entirely clear from the start
  • Focus groups involving the user can be used to gather requirements without the need for full formal requirements document upfront
  • Continuous feedback from the client means the solution is likely to have excellent usability
23
Q

What are some disadvantages of RAD?

A
  • Focus on usability rather than how the product works - not suited for projects where code efficiency is very important
  • Regular contact with client must be maintained at all times
  • Scales poorly for large projects with big teams
24
Q

What types of projects would RAD work well in and why?

A
  • Projects were the initial requirements are not fully understood, as the iterative nature prevents development from becoming side tracked
25
Q

What are the advantages of the spiral model?

A
  • Risk management is at the heart of this model
  • Excellent for projects that contain a high level of risk
26
Q

What are the disadvantages of the spiral model?

A
  • Complex nature of risk analysis increases costs- risk management is a highly specialised skill
  • If risk analysis is done badly, the project suffers
27
Q

What projects would a spiral model be suitable for?

A
  • Large-scale problems and those that involve a high degree of risk, especially where the user doesn’t fully understand their requirements upfront
28
Q

What are the advantages of agile and extreme programming?

A
  • Emphasised programming, so the quality of end code is likely to be very high
  • Core principles and processes promote respect and collaboration, leading to a very productive development team
29
Q

What are the disadvantages of agile and extreme programming?

A
  • Requires a team of programmers working in close collaboration - unlikely to work well if the team is widely distributed geographically
  • Client must be able to commit to having a fulltime representative working with the development team
  • Some of the processes involved in extreme programming such as paired programming can be quite costly
30
Q

What type of projects would agile and extreme programming be suitable for?

A
  • If the project has an emphasis on the quality of finished code, then those 2 strategies are ideal
31
Q

What is the flowchart symbol for a terminal (Start/Stop)?

A
  • A circle
32
Q

What is the flowchart symbol for a process?

A
  • A rectangle
33
Q

What is the flowchart symbol for a decision?

A
  • A rhombus
34
Q

What is the flowchart symbol for Input/Output?

A
  • A paralelogram
35
Q

What is the flowchart symbol for a subroutine?

A
  • A rectangle with 2 diagonal lines
36
Q

What are the 4 most common testing strategies?

A
  • Black-box testing
  • White-box testing
  • Alpha testing
  • Beta testing
37
Q

What is black-box testing?

A
  • Simply checks whether an input produces the expected output
  • Code efficiency is not important as long as inputs return the desired outputs
  • Ideally, every possible input should be checked during this method of testing, however it is often not feasible
38
Q

What is white-box testing?

A
  • Involves testing the algorithms in the code and making sure all parts of those algorithms function as intended.
  • On each test run, the path of execution is noted so it can be compared with other runs
  • Identifies and tests all the possible paths of execution through a program
  • Also checks the overall efficiency of the code
39
Q

What is alpha and beta testing?

A
  • Carried out when software is nearly ready for release and can be tested as a complete solution
  • They apply especially to commercial software such as computer games
40
Q

What is the difference between alpha and beta testing?

A
  • Alpha testing typically occurs first and is limited to internal employees and their friends and families
  • Beta testing is usually opened up to a wider community and is usually done through a public beta program
41
Q

What are the 4 types of test data?

A
  • No data
  • Erroneous data
  • Normal data
  • Boundary data
42
Q

What is ‘no data’ test data used for?

A
  • Checks whether the user enters no data
43
Q

What is ‘erroneous’ test data?

A
  • Data that should be rejected by the program
44
Q

What is ‘normal’ test data?

A
  • Data that should be accepted by the program without causing errors
45
Q

What is ‘boundary’ test data?

A
  • Data of the correct type that is on either edge of the accepted validation limits