“Morning of the exam” revision guide
Craig Knott
Version 1.2
May 25, 2012
Craig Knott
0.1
G51FSE “Morning of the exam” revision guide
Humble Beginnings
What is software engineering?
“The application of a systematic, disciplined, organised and quantifiable approach to the development, operation and maintenance of software - and the study of these approaches”
When engineering software, we don’t do it in an adhoc way. As we are generally working as a team, this would cause all sorts of problems - we need to work together. Thus, we need some sort of agreed structure, or framework.
The structure or framework can be summed up as a software engineering methodology, each of which needs the following properties:
Systematic
Complete certain stages before progressing to others
Disciplined
Each stage has a defined set of goals and objectives to achieve
Quantifiable A way to check if these goals have been met
The ultimate goal of the application of these methodologies is to produce professional, understandable, relatively bug-free software, that satisfies the requirements of the customer, consumer or stakeholder.
For simple projects, achieving these goals can be very easy. But for complex projects, that are large, have many people, and many independent parts of software, this can be very hard.
1
Craig Knott
0.2
G51FSE “Morning of the exam” revision guide
Stages of Software Engineering
There are generally six main stages of the software engineering process. The interaction and order of these sections depends on the methodologies used.
0.2.1
Requirements
A list of things that the software must do
The aim of this section is to produce a list of Requirements that the system must adhere to. This document, the Requirements Documents, should be a detail of what this system does, and not how it should do it.
The four main sections are as follows
• Feasibility Study
Will the new system be able to satisfy the