Introduction to Software Engineering (Lecture 1) Flashcards

1
Q

Define software engineering

A

Software engineering is an engineering discipline focusing on the cost-effective development of software systems. It’s concerned with all aspects of software production

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

Why is software engineering important?

A
  • software is difficult to manage
  • software is everywhere (or ubiquitous) and essential to daily life
  • software systems are abstract and intangible
  • software systems can quickly become extremely complex, difficult to understand, and expensive to change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Outline 2 reasons why software projects fail

A
  1. increasing system complexity
    - constant changes in demand and failure to keep up
  2. failure to use software engineering methods
    - consequently, the software is often more expensive and less reliable than it should be
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the attributes of good software?

A

Good software should deliver the required functionality and performance. It should be maintainable, dependable, usable, efficient, and acceptable to the users it is designed for

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

What is the difference between software engineering and computer science?

A

Software engineering focuses on the practicalities and delivering useful software; Computer science focuses on the theory and fundamentals

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

What is the difference between software engineering and system engineering

A

System engineering is concerned with all aspects of computer-based systems (e.g. hardware). Software engineering is a part of this more general process

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

What are the key challenges facing software engineering?

A

Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software

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

What are the costs of software engineering?

A

60% are development costs, 40% are testing costs

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

What are the two fundamental types of software products?

A

Generic products and custom products

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

Generic Products

A

Stand-alone systems marketed and sold to any customer who wants to buy it

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

Customized Products

A

Software commissioned by a specific customer to meet their own needs

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

Four general issues that affect software

A

Heterogeneity; business and social change; security and trust; and scale

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

Four examples of professional responsibility (related to ethics)

A
  1. Confidentiality
  2. Competence
  3. Intellectual property rights
  4. Computer misuse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the ACM/IEEE Code of Ethics

A

These ethics aim to provide rules, standards and protection for software developers and their clients. The Code of Ethics has eight principles

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