Chapter 1 Flashcards

(52 cards)

1
Q

Four dimensions of Software Engineering

A

Technology
People
Quality
Economy

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

Software engineering is concerned with (three aspects):

A

Theories
Methods
Tools

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

What dominates the computer system costs more: hardware or software?

A

Software

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

What usually drains more funds: development or maintanance?

A

Maintanance, due to bug fixes, evolution

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

Why do software projects fail? (6+2 reasons)

A
  1. Too little time
  2. Project getting too complex/convoluded
  3. Failure to include new technologies
  4. Lack of funding
  5. Being beaten by competition
  6. Not using software engineering methods
  7. Incompetent / corrupted management
  8. Bad/outdated development tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why is the software development without the use of software engineering methods inferior? (3 reasons)

A
  • Project gets unproportionally harder as it grows
  • Difficult for other developers to help or to continue the development
  • Software is poorly written, therefore more expensive and less reliable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is software composed of (2 things)?

A

Computer programs + documentation

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

What are the 2 types of software customers?

A
  1. Particular customer that orders the software
  2. Buyers on general market
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Good software should deliver required: (2 things)

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

Good software should be: (4 things)

A
  1. Usable (can be accessed)
  2. Dependable (can be trusted with)
  3. Maintainable (can be modified)
  4. Efficient (responsive and non-wasteful)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definition of software engineering (as a discipline):

A

Engineering discipline concerned with all aspects of software production

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

4 fundamental software engineering activities

A
  1. Specification - Planning
  2. Development - Creating
  3. Validation - Testing
  4. Evolution - Upgrading
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What computer science and software engineering fundamentally differ in? (what do they focus on in the context of software)

A

Computer science - theory and fundamentals

Software engineering - practicalities of software development

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

How does system engineering and software engineering relate?

A

System engineering is a broad term that focuses on many aspects of computers (like hardware, communication) including software engineering

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

3 key challenges in software development

A
  1. Faster delivery
  2. Trustworthy software
  3. More capabilities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Dev/Test average costs proportions

A

60% dev, 40% test

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

What is the best set of software engineering techniques and methods

A

There is no single set. Each should be chosen according to the type of developed software

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

How the web impacted software dev? (what became available/what did it advance)

A

Made available:
- More software services
- Highly distributed, service-based systems
- Software for reuse

Advanced:
- Programming languages

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

2 types of software products (in relation to customer type)

A
  • Generic producs (put on market)
  • Customised product (for an ordering customer)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does it mean, that the software is maintainable?

A

Can evolve up to customer’s needs and business changes

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

What does it mean, that the software is dependable?

A
  • Would not cause physical or economical damage (due to system failure)
  • Is consistent and predictable
22
Q

What does it mean, that the software is secure?

A

Prevents corruption, leaks and theft of important/critical information by malicious software

23
Q

What does it mean, that software is efficient? (what it shouldn’t and should?)

A

Shouldn’t waste system resources (CPU time, memory, …)

Should increase performance (responsiveness, processing time, …)

24
Q

What does it mean, that software is acceptable?

A

User must just accept it, which actually means that it has to be:
- Understandable
- Usable
- Compatible with user’s system(s)

25
What constraints should the software engineering discipline mind? (2 constraints)
- Organizational (time, developers) - Financial (money)
26
What additional 2 aspects of software production are important (besides theries, tools and methods)?
- Management - Support software development
27
What is the software engineering balance?
Balanaceing software quality with time and money
28
What economical benefit results from the use of software engineering practices?
Developed software is easier and cheaper to maintain
29
Validation vs Verification
Validation - Software works correct for customer Verification - Software built as planned
30
General issues affecting software (4 issues)
- Change in business and society (new laws, technologies, trends) - Security and trust (beacuse it affects human lives and livelihoods) - System compatibility (works on many different machines/OS-es) - Scale compatibility (works on small and big machines)
31
What aspects play role in choosing a fitting set of software engineering techniques? (3 aspects)
- Type of developed software - Customer requirements - Dev team's abilities
32
Application types (8 types)
1. Standalone apps 2. Interactive, transaction based apps 3. Embedded control systems 4. Batch processing systems 5. Entertainment systems 6. Modeling and simulation systems 7. Data collection systems 8. System of systems
33
What are standalone apps?
Can run on a single computer, without external resources (data, functionalities, etc.)
34
What are interactive, transaction-based apps?
Accessed with terminals, executed remotely (mainly web apps)
35
What are embedded control systems?
Control and management of hardware devices
36
What are batch processing systems?
System processing a large sets of data in batches, outputting the desired result
37
What are entertainment systems?
Systems design for human entertainment
38
What are systems for modelling and simulation?
Systems designed for research purposes for scientists and engineers. They model or simulate processes or situations
39
What are data collection systems?
Systems that collect data from their environment using a set of sensors and send that data to other systems for processing
40
What are systems of systems?
Combination of multiple systems, that are treated as a one system
41
Development process, that is used to create systems, should be: (2 aspects)
Managable Understandable
42
What are the most popular approaches (for a good reason) to web dev?
1. Software reuse 2. Incremental/Agile dev 3. Service-oriented systems 4. Rich interfaces
43
2 core aspects of ethical software engineering
Honesty Ethical responsibility
44
4 issues of professional responsibility
Confidentiality - Spreading client's info Competence - Lying about your abilities/skills Intellectual property rights - Disrespecting other people's property ownership Computer misuse - Using computers to harm
45
What does the 1st point of ACM/IEEE code of ethics mean (PUBLIC)?
Act in public interest in mind
46
What does the 2nd point of ACM/IEEE code of ethics mean (CLIENT AND EMPLOYER)?
Do what's best for the client and employer in accordance to public interest
47
What does the 3rd point of ACM/IEEE code of ethics mean (PRODUCT)?
Ensuring that the developed product meets the highest quality standards possible
48
What does the 4th point of ACM/IEEE code of ethics mean (JUDGMENT)?
Don't allow for corruption of your decision-making
49
What does the 5th point of ACM/IEEE code of ethics mean (MANAGEMENT)?
Promote ethical management
50
What does the 6th point of ACM/IEEE code of ethics mean (PROFESSION)?
Don't harm your profession's reputation
51
What does the 7th point of ACM/IEEE code of ethics mean (COLLEAGUES)?
Support and treat your colleagues fairly
52
What does the 8th point of ACM/IEEE code of ethics mean (SELF)?
Always learn and promote ehtical development