COMP3111/9008 has been given in essentially the same format for the last 8 sessions. In essence this format comprises 50% the B-method and 50% classical software development. The lectures in these 2 strands are intertwined.
The course is being revised because:
1) The general feedback from students for this course is very negative. A crucial objective of the course is to promote the use of a formal method in s/w development, and demonstrate the important role it plays. The course is failing to meet this objective,
2) The integration between the B-method and classical s/w development is poor. The students do not see any significant connection, and view the course as being disjoint.
3) Experience with teaching the B-method suggests that the method needs to be taught in its entirety. There is simply not enough time in the course to do this. In fact, one could certainly argue that a full 6uoc course needs to be devoted to the method. COMP2111 has of course become such a course.
4) While the course is ostensibly project based, this has been difficult to organise because of the ramp-up time needed to get students up-to-speed in the B-method. In practice, students tackle the project in just the 2nd half of the course.
The current handbook entry on the website is:
Informal specification: Data flow diagram methodology, analysis, design, testing, management and documentation of software. Formal specification: set theory, logic, abstract machines, case studies. The B Method, a formal development method. The B Method will be supported by the use of the BToolkit. Managing the project life cycle. CASE tools. A major group project is undertaken.
The undergraduate handbook says the following:
Informal specification: Data flow diagram methodology, analysis, design, testing, management and documentation of software. formal (sic) specification: set theory, logic, schema, calculus, case studies. The Z specification notation. Managing the project life cycle. CASE tools. A major group project is undertaken.
The new text could be:
The phases of the software lifecycle: requirements, specification, (informal and formal) analysis, design, implementation, testing, integration, and maintenance. Also focusses on software project management. A major group software-development project is undertaken.
An overview of the current course, the IEEE recommendation, and the revised course, using the section titles from IEEE, is shown below. The number of lecture hours is given.
|IEEE Section Title||Current||IEEE||Proposed|
|4||*S/W Reqs and Specs||24#||6||12^|
|5||*S/W Design (Classical, OO, reuse)||3||6||6|
|6||*S/W Testing/Validation (bbox,wbox,reviews)||6||6||6|
|7||*S/W Evolution (conf & version mgtm, maint.)||-||4||3|
|8||*S/W Tools/Environs (CASE,test)||-||2||3|
|10||S/W Project Management||4||4||6|
The major differences are:
1) No B-method. There will be a formal component in the course, however, and it will need to be doable/meaningful in the limited time.
2) Some time on design methods like extreme programming and design patterns (possible overlap with COMP'OODI).
3) Introduce configuration mgmt and version control
4) Exposure to a (standard) CASE tool (UML based) like Rational software. UML will figure prominently in the course.
5) More time spent on project management.
Note, some of the above changes mirror changes in the new edition of the course text for 2005.
1. Who is proposed to teach the proposed new course, and what impact would this have on their planned/current allocation?No change to choice of lecturers.
2. What sort of tutorial component is proposed, if any?Mentors will be important for advising project groups.
3. What is the likely impact on lab utilisation (this relates to assignment and project work as well as scheduled labs?The B-toolkit is used substantially in the current course. In the revised course it will be replaced by one or more `lighter' CASE tools, yet to be decided upon. These tool(s) should be UML based.
4. Any other resource needs? E.g. special print/disk quota, access to servers, access to special machines, special labs.No