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:
- the description of the processes by
which a software system is produced in a planned fashion, and
- the management of software development icluding the role
of planning documents and standards.
It will share, with other 3000-level units, the responsibility for:
- the description of the principles of software engineering,
- design methodologies for software systems,
- experience in communicating those designs, and
- programming-in-the-large, including software reuse.
Topics
The following topics will be addressed.
- System life cycle; Software as a component of a total system.
- The software life cycle; Requirements phase; Design phase;
Implementation; Verification and validation; Documentation.
- Project management; Conduct of meetings; Decision making;
Planning; Metrics.
- Capability maturity model.
- Quality assurance.
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:
- produce documents, using LATEX, with a table of contents,
with figures, with an index and which are translated to
HTML for browsing,
- use a source control system - either RCS or CVS, and
- write simple programs in a scripting language such as Perl.
Chris Johnson
2000-10-30