Software engineering
Key facts
- 1968: The NATO Software Engineering Conference at Garmisch popularised "software engineering" as a disciplined response to the software crisis.
- 1970: Winston W. Royce described a sequential development approach that later became associated with the waterfall model.
- 1975: Frederick P. Brooks published "The Mythical Man-Month", making schedule slippage and the cost of adding manpower classic software-project lesson...
- 1976: Thomas J. McCabe introduced cyclomatic complexity, a control-flow metric used to estimate independent paths and testing effort.
- 1986: Barry Boehm published the spiral model, placing risk analysis at the centre of iterative software development.
Key Points at a Glance
- 1
1968: The NATO Software Engineering Conference at Garmisch popularised "software engineering" as a disciplined response to the software crisis.
- 2
1970: Winston W. Royce described a sequential development approach that later became associated with the waterfall model.
- 3
1975: Frederick P. Brooks published "The Mythical Man-Month", making schedule slippage and the cost of adding manpower classic software-project lessons.
- 4
1976: Thomas J. McCabe introduced cyclomatic complexity, a control-flow metric used to estimate independent paths and testing effort.
- 5
1986: Barry Boehm published the spiral model, placing risk analysis at the centre of iterative software development.
- 6
2001: Seventeen software practitioners published the Agile Manifesto, giving a concise value base for iterative, customer-focused development.
- 7
2005: Linus Torvalds created Git, now a widely used distributed version-control system for collaborative software development.
Continue studying
Scope and Core Ideas of Software Engineering
Software engineering is the disciplined application of engineering principles to the development, operation and maintenance of software. It is wider than programming. Programming writes code; software engineering also covers feasibility, requirement analysis, design, coding standards, testing, configuration control, documentation, deployment, maintenance and project management. The subject arose because large software systems were often late, over budget, unreliable or hard to change, a situation called the software crisis. In an objective exam, the safest definition is that software engineering aims to produce correct, reliable, maintainable and cost-effective software within time and resource constraints.
A software product may be generic, such as an operating system or office package, or customised, such as an exam-management portal built for a recruitment board. Key product attributes include functionality, reliability, usability, efficiency, maintainability and portability. Software differs from hardware because it does not wear out physically, but it deteriorates when repeated changes make the structure more complex. Good engineering controls this decay through modular design, reviews, version control and testing.
Exam handle: software engineering is a life-cycle discipline, not a synonym for coding.
Open the complete note
This public page shows the first available section. The study pack opens the complete topic with all revision material.
7 more sections in the complete note
Open study pack