COMP3100: Software Engineering Group Project


(12 credit points) Group C
Annual


Fifty one-hour lectures and 300 hours of group project work

Lecturer: Dr. Malcolm Newey

Prerequisites

24 credit points of 2000-level COMP units including COMP2100, and COMP2110, and 6 credit points of 2000-level MATH or STAT or EMET units.
Incompatible with COMP3018.

Co-requisites

COMP3110.

Syllabus

This unit provides the student with project experience to complement the studies of the software development process in units COMP2100, COMP2110, COMP3110 and COMP3120.

Students work in small groups and participate in all the development phases (requirements analysis, design, construction, testing and documentation) of a nontrivial software system. As well, each group has to address the control of the development process by constructing and following a detailed software development management plan.

Description

The software engineering program in the Department involves one project of sufficient size and complexity that a team effort is appropriate; there is an emphasis on systematic utilization of standards as the software life cycle is followed from requirements analysis to validation and verification.

Every team-member is assigned a role with appropriate responsibilities for deliverables but is also expected to be have some input to all software products. The roles to be played are leader, analyst, designer, programmer, documentation specialist, V & V coordinator, web site manager.

All students will be involved in the planning that is required for successful completion, in each of several reviews and a final presentation of the finished product.

Rationale

Software engineering addresses software systems beyond the scale of an individual programmer. Rather, it is concerned with software systems that can only be constructed and maintained by coordinated group effort. There is a consensus that the corresponding software engineering knowledge and skills can only be developed in the context of group-based projects.

This unit focus on the specification, design and construction of a moderate-sized software system. The task is deliberately selected to be larger than can be reasonably handled by an individual student. More generally, the unit contributes to the development of the communication and collaboration skills that are important for a computing professional.

The development of a fully professional software engineer involves the steady accumulation of skills, experience and even wisdom in a professional work environment. This unit is clearly seen as providing only an introduction to real-world software development but it a substantial experience that gives the student ample chance for reflection on all phases of the software development life cycle.

Ideas

This unit will be the primary carrier of the following:

It will share, with other 3000-level units, the responsibility for:

Topics

The following topics will be addressed. The unit covers these topics, through the nominated textbook and assigned readings. In any particular year, many of the concerns are strongly focussed by the nominated project.

Objectives

At the completion of this unit the group will be able to do the following.

1.
Apply the conceptual framework of the software development life-cycle (specification, design, implementation and testing) to produce and follow a software development management plan. (level in Biggs SOLO taxonomy: 4 ; generic graduate attributes: 2,3,5)
2.
Cooperatively produce a software system that has been engineered using standards for requirements specification, design description, software reviews and verification and validation. (level in Biggs SOLO taxonomy: 4 ; generic graduate attributes: 1,2,3,4,5)
3.
Give a presentation, including a demonstration, to a varied audience on the product and its development process. (level in Biggs SOLO taxonomy: 4 ; generic graduate attributes: 2,3,6)

At the completion of this unit the student will be able to do the following.

4.
Act as an effective member of a team where responsibilities are assigned according to experience. This includes communicating effectively to ensure group cooperation. (level in Biggs SOLO taxonomy: 3 ; generic graduate attributes: 1,2,3,6)
5.
Describe the formal process used to construct a management plan. (level in Biggs SOLO taxonomy: 3 ; generic graduate attributes: 3)
6.
Describe the use of standards in the development process. (level in Biggs SOLO taxonomy: 4 ; generic graduate attributes: 3)
7.
Participate effectively in software reviews. (level in Biggs SOLO taxonomy: 4 ; generic graduate attributes: 3,5)
8.
Reflect on the nature of the role played. (level in Biggs SOLO taxonomy: 5 ; generic graduate attributes: 1,2,3,5,6)
9.
Describe the main methodologies available for the various phases of the life-cycle. (level in Biggs SOLO taxonomy: 3 ; generic graduate attributes: 3)

Assessment

The following modes of assessment are used.

final examination This tests objectives 5, 6, 8 and 9.

text deliverables The many documents required in the software development cycle collectively test objectives 1, 2, 4 and 7.

code deliverables The source code which is examined and the executable which is run test objectives 1, 2, 4 and 7.

formal presentation This tests objectives 2, 3 and 4.

Technical Skills

On completion of the course the student will be able to:



Chris Johnson
2000-10-30