![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science |
 |
Next: MC111 Logic and Discrete Structures
Up: Year 1
Previous: MC104 Algorithms and Data Structures
MC106 Software Engineering and Professional Practice
Credits: 10 |
Convenor: Dr S. J. Ambler |
Semester: 2 |
Prerequisites: |
essential: MC103 |
|
Assessment: |
Continual assessment: 40% |
Two hour exam in May/June: 60% |
Lectures: |
18 |
Problem Classes: |
6 |
Tutorials: |
none |
Private Study: |
45 |
Labs: |
none |
Seminars: |
none |
Project: |
none |
Other: |
none |
Surgeries: |
6 |
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
- To gain a broad understanding of the development processes
involved in producing a large software system;
- to be exposed to the typical problems inherent in large
projects involving many people over extended periods of time;
- to be able to write clear and concise goals for projects,
presenting the information in a well structured fashion suitable
for measuring project progress;
- to be able to make reasoned choices among alternative
development paths;
- to understand the need for quality assurance techniques, and
gain the knowledge required to apply suitable strategies in simple
cases;
- to understand what ``professionalism'' means in the context of
the software industry;
- to be aware of the legal and ethical issues likely to affect
every professional in the software industry.
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;
documentation requirements; validation and verification;
reviews and inspections; measuring the development process.
Testing and maintenance testing the result; behavioural testing
techniques; testing for quality.
The professional software engineer what is software
engineering; professional practice; ethics; ensuring quality;
standards and procedures; standards and procedures; tools for
management.
Transferable Skills
- Improved analytical and problem solving skills.
- Improved ability to think and describe things abstractly.
- Emphasis on developing and presenting an argument.
- Research skills.
- Teamworking is required during problem classes.
Reading list
Essential:
R. Pressman,
Software Engineering -- A Practitioner's Approach, European 4th
edition,
McGraw Hill, 1994.
R. Ayres,
The Essence of Professional Issues in Computing,
Prentice Hall, 1999.
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.
R.G. Epstein,
The Case of the Killer Robot,
John Wiley and Sons, 1997.
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: MC111 Logic and Discrete Structures
Up: Year 1
Previous: MC104 Algorithms and Data Structures
Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 2001-09-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.