SOFTWARE ENGINEERING - 2020/1

Module code: COM1028

Module Overview


This module will provide an introduction to the principles of software engineering.  This will include an overview of the systems development lifecycle, agile methods and common approaches employed to develop software.  This will include aspects on requirements specification, design, implementation and testing.  Particular attention will be paid to the design of software, with the introduction of best practice guidelines, such as design patterns.  Throughout the module, software engineering methods will be put into practice, and Java programming skills will be consolidated.

Module provider

Computer Science

Module Leader

DASH Santanu (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 4

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 102

Lecture Hours: 24

Laboratory Hours: 24

Module Availability

Semester 2

Prerequisites / Co-requisites

COM1027

Module content

The module is divided into the following areas:



  • Software Engineering:



    • Systems development lifecycle



      • Different methodologies


      • Comparative analysis




    • Requirements



      • Capturing requirements


      • Formal software specification




    • Design



      • From textual requirements specification to software design


      • Introducing design patterns such as Observer, Decorator, Iterator




    • Implementation



      • Software and professional standards


      • IT regulation and compliance


      • Intellectual property rights


      • Documentation


      • Configuration management




    • Testing



      • Objectives


      • Testing stages


      • Testing types






  • Programming:



    • Inheritance, Abstract Classes and Polymorphism


    • Exception handling


    • File Handling


    • Database connectivity


    • Basic threads




Assessment pattern

Assessment type Unit of assessment Weighting
School-timetabled exam/test MID-TERM TEST ON SOFTWARE REQUIREMENTS + HIGH LEVEL DESIGN (INDIVIDUAL) (2 HOURS) 40
Coursework DESIGN COMPLETION, DEVELOPMENT AND TESTING + REPORT ON TESTING STRATEGY (INDIVIDUAL) 60

Alternative Assessment

N/A

Assessment Strategy

The assessment strategy is designed to help students understand characteristics of well designed software as well as implemented and test it.

 

Thus, the summative assessment for this module consists of:



  • Part 1 consists of an in-semester test covering learning outcomes LO1 and LO2.


  • Part 2 consists of a practical assessment that covers design, implementation and testing. Consequently, it addresses LO3, LO4 and LO5. Students will initially be given a detailed set of specifications and incomplete ER and class diagrams for these, which they will need to complete the diagrams and submit them in the first phase. This covers LO4. After submission, students will be given complete ER and class diagrams for the same set of specifications to implement thereby covering LO3 and LO5. The implementation will be automatically tested against a specified set of unit tests which will be supplied by the module leader. The students will then be supplied a fully functional software by the module leader for the initial set of specifications and asked to write integration tests for covering a subset of the specifications. The testing part covers LO3 as well. For the testing part, the students are expected to produce containers that enables automatic execution of these integration tests. Finally, the students will submit a short report to reflect upon their integration testing strategy. The deadline for Part 2 will be at the end of the semester. 

    Both parts are individual. 

     

    Formative assessment and feedback

    EVS handsets are used extensively in the lectures with each lecture consisting of a number of slides explaining the theory followed by a number of slides gauging the students’ understanding.

    Student will receive a score for the mid-term test to evaluate their progress. We will evaluate student submissions for coding and testing and provide students will receive a Requirements Traceability Matrix (RTM) as well as a score for RTM which is indicative of their level of success in implementing and testing the pre-supplied specifications and source code, respectively. For the report, students will receive written feedback on their testing strategy.


Module aims

  • The aim of this module is to introduce students to software engineering and the systems development lifecycle.  Common approaches to software engineering will be experienced so that students can put development into a professional context. Software creation skills will be further practiced in this context.

Learning outcomes

Attributes Developed
001 Identify the different stages of the systems development lifecycle
002 Compare common software engineering techniques used within the lifecycle
003 Apply key approaches to the specification, design, implementation and testing of software
004 Apply basic design patterns in object-oriented design
005 Implement key aspects of object-oriented design using Java .6. Demonstrate application of good professional practices in software engineering.

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

44 contact hours in weeks 1-11, consisting of:

·         2 hours of lectures or tutorials per week

·         2 hours of compulsory labs per week, to support taught materials and the assignments

 

Tutorials or Drop-in surgery hours may also be run to provide additional assignment support.

Students will be expected to spend a minimum of 3 hours a week on self-study.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COM1028

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computer Science BSc (Hons)(CORE) 2 Core Each unit of assessment must be passed at 40% to pass the module
Computing and Information Technology BSc (Hons)(CORE) 2 Core Each unit of assessment must be passed at 40% to pass the module

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2020/1 academic year.