Department of Computer Science and Informatics
Departement Rekenaarwetenskap en Informatika
Type your title here
Name:Initials and Surname
Short paragraph in which you broadly state the purpose of the project, describe the solution, end goals in terms of benefits to end user.
Table of Contents
3Problem Definition and Aims
3.1Client needs and design criteria
4Design considerations and specifications
4.2Hardware and software limitations
8Evaluation of solution
Write a short introduction (approximately 200 words) in which you provide the reader with context. You should draw on relevant, reputable sources to paint a picture describing the current status of the environment that you intend to apply your project to. For example, if your project will automate a business process, provide information about how that process is currently implemented, and how it fits into the broader business functions. Be sure to highlight the shortcomings of existing systems (where applicable) or problems that have been identified that you intend to address.
2 Problem Definition and Aims
Once you have provided context, you can move on to selecting a specific issue that you will be addressing. Your identified problem should therefore come from the context you provided in the previous section. Depending on the type of project you are doing (software development versus other projects), this will include different sections.
2.1 Client needs and design criteria
For software development projects. Based on the stated problem, what are the individual components that need to be addressed in order to meet the client’s requirements?
2.2 Problem statement
For other project types. What is the problem as you see it (motivate!). Provide enough information to justify that this problem needs to be addressed.
2.3 Existing work
What has already been done in this field? Are there existing programs/solutions similar to what you intend to do?
2.4 Proposed solution
This section should discuss how you plan to address the points you have mentioned earlier. This is intended for projects that involve any form of development.
- For software development projects, clearly state the features of the system, and how they relate to the client requirements. Highlight the benefit(s) to the end user. If any of the features fall outside the scope of the project, motivate why.
- For other project types, explain what your project will contribute and how. For example, is this a new or improved solution to an existing problem?
3 Design considerations and specifications
The client’s needs or the nature of the problem may impose design considerations on your project. For example, a real-time monitoring system needs to respond in a timely manner to changes in the system. Games need to take into consideration the frame rate. Consider the goals of the project and address the following:
3.1 Performance limitations
Complete where applicable. What are the performance parameters of the system? For example, how long should it take to process queries? How big is the data set that it needs to support? What measure of reliability is required (mean time between failures)? How easy should it be to use?
3.2 Hardware and software limitations
Your system will be deployed in a specific environment. This will often times limit the sort of hardware you will have available (CPU, memory, network etc...) and the operating system that you need to develop for.
3.3 Technologies involved
Take into consideration the previous two sub sections, and select technologies (programming languages, tools etc...) that will be best suited to the project. Your choice of technologies should be grounded in literature (i.e. not used simply just because you are familiar with it), and should strive to use the most appropriate technologies where applicable. Again, this should be well-motivated and not based on your opinion!
4 Required skills
It is likely that you will need to acquire additional skills and knowledge to meet the goals you have set forth in previous sections. This can include learning a new programming language, using different frameworks, programs, technologies, operating systems. Keep this in mind when you look at the scope of your project. If you need to learn many new skills, you may need to limit your scope.
5 Design approach/methodology
This section should focus on your plan of action for the project. It involves time and risk management, and the selection of a development strategy (or methodology).
5.1 Project components
Optional but highly beneficial. Break your project into smaller components/steps that need to be completed. Try to identify as many components as possible (UI design and implementation, database services, queries, testing phases etc...). Make use of a Critical Path Analysis and PERT (TechTarget, 2007) charts to list all the individual components/steps and their dependencies. Highlight the critical paths where possible.
Figure 1: A simple PERT diagram example.
Make sure you are well aware of which sections of the work will require additional time and will cause the project to fail if not completed.
Refer to the following links for more information:
5.2 Planned timeline
You should also create a Gantt (Gantt.com, 2017) chart in which you set up a development/writing schedule. Be realistic and keep in mind the skills you need to acquire to complete the project.
What methodology will be followed (software engineering, design science etc...)? Students that are doing something research related, or that falls outside the scope of software development, should read up on the various methodologies that are available and pick one that is suitable to the problem.
6 Environmental Impact
What is the effect of you system when placed in context of the environment? For example, it is unlikely that your program is the only one that will be running on a computer/phone. What are the implications if your program crashes, or uses a large amount of resources? If you are automating a process for example, there may be severe repercussions that lead to financial loss.
Furthermore, if your program involves personal or sensitive data, or will utilise human participants for the purpose of evaluation you will need to consider the ethics of the system. You should therefore demonstrate that you are aware of ethical concerns where appropriate (motivate if they are not), and discuss how they will be addressed (ethics applications, informed consent etc...)
7 Evaluation of solution
How will you judge whether your project has been a success? Use the parameters set forth in the previous sections along with your chosen methodology to formulate an evaluation strategy. Upon completing your project, you must use this strategy to show that your project has been successful.
In the case of software development projects, how do you plan to demonstrate relevant aspects such as the Utility, Reliability, Robustness, Performance and Correctness of your system?
It is important that you learn to be held accountable for the work you do. If your system does not meet the goals set forth above, you will be penalised. This includes missing features, poor performance, incorrect outputs and so on.
Please note that the chosen project methodology will typically prescribe the evaluation methods that should be used. This can include simulations, lab experiments, white box testing, correctness proofs and so on. The results of the testing should be documented where appropriate in you final documentation.
A short paragraph (3 - 4 sentences) summarising the chapter.
Gantt.com. (2017). What is a Gantt chart? expid=11664174-46 .EjGD5xWgTOia25IJzkiv2w.0&utm referrer=https%3A%2F%2F Accessed: 2017-02-06)
TechTarget. (2007). PERT chart (Program Evaluation Review Technique). http:// searchsoftwarequality.techtarget.com/definition/PERT-chart. (Accessed: 2017-02-06)