Unit 3 Software Development Flashcards

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

Analysis

A

Stakeholders​ state what they require from the finished product. This information is used to​ clearly define the problem​ and the ​system requirements​. Requirements may be defined by:

  • Analysing strengths and weaknesses with current way this problem is being solved
  • Considering types of data involved including inputs, outputs, stored data and amount of data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
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
3
Q

Development and testing

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
4
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
5
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
6
Q

White box testing

A

This is a form of testing ​carried out by software development teams​ in which the test plan is based on the ​internal structure of the program​. 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
7
Q

Black box testing

A

This is a form of testing where the software is tested​ without the testers being aware of the internal structure​ of the software and can be carried out both within the company and by end-users. 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
8
Q

Implementation

A

Once the testing stage has been used to make the appropriate changes to the software, it is ​installed onto the users’ systems​.

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

Evaluation

A

After the implementation stage, the ​effectiveness of the software​ is evaluated against the system requirements​ defined at the analysis stage to evaluate its suitability in solving the problem. 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
10
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 needed improvements.

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

Waterfall lifecycle

A

The waterfall model 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 using ‘​TELOS​’: 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. This makes the model ​inflexible ​and so unsuitable to projects with changing requirements. This also means that ​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
12
Q

Agile methodologies

A

The problem is broken down into ​sections which are developed in parallel.​ The design and analysis phase often occur together. Different sections of software can be at ​different stages of development​. 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
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​. The model is built on ‘​user stories​’: system requirements are specified by the end-user and used when designing the program. The aim of paired programming is to produce ​high-quality code​, as the code is written by one person and critiqued by the other so is improved as it is written. Programmers work ​no longer than forty hours a week ​with the aim that quality is not compromised. Each iteration through the cycle generates what is called a ‘​working version​’ of the program which means it could function as the final product.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
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​.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
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.

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

Algorithm

A

An algorithm is a ​set of instructions used to solve a problem​. They are core to computer science and can be used to tackle a wide range of problems

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

Programming paradigms

A

Programming paradigms are different ​approaches to using a programming language to solve a problem​. They are split into two broad categories - imperative and declarative - which can be broken down further into more specific paradigms. The imperative programming paradigm includes the procedural and object-oriented paradigms while the declarative paradigm is split into logic and functional paradigms. The paradigm used ​depends on the type of problem​ that needs solving.

18
Q

Imperative

A

Imperative programming paradigms use code that ​clearly specifies the actions to be performed​.

19
Q

Procedural

A

Procedural programming is one of the most widely-used paradigms as it can be ​applied to a wide range of problems and is relatively ​easy to write and interpret​. This is a type of imperative programming which uses a ​sequence of instructions​ which may be contained within procedures. These instructions are carried out in a ​step-by-step manner​.
Examples: ​Pascal, Python, Logo

20
Q

Object-oriented

A

Object-oriented programming (referred to as OOP) is another popular paradigm as it is applicable to certain types of problem with lots of reusable components which have similar characteristics. OOP is built on entities called ​objects formed from classes​ which have certain ​attributes and methods​. OOP focuses on making programs that are ​reusable​ and easy to update and maintain​.
Examples: ​Python, Delphi, Java

21
Q

Declarative

A

Declarative programming focuses on ​stating the desired result​ rather than the exact series of instructions that need to be performed to get to the result. It is the role of the programming language to determine how best to obtain the result and the details about ​how it is obtained are abstracted from the user​. This type of programming is common in expert systems ​and ​artificial intelligence.

22
Q

Functional

A

Functional programming uses the concept of ​reusing a set of functions​, which form the core of the program. Programs are made up of lines of code consisting of​ function calls​, often combined within each other. Functional programming is​ closely linked to mathematics​.
Examples: ​Haskell, C#, Java

23
Q

Logic

A

Logic languages are also part of the declarative programming paradigm and use code which defines a ​set of facts and rules​ based on the problem. ​Queries ​are used to find answers to problems.
Example: ​Prolog

24
Q

Procedural language

A

Procedural programming is used for a wide range of software development as it is very simple to implement​. However, it is​ not possible to solve all kinds of problems ​with procedural languages or it ​may be inefficient​ to do so.
Procedural languages ​use traditional data types​ such as integers and strings which are built into the language and also ​provide data structures​ like dictionaries and arrays.

25
Q

Structured programming

A

Structured programming​ is a popular subsection of procedural programming in which the control flow ​is ​given by four main programming structures​:
- Sequence
Code is executed ​line-by-line​, from top to bottom.
- Selection
A certain block of code is run ​if a specific condition is met​, using IF statements.
- Iteration
A block of code is executed a ​certain number of times​ or​ while a condition is met​. Iteration uses FOR, WHILE or REPEAT UNTIL loops.
- Recursion
Functions are ​expressed in terms of themselves​. Functions are executed, calling themselves, until a certain condition known as a​ base case ​(which does not call the function) is met.

26
Q

Assembly language

A

Assembly language is the ​next level up from machine code and is part of a family of low level languages. This is converted to machine code using an assembler​ when it is executed.
Assembly language ​uses mnemonics​ rather than binary, which makes it ​easier to use​ than direct machine code.
Each mnemonic is ​represented by a numeric code​.
However, the commands that assembly language uses are ​processor-specific​ as it directly interacts with the CPU’s special purpose registers. This allows for direct interaction with hardware so is useful in embedded systems. Typically, each instruction in assembly language is equivalent to almost one line of machine code.

27
Q

Mnemonic, Instruction

A
ADD Add
 SUB Subtract
 STA Store
 LDA Load
 INP Input
 OUT Output
 HLT Halt
 DAT Data
 BRZ Branch if zero
 BRP Branch if positive 
 BRA Branch always
28
Q

ADD

A

Add the value at the given memory address to the value in the Accumulator

29
Q

SUB

A

Subtract the value at the given memory address from the value in the Accumulator

30
Q

STA

A

Store the value in the Accumulator at the given memory address

31
Q

LDA

A

Load the value at the given memory address into the Accumulator

32
Q

INP

A

Allows the user to input a value which will be held in the Accumulator

33
Q

OUT

A

Prints the value currently held in the Accumulator

34
Q

HLT

A

Stops the program at that line, preventing the rest of the code from executing.

35
Q

DAT

A

Creates a flag with a label at which data is stored.

36
Q

BRZ

A

Branches to a given address if the value in the Accumulator is zero. This is a conditional branch.

37
Q

BRP

A

Branches to a given address if the value in the Accumulator is positive. This is a conditional branch.

38
Q

BRA

A

Branches to a given address no matter the value in the Accumulator. This is an unconditional branch.

39
Q

Immediate Addressing

A

The operand is the ​actual value​ upon which the instruction is to be performed, represented in binary,

40
Q

Direct Addressing

A

The operand ​gives the address which holds the value​ upon which the instruction is to be performed. Direct addressing is used in LMC.

41
Q

Indirect Addressing

A

The operand ​gives the address of a register which holds another address, where the data is located​.

42
Q

Indexed Addressing

A

An​ index register​ is used, which stores a certain value. The address of the operand is determined by ​adding the operand to the index register​. This is necessary to add an ​offset ​in order to ​access data stored contiguously​ in memory such as in ​arrays.