Unit 3 : Software development Flashcards

1
Q

What takes place in the analysis stage

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:
  • Analyzing 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

What takes place in the design stage

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

What happens in the development stage

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

What are the different methods of testing

A
  • 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
5
Q

What is 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
6
Q

What is 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
7
Q

What is 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
8
Q

What is 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
9
Q

What takes place in the testing stage

A
  • The program is tested against the test plan formed in the Design stage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What takes place in the implementation stage

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
11
Q

What takes place in the evaluation stage

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
12
Q

What takes place in the maintenance stage

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
13
Q

What is the waterfall model

A
  • As in the lifecycle model, 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
14
Q

What are the pros of the waterfall method

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

What are the cons of the waterfall method

A
  • There is not much user involvement after the Analysis stage, when the Specification document is agreed
  • No working software is produced until late in the cycle
  • 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
16
Q

When would you use the waterfall method

A
  • 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
17
Q

What is the spiral method

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 prototype until the software meets all the requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are the pros of the Spiral method

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

What are the cons of the Spiral method

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
20
Q

When would you use the spiral method

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
21
Q

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
22
Q

What are the pros of the agile method

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
23
Q

What are the cons of the agile method

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
24
Q

When would you use the agile method

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
25
Q

What is extreme programming

A

● Example of an agile model
● Development team is a pair of programmers and a representative end-user
● ‘User stories’ are used to determine system requirements
● Produces high-quality code and highly-usable software
● Programmers work no longer than forty hours a week
● Hard to produce high quality documentation

26
Q

What is rapid application development

A

● Iterative methodology which uses partially functioning prototypes
● User requirements are gathered using focus group
● ‘Incomplete’ version of the solution is given to the user to trial
● User feedback is used to generate next, improved prototype
● Final prototype matches user requirements fully
● Used where user requirements are incomplete or unclear at the start
● Code may be inefficient

27
Q

What is an algorithm

A
  • An algorithm is a set of instructions to solve a problem or complete some well-defined task in a finite number of steps
28
Q

What is a programming paradigm

A
  • Different approaches to using a programming language to solve a problem
29
Q

What are the two paradigms of imperative programming

A
  • procedural
  • object-orientated
30
Q

What is imperative programming

A
  • Use code that clearly specifies the actions to be performed
31
Q

What is procedural programming

A

● Widely-used paradigms as it can be applied to a wide range of problems
● Easy to write and interpret
● Written as a sequence of instructions
● Instructions are carried out in a step-by-step manner

32
Q

What is object-orientated programming

A

● Suited to problems which can be broken into reusable components with similar characteristics
● Based on objects formed from classes which have attributes and methods
● Focuses on making programs that are reusable and easy to update and maintain

33
Q

What are the two paradigms of imperative programming

A
  • Functional
  • Logic
34
Q

What is declarative programming

A

● States the desired result and the programming language determines how best to obtain the result
● Details about how result is obtained are abstracted from the user

35
Q

What is functional programming

A

● Functions form the core of the program
● Function calls are often combined within each other
● Closely linked to mathematics

36
Q

What is logic programming

A

● A set of facts and rules based on the problem is defined
● Queries are used to find answers to problems

37
Q

What is procedural programming

A

● Simple to implement and applicable to most problems
● Not possible to solve all kinds of problems or may be inefficient to do so
● Provide traditional data types and data structures

38
Q

What is assembly language

A

● Low level language that is the next level up from machine code
● Uses mnemonics, which are abbreviations for machine code instructions
● Commands used are processor-specific
● Each line in assembly language is equivalent to one line of machine code

39
Q

What is opcode

A
  • Opcode specifies the instruction to be performed and the addressing mode
40
Q

what is operand

A
  • Operand holds a value related to the data on which the instruction is to be
    performed
41
Q

What are the addressing modes

A
  • Immediate Addressing
  • Direct addressing
  • Indirect addressing
  • Indexed addressing
42
Q

What is immediate addressing

A
  • The operand is the actual value upon which the instruction is to be performed, represented in binary
43
Q

What is direct addressing

A

The operand ​gives the address which holds the value​ upon which the
instruction is to be performed

44
Q

What is indirect addressing

A

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

45
Q

What is 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

46
Q

Advantages of OOP

A

● High level of ​reusability
● Code made more reliable ​through encapsulation
● Makes code easy to​ maintain and update
● Casses can be reused as a​ black box​ which ​saves time and effort

47
Q

disadvantages of OOP

A

● Requires an ​alternative style of thinking
● Not suited to ​all types of problems
● Generally ​unsuitable for smaller problems