![PDF version PDF version](https://teaching20-21.eng.cam.ac.uk/sites/teaching20-21.eng.cam.ac.uk/modules/print/print_pdf/icons/pdf_icon.png)
Module Leader
Lecturer
Dr E Punskaya
Timing and Structure
Lent term. 16 lectures (including integrated examples classes). Assessment: 100% exam.
Objectives
As specific objectives, by the end of the course students should be able to:
- Understand the benefits of object-oriented analysis and design, its concepts and processes.
- Be familiar with formal design tools for object orientated design and analysis.
- Recognise and understand some frequently used design patterns.
- Be aware of the process involved in user interface design.
- Understand software development methodologies.
- Understand the main issues and processes necessary to achieve effective software product development.
Content
Software forms an important part of many modern engineering products, from telecommunications to automotive to internet-based systems. This course will provide an understanding of the technical and management processes involved in the design of software systems. Software engineering concepts are considered at a range of scales, from the manipulation of object-orientated concepts, through architectural design components, to the building of large complex software systems.
Software Design (10L)
- Concepts Behind Software Design: managing complexity of the software systems and minimizing risks.
- Object-Oriented Software Design Principles: abstraction, problem partitioning, how to identify components.
- Object-Orientated, Design and Analysis: classes and objects, encapsulation and data hiding, abstraction and inheritance, polymorphism.
- Formal Tools: introduction to UML.
- Design Patterns: frequently occurring design techniques and their role in building systems.
- Principles of Good Design and User Interface Design: designing experiences, designing for the user, use cases, process and main elements, usability.
Software Systems and Engineering (6L)
- Quality Assurance and Risk Management: testing, automated testing, tools.
- Software Development Methodologies: from waterfall to agile programming.
- Software Management: project lifecycle, source code control, code reviews, testing, the nightly build, release management, maintenance and refactoring, organising software teams.
- Software Innovation and Entrepreneurship.
Booklists
Please refer to the Booklist for Part IIB Courses for references to this module, this can be found on the associated Moodle course.
Examination Guidelines
Please refer to Form & conduct of the examinations.
Last modified: 01/09/2020 10:45