![PDF version PDF version](https://teaching.eng.cam.ac.uk/sites/teaching.eng.cam.ac.uk/modules/print/print_pdf/icons/pdf_icon.png)
Leader
Timing and Structure
Thursdays 11-1pm, Mondays 9-11am plus afternoons (set P2) or Fridays 11-1pm, Tuesdays 9-11am plus afternoons (set P3)
Prerequisites
Part I computing assumed
Aims
The aims of the course are to:
- Introduce students to various issues in the development of large software systems.
- Develop and test a logic simulator in Python.
Content
The aim of this project is to develop a logic simulation program using the programming language Python. The project introduces students to all major phases of software engineering practice, viz. specification, design, implementation, testing and maintenance.
The project is organised in the form of a 'real life simulation'. You are asked to imagine that you have joined a software development company. You have been assigned to a team of programmers who have just begun work on a contract to develop a logic simulation program. You are given the 'client's' original requirements document and asked to produce a detailed specification for part of the system. Following this, you move onto the design stage. You are told that the program has been divided into eight functional modules and your team has been given the responsibility for designing and implementing four of them. When you have completed these, you have to integrate them with the remaining four modules of the system and test it. Finally, the client requests some changes to be made to the program and you are asked to implement these.
FORMAT
Students work in groups of three. Each student in the group will write different parts of a large software system, test them independently and then integrate into a complete simulator.
Week 1
Introductory exercises in Python. Lecture on formal language theory, lexical analysis, grammars and parsing. Form development team. Start designing the logic specification language.
Week 2
Finish designing the logic specification language, document it in an interim report. Familiarization with provided software modules. Software design, implementation and unit testing.
Week 3
Software design, implementation and unit testing (continued).
Week 4
Integration and testing of the complete system. Implement the client's requested modifications and write a final report.
Coursework
Coursework | Due date | Marks |
---|---|---|
Interim report 1 |
4pm Saturday 18 May 2019 (set P2) 4pm Sunday 19 May 2019 (set P3) |
15 (all group) |
Interim report 2 |
11am Thursday 30 May 2019 (set P2) 11am Friday 31 May 2019 (set P3) |
15 (7 group 8 individual) |
Final report |
4pm Wednesday 5 June 2019 (set P2) 4pm Thursday 6 June 2019 (set P3) |
50 (all individual) |
Examination Guidelines
Please refer to Form & conduct of the examinations.
Last modified: 03/10/2018 10:15