ES3C6 Software Engineering
Module Leader: Prof. E.L. Hines
External Lecturer: Mr S.A. Perry
Module Information
Scope
This 15 CATS module is one of the third year modules for:
| Core: | Optional: |
|
|
Aims
The module aims to provide a sound understanding of the design, analysis and implementation of software and software-based systems. It aims to develop the student’s ability to:- specify, design, construct, test and maintain software products and components; understand the principles underlying the generation of software; use practical skills in laboratory session in which relevant test and measurement equipment is available; select and apply appropriate computer languages and tools; design and implement small real-time systems using structured, modular and concurrent programming techniques.
Learning Outcomes
By the end of the module the student should be able to...
- Understand the importance of the various stages of the development lifecycle
- Use object oriented methods of modelling and design in the development of software-based applications
- Design and implement small real-time systems using structured, modular and concurrent techniques
- Appreciate typical problems, and some solutions, of applying software in critical applications
- Use computer packages to model signals and processes
- Use practical skills: Use test and measurement equipment in the laboratory to evaluate software
- Communicate in a professional and scientific manner, making use of graphs and equations where necessary
- Display enhanced cognitive skills in formulating and testing concepts and hypotheses
Syllabus
Software Engineering in Context: functional and economic considerations; software engineering as an element of system development; the software development lifecycle, requirements, specification, design, construction, testing and maintenance; software efficiency; why software fails.
Object-Oriented Modelling and Design: revision of fundamentals; models and notations; use case modelling; static and dynamic models; class specification; software architecture and design.
The Unified Modelling Language (UML):concepts and an overview of UML notation; object-oriented design using UML.
Real-Time Considerations: properties and requirements of real-time systems; hard and soft timing constraints; design strategies - single, foreground/background and multiple task approaches; implementation of real-time software; choice of programming languages for real-time applications - overview of Ada, C, modula-2.
Concurrent programming techniques: use of concurrent techniques in operating systems; databases and distributed systems.
The software development environment: software development tools; use of software in critical applications; software errors and fault tolerance; cost estimation.
Teaching Methods
This module includes 20 hours of lectures, 3 hours of examples classes, 5 hours of seminars and 6 hours of laboratory sessions.
Required self-study: 116 hours
Assessment
A 15 CATS module: 80% examined via a 3 hour paper
Exam rubric information:
- Answer 4 Questions chosen from 6
and 20% assessed consisting of an assignment.
Links to:
Required Textbook:
Sommerville, I., Software Engineering, 7th or 8th ed., Pearson Education, 2004 (2006)
Holt, J., UML for Systems Engineering: Watching the Wheels, 2nd ed., (IEE) IET Publishing, 2004