![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science |
 |
Next: CO1011 Logic and Discrete Structures
Up: Year 1
Previous: CO1004 Algorithms and Data Structures
CO1006 Software Engineering and Professional Practice
Credits: 10 |
Convenor: Dr S. J. Ambler |
Semester: 2 |
Prerequisites: |
essential: CO1003 |
|
Assessment: |
Coursework: 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 |
Subject Knowledge
Aims
To understand 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.
Learning Outcomes
Students will have a broad understanding of the development
processes involved in producing a large software system.
They will be able to write clear and concise goals for projects,
presenting the information in a well structured fashion suitable
for measuring project progress.
They will to be able to make reasoned choices among alternative
development paths.
They will understand the need for quality assurance techniques, and
gain the knowledge required to apply suitable strategies in simple
cases.
Students will understand what ``professionalism'' means in the
context of the software industry,
They will be aware of the legal and ethical issues likely to affect
every professional in the software industry.
Methods
Class sessions together with course notes, recommended textbooks,
worksheets.
Assessment
Marked coursework (including 1 written essay and 1 spreadsheet
assignment), written examination.
Subject Skills
Aims
To develop analytical and problem solving skills, including the
ability to make appropriate abstractions.
To make reasoned judgements based on quantitative data.
To learn skills in research and presenting ideas in a written form.
Learning Outcomes
Students will be able to: formulate technical problems and their
solution in a methodical way; justify solutions quantitatively;
research an issue and present their findings in writing in a
balanced manner.
Methods
Class sessions together with worksheets.
Assessment
Marked coursework, written examination.
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.
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.
Reading list
Essential:
R. Pressman,
Software Engineering -- A Practitioner's Approach, European 5th
edition,
McGraw Hill, 2000.
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, 6th edition,
Addison-Wesley, 2001.
F. Bott, A. Coleman, J. Eaton, D. Rowland,
Professional Issues in Software Engineering, 3rd Edition,
UCL Press, 2001.
R.G. Epstein,
The Case of the Killer Robot,
John Wiley and Sons, 1997.
Resources
Course notes, web page, study guide, worksheets, handouts, lecture
rooms with OHP and data-projector, past examination papers.
Module Evaluation
Course questionnaires, course review.
Next: CO1011 Logic and Discrete Structures
Up: Year 1
Previous: CO1004 Algorithms and Data Structures
Author: N. Rahman, tel: +44 (0)116 252 3902
Last updated: 2003-09-23
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.