Software Engineering – History, Principles & Challenges

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

1/33

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards summarising key terms, definitions and historical milestones from the Software Engineering lecture notes.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

34 Terms

1
New cards

Software Crisis

Period during the 1960s-70s when growing project size, missed deadlines, budget overruns and faulty software exposed limits of ad-hoc programming.

2
New cards

NATO Software Engineering Conferences (1968/69)

Meetings where the term “Software Engineering” was coined as a remedy for the software crisis.

3
New cards

Software Engineering (NR68 definition)

Applying sound engineering principles to obtain economical, reliable and efficient software for real machines.

4
New cards

Software Engineering (IEEE 1983 definition)

Systematic approach to the development, operation, maintenance and retirement of software.

5
New cards

Triple Responsibility

SE must satisfy demands on the product, the development methods, and the engineer’s ethical conduct.

6
New cards

Engineering Discipline

Field that uses scientific knowledge, judgement and creativity to build technical systems for human benefit.

7
New cards

Technological Sciences (Technikwissenschaften)

Academic fields focused on designing technology through modelling, testing and simulation (e.g., mechanical or electrical engineering).

8
New cards

Essential Complexity

Unavoidable complexity inherent in the problem domain or system itself.

9
New cards

Accidental Complexity

Extra complexity introduced by inappropriate tools, goals or processes; can be reduced or avoided.

10
New cards

Abstraction

Hiding lower-level details by using models or higher-level concepts to manage complexity.

11
New cards

Modularization

Dividing a system into well-defined components to enable separation of concerns and easier maintenance.

12
New cards

Standardization

Use of agreed rules and interfaces to enable reuse, integration and knowledge consolidation.

13
New cards

Body of Knowledge (BOK)

Curated set of concepts, methods and tools recognised as essential for a professional field.

14
New cards

SWEBOK

IEEE guide specifying the Software Engineering Body of Knowledge and its knowledge areas.

15
New cards

Stable Core

Long-lived principles and tools within the BOK that tackle essential complexity and avoid unnecessary complexity.

16
New cards

ACM/IEEE Code of Ethics

Professional ethical guidelines that software engineers should follow in their work.

17
New cards

Software Quality Attributes

Desired properties such as correctness, reliability, safety, efficiency, usability, maintainability and reusability.

18
New cards

Software Requirements

Documented needs and conditions a software system must satisfy.

19
New cards

Software Design

Process of defining the architecture, components and interfaces of a system.

20
New cards

Software Construction

Detailed coding and unit testing activities that create executable software.

21
New cards

Software Testing

Activities aiming to detect defects and evaluate software quality before release.

22
New cards

Software Maintenance

Modification of a software product after delivery to correct faults or improve performance.

23
New cards

Software Configuration Management

Control and tracking of versions, builds and change history of software artefacts.

24
New cards

Software Engineering Economics

Study of cost, value and economic trade-offs in software projects.

25
New cards

Design Science Research

Research paradigm that produces prescriptive knowledge (technological rules) through iterative problem-solution cycles.

26
New cards

Technological Rule

General prescription linking a problem to an effective solution, e.g., “To achieve X, apply technique Y.”

27
New cards

HELENA Study

International survey investigating the use of hybrid development approaches in software projects.

28
New cards

CHAOS Report

Standish Group report analysing project success and failure factors; highlights incomplete requirements as top issue.

29
New cards

Heartbleed

2014 OpenSSL vulnerability allowing attackers to read server memory due to unchecked length field.

30
New cards

Software Fail Watch (Tricentis)

Report estimating US$1.7 trillion in 2017 losses due to software failures and inadequate testing.

31
New cards

SCRUM

1995 agile framework for iterative and incremental software development.

32
New cards

Agile Manifesto (2001)

Statement of values emphasizing individuals, working software, customer collaboration and adaptability.

33
New cards

DevOps

Cultural and technical movement (≈2010) integrating development and operations to accelerate delivery.

34
New cards

Microservices

Architectural style (≈2010) that structures an application as a suite of small, independent services.