Lecture 1 Flashcards

1
Q

What is a software failure?

A

An error, flaw or fault in a computer program or system that causes it to produce an incorrect or unpredicted result or to behave in inadvertent ways.

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

What are the three impending aspects of failure?

A

Complete system collapse
Going over time and budget
Failure to provide the correct functionality

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

What are the areas of damage a software failure can cause a company?

A

Reduced share price
Financial loss through various refunds and compensation payments to customers
Financial loss through the costs of correcting the error prone software
Financial loss from costly legal
Investigation by regulators
Fines imposed by regulators
Cyber criminals using the well publicized period of systems instability to attack the institution
Reputational damage - loss of customer trust and inability to recruit new customers, both reducing future business growth.

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

Can company’s press office control and mange the communication of IT and service failure? If not, why?

A

No they can’t because any issues within a company’s systems are immediately highlighted and discussed by customers as well as financial journalists on social media

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

Are assurance tools such as AI based performance monitoring and automated systems testing helpful?

A

Yes the implementation of these tools are helpful despite appearing expensive in the short but by using them businesses can avoid the wide range of damages

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

How does the cost of a bug increase?

A

The cost of a bug goes up based on how far down the SDLC the bug is discovered

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

Is it more cost effective and efficient to fix bugs in the early stages?

A

Yes it is more cost efficient and effective to fix bugs in the earlier stages rather than later on

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

Should you test during the development or when you reach production?

A

You should test early and often when developing software, so you can find and fix any bugs before production

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

What is reactive work and how much of it should be done in software development?

A

Reactive work is finding and fixing errors and you should aim for around 20% of this

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

What is proactive work and how much of it should be done in software development?

A

Proactive work is building features and improving the product and you should aim for around 80% of this

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

What is the difference between product/project success and project management success?

A

Product/project success is determined by meeting its objectives (e.g. all features of the software were implemented) whereas project management success is based on time, cost and scope of criteria.

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

How do we categorize projects?

A

Ideal projects
Imperfect projects
Failed projects

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

What is an ideal project?

A

The project is completed on time, on budget, on value and with all features and functions as initially specified

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

What is an imperfect project?

A

The project is completed and operational but over time, over budget, below predicted value and lacking features

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

What is a failed project?

A

The project is cancelled at some point during the development cycle

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

What are the key factors for implementing a successful software project?

A

Clearly define success
Have clear objectives and requirements
Involve end users
Have skilled developers
Use effective project management methodologies
Break your project up
Review finished and failed projects

17
Q

How do you clearly define success?

A

This can be done in many ways, a successful project may not be a successful product and not all projects generate new products. Hence you must have specific ways of measuring the success and failure of a project

18
Q

How can you have clear objectives and requirements?

A

By having a detailed project specification and established project management methodology (e.g. Agile, Waterfall). The project should be properly scoped and broken down and developers should be involved to help determine the project timeline.

19
Q

How do you involve end users?

A

By beginning the project with a strong user requirements specification and ask for user’s feedback along the way. Also encourage the project team members to communicate directly with end users

20
Q

How can having skilled developers benefit a successful software project?

A

A developer’s programming skill directly influences the success of his/her projects. Skilled developers are often more experienced, can create higher quality software and be more efficient.

21
Q

How to implement effective project management methodologies?

A

By having reliable project managers and project management methodologies such as agile methodologies (which stress the importance of developing in iterations). Make sure you always give yourself leeway in terms of time.

22
Q

What is meant by breaking your project up?

A

Project sizes vary and hence it is important to break larger projects into smaller, manageable chunks. By using chunks the communication is tighter and problems are more easily dealt with which leads to having shorter project milestones.

23
Q

Why must you review finished and failed projects?

A

Because no matter the type of project you implemented (ideal, imperfect or failed) it is important to review what went well and what went wrong with that project.

24
Q

What is software system quality?

A

Software quality product is defined in terms of its fitness of purpose

25
Q

What does a quality product do?

A

It does precisely what the users want it to do

26
Q

Where is the fitness of use explained for software products?

A

It is explained in terms of the satisfaction of requirements laid down in the SRS document (Software Requirements Specification)

27
Q

What are the several quality methods related to software products?

A

Portability
Usability
Reusability
Correctness
Maintainability

28
Q

Describe each quality method

A

Portability means the software can be freely made to work in various OS environments, in multiple machines and with other software products

Usability means the software product allows various categories of users to easily invoke the functions of the product

Reusability means the software product’s different modules can be quickly reused to develop new products

Correctness means the software product’s various requirements specified in the SRS document have been correctly implemented

Maintainability means the bugs can be easily corrected when they show up, new tasks can be easily added to the product and the functionalities of the product can be easily modified

29
Q

What are the two broad areas software quality can be divided into?

A

External quality and Internal quality

30
Q

Describe each of the broad areas of software quality

A

External quality is the usefulness of the system as perceived from the outside, this provides customer value and meets the product owner’s specifications

Internal quality is the way that the system has been constructed. It means all properties of the software as seen by developers are desirable in order to facilitate the process of creating a good product