Software development (Unit 3) (Finished) Flashcards

1
Q

(3.1) What are the stages of software development?

A
Analysis
Design
Implementation (programming, testing and installation)
Evaluation
Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

(3.1) What happens in the analysis stage?

A

In this stage, a systems analyst gathersinformation about:
What the current system does (if there is one)
What the new system needs to do

To do this, the systems analyst may:
Interview people who will use the software
Use questionnaires to get information from large groups of people
Observe how the current system works
Look at existing documentation

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

(3.1) What is the output of analysis?

A

The systems analyst will produce a document called something like
“System Specification” or “User Requirements”

This defines what the system will do, but not how it will do it
The system specification is a vital document!
It is used to evaluate the finished product

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

(3.1) What happens in the design stage?

A

The software design will include:
A description of the data to be inputted and outputted: data type, format, and validations
Database or data storage design if appropriate
Input screen mock ups including things like drop down menus
Output screens and reports
How the data will be processed
How the software will be tested

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

(3.1) What happens in the implementation stage?

A

This stage includes:
Coding and testing the software
Writing documentation such as the manual
Installing the software on the appropriate device for the user

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

(3.1) What is black box testing?

A

Black box testing is carried out independently of the code used in the program
It looks at the program specification and creates a set of test data that covers all the inputs, outputs and program functions

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

(3.1) What is white box testing?

A

White box testing can be done if the testing team has access to the code and can see what is happening.

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

(3.1) What is alpha testing?

A

This is carried out by the software developer’s in-house team and by the user
It can reveal errors or omissions in the definition of the system requirements
The user may discover that the system does not do exactly what they wanted

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

(3.1) What is beta testing?

A

This is used when commercial software is being developed (e.g. MS Windows, MS Word, Sage Accounts, etc.)
The software is given to a number of potential users, who agree to use the software and report any faults

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

(3.1) What happens in the evaluation stage?

A

Does it all work?
The user/customer now needs to test every aspect of the software to make sure it does what it is supposed to do
It will be evaluated against the original specification document

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

(3.1) What are some different development methodologies?

A
Waterfall model
Spiral model
Agile model (extreme programming)
Rapid application development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

(3.1) What is the waterfall model?

A

each stage is completed and documented before the next is begun
The customer does not see the end product until it is completed
Any change to be made often means the project has to be started again

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

(3.1) What are some advantages of the waterfall model?

A

The model is simple to understand and use
Each stage is separate and self-contained with well defined outcomes and written documentation
This makes the project relatively straightforward to manage
The model works well for smaller projects where user requirements are very well understood and not likely to change

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

(3.1) What are some disadvantages of the waterfall model?

A

There is not much user involvement after the Analysis stage, when the system specification or user requirements document is agreed
No working software is produced until late in the cycle, hence no opportunity for the user to use the system
The user is presented with the finished product and if it is not quite what was required, it is generally too late to make changes

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

(3.1) When is the waterfall model used?

A
This model is suitable when:
The requirements are very clear and fixed
There are no ambiguous requirements
The technology is well understood
The project is short
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

(3.1) What is the spiral model?

A

The four basic steps of analysis, design, implementation (i.e. programming and testing) and evaluation are followed
The software project passes through these phases repeatedly
Each successive loop round the spiral generates a new, more refined/better quality prototype until the software meets all the requirements

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

(3.1) What are some advantages of the spiral model?

A

The well-defined steps make the project easy to manage
Software is produced at an early stage so problems and issues can be identified early
The user gives feedback on each prototype and any required changes can be made early in the process
Added functionality can be added during the process
The end result is more likely to be what the user wants and will pass acceptance testing

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

(3.1) What are some disadvantages of the spiral model?

A

The process of developing prototypes, getting feedback and refining the prototypes is time-consuming so the finished product takes longer to develop
A system is more costly to develop because of the time involved
Not suitable for smaller projects

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

(3.1) When is the spiral model used?

A

For medium to high-risk projects
When users are unsure of their needs and what the possibilities are
When the requirements are complex
For large projects which may take years to develop, during which time new technologies may develop and significant changes occur

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

(3.1) What is the agile model?

A

Software is developed in rapid incremental cycles
Each version builds on previous functionality
Each version is thoroughly tested before release
Good for small, time-critical projects
Limited planning is needed to get started

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

(3.1) What are some advantages of the agile model?

A

Rapid, continuous delivery of useful software leads to customer satisfaction
Customers, developers and testers constantly interact with one another
Working software is delivered frequently, within weeks rather than months
Software is easily adapted to changing circumstances
Even late changes in requirements can be implemented

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

(3.1) What are some disadvantages of the agile model?

A

There is a lack of emphasis on necessary design and documentation
The project can fail to deliver if the customer is not clear about the desired final outcome
Not suitable for novice programmers – experienced programmers capable of making good decisions are required

23
Q

(3.1) When is the agile model used?

A

When new changes need to be implemented – small incremental changes can be made frequently and for little cost
In an expanding or developing business where users’ needs are continuously changing and developing
This model assumes that the end users’ needs are ever changing in a dynamic business and IT world

24
Q

(3.1) What is extreme programming?

A

This is a type of agile software development
Frequent releases of the software are made in short development cycles
It is intended to improve productivity and responsiveness to changing customer requirements
Customer is embedded with the development team, which makes this methodology unique.

25
Q

(3.1) What is RAD? (rapid application development)

A

Workshops and focus groups gather requirements rather than using a formal document
Prototyping is used to continually refine the system in response to user feedback
Each part of the system is produced within a strict time limit – maybe not perfect, but good enough
Software components are reused whenever possible

26
Q

(3.2) What is an algorithm?

A

An algorithm is a set of instructions to solve a problem or complete some a specific task within a number of steps

27
Q

(3.2) What are some real world examples of algorithms?

A

ATM machine
a recipe
a pattern

28
Q

(3.2) What are some problems that can be solved by algorithms?

A

Routing problems- Routing packets of data around the Internet quickly and finding the shortest route for a salesman to cover his territory

Timetabling commercial aircraft crews so that they do not exceed their permitted flight hours

Searching information on the Internet or from a database

Encrypting communications so that they cannot be hacked

Sorting large amounts of data, like on a shopping website

Writing a compiler program to translate a high level language to machine code

29
Q

(3.2) What are some aspects of a good algorithm?

A

has clear and precisely stated steps that produce the correct output for any set of valid inputs
should deal for invalid inputs
must always terminate/end at some point
should perform the task efficiently, (in as few steps as possible)
should be designed in such a way that other people will be able to understand it and modify it if necessary

30
Q

(3.2) What is a sorting algorithm?

A

an algorithm that sorts through a set data to put it into a certain order

31
Q

(3.2) What are some types of sort algorithms?

A

Bubble sort
Insertion sort
merge sort

32
Q

(3.2) What is bubble sort?

A

Compares 2 values next to each other. if the first one should be ahead of the second, they swap
Each pass runs through the values once
A final pass is done to check the vlaues are in the right order

33
Q

(3.2) What are the two most common searching algorithms?

A

Linear search- starts at the beginning and works its way through
Binary search- uses “divide and conquer” to half the search area each time it examines a value
(can only be used on items in sorted order)

34
Q

(3.2) What are some features of a “good” program?

A
Using comments 
using standard variable names (all lowercase, CamelCaps, etc)
properly indented code
No unnecessary code
use a modular structure
35
Q

(3.2) What is an easy way of following an algorithm?

A

A trace table

36
Q

(3.2) What is a trace table?

A

a technique used to test algorithms in order to make sure that no logical errors occur while the calculations are being processed.

37
Q

(3.3) What are some different programming languages?

A
HTML- making websites
CSS- improving appearances of websites
SQL- database management
Python- multipurpose language 
C++- making video games
Java- making phone apps and other things
38
Q

(3.3) What is a programming paradigm?

A

A style or way of programming

39
Q

(3.3) What are the 3 important programming paradigms?

A
Procedural programming (can make functions)
Supported by Python, Basic, Pascal, C#

Object-oriented programming (can make classes)
Supported by Java, C++, Visual Basic.NET, Python

Declarative programming (Sequential code)
Supported by SQL, Prolog

(Functional programming + Event driven + Imperative (not on the spec.))

40
Q

(3.3) What is procedural programming?

A

A programming paradigm based upon the concept of procedure calls, in which statements are structured into procedures

Procedural programming which uses the 3 constructs; sequence, selection, iteration.

Easiest to understand programming paradigm

41
Q

(3.3) What is declarative programming?

A

We use statements rather than expressions to describe what we want the code to do

SQL is an example of this

42
Q

(3.3) What is object oriented programming?

A

Object Oriented Programming (OOP) languages were developed to make it possible to abstract details of implementation away from the user

The code is designed to be reusable

It is easy to maintain

43
Q

(3.3) What is encapsulation?

A

When attributes and methods are wrapped into a single entity

the object’s attributes are hidden

44
Q

(3.3) What is inheritance?

A
a relationship among classes
where a sub-class shares all of the attributes
and methods of a parent class
45
Q

(3.3) What is polymorphism?

A

When inherited classes have attributes that don’t exist in the parent classes

46
Q

(3.3) What are some advantages of Object oriented processing? (OOP)

A

OOP ensures designers make extensive plans which makes better programming

Encapsulation – the code can be written, tested and maintained independently

reusability – we can use the objects in many different programs

Suitable for teams of staff – each one responsible for a class

Suitable for code libraries which can be easily adapted

47
Q

(3.4) what levels of programming languages are there?

A

High level languages (user oriented)- python
Low level languages (machine oriented)- assembly language
Machine code- binary

48
Q

(3.4) How do assembly languages store their operations?

A

Assembly language uses mnemonics such as LDA for Load and SUB for subtract to represent the operation

49
Q

(3.4) What is the little man computer?

A

the little man computer is a simplified version of the von Neumann architecture

50
Q

(3.4) How does the user input values into an LMC program?

A

INP
STA (variable)
DAT(?)

51
Q

(3.4) How many instructions and memory locations does the LMC have?

A

11 instructions

100 memory locations

52
Q

(3.4) what are the last 2 digits of an operation code used for

A

addressing mode

53
Q

(3.4) What are the types of addressing mode?

A

Immediate addressing-The operand holds an actual value

Direct addressing-The operand holds the address of the value

Indirect addressing-The operand is the location holding the address of the value