next up previous
Next: MC111 Logic and Discrete Up: Year 1 Previous: MC104 Algorithms and Data

MC106 Software Engineering and Professional Practice


MC106 Software Engineering and Professional Practice

Credits: 10 Convenor: Dr S. J. Ambler Semester: 2


Prerequisites: essential: MC103
Assessment: Continuous assessment: 40% 1.5 hour exam in May/June: 60%

Lectures: 20 Classes: 10
Tutorials: none Private Study: 45
Labs: none Seminars: none
Project: none Other: none
Total: 75

Explanation of Pre-requisites

This module assumes that you have some feeling for the problems inherent in writing software and therefore some prior programming experience is required. In addition, it is beneficial if you are alert to current issues in software engineering as they occur and are reported in the news media.

Course Description

By the late 1960's it had become very clear within the software and computing industries that there were major problems inherent in the construction of large software systems. Many projects were delayed, or never completed. Those that were completed were over budget. A large proportion of systems were found to be unsatisfactory in use: they were ``buggy'' and required constant maintenance to fix problems; they did not satisfy the needs of the actual users.

In this module we will be taking an introductory look at the many approaches that have been devised and developed to try to tackle these problems in the past 30 or more years, and trying to assess how successful they have been. These techniques have generally resulted in a more structured and controlled development lifecycle for software systems, and as a result the people involved have had to adopt a more professional attitude. The module examines what it means to be a professional in the software industry.

Aims

To provide an understanding of the problems and difficulties and issues associated with specifying, designing and building high quality large software systems. To discuss the management, professional and ethical issues of software development.

Objectives

Syllabus

Software development a brief history of software development; the problems of software development; the software development crisis; a solution -- software engineering.

The system development process developing large systems; the need for abstraction; the development process.

The system development cycle managing the development process; how software is produced; frameworks for system development.

Planning a software project describing project goals; evaluating project goals; choosing solutions to meet the project goals.

Quality assurance what is quality; the development cycle and QA; designing, building and testing for quality; measuring the development process; documentation requirements.

The professional software engineer what is software engineering; professional practice; ethics; ensuring quality; standards and procedures; standards and procedures; tools for management.

Transferable Skills

Reading list

Essential:

R. Pressman, Software Engineering -- A Practitioner's Approach, European 4th edition, McGraw Hill, 1994.

Background:

T. Gilb, Principles of Software Engineering Management, Addison-Wesley, 1988.

I. Sommerville, Software Engineering, 5th edition, Addison-Wesley, 1996.

F. Bott, A. Coleman, J. Eaton, D. Rowland, Professional Issues in Software Engineering, 2nd Edition, UCL Press, 1995.

Details of Assessment

The coursework is divided into 3 (or more) exercises spread over the teaching semester. The first exercises concentrate on practical aspects of software projects, such as: specifying a project's goals clearly and concisely; evaluating possible solutions to a problem in order to choose the most cost effective; the application of validation and verification techniques. The final exercise requires students to research a topical professional issue and write an essay on their findings.


next up previous
Next: MC111 Logic and Discrete Up: Year 1 Previous: MC104 Algorithms and Data
S. J. Ambler
11/20/1999