1/33
Vocabulary flashcards summarising key terms, definitions and historical milestones from the Software Engineering lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software Crisis
Period during the 1960s-70s when growing project size, missed deadlines, budget overruns and faulty software exposed limits of ad-hoc programming.
NATO Software Engineering Conferences (1968/69)
Meetings where the term “Software Engineering” was coined as a remedy for the software crisis.
Software Engineering (NR68 definition)
Applying sound engineering principles to obtain economical, reliable and efficient software for real machines.
Software Engineering (IEEE 1983 definition)
Systematic approach to the development, operation, maintenance and retirement of software.
Triple Responsibility
SE must satisfy demands on the product, the development methods, and the engineer’s ethical conduct.
Engineering Discipline
Field that uses scientific knowledge, judgement and creativity to build technical systems for human benefit.
Technological Sciences (Technikwissenschaften)
Academic fields focused on designing technology through modelling, testing and simulation (e.g., mechanical or electrical engineering).
Essential Complexity
Unavoidable complexity inherent in the problem domain or system itself.
Accidental Complexity
Extra complexity introduced by inappropriate tools, goals or processes; can be reduced or avoided.
Abstraction
Hiding lower-level details by using models or higher-level concepts to manage complexity.
Modularization
Dividing a system into well-defined components to enable separation of concerns and easier maintenance.
Standardization
Use of agreed rules and interfaces to enable reuse, integration and knowledge consolidation.
Body of Knowledge (BOK)
Curated set of concepts, methods and tools recognised as essential for a professional field.
SWEBOK
IEEE guide specifying the Software Engineering Body of Knowledge and its knowledge areas.
Stable Core
Long-lived principles and tools within the BOK that tackle essential complexity and avoid unnecessary complexity.
ACM/IEEE Code of Ethics
Professional ethical guidelines that software engineers should follow in their work.
Software Quality Attributes
Desired properties such as correctness, reliability, safety, efficiency, usability, maintainability and reusability.
Software Requirements
Documented needs and conditions a software system must satisfy.
Software Design
Process of defining the architecture, components and interfaces of a system.
Software Construction
Detailed coding and unit testing activities that create executable software.
Software Testing
Activities aiming to detect defects and evaluate software quality before release.
Software Maintenance
Modification of a software product after delivery to correct faults or improve performance.
Software Configuration Management
Control and tracking of versions, builds and change history of software artefacts.
Software Engineering Economics
Study of cost, value and economic trade-offs in software projects.
Design Science Research
Research paradigm that produces prescriptive knowledge (technological rules) through iterative problem-solution cycles.
Technological Rule
General prescription linking a problem to an effective solution, e.g., “To achieve X, apply technique Y.”
HELENA Study
International survey investigating the use of hybrid development approaches in software projects.
CHAOS Report
Standish Group report analysing project success and failure factors; highlights incomplete requirements as top issue.
Heartbleed
2014 OpenSSL vulnerability allowing attackers to read server memory due to unchecked length field.
Software Fail Watch (Tricentis)
Report estimating US$1.7 trillion in 2017 losses due to software failures and inadequate testing.
SCRUM
1995 agile framework for iterative and incremental software development.
Agile Manifesto (2001)
Statement of values emphasizing individuals, working software, customer collaboration and adaptability.
DevOps
Cultural and technical movement (≈2010) integrating development and operations to accelerate delivery.
Microservices
Architectural style (≈2010) that structures an application as a suite of small, independent services.