Course information 2019–20
IS3139 Software engineering: theory and
  application
  This course covers the methods, values, attitudes and techniques in software systems. It provides
  an understanding of the need for rigour, and enables students to select and apply a relevant
  methodological approach to the development of well designed and documented systems.
  Prerequisite                                                         Learning outcomes
  If taken as part of a BSc degree, courses which                      At the end of this course and having completed
  must be passed before this course may be                             the essential reading and activities students
  attempted:                                                           should be able to:
  IS2062 Information systems development and                                 describe the expectations, pressures and
  management and                                                              problems faced in developing software and
  IS2138 Information and communication                                        the need for processes, tools, techniques
  technologies: principles and perspectives.                                  and approaches
                                                                             outline the underlying processes of
                                                                              software engineering and critically assess
  Aims and objectives                                                         relevant approaches
  The main aims of this course are to:
   introduce students to the overarching
                                                                             analyse, design, test and maintain software
                                                                              systems and document these actions
    concerns of software engineering practice                                 correctly.
   provide an understanding of the various
    processes software engineers may employ in
    developing software
   develop an understanding of the tools and
    techniques employed in contemporary                                Essential reading
    software engineering                                               For full details, please refer to the reading list
   provide students with an experience of the
    way techniques are applied in practice (this                       Pressman, R.S. Software Engineering: A
    is achieved through the individual project                           Practitioner’s Approach. Adapted by D. Ince.
    work)                                                                (London: McGraw Hill)
   develop the capacity to identify relevant                          Sommerville, I. Software Engineering.
    approaches to software engineering.                                  (Wokingham: Addison Wesley)
  Assessment
  This course is assessed by a three-hour unseen
  written examination and coursework. See
  ‘Coursework and assessment’ overleaf.
  Students should consult the appropriate EMFSS Programme Regulations, which are reviewed on an annual basis. The Regulations
  provide information on the availability of a course, where it can be placed on your programme’s structure, and details of co-requisites
  and prerequisites.
IS3139 Software engineering: theory and application                                                                  Page 1 of 2
  Syllabus
  This is a description of the material to be examined. On registration, students will receive a detailed subject
  guide which provides a framework for covering the topics in the syllabus and directions to the essential
  reading
  This syllabus covers the methods, attitudes and          Reuse
  values which underlie professional                        Reasons for reuse.
  contemporary software systems development.                Concept reuse – patterns, configurable
  The emphasis is on how to undertake formal                 systems products and program generators.
  software development through requirements                 Component-based software engineering.
  specification, design and implementation, but            Computer Aided Software Engineering (CASE)
  within a broader understanding of software               Tools.
  engineering practices.                                   Documentation and Help Systems.
                                                           Project management in software engineering.
  Section 1: Software Engineering Process                  Documentation and help systems.
   The changing pressures on software                     Managing Software Engineering Projects.
    engineering practices: History of the field,
    definition of software, the software crisis.           Coursework and assessment
   The Process for Developing Software and its            The examination will be three hours and consist
    importance                                             of seven questions of which students must
   The Capability Maturity Model                          answer four. This will contribute 60% to the
   The traditional software engineering                   overall mark.
    process: The lifecycle model, evolutionary
    software development, incremental software             Students will undertake a project for the
    development, spiral model. Prototyping                 remaining 40% of marks. This will require them
   Rapid software development                             to review a software engineering approach or
   Internet speed web based application                   technique, apply this to a real problem and
    development                                            finally reflect on the experience. The project will
   End-user development.                                  require them to write a short essay describing
   Agile methods                                          the approach they are intending to apply and its
   Extreme programming                                    relevance to the problem chosen. They will then
   Refactoring                                            present an account of how the approach was
                                                           applied in practice. This should include the
  Section 2: The Practices of software                     relevant documentary material required for the
  engineering:                                             chosen approach (e.g. if the Rational Unified
  Introduction to Structured vs. object oriented           Process is chosen UML diagrams and various
  paradigms.                                               documents should be included).
  Acquiring requirements                                   Finally they will need to complete a two page
  Specifying requirements and design (both                 pro forma in which they will reflect on the
  structured and object oriented)                          practice of developing the system from the
   Structured approaches: ER diagram, Data                approach chosen. This should include lessons
     flow diagrams, Data dictionary                        learnt and critical reflections on the process. A
   OO approach (Using UML): Use-case                      bibliography must also be provided
     diagrams, Class diagrams, Object sequence             demonstrating reading beyond the core
     diagrams, State-chart diagrams                        textbooks.
  Features of good design
  Coding and configuration management                      Students are not required to produce
  Implementation and testing (both structured              programming code, but rather are assessed on
  and object oriented)                                     their attempt to apply software engineering
   Choice of programming languages and                    techniques and principles in practice. The focus
     techniques                                            is not on the produced system but on the quality
   Test planning                                          of the process undertaken, the coherence of the
   White-box and black-box testing                        documents presented and how successful the
   Testing automation                                     documents would be in developing a software
   Implementation                                         system. Clearly however, for some students
  Maintenance and software evolution                       programming will be an integral part of this
   Systems re-engineering for Legacy systems              exercise.
IS3139 Software engineering: theory and application                                              Page 2 of 2