Postgraduate Course: Software Architecture, Process, and Management (Level 11) (INFR11038)
|School||School of Informatics
||College||College of Science and Engineering
||Availability||Not available to visiting students
|Credit level (Normal year taken)||SCQF Level 11 (Postgraduate)
|Home subject area||Informatics
||Other subject area||None
||Taught in Gaelic?||No
|Course description||The aim of this module is to introduce you to key concepts in the design and implementation of large scale, long lived software systems. The course gives students some practical experience of working in a team faced with planning a long-term project for developing a large software system. It helps them to be aware of common threats to such projects and how to address them. It also gives students a repertoire of high-level design and architectural patterns and guides students in applying them.
The lectures and exam are identical to the level 10 versions, but MSc students undertake more advanced (and more heavily weighted) coursework to meet the additional learning outcome.
Course Delivery Information
|Delivery period: 2011/12 Semester 2, Not available to visiting students (SS1)
||WebCT enabled: No
|No Classes have been defined for this Course|
||Week 1, Tuesday, 09:00 - 09:50, Zone: Central. George Sq 07 F21 |
|Main Exam Diet S2 (April/May)||2:00|
Summary of Intended Learning Outcomes
|1 - Select and apply an appropriate design pattern.
2 - Select and apply appropriate existing architectures for large-scale, long-lived systems.
3 - Explain how refactoring can be used to preserve good design as programs are modified.
4 - Explain why software reuse is difficult, and some approaches for increasing software reuse.
5 - Summarize and apply approaches for maintaining and replacing legacy code.
6 - Compare lightweight ("agile") and heavyweight design processes, and know how to apply at least one example of both to a new project.
7 - Analyze the significant sources of risk for particular projects and suggest ways to reduce the risks.
8 - Describe and be able to use tools for automating large-scale, long-term development, such as configuration, build, test, and project management tools
9 - Integrate one's work with that of others in a team faced with the high-level design of a large software system.
10 - Locate, summarize, and critically evaluate peer-reviewed literature about a subarea of software engineering.
|Written Examination 60|
Assessed Assignments 40
Oral Presentations 0
One practical exercise (an analysis and design project performed in small groups, worth 15%), plus a literature survey and critical evaluation of an area related to the course topics (worth 25%).
||* Software Architecture and Design
Designing for reuse
Maintaining and replacing legacy systems
* Software Development Processes
Heavyweight (traditional) processes
Lightweight (agile) processes
Open source vs. closed source
* Planning and Managing Software Projects
Planning projects using size and cost estimation
Analyzing likely risks
Revision control and configuration management
Using bug/issue tracking and other tools
Automating testing (unit testing, regression testing)
Managing and working in a team
Relevant QAA Computing Curriculum Sections: Professionalism, Software Engineering, Systems Analysis and Design
||* Required: Lecture notes and readings distributed in class or online
* Recommended: Sommerville 2006, Software Engineering, Addison Wesley, ISBN 032131379X (or earlier editions)
Timetabled Laboratories 0
Non-timetabled assessed assignments 45
Private Study/Other 35
|Course organiser||Dr Michael Rovatsos
Tel: (0131 6)51 3263
|Course secretary||Miss Kate Weston
Tel: (0131 6)50 2701
© Copyright 2011 The University of Edinburgh - 16 January 2012 6:17 am