Software Design Methodologies And Notations Flashcards

1
Q

What is design?

A

Before any code is written, a design is created using a top down approach, breaking the problem down into smaller and smaller problems.
Involves systems analyst and project manager.
Examples include Pseudocode, Structure Diagrams and Wire Frames.

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

What is implementation?

A

Design is implemented by writing the program. The programming language that is used is determined by the problem, type of user interface and programmer experience.
Project manager allocates individual tasks to different programmers according to their skill set.

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

What is Analysis?

A

Defining a problem, and the boundaries of solution to that problem.
Involves conversation between the client and a systems analyst from the software company.

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

What is testing?

A

Testing occurs in distinct phases throughout the software development process. Each small part of code is tested to ensure it executes without crashing. Alpha testing takes places in house before beta testing by contracted specialists not involved in the creation of the software. The software is then tested on the customers own hardware through acceptance testing.

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

What is Documentation?

A

To produce documentation that will be distributed with the program? Two common documents are the user guide and technical guide.
This relies on input from the client, systems analyst and the programmers.

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

What is contained inside the user guide?

A

An explanation of how to use the features of the program

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

What is contained inside the technical guide?

A

Includes the minimum hardware specification required to use the program and details of how to install/set up the software.

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

What is evaluation?

A

The software company evaluates the success of a project. The identification of mistakes made may ensure that the next project is completed faster and with fewer errors, increasing the company’s profits. Evaluation of the software can identify efficiency savings that could have been made in coding or resource allocation such as memory usage.

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

What is maintenance?

A

Once software is complete it is common to return at a later date to change or update the software. There are three types of maintenance carried out by software companies.
Maintenance has become a commonplace with updates to games and apps appearing regularly due to increased download speeds thanks to the introduction of 3G, 4G and broadband telecommunications.

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

What are the three types of maintenance carried out by software companies?

A

Perfective - New features are added to the software to improve (perfect) it
Corrective - Bugs or errors discovered after completion of the software are fixed (corrected)
Adaptive - The software must be altered (adapted) due to an external influence, such as a change to the operating system on which the software runs.

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

What is rapid application development?

A

RAD takes advantage of the knowledge gained during the production in order to change the solution for the better.
RAD projects involve the development of small, quickly built prototypes to identify potential problems.
The client is shown working components of the software allowing them to give feedback and suggest changes before a complete working version is implemented later.
Once a prototype is accepted it can be used to build the finished component.

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

What is an agile methodology?

A

Influenced by the introduction of RAD in the 1980s.
Aims to improve customer satisfaction by delivering software in weeks instead of months - project success is measured on speed.
Small project teams are formed in single locations, nicknamed ‘bullpens’.
These teams contain a variety of skills, relying on conversation to make quick decisions and improve the developers ability to react should the clients requirements change.

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

What are the Disadvantages of agile methodologies?

A
  1. The types of decisions made by the project groups require experience.
  2. Lack of emphasis on design and documentation causes problems.
  3. Lack of proper design at the beginning of the project may make project timescale hard to predict.
  4. Client must be clear about group requirements so that project will be taken the right way.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Why is readability of source code important?

A

So that multiple programmers could come to it at any time and understand what is going on

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

Who is responsible for checking that source code is to an acceptable standard?

A

The developer

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

What is a software specification?

A

A legally binding document which describes exactly what the software will be able to do, not how it does it

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

How is readability of code achieved?

A

Using meaningful identifiers (variable and procedure names)
Internal Commentary
White space and indentation to make code logic clear
Use of local variables and creating modular code - this makes the modules re-usable in other parts of the program

18
Q

What is alpha testing?

A

By programmers responsible for the application in parts

19
Q

Who performs beta testing?

A

The clients

20
Q

Corrective maintenance

A

Users encouraged to report any errors during program usage
Developers will cover all costs of this kind of maintenance which is of use to them as they can then replicate errors and provide a solution

21
Q

Adaptive maintenance

A

Used when a programs environment/design changes - OS, Computer system etc.
Depending on predictability of the change in circumstances, negotiations may be made but ultimately the client will cover the cost of this kind of maintenance

22
Q

Perfective maintenance

A

When the client requests changes which were not in the original software specification, perhaps due to changes in requirements or legislation.
This involves revision of the entire system and ultimately is very expensive - the client covers the cost.

23
Q

What is meant by stating “software development is an iterative process”

A

-

24
Q

What is reliability?

A

How well a program operates without stopping due to design faults

25
Q

What is not an advantage of RAD?

A

Reduced time spent on analysis

26
Q

Describe the term Pseudocode

A

A high level description of how a computer program functions

27
Q

Who is responsible for writing out the software specification?

A

The systems analyst

28
Q

What are the few known disadvantages of agile methodologies?

A

Types of decisions made by the project groups require experience
Lack of emphasis on design and documentation may cause problems
Lack of stringent design at the beginning of a project may make it difficult to predict time scale of a project
If client representative is unclear on requirements then project may be easily taken in wrong direction

29
Q

Waterfall Method

A

Follows a clear set of seven steps in sequence with the possibility of iteration between and within stages

30
Q

Iteration between stages

A

Revisiting previous steps in light of new information

31
Q

Software Specification

A

Legally binding document which is often generated at the design stage of the waterfall method
Contains the scope, boundaries, test data and budget information

32
Q

Step wise refinement

A

-

33
Q

Maintainability

A

The aspect of evaluation which allows for easier maintenance through the use of meaningful identifiers, internal commentary and indentation

34
Q

Corrective Maintenance

A

Maintenance which is carried out free of charge due to flaws within the development company

35
Q

Rapid Application Development Design Feature

A

Places a great deal of emphasis on creation of prototypes during design phase
Allows user to get a better idea of how their software could be implemented

36
Q

Cutover Phase

A

Stage within RAD development where the team will work with the client post release

37
Q

Step Wise Refinement

A

Takes main steps and breaks these down until they are easily converted from pseudocode to source code - one line at a time

38
Q

Alpha Testing

A

Software is tested by in-house programmers not involved with the creation of the source code
They can identify any errors which their colleagues may have missed

39
Q

Agile Methodology emphasis

A

On communication and planning during the design phase

Focus on face to face communication and strong team work

40
Q

Structure Diagram

A

Represents all different elements present in the software as hierarchical blocks

41
Q

Wireframe

A

Formalised sketches of screen layouts

Used for interface screens

42
Q

What does a good clear design ensure?

A

Fewer errors during implementation and testing