Chapter 11 Software Development Flashcards

Methods used to develop software on a big or small scale. Also there is a small focus on testing,prototyping and cycle stages.

1
Q

What is software developement?

A

The process of encompassing the entire project, covering reasons for developement, audience and functionality.

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

What do you need to know before tackling software developement.

A

The client objectives, the stakeholders, services and constrains(functionality goals), expectation of quality and expectiation of time and budget.

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

What is a prototype?

A

Prototype is a version of a system that lacks full functionality, but shows feature implementation

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

What does a prototype give us ?

A

A prototype means the target audience gets a look and feel and can therefore make comments and suggest improvements to better fit the specification

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

What are the 2 methods of prototyping ?

A

Piloting and Modelling

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

What does piloting mean ?

A

Using a prototype to test the feasibility of desing proporsal or requirement

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

What does modelling mean ?

A

Built in order to develop further understanding of requirements.

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

What types of prototypes is there?

A

THROWAWAY OR EVOLUTIONARY

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

What is throwaway prototype?

A

A prototype where only knowledge gained from it is used.

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

What is an evolutionary prototype ?

A

A prototype that is actually a system under developemtn which keeps getting closer to solution.

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

What is a waterfall life cycle?

A

A method of development which consists of a sequence of stages/milestones. The project is being completed by flowing down those stages, where the next stage can only be entered once previous has been completed.

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

Stages of the waterfall method?

A
Determine requirements  
Analysis 
Design 
Coding 
Testing 
Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the advantages of the waterfall cycle?

A

Simple and easy to manage
Everyone can be clear on responsibilities and output is expected at each stage
Clear to see if project is on time / forces plannning

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

Disadvantages of the waterfall method?

A

Only at the testing stage problems willl show up
Misunderstanding the requirements may lead to issues which have to rectified once money has already been spent
Cant be adapted and cannot go back on stages

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

What kind of projects suit the waterfall method ?

A

Simpler projects which have clear requirements. It is also best if the projects have a fixed scope and fixed price.

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

What does RAD stand for ?

A

Rapid Application Developement

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

What is RAD.

A

A software developemtn process which relies heavily on programming and doesnt go much into the requirements or planning. It consists of cycles of prototyping+evaluation until functionality is validated by user.

18
Q

Advantages of RAD.

A

Requirements or goals do not have to be fully clear

With constant and good feedback teh prtoduct is likely to have excellent functionality.

19
Q

Disadvantages of RAD.

A

Very hard to accomplish if the user isnt commited to giving feedback.
Chance of havaing limited features since the application is pushed to the latest version for release.
Reduced scalability

20
Q

What kind of projects is RAD best suited for?

A

Projects with unclear requirements and qucik completion time.

21
Q

What is the spiral method ?

A

Often called an extension of the waterfall method, however it is designed so that risks are evaluated and reviewed regularly. It consists of 3 stages.

22
Q

What are the three stages of the spiral method and what happens in each?

A

IDENTIFICATION - requirements are determined for the following rotation, chosen based on risks
DESIGN - risks are identified a nd alternatives are presented after a prototype is made( usually )
BUILD - a prototype with original requirement is made

23
Q

Advanatges of the spiral method ?

A

Ideal for projects with high risks.

Strong approval and documentation control

24
Q

Disadvantages of the spiral model?

A

Risk analysis is only as good as the person who does it
Can be very costly
Doesnt work well on smalller projects
May continue idefinitely

25
Q

What is agile development ?

A

A group of methodologies, designed to cope with changing requirements. Teams produce software which is produced in an iterative manner, where improvements are built upon previous versions.It means the client gets to see results sooner and is able to provide adaptive feedback to fully meet objective.

26
Q

What is SCRUM?

A

Scrum is an agile framework for managing knowledge work, with an emphasis on software development. It is designed for teams of three to nine members, who break their work into actions that can be completed within timeboxed iterations, called “sprints”, no longer than one month and most commonly two weeks, then track progress and re-plan in 15-minute stand-up meetings, called daily scrums.

27
Q

Advantages of agile development ?

A

Software is deployed quicker,so customer can get value
Less resources are wasted since it is always up to date
You can adapt to changes bettter
Immediate feedback
Low costs
Issues are detected earlier and fixed

28
Q

Disadvantages of agile development?

A

Difficult to measure progress with all those cycles
Requires a lot of employee energy since constant communication is required.
No clear end
No overall design
No fixed cost
Bigger features are avoided since they dont fit the cycles
With time the software can become disjointed

29
Q

What is extreme programming ?

A

A methodology where a client or their representative becomes part of the team to decide ‘user stories’, decide tests and answer questions.It is an agile method where the focus is upon the code.

30
Q

How does extreme programming work ?

A

It has iterations where a program is coded,tested and imporved repeatedly. This is done in pairs and under strict standarts to ensure quality

31
Q

Advantages of extreme programming ?

A

Quality of code is likely to be very high
Can be adapted t changing requirements
Makes development simple and fast

32
Q

Disadvantages of extreme programming ?

A

Programmmers must be able to collabrate together and be near each other
Client needs to stay commited

33
Q

What are the three types of errors?

A

SYNTAX
LOGIC
RUN-TIME

34
Q

What is a syntax error?

A

An error occurring when a statement breas the rules of the programming language, which makes it impossible to understand for the machine

35
Q

What is a logic error ?

A

An error which is a mistake in the algorithm leding the function to do something that wasnt intended by the user. This can only be seen after execution

36
Q

What is a run-time error?

A

An error occurring due to an unexpected situation with the data being processed or another factor, which causes the program to crash during execution.This si split into OVERFLOW,STAKC OVERFLOW and LIBRARY.

37
Q

What is OVERFLOW?

A

A variable is too big to store

38
Q

What is STACK OVERFLOW?

A

Not enough space to store operations

39
Q

What is LIBRARY error?

A

No library implemented

40
Q

What are the types of testing we have to know about?

A
  • Alpha
  • Beta
  • Unit
  • Integration
  • White Box
  • Black Box
  • Destructive
41
Q

What is testing?

A

An action which ensures lack of errors in the program.