Undergraduate Course: Software Architecture, Process, and Management (Level 10) (INFR10024)
|School||School of Informatics
||College||College of Science and Engineering
||Availability||Available to all students
|Credit level (Normal year taken)||SCQF Level 10 (Year 4 Undergraduate)
|Home subject area||Informatics
||Other subject area||None
||Taught in Gaelic?||No
|Course description||This course considers the many ways in which development and maintenance of large software systems differs from that of small systems. It discusses the high level architectural decisions that may control the complexity of such systems,
and the architectural degradation that leads to legacy systems. It considers the processes by which large systems can be developed and the role of managers in planning and guiding development, predicting and mitigating risks, and improving quality.
Information for Visiting Students
|Displayed in Visiting Students Prospectus?||Yes
Course Delivery Information
|Not being delivered|
Summary of Intended Learning Outcomes
|1 - Describe and explain the challenges inherent in large-scale system development and outline techniques with which managers can help meet these challenges.
2 - Propose and justify architectural decisions for large-scale, long-lived systems.
3 - Explain why software reuse is difficult, and some approaches for increasing software reuse.
4 - Summarize and apply approaches for maintaining and replacing legacy code.
5 - Compare and contrast development processes (e.g. Extreme Programming and the Unified Process) and explain their application to a project.
6 - Analyse the significant sources of risk for particular projects and suggest ways to reduce the risks.
7 - Describe, and in some cases be able to use, tools relevant to large-scale, long-term development, such as requirements management, configuration, build, test, and project management tools.
8 - Critically reflect on given software engineering related articles, from the peer-reviewed literature and elsewhere.
|Written Examination 75|
Assessed Assignments 25
Oral Presentations 0
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year.
||Large scale software
- The difference that scale makes: from single-person projects to ultra-large systems
- Tool use: revision control, configuration management, bug/issue tracking, testing, documentation, and other tools
- Architectural principles and patterns
- Components, product lines and other forms of reuse
- Maintaining and replacing legacy systems
Software Development Processes
- High ceremony processes
- Agile development
- Quality assurance
- Process improvement
- Critical systems, sociotechnical systems, and dependability
- Open source development
Planning and Managing Software Projects
- Requirements management
- Planning projects using size and cost estimation
- Risk management
- Project tracking and change management
- Project and people management: successful teamwork
Relevant QAA Computing Curriculum Sections: Professionalism, Software Engineering, Systems Analysis and Design
||* Required: Lecture notes available from the course web page
Recommended: Brooks, The Mythical Man-mouth, Addison Wesley (any edition). Also see the course web page for related links
Timetabled Laboratories 0
Non-timetabled assessed assignments 15
Private Study/Other 70
|Course organiser||Dr Mary Cryan
Tel: (0131 6)50 5153
|Course secretary||Miss Kate Farrow
Tel: (0131 6)50 2706