[The University of Leicester]

Department of Mathematics & Computer Science



Next: MC208 Functional Programming Up: Year 2 Previous: MC205 Object-Oriented Programming Using C++

MC206 Software Engineering and System Development


MC206 Software Engineering and System Development

Credits: 20 Convenor: Zhiming Liu Semester: 1

Prerequisites: essential: MC103, MC104, MC111 desirable: MC106, MC115
Assessment: Continual assessment: 40% Three hour exam in January: 60%
Lectures: 36 Problem Classes: none
Tutorials: none Private Study: 78
Labs: 24 Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Explanation of Pre-requisites

A sound knowledge of basic algorithm and program design and data structures is required. A good understanding of logic and discrete structures is essential for rigorous and formal models and specifications of software systems. Some knowledge of the professional and ethical issues of large systems are would be useful, but it is certainly not essential for this course. It is also desirable that students have some knowledge of database systems.

Course Description

This course follows on from the course on Software Engineering and provides the students with the engineering principles, methods and practice of how a large system can be specified, designed and implemented using object oriented techniques.

Aims

The overall purpose of the course is to give an understanding of the problems of large-scale software development and how this can be solved using object-oriented techniques. The main aim of the course is to teach the understanding and use of object-oriented methods to analyse, specify, design and implement large computer systems.

Objectives

At the end of the course the students should be able to:

Transferable Skills

Syllabus

Introduction: Software crisis and historical background of Software Engineering; features of modern software systems, software products and their characteristics: maintainability, dependability, efficiency and usability.

Software Development Process: Requirement analysis; system design; implementation and unit testing; integration and system testing; operation and maintenance; the waterfall model; evolutionary development.

Introduction to OO Development: The inherent complexity of software; mastering complex systems; examples of complex systems; function oriented vs object-oriented methods.

Object-oriented requirement capture and analysis: Case study; requirement specification; use cases; conceptual models, use case based project planning; testing based on use cases. .

System Behaviour: System Sequence Diagrams and Operations: System input events and system operations; system sequence diagrams (SSD); contracts; from analysis to design.

OO Design: Interaction diagrams; UML notational issues. creating interaction diagrams, patterns for assigning responsibilities; a design of POST; connecting user interface objects to domain object; design class diagrams; use interaction for testing plan.

Implementing a Design: UML notation for interface details; mapping a design to code; container/collection classes in code.

Advanced Modelling Concepts and Design Techniques: Iterative development process; generalization; abstract classes; associative classes; UML notation for packages; configiration control; modelling behaviour in state diagrams; VDM specification of classes and objects.

Summing Up and Revision

Reading list

Essential:

Recommended:

I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999.

C. Larman, Applying UML and Patterns, Prentice-Hall International, 1998.

R. Pooley and P. Stevens, Using UML: Software Engineering with Objects and Components, Addison-Wesley, 1999.

Background:

X. Jia, Object-oriented Software Development Using Java, Addison-Wesley Longman, 2000.

B. Meyer, Object-oriented Software Construction (2nd Edition), Prentice Hall PTR, 1997.

R. Pressman, Software Engineering - A Practitioner's Approach (4th Edition), McGraw Hill, 1997.

S.R. Schach, Classical and Object-Oriented Software Engineering (3rd Edition), IRWIN, 1996.

I. Sommerville, Software Engineering (5th Edition), Addison-Wesley, 1995.

Details of Assessment

The coursework for the continual assessment consists of three pieces of group work and two pieces of individauls work.

The written January examination contains six questions, and candidates can obtain full marks from four good questions.


Next: MC208 Functional Programming Up: Year 2 Previous: MC205 Object-Oriented Programming Using C++

[University Home] [MCS Home] [University Index A-Z] [University Search] [University Help]

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.