Software Engineering - CO510

Location Term Level Credits (ECTS) Current Convenor 2017-18 2018-19
Canterbury Autumn and Spring
View Timetable
5 30 (15) MR DJ Barnes

Pre-requisites

CO334, CO320 and C0520 (or equivalent) are pre-requisites.

Restrictions

None

2017-18

Overview

13. A synopsis of the curriculum Phase 1 – theory and tools:
  • Introduction to basic design principles of systems;
  • Software process - concepts & implementation:
  • o life cycle models (from Extreme Programming to CMM);
    o definition, model, measurement, analysis, improvement of software and team (organization) process;
  • Requirements elicitation, analysis and specification;
  • Introduction to modelling principles (decomposition, abstraction, generalization, projection/views), and types of models (information, behavioural, structural, domain, and functional);
  • Basic UML: uses cases, classes, sequence and collaboration diagrams;
  • Risk & risk management in software:
  • o risk management: identification, analysis and prioritization
    o software risks: project, process and product
    o development methods for reducing risk
  • Training in handling electrical components commonly encountered in computing systems and safe working practices.
  • Software management: project estimation and metrics, software and process quality assurance, documentation and revision control;
  • Introduction to project management;
  • Software engineering tools: configuration control (e.g. SVN, GIT, etc.), project management (e.g Trac), integrated development environments (e.g. Eclipse, NetBeans, etc.), and a UML tool (e.g. IBM Rational Rose).

  • Phase 2 – Practice and techniques:
  • Introduction to design patterns;
  • More UML: state, activity diagrams, and OCL;
  • Project management practice;
  • Introduction to software testing: unit testing, coverage analysis, black box testing, integration testing, test cases based use cases, system and acceptance testing, and testing tools;
  • Understanding of a number of business techniques including estimation of time, costs and evaluation of technical alternatives in the business context;
  • Professional practice (reflective):
  • o codes of ethics and professional conduct;
    o social, legal, historical, and professional issues and concerns;
  • Design and implement a simple software system to meet a specified business goal.
  • Details

    This module appears in:


    Contact hours

    44 lectures and 22 terminal sessions

    Method of assessment

    Examination 50%, Coursework 50%

    Preliminary reading

    See the library reading list for this module (Canterbury)

    See the library reading list for this module (Medway)

    Learning outcomes

    11.1 Understand the principles and practice of the development of software systems (broadly defined) – from requirements specification, design, validation, implementation, and evolution
    11.2 Apply design principles and patterns while developing software systems
    11.3 Create UML diagrams for modelling aspects of the domain and the software
    11.4 Design and implement test plans, and apply a wide variety of testing techniques effectively and efficiently
    11.5 Demonstrate the vital role of planning, documentation, estimation, quality, time, cost, and risk evaluation in the business context
    11.6 Show an understating in system design, including, design simplicity, appropriateness, and styles of system thinking and focused problem solving
    11.7 Show an understanding of the professional and legal duties software engineers owe to their employers, employees, customers and the wider public
    11.8 Use the appropriate tools and techniques when working in groups

    University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.