COMP23420 Software Engineering syllabus 2014-2015
The development of software systems is a challenging process. Customers expect reliable and easy to use software to be developed within a set budget and to a tight deadline. As we come to depend upon software in so many aspects of our lives its increasing size and complexity, together with more demanding users, means the consequences of failure are increasingly severe. Experience from nearly 40 years of software engineering has shown that programming ('cutting code') is only one of a range of activities necessary for the creation of software systems that meet customer needs. The rest of the time is spent on: planning and acquiring resources for the project; investigating the business and technical contexts for the system; eliciting and documenting user requirements; creating a design for the system; and integrating, verifying and deploying the completed components.
This course unit builds on the programming skills you have gained in the first year, to provide you with an understanding of the major challenges inherent in real-scale software development, and with some of the tools and techniques that can be used in their attainment.
Since software engineering is a subject best learned hands-on, this is a project-based module that involves less traditional lecturing than usual. Instead, relevant skills will be acquired during fortnightly two-hour workshops, supported by a weekly one hour lecture. The understanding gained will be practiced through individual and team project assessments.
This unit aims to give students an introduction to the principles and practice of analysis, design and implementation in object orientated software engineering. Through experience of building a significant software system in a team, students will further their? experience and understanding of the problems that arise in building such a system. They will develop the analytical, critical and modelling skills that are required by a successful software engineer.
The COMP23420 course unit as a whole is assessed through a range of components:
- Three exercises in the semester one practical coursework sessions. This is assessed individually and will amount to 15% of the marks for the course.
- three exercises in the semester two project. You will work in teams in this project and assessment is done for the team as a whole. This will amount to 20% of the marks for the course.
- An examination at the end of each semester, covering all the material from each semester; you can expect to have to use material from semester one?s course in examinations in semester two. These exams will be taken on paper and will amount to 60% of the whole course ? 33% in semester one and 28% in semester two.
- The careers session in Week 0 and second year tutorials are also counted towards your mark for COMP23420. There are various assessed parts of the second year tutorials over the two semesters. In total, this contributes 5% to your COMP23420 mark.
The following is an outline of the topics covered in COMP23420.
- Team working
- Software project planning
- Software Methods
- Software Requirements Gathering
- Functional Modelling: Use Cases and Activity Diagrams
- Structural Modelling: domain modelling
- Structural Modelling: system classes
- Behavioural modelling
- Introduction to User Interface Design
- System Design: Software design based on GRASP principles
- System Design: Software System Architecture
- System Implementation: Verification and validation of software systems
- System Implementation: tools
For more detail please see COMP23420's syllabus in detail.
In semester one, week A will have one hour of lecture and one two hour workshop. In week B there will be one hour of lecture and one two hour coursework session held in laboratory space. In semester two, each week will have one hour of lecture. In this semester there is a team based project where you will apply the techniques you have learnt to a significant software engineering task.
The coursework in semester one is an individual project where the requirements gathering, functional modelling, static modelling and behavioural modelling are undertaken for a software system. In semester two there is a team based project where these phases are applied to a new case study and then extended to include the implementation phase. This project will include three iterations of the process that you have learnt.
Feedback methodsThis course unit has workshops in the first semester and a team project in the second. Feedback is given mostly face-to-face by members of staff and postgraduate assistants. In particular, in the second semester each of the teams is assigned a postgraduate "team demonstrator" who mentors them though a pase of the project and gives extensive feeback at each of three assessment points.
- Assessment written exam (4 hours)
- Lectures (50 hours)
- Practical classes & workshops (34 hours)
- Analytical skills
- Group/team working
- Project management
- Oral communication
- Problem solving
- Written communication
|Programme outcome||Unit learning outcomes||Assessment|
|A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5||Work effectively as part of a team in a software project to build a significant software application.|
|A2 A4 B1 B2 B3||Plan software development activities, deal with problems and risks within a team.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5||Articulate reasons for design/modelling decisions made within a software project.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5||Gather, analyse and critically evaluate software requirements and resulting models that progressively refine a system specification.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Design UML models to represent structural and behavioural aspects of a software system.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Design system architectures that meet the system specification.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Take a set of UML models and implement a system.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Apply testing techniques to check that a software system correctly works, i.e. meets its specification.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Use tools to aid in the design, construction and testing of a software system.|
|A2 A4 B1 B2 B3 C2 C4 C5 C6||Design user interfaces that support the system's functionality.|
|Human-computer interaction (3rd edition)||Dix, Alan et al.||0130461091||Prentice Hall||2004||✔|
|Applying UML and patterns: an introduction to Object-Oriented analysis and design and iterative development (3rd edition)||Larman, Craig||0131489062||Prentice Hall||2004||✔|
|Systems analysis and design with UML (3rd edition)||Dennis, Alan and Barbara Haley Wixom and David Tegarden||9780470400302||Wiley||2009||✔|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.