1.2.3 software development Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

identify common stages of software development life cycles

A

Analysis
Design
Development,
Testing,
Implementation
Evaluation
maintenance

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

define an algorithm

A

a set of instructions used to solve a problem

All good algorithms have certain key qualities which are highlighted below:
- Inputs must be clearly defined - what is valid and what is invalid?
- Must always produce a valid output for any defined input
- Must be able to deal with invalid inputs
- Must always reach a stopping condition
- Must be well-documented for reference
- Must be well-commented so modifications can easily be made

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

Analysis

A

Stakeholders state what their requirements which are used to define the problem and the system requirements. Requirements may be decided by:
- Analysing strengths and weaknesses of current solution
- Considering inputs, outputs, stored data and amount of data
involved

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

Design

A

The different aspects of the new system are designed, such as:
- Inputs: volume, methods, frequency
- Outputs: volume, methods, frequency
- Security features: level required, access levels
- Hardware set-up: compatibility
- User interface: menus, accessibility, navigation

A test plan may also be designed at this stage.

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

Development

A

The design from the previous stage is used to split the project into individual, self-contained modules, which are allocated to teams for programming.

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

Testing

A

The program is tested against the test plan formed in the Design stage. There are various types of testing that can be carried out:
-Alpha testing -
-Beta testing
-White box testing
-Black box testing

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

Alpha testing

A

Alpha testing is carried out in-house by the software
development teams within the company. Bugs are pinpointed
and fixed.

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

Beta testing

A

Beta testing is carried out by end-users after alpha testing has
been completed. Feedback from users is used to inform the
next stage of development.

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

White box testing

A

This is carried out by software development teams in which the
internal structure of the program is known. All of the possible
routes through the program are tested.

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

Black box testing

A

Software is tested without testers being aware of the internal
structure of the software. The test plan traces through inputs
and outputs within the software.

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

Implementation

A

Once the software has been tested and reviewed, it is installed onto the users’ systems.

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

Evaluation

A

The effectiveness of the software is evaluated against the system
requirements. Different criteria are considered, including robustness,
reliability, portability and maintainability

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

Maintenance

A

Any errors or improvements that could be made to the software are flagged up by the end-users. Programmers will regularly send out software updates to fix any bugs, security issues or make any necessary improvements.

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

waterfall cycle

A

The traditional waterfall model of software development is widely
recognised and is based on a series of stages which are completed in
sequence, from start to finish. The analysis stage includes a feasibility study in which designers evaluate the feasibility of the project.
- Technical
- Economic
- Legal
- Operational
- Scheduling

If a change needs to be made within a project being developed using the waterfall model, programmers must revisit all levels between the current stage and the stage at which a change needs to be made. Users have little input as they are only involved at the very beginning and end of the waterfall lifecycle, during the analysis and evaluation stage.

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

Agile methodologies

A

-This refers to a collection of methodologies which aim to improve the flexibility of software development and adapt to changes in user
requirements faster.
-The problem is broken down into sections which are developed in parallel.
-A working prototype is delivered early on and prototypes are built upon and improved in an iterative manner so that new prototypes are delivered regularly throughout the course of the development cycle.
-In agile development methodologies, there is less of a focus on documentation and more priority is given to user satisfaction

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

Extreme programming

A

-This is an agile model in which the development team consists of a pair of programmers alongside a representative end-user

-Paired programming produces high-quality code and programmers work no longer than forty hours a week.

-The iterative development means that it is hard to produce high quality documentation.

17
Q

Rapid application development

A

-RAD is an iterative methodology which uses partially functioning prototypes which are continually built-upon.

  • User requirements are initially gathered using focus groups and
    used to develop an ‘incomplete’ version of the solution which is given to the user to trial.

-User feedback is then used to generate the next, improved prototype and this continues until the prototype matches the requirements of the end-users at which point it becomes the final product.

-This is commonly used where user requirements are incomplete or unclear at the start. However, as requirements change over the course of the project, additions and changes made to the code may be inefficient.

18
Q

Spiral model

A

The spiral model is built on four key stages
with the focus of effectively managing risk-heavy projects:

  • Analysing system requirements
  • Pinpointing and mitigating risks
  • Development, testing and
    implementation
  • Evaluating to inform the next iteration
    If the project is found to be too risky at any point, the project is terminated. However hiring risk assessors to analyse the risks involved can be expensive, which makes this methodology suited to only very large-scale projects
19
Q

waterfall pros and cons

A

pros:
- Straightforward to manage
- Clearly documented

cons:
- Lack of flexibility
- No risk analysis
- Limited user involvement

uses:
Static, low-risk projects which need little user input, such as a piece of
general-purpose software

20
Q

Agile

A

pros:
- Produces high quality code
- Flexible to changing requirements
- Regular user input

cons:
- Poor documentation
- Requires consistent interaction between user and programmer

uses:
Small to medium projects with unclear initial requirements.

21
Q

Extreme Programming

A

pros:
- Produces high quality code
- Constant user involvement means high usability

cons:
- High cost of two people working on one project
- Teamwork is essential
- End-user may not be able to be present

uses:
Small to medium projects with unclear initial requirements requiring excellent usability.

22
Q

Spiral

A

pros:
- Thorough risk-analysis and mitigation
- Caters to changing user needs
- Produces prototypes throughout

cons:
- Expensive to hire risk assessors
- Lack of focus on code efficiency
- High costs due to constant prototyping

uses:
Large, risk-intensive projects with a high budget.

23
Q

Rapid Application Development

A

pros:
- Caters to changing user requirements
- Highly usable finished product
- Focus on core features, reducing development time

cons:
- Poorer quality documentation
- Fast pace may reduce code quality

uses:
Small to medium, low-budget projects with short time-frames.