1.2 - Software and software development Flashcards

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

What is software?

A

All programs that run on a computer.
e.g. Applications software = Outlook.
e.g. Systems software = operating systems, windows.

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

What is software development?

A

Going from the initial idea to the final product.

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

What are the 5 stages of software development?

A
  1. Analysis.
  2. Design.
  3. Implementation.
  4. Evaluation.
  5. Maintenence.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What happens in the analysis section?

A
  • System analyst gets info about what current system dows + what new system needs to do.
  • Done by intervieweing users, questionaires from large groups of people, observing current system + look at documentation.
  • Output = ‘system specification’ or ‘user requiremnts’. Defines what the system will do but not how.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the 5 things that happen in the design stage?

A
  • Description of the data: data type, format + validations.
  • Database design (If needed).
  • Input screens, output screens + reports.
  • How the data will be processed.
  • How the software will be tested.

Algroithm -> Pseudocode/flowchart.

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

What 3 things happen in the implementation stage?

A
  • Code + test the software.
  • ** Writing user + technical documentation.**
  • Installing the software for the user.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the 4 testing stratergies?

A
  • Black box.
  • White box.
  • Alpha.
  • Beta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is BLACK BOX testing?

A

INDEPENDENT of the code used in the program.
looks at program specification + creates set of test data that covers all the inputs/outputs/program functions.

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

What is WHITE BOX testing?

A

Depends on code logic, tests, test each path through the code at least once.

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

What is ALPHA testing?

A

Done by software devel;opers in-house team by the user, reveals errors + ommisons in the definition of the system requiremnets. 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
11
Q

What is BETA testing?

A

When commercial software is being developed. (Given to potential users, use the software + report any faults. e.g. MS windows, MS word, Sage accounts etc).

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

What happens in the Evaluation stage?

A
  • Does it all work?
  • Test every aspect of the software to make sure it does what it is meant to.
  • Evaluated against original specification.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the 3 types of Maintenance?

A
  • Corrective.
  • Adaptive.
  • Perfective.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What happens in CORRECTIVE maintenance?

A

Bugs usually found when software put into action, no matter how thoroughly it was tested.

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

What happens in ADAPTIVE maintenance?

A

Over time user requirements will change +{ software is adapted to meet new requirements.

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

What happens in PERFECTIVE maintenence?

A

Even if software works well, it’s improved so its faster, easier to use + has more functionality.

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

What 3 features define the waterfall model.

A
  • Each stage is completed + documented before moving on.
  • End product not seen until completed. - any changes made means project has to be started again.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

When is the waterfall model used?

A
  • Requiremnets = clear + fixed.
  • No ambiguous requirements.
  • Technology is well understood.
  • Project = short.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the 4 positives of the waterfall model?

A
  • Simple to understand + use.
  • Every stage is seperate + self contained with well defined outcomes + written documentation.
  • Relatively straightfoward to manage.
  • Works well with smaller projects where requiremnets are very well understoord.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What are the negatives of the waterfall model?

A
  • NOT MUCH USER INVOLVEMENT after the analysis stage when specification document is achived.
  • No working software is produced until late in the cycle.
  • User presented with the FINAL PRODUCT + if not quite what required, TOO LATE to make changes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Define the spiral model.

A
  • The 1st 4 basic steps (Analysis, design, implementation, evaluation) are followed + software project pases through the phases repeatedly.
  • Each succesive loop round the spiral generated a now, more refined prototype until the software meets all the requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

When is the spiral model used?

A
  • Medium to high risk projects.
  • When users unsure of their needs and what the possibilities are.
  • When the requirements are complex.
  • Large projects, may take years to develop, so new technologies may develop + significant changes occur.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What are the 5 positives of the spiral model?

A
  • Well defined steps = easy to manage.
  • Software produced at early stage so problems + issues are indentified early.
  • User gives feedback on each new prototype + any required changes can be made early in the process.
  • Added functionality can be added during the process.
  • End result is more likely to be what the user wants.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the 3 negatives of the spiral model?

A
  • time consuming - longer development time.
  • System more costly to develop because of the time involved.
  • Not suitable for smaller models.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Define the agile Model.

A
  • Software developed in incremental cycles.
  • Each version builds on previous functionality.
  • 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
26
Q

When is the agile model used?

A

When new changes need to be implemented + in an expanding or developing business where users need are continuously changing + developing.

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

What are the positives of the agile model?

A
  • Rapid, continuous delivery of useful software leads to customer satisfaction.
  • Customers, developers + testers constantly interact with one another.
  • Working software is delivered frequently, within weeks rather than months.
  • Software is easily adapted to changing circumstances.
  • Late changes in requirements can be implemented.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What are the negatives of the agile model?

A
  • Lack of emphasis on necassary design + documentation.
  • Project can fail if customer isn’t clear about desired final outcome.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What is extreme programming?

(In agile software development)

A
  • Frequent releases of software made in short development cycles.
  • Indented to improve productivity + responsiveness to changing customer requirements.
30
Q

What can happen in large projects?

A

Personel change, requirements change, technology advances, costs spirling upwards can cause a project to be cancelled.

31
Q

What is rapid application development?

A
  • Workshops + focus groups gather requirements rather than a formal document.
  • Prototyping is used to continually refine the system in response to the user feedback.
  • Each part of the system is produced within a strict timelimit - maybe not perfect but good enough.
  • Software components are reused whenever possible.
32
Q

What is a programming paradigm?

A

A style or way of programming.

(Some support one or multiple)

33
Q

What languages are used in procedural programming?

A
  • Python
  • Basic
  • C#
34
Q

What languages are used in object oriented programming?

A
  • Java
  • C++
  • Visual Basic
  • .Net
  • Python
35
Q

What languages are used in declarative programming?

A
  • SQL (Structured Query Language)
  • Prolog
36
Q

What languages are used in functional programming?

A
  • Haskell
  • Javascript
  • Logo
37
Q

What is imperative programming language?

A

languages consist of a series of instructions that tell the computer what to do with the input in order to solve the problem.

38
Q

What is structured programming?

A
  • a programming paradigm (Way of writing a program).
  • Uses the constructs SEQUENCE, SELECTION, ITERATION, RECURSION.
  • Modular techniques split a large program into managable chunks.

(Type of procedural programming)

39
Q

What language is an example of declarative programming? (explain)

A
  • SQL statements describe the program that is to be solved + the language implementation finds the best way of solving it.
    (Creates, amends + querys databases)
40
Q

Logic Programming

(Part of declarative programming)

A
  • Paradigm that expresses the logic of a computation without expressing its control flow.
  • Consits of logical statements.
  • Uses Prolog
41
Q

What is Prolog?

A
  • Based on FACTS and RULE, has a logical relationship.
  • e.g. likes(tom, jenny) /* Tom likes Jenny */
  • It querys the database of facts.
  • Variables have a capital letter.
  • Doesn’t define how problem is solved - instead states the facts + rules associated.
  • FACT = unconditionally true.
  • RULE = true based.
42
Q

What are the rules of prolog?

A

IF a is true,
THEN b is true.
e.g. Lions eat meat
Larry is a lion
Therefore, Larry eats meat.

43
Q

How do you execute a program with prolog?

A

State the goal, then on given conditions. It allows Prolog to determine whether the add/change/delete rules.

44
Q

What is backtracking?

A
  • Selects a route through maze of FACTS + RULES. Continues till goal is achieved or no routes are found.
45
Q

What is an important feature of declarative programming?

A
  • Backtracking (Used for expert systems e.g medical diagnosis, oil exploration, tax regulations etc), (Useful for processing natural language, e.g. English).
46
Q

What are the features of Object Oriented Programming?

A
  • Makes it possible to abstract details of implementation from the user.
  • Reusable + easy to maintain. e.g. Python, Delphi, VB, .NET.
  • Objects have attributes + methods.
  • ## Objects interact with one another + all processing is done by objects.
47
Q

What are attributes?

Object Oriented Programming

A

An objects data.

48
Q

What are methods?

Object Oriented Programming

A

They are operations on the attributes of an object.

49
Q

Example of program to simulate a frog hopping from a lilypad to lilypad in a pond.

Object Oriented Programming

A

Object = Frog.
Attribute = colour, length of hop, position.
Method = hop.

50
Q

What is Class?

Object Oriented Programming

A

Defines attributes + methods the common characteristics and behavious of objects.

51
Q

What is a constructor?

Object Oriented Programming

A

To create objects based on the class.

52
Q

What is encapsulation?

Object Oriented Programming

A
  • Attributes and methods are wrapped into a single entity. (Fundamental principle).
  • It is information hiding. (The attributes are hidden and only accessed/changes through the object methods. The methods are required to set (SETTERS) and retrieve (GETTERS) an objects attribures.)
  • To be able to interact with an object, the methods must be public.
  • Put a - for private. Put a + for public in the attributes.
53
Q

What is defining a class?

Object Oriented Programming

A
  • Methods + attributes belonging to a class are specified here.
54
Q

What is inheritence?

Object Oriented Programming

A
  • “Relationship amoung classes where subclasses share all of the attributes and methods of a parent class”
  • Can have own methods + attributes in addition.
55
Q

What is polymorphism?

A
  • Inherited class may have method + attributes that do not exist in the parent class may redefine methods that define the parent class.

Polymorphism = many forms of something

56
Q

An example of polymorphism.

Object Oriented Programming

A

Parent bird have method EAT.
Subclass Parrot define this as EATING seeds.
Subclass Eagle define this as EATING meat.

57
Q

What is SOURCE CODE?

A

The programmers code.

58
Q

What is OBJECT CODE?

A

It is the compilers code.

59
Q

What does an interpreter do?

A
  • It translates high level languages into machine code.
  • There is no obejct code produced .
  • Stops when there is a syntax error.
60
Q

Why is a language low level?

(Assmebly language)

A
  • Because the instructions directly correspond to the machine code.
61
Q

What characteristics of a low-level language?

A
  • Mnemonics represent operational codes.
  • 2/3/4 - character codes represent all machine code instructions.
  • Different assembly languages for each type of processor.
  • Assembler translates assembly language program into machine code for execution.
62
Q

What is the Little Man Computer?

(LMC)

A

Imaginary + very limited instructon set.
Made by Dr Stuart Madnick in 1965.

63
Q

What does ADD do?

(Assembly Language)

A
  • Instruction = add
  • Numeric code = 1xx
  • Description = Adds the contents of the memory address xx to the accumulator.
64
Q

What does SUB do?

(Assembly Language)

A
  • Instruction = subtract
  • Numeric code = 2xx
  • Description = Subtracts the contents of the memory address from the accumulator.
65
Q

What does STA do?

(Assembly Language)

A
  • Instruction = store
  • Numeric code = 3xx
  • Description = Stores the value in the accumulator in the memory address xx.
66
Q

What does LDA do?

(Assembly Language)

A
  • Instruction = load
  • Numeric code = 5xx
  • Description = Loads the accumulator with the contents of the memory address xx.
67
Q

What can assembly language do?

A
  • Data can be entered by user + stored in memory.
  • Variables shown with a DAT statement.
  • All Calculations carried out in the accumulator.
  • Output statement displays the contents of the accumulator.
  • LMC has 11 instructions + imaginary computer has 100 locations.
68
Q

What is immediate addressing?

A

Operand holds an actual value.

69
Q

What is direct addressing?

A

Operand holds the address of the value.

70
Q

What is indirect addressing?

A

Operand is the location holding the address of the value.

71
Q

How is a machine code instruction formated?

A
  • Typically 16 bits.

Operation code / operand(s)
basic machine operation / addressing mode
010001 01 00000011

72
Q

What does the addressing mode do?

(Machine code instruction)

A

It specifys whether the operand represents:
- Actual value to be used in a calculation.
- Memory address of a value to be used.
- Memory address of a register/memory location holds the memory address of the value to be used or
- An index.