Section 3 - Software Development Flashcards

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

What must be considered during analysis of software development?

A

The data - Its origin, uses, volumes and characteristics
The procedures - What is done, when it’s done, where and how
The future - Development plans and expected growth rates
Problems - Issues with any existing system

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

What must be considered during the design of software development?

A

Processing - The algorithms and appropriate modular structure for the solution, specifying modules with clear documented interfaces
Data structures - How data will be held and how it will be accessed
Output - Content, format, sequence, frequency, etc
Input - Volume, frequency, documents used, input methods
User interface - Screens and dialogues, menus, special purpose requirements
Security - How the data is to be kept secure from accidental corruption or deliberate tampering/hacking
Hardware - Selection of an appropriate configuration

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

What is black box testing?

A

Black box testing is carried out independently of the code use in the program. It involves looking at the program specification and creating a set of test data that covers all the inputs and outputs and program functions

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

What is white box testing?

A

White box testing is dependent on the code login, and derives from the program structure rather than its function. The program code is studied and tests are devised which test each possible path at least once. The weakness of white box testing is that it will not detect missing functions.

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 by the software developer’s in-house testing team. It is essential because it often reveals both errors and omissions in the system requirements definition. The user may discover that the system does not in fact have the required functionality because the requirements were not specified carefully enough, or because the developer has overlooked or misunderstood something in the specification

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

What is beta testing?

A

When a new package is being developed for release as a software package, beta testing is often used. This involves giving the package to a number of potential users who agree to use the system and report any problems to the developers. Microsoft delivers beta versions of it’s products to hundreds of sites for testing. This exposes the product to real use and detects problems that may not have been anticipated by the developers.

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

What is implementation?

A

Coding and testing will be carried out, errors traced and corrected. When all is thought to be satisfactory the software will be installed on the user’s system and more testing will be done. At this stage new weaknesses and omissions are almost bound to surface and more work will be carried out.

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

What is evaluation?

A

The evaluation could include a post-implementation review which is a critical examination of the system around 3-6 months after it has been put into operation. The waiting period allows the users and technical staff to learn how to use the system and gives them time to report any extra bugs they may find which were missed before

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

What is the waterfall lifecycle model?

A

The waterfall model illustrates the methodology described above, in which each step is completed one at a time from beginning to end. Each step has specific outputs that lead into the next step. It is possible to return to a previous stage if necessary but the model shows that developers then have to work back down through the following stages.
The user/customer is involved at the start of the process, in the analysis stage, but then has little input until the evaluation stage. Changes made later in the project have high cost implications to work already completed so it is important to get each stage completed before moving to the next

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

What is the spiral model?

A

The spiral model uses the same structured steps but introduces the idea of developing the software in iterative stages. At the start of the process the requirements are defined and the developers work towards an initial prototype. Each successive loop around the spiral generates a refined prototype until the product is finished. Spiral model is mostly used for large scale projects, for example, projects that take years. Smaller projects use a variation on this called the Agile model.

Stages:
Analyse: The requirements for the next prototype
Design: The next version, the new prototype
Implement: Code and test the new prototype
Evaluate: The new prototype, which generates a plan for the next iteration

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

What is the agile model?

A

In an agile approach the stages of software development may not be completed in a linear sequence. It might be that some analysis is done and then some parts of a system are designed and implemented while other parts are still being analysed, and then for example, implementation and testing may be intermixed. Feedback is obtained from the user throughout the process.

The success depends on:
Keeping the model simple
Rapid feedback from the user
Understanding that user requirements may change
Being prepared to make incremental changes

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

What is extreme programming?

A

Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It is a type of agile software development in which frequent “releases” of the software are made in short development cycles. This is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

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

What is Rapid Application Development (RAD)?

A

Some very large projects may be developed over a long period of time during which both technology and user requirements change. Major changes at late stages of development can sometimes lead to projects being cancelled or restarted at considerable cost. In response to this problem the RAD methodology was introduced, offering the promise of much faster completion of major projects.

The ideas behind it:
Workshops and focus groups to gather requirements
Use of prototyping to continually refine the system
Producing within a strict time limit each part of the system
Reusing any software components which have been used elsewhere

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

Pros and Cons of each development methodology:

A

Waterfall system lifecycle:
Very suitable for small projects which need careful supervision
Absence of user involvement is a serious drawback

Spiral and Agile:
Acknowledge that users often can’t specify requirements accurately at the beginning
Much easier to examine a working prototype to work out what needs to be done to it

Extreme programming and RAD:
Good for large projects where there is danger of getting sidetracked

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

What is an algorithm?

A

An algorithm is a procedure or a way to do things, e.g. a recipe for a cake or a knitting pattern or a set of direction from A to B.

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

What are the properties of a good algorithm?

A

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

17
Q

What kinds of problems are solved by algorithms?

A

Internet-related algorithms: Used to manage and manipulate the huge amount of data stored on the internet
Route-Finding algorithms: Not only used for finding the best route for driving a vehicle, but also finding the best route to transmit packets from A to B
Compression algorithms: These are used to compress data files so they can be transmitted faster or held in a smaller amount of storage space
Encryption algorithms: When someone purchases something over the internet and sends their credit card number and other personal detail to the store, the data must be encrypted.

18
Q

What is pseudocode?

A

Pseudocode is a way of expressing the solution in a way that can easily be translated into a programming language

19
Q

What is the best way to interpret algorithms?

A

Read the comments in the program
Look at variable names to see if they give any clues
Follow the steps in the program
Try a dry-run with some test data

20
Q

What is a trace table?

A

A trace table is useful for performing a dry-run through a program. As you follow through the logic of the program in the same sequence as the computer does, you note down in the trace table when each variable changes and what its value is.

21
Q

What is a procedural programming paradigm?

A

Procedural programming is supported by languages such as Python or Pascal, which have a series of instructions that tell the computer what to do with the input in order to solve the problem. They are widely used in educational environments, being relatively easy to learn and applicable to a wide variety of programmed.

22
Q

What is structured programming?

A

Structured programming is a type of procedural programming which uses the programming constructs of sequence, selection, iteration and recursion. It uses modular techniques to split large programs into manageable chunks.

23
Q

What is an object oriented programming paradigm?

A

Object-Oriented programming is supported by languages such as Java, Python and Delphi, OOP was developed to make it possible to abstract details of implementation away from the programmed, make code reusable and programs easy to maintain. It is to a great extent taking over procedural programming.

24
Q

What is a declarative programming paradigm?

A

Declarative programming is supported by languages such as SQL, where you write statements that describe the problem to be solved, and the language implementation decides the best way of solving it. SQL is used to query databases.

25
Q

What is a functional programming paradigm?

A

Function programming is supported by languages such as Haskell, as well as languages such as Python, C# and Java. Functions not objects or procedures, are used as the fundamental building blocks of a program. Statements are written as a series of functions which accept input data as arguments and return an output.

26
Q

What is inheritance?

A

Suppose an object-oriented program used by an estate agent defines a class called Property. Property has attributes including owner, type, number_of_bedrooms, price. The class property has 2 subclasses called PropertyForRent and PropertyForSale. The subclasses have the same attributes as the superclass Property and in addition a few attributes of it’s own. The subclasses are said to inherit properties from the superclass.

27
Q

What is polymorphism?

A

Polymorphism refers to a programming language’s ability to process objects differently depending on their class. A class of objects have behaviours or methods, all of which will be inherited by its subclasses.

28
Q

What is encapsulation?

A

Encapsulation is declaring an attribute as private, this means they can only be accessed through the class methods.

29
Q

What are the advantages of OOP?

A

The OOP methodology forces designers to go through an extensive planning phase, which makes for better designs with fewer weaknesses

Encapsulation: The source code for an object can be written, tested and maintained independently of the code for other objects

Once an object is created, knowledge of how its methods are implemented is not necessary in order for a programmer to use it

New objects can easily be created with small differences to existing ones

Reusability: Objects that are already defined, coded and tested may be used in many different programs

OOP provides a good framework for code libraries with a range of software components that can easily be adapted by a programmer

Software maintenance: An OOP is much easier to maintain than one written in a procedural language because of its modular structure

30
Q

What are the assembly language Mnemonic and their instruction?

A

ADD:
Add, Add the contents of the memory address to the accumulator

SUB
Subtract, Subtract the contents of the memory address from the accumulator

STA:
Store, Store the value given in the accumulator in the memory address given

LDA:
Load, Load the accumulator with the contents of the memory address given

BRA:
Branch (Unconditional) Branch - use the address given as the address of the next instruction

BRZ:
Branch If Zero, Branch to the given address if the accumulator is zero

BRP:
Branch If Positive, Branch to the given address if the accumulator is zero or positive

INP:
Input, Input into the accumulator

OUT:
Output, Output contents of the accumulator

HLT:
Halt, Stops the execution of the program

DAT:
Data, Used to indicate a location that contains data

31
Q

What are branch instructions?

A

The flow of the program can be altered using a conditional or unconditional branch instruction. The conditional branch instructions BRP, BRZ cause a branch to a given label in the program depending on the value held in the accumulator. An Unconditional branch instruction, BRA will cause a branch whatever the value held in the accumulator

32
Q

What are the four different addressing modes?

A

Immediate Addressing - The operand is the actual value to be operated on, say 3 or 75

Direct Addressing - The operand holds the memory address of the value to be operated on. This is the only addressing mode used in the LMC assembly language

Indirect Addressing - The operand is the location (typically a register) which holds the address of the data we want. This enables a larger range of addressable locations.

Indexed Addressing - The address of the operand is obtained by adding to the contents of a general register a constant value. The number of the index register and the constant values are included in the instruction code. Indexed addressing mode is used to access an array whose elements are in successive memory locations.