Section 3 - Software development Flashcards

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

What is the system development lifecycle?

A

Analysis
Design
Implementation
Evaluation
Maintenance

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

What information might a system analyst collect? (2)

A

What the current system does
What the new system needs to do

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

What might a system analyst do to collect information? (4)

A

Interview people who will use new software
Use questionnaires to gain large amounts of information
Observe what the current system does
Look at existing documentation

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

What does a system analyst give back after an analysis?

A

A system documentation used to evaluate the final product.

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

What does or should a software design document include? (7)

A

A description of the data (data types, format and validations),
Database design and management (if appropriate),
Input/output screens and reports,
How the data will be processed,
How the software will be tested
Hardware requirements/configuration
System Security

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

What happens in the implementation phase of software development?

A

Coding and testing the software (while tracing and correcting errors),
Writing user and technician documentation,
Installing software for the user

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

What are the two types of testing?

A

Black box (functional) and white box (structural)

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

What is white box testing?

A

Testing the code logic by using test data to test all the possible paths within a program at least once.

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

What is alpha testing?

A

In-house testing that is closed from the public and can reveal many bugs or problems

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

What is beta testing?

A

When (often) commercial software is distributed to potential users to be tested and where the user agrees to the testing.

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

Why is beta testing effective?

A

It gains lots of real world info and experience for the developers since people often do things that the original developers didn’t anticipate.

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

What happens in the evaluation phase of software development?

A

Around 6 months after distribution, people critically evaluate if the system works and that all aspects of the software are tested. This is evaluated against the original specification document to compare performance, the systems criteria, any errors made and any unexpected benefits/problems

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

What is acceptance testing?

A

Testing every aspect of a software then evaluating it against the original specification document to accept that it now works/performs as intended.

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

What are the three different types of maintenance

A

Corrective maintenance,
Adaptive maintenance,
Perfective maintenance

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

What is the waterfall model?

A

Similar to the lifecycle model except it doesn’t loop, when you get to the end, you can’t go back upwithout re-completing the previous stages in the model.

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

Advantages of the waterfall model

A

Simple to understand
each stage is separate with good documentation,
Projects are straightforward to manage,
model works well for smaller projects too

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

Disadvantages of the waterfall cycle

A

Not much user involvement after the analysis stage.
Working software not produced until late in the project,
User is given the finished product which doesn’t leave much room for improvement

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

When should the waterfall model be used?

A

The product has a clear outcome
No ambiguous requirements
The project is short,
The technology is well understood

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

What are the four main stages of the spiral model?

A

Analysis, design, implementation, evaluation

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

Advantages of the spiral model

A

Well defined steps
Software is produced at an early stage in development.
User can give feedback during the iterative process
End result more likely to be what the user wants.

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

Disadvantages of the spiral model

A

Iterative process is very time-consuming,
More costly to develop with the time needed,
Not suitable for smaller projects

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

When should the spiral model be used?

A

For medium to high-risk projects,
When users aren’t sure of needs or technological possibilities,
When requirements are complex,
For projects which may take a long time to develop and may need to take advantage of recent/future technological advancements.

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

What is the agile model and how does it work?

A

Software is rapidly developed in an iterative process in so-called development cycles with individually implemented features where each version improves on previous functionality and is thoroughly tested

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

benefits of the Agile model

A

Software is quickly and continuously developed which leads to good client satisfaction,
Working software is frequently published and developed.
Good for small, time-critical projects,
Limited planning to get started.

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

Disadvantages of the agile model

A

Lack of emphasis on proper design and documentation,
Product can fail to deliver if the user is not explicit in their requirements,
Not suitable for novice programmers

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

When should the agile model be used?

A

When new changes need to be implemented,
When the client is an expanding or developing business where their needs are constantly changing and developing

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

What is extreme programming?

A

A type of agile development designed to improve productivity and responsiveness by doing frequent releases and utilizing short development cycles.

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

What can go wrong in a large project that isn’t properly planned and staffed?

A

Costs can spiral,
Personnel can change,
Requirements can change,
Technology advances can make a project obsolete.

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

What is rapid application development?

A

Workshops and focus groups decide on the aims/requirements of a project. Prototyping is then used alongside user feedback to refine the product over strict, short-term time frames. Software components are also reused as frequently as possible.

30
Q

What are the properties of a good algorithm?

A

I must have clear and precise steps
Should allow for invalid inputs
Must terminate at some point
Should do the task in as little time as possible
It should be understandable to others

31
Q

Give 2 examples of sorting algorithms

A

Bubble sort
Merge sort

32
Q

What is a paradigm?

A

A style or a way of programming

33
Q

What is a procedural programming language?

A

A standard, top-down (in terms of the run time) programming language that contains built-in data types (integers etc) and data structures such as arrays and records.

34
Q

What is an imperative programming language?

A

Languages that support imperative programming tell the computer what to do with the input in order to solve the problem.

35
Q

What is structured programming?

A

A kind of procedural programming that uses the constructs (sequence, selection, iteration and recursion) rather than ‘goto’ statements. They also use modular techniques to split programs into manageable chunks.

36
Q

What is a declarative language?

A

Like SQL, you declare what you want in English and describe the problem to be solved.

37
Q

What is logic programming?

A

A paradigm that expresses the logic of a computation without expressing its control flow.

38
Q

Summarize prolog

A

Instead of defining how a problem is to be solved, the programmer defines the facts associated with the program which are always assumed to be true.

39
Q

How does prolog utilize backtracking?

A

If the interpreter attempts to find a solution to a problem but reaches a dead end, it backtracks to the last decision and attempts to take a new route.

40
Q

What is encapsulation?

A

When attributes and methods are wrapped into a single entity (classes). If declared private they can only be accessed through class methods.

41
Q

what is a class?

A

A class is a blueprint for an object and defines attributes and methods that capture common characteristics or behaviours of objects.

42
Q

What is information hiding?

A

When an objects attributes are hidden and are only accessible through the objects methods.

43
Q

What is required of an object to access its methods?

A

They must be defined as public

44
Q

What is inheritance?

A

When there is a relationship between sub-classes. Such as, rodents and insects are both their own classes but are also both parts of the class animals.

45
Q

What is polymorphism?

A

When an inherited class may have methods and attributes that do not exist in the parent class or are a modified form of an existing method in a parent class.

46
Q

What might polymorphism do to a parent class aside from making new methods?

A

It may redefine methods that are defined in the parent class. For example, all animals can eat, but eagles eat meat and birds eat seeds.

47
Q

Is assembly language hardware specific?

A

Yes

48
Q

What are the four addressing modes?

A

Immediate, Direct, Indirect, indexed

49
Q

What is immediate addressing?

A

The operand holds the actual value

50
Q

What is Direct addressing?

A

The operand holds the address of the value

51
Q

What is indirect addressing?

A

The operand is holding the location of the address of the value

52
Q

What three things do immediate addressing; direct addressing and indirect addressing mean in normal code?

A

A variable, a pointer and a double pointer

53
Q

What things need to be analyzed in the analysis section of the system development lifecycle?

A

The data itself - origin, uses and characteristics
The procedures - What is done with the data, where and how it’s done, how errors are handled
The future - development plans and expected growth rates of a system
Problems - With any existing system

54
Q

What is black box (functional) testing?

A

Black box testing is independent of the code itself and involves taking test cases of data that cover all aspects of the program (all the inputs and outputs and program functions)

55
Q

What are the three main areas evaluated in the evaluation phase of the system development lifecycle?

A

The program’s effectiveness, usability and maintainability.

56
Q

What kinds of problems are solved using algorithms?

A

internet-related problems, route-finding problems, compression, encryption etc.

57
Q

What are some advantages of OOP?

A

It forces developers to plan a project extensively
the code is encapsulated and so independent from everything else
All the layers are separate
Highly reusable

58
Q

What data about a proposed system might be collected in its analysis stage? (4)

A

The data used (origin, uses, volume, etc.)
The procedures (what is done, where and how)
The future (development plans and expected growth rates)
The problems (with any existing system)

59
Q

What 4 things does a post-implementation review focus on? (evaluation phase)

A

A comparison of actual performance with expected performance
An assessment of the system against the success criteria
Errors made during development
Unexpected benefits/problems

60
Q

What kinds of problems are solved by algorithms?

A

Internet-related (such as search engines)
Route-finding algorithms
Compression algorithms
Encryption algorithms

61
Q

What is meant by a ‘divide and conquer’ algorithm?

A

One that splits a problem up into many parts.

62
Q

What are 4 effective methods for interpreting an algorithm?

A
  1. Read any comments
  2. Look at variable names for clues
  3. follow the steps
  4. Do a ‘dry run’ with test data
63
Q

Give 5 examples of programming paradigms

A

Procedural programming
Structured programming
OOP
Declarative programming
Functional programming

64
Q

What is object-oriented programming?

A

OOP defines using classes within programming to create instances of a class called objects.

65
Q

How do you draw inheritance in a class diagram?

A

By connecting a subclass to a parent class with an open-headed arrow

66
Q

What does BRA mean in assembly?

A

Branch (unconditional). Uses the given address as the address of the next instruction

67
Q

What does BRZ mean in assembly?

A

Branch to the address given if the value in the accumulator is zero

68
Q

What does BRP mean in assembly?

A

Branch to the given address if the value in the accumulator is zero or positive

69
Q

What does HLT mean in assembly?

A

Stops the program

70
Q

For modern computers, what is the format of 16-bit data? (What is each bit)

A

8 bits for the opcode (6 for machine operation and 2 for addressing mode) and 8 bits for the operand

71
Q

What is indexed addressing?

A

When the address of the operand is obtained by adding the contents of the index register to a constant value iteratively to reference each memory address containing a value in an array.

72
Q

What is the name for the description of a project produced at the end of the extreme designing phase?

A

The project metaphor