Complete Revision Notes, Mock Exam Questions & Model
Answers
University-level IT and Computer Science study guide
Original educational material • Includes topic summaries, key definitions, and practice
assessment
Software Engineering Revision Notes • Page
,How to Use These Notes
Study one chapter at a time, then summarize the key ideas in your own words.
Use the multiple-choice questions to check recall, and attempt short-answer and essay
questions before reading the model answers.
Treat the questions as original practice questions, not official past-paper questions or
predictions of a specific examination.
Check your lecturer's syllabus, terminology and prescribed textbook; course coverage and
terminology may differ.
Before publishing or selling this document, review it for accuracy, add your own examples and
formatting, and ensure that any third-party material you add is licensed for reuse.
Contents
1. 1. Introduction to Software Engineering
2. 2. Software Development Life Cycle (SDLC)
3. 3. Feasibility Study and Project Planning
4. 4. Requirements Engineering
5. 5. Software Process Models and Methodologies
6. 6. System Analysis and Modeling
7. 7. Software Design and Architecture
8. 8. Coding, Version Control and Code Review
9. 9. Software Testing and Verification
10. 10. Software Quality Assurance (SQA)
11. 11. Software Project Management
12. 12. Software Security, Privacy and Ethics
13. 13. Deployment, Operations and Maintenance
14. 14. Documentation and Professional Practice
15. 15. Emerging Practices and Technologies
16. 16. Practice Examination and Model Answers
17. 17. Quick Revision Glossary
Software Engineering Revision Notes • Page
, 1. Introduction to Software Engineering
Definition
Software engineering is the systematic, disciplined and measurable application of engineering
principles to the development, operation, maintenance and evolution of software.
Software
Software includes computer programs, their configuration data, and supporting documentation. It
may be application software, system software, embedded software, or web/mobile software.
Why software engineering is needed
It helps manage complexity, improve reliability and security, control cost and schedule, support
teamwork, meet user needs, and make software easier to maintain.
Characteristics of good software
Correctness; reliability; usability; efficiency; security; maintainability; portability; scalability;
compatibility; and testability.
Software engineering vs programming
Programming focuses mainly on writing and debugging code. Software engineering covers the full
lifecycle, including requirements, design, coding, testing, deployment, project management,
documentation, security and maintenance.
Software crisis
The software crisis refers to recurring problems such as late delivery, cost overruns, unreliable
systems, difficult maintenance and failure to satisfy user needs. Common causes include unclear
requirements, poor estimation, inadequate testing and uncontrolled changes.
Software process
A software process is a structured set of activities used to build and maintain software. Common
activities are specification, development, validation and evolution.
Revision tip: Define the key term, explain its purpose, and support your answer with a relevant
example.
2. Software Development Life Cycle (SDLC)
Meaning
The Software Development Life Cycle (SDLC) is a structured framework that organizes software
work from initial idea through operation and retirement.
1. Planning and feasibility
Define the problem, objectives, scope, stakeholders, resources, risks, budget and schedule.
Feasibility is commonly assessed as technical, economic, operational, legal, schedule and
sometimes organizational feasibility.
Software Engineering Revision Notes • Page