Chapter 1 Introduction - Software Engineering

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/23

flashcard set

Earn XP

Description and Tags

A set of 20 practice flashcards covering core concepts from Chapter 1: Introduction to Software Engineering.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

24 Terms

1
New cards

When and where was the notion of software engineering first proposed, and what crisis did it address?

In 1968 at a conference addressing the software crisis, which involved unreliable, costly, and late-delivered software.

2
New cards

Name an early software engineering technique developed in the 1970s-1980s.

Structured programming (also information hiding and object-oriented development).

3
New cards

Why is software engineering important to economies of developed nations?

Economies depend on software; more systems are software-controlled; software expenditure is a significant fraction of GNP.

4
New cards

What is software engineering?

The engineering discipline concerned with the design, development, testing, and maintenance of software applications.

5
New cards

What is one major reason for software project failure related to complexity?

Increasing system complexity makes it harder to deliver on time and within budget.

6
New cards

What is another major reason for software project failure related to methods?

Failure to use software engineering methods and techniques can lead to expensive and unreliable software.

7
New cards

What are the fundamental software engineering activities?

Software specification, software development, software validation, and software evolution.

8
New cards

How does software engineering differ from computer science?

Computer science focuses on theory and fundamentals; software engineering focuses on the practicalities of developing and delivering useful software.

9
New cards

How does software engineering relate to system engineering?

System engineering is broader; software engineering is the software-focused part of the overall process.

10
New cards

What are the typical cost allocations in software projects?

About 60% development costs and 40% testing costs; evolution costs for custom software often exceed development costs.

11
New cards

What is a generic software product?

Stand-alone software marketed to any customer (e.g., PC graphics programs, project management tools).

12
New cards

What is a customized software product?

Software commissioned by a specific customer to meet their needs; the customer owns the specification and decides on changes.

13
New cards

Who owns the specification for generic products?

The software developer.

14
New cards

Who owns the specification for customized products?

The customer.

15
New cards

What does 'maintainability' mean in software quality attributes?

Software should be written so that it can evolve to meet changing needs.

16
New cards

What does 'dependability and security' mean in software quality?

Software reliability, security, and safety; should not cause damage; malicious users should not access or damage the system.

17
New cards

What does 'efficiency' mean in software quality attributes?

Software should not waste resources; includes response time and memory utilization.

18
New cards

What does 'acceptability' mean in software quality attributes?

Software must be understandable, usable, and compatible with users and their environments.

19
New cards

What is heterogeneity in general software issues?

Systems operate as distributed systems across networks with different devices and computer types.

20
New cards

What are the eight principles of the ACM/IEEE Code of Ethics?

Public; Client and Employer; Product; Judgment; Management; Profession; Colleagues; Self.

21
New cards

What is involved in the 'software specification' activity?

Defining the functionality, constraints, and operational requirements of the software.

22
New cards

What does the 'software development' activity encompass?

Designing and implementing the software based on the specifications.

23
New cards

What is the purpose of 'software validation'?

Checking the software to ensure it meets the customer's requirements and is fit for purpose.

24
New cards

What does 'software evolution' involve in software engineering?

Modifying the software after it has been delivered to meet changing customer and market needs.