Skip to main content

Unit information: Software Engineering in C++ in 2014/15

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Software Engineering in C++
Unit code EENG19010
Credit points 10
Level of study C/4
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director Dr. Kaleshi
Open unit status Not open
Pre-requisites

EENG19000

Co-requisites

None

School/department Department of Electrical & Electronic Engineering
Faculty Faculty of Engineering

Description including Unit Aims

This unit consists of two elements: an introduction to the theory and techniques of Software Engineering (lectures) and the object-oriented programming using C++ programming language (lectures and laboratories). In the laboratories, students will carry out exercises using C++. Each exercise is designed to familiarise them with the topics covered in the lectures. Students, working in groups of 2, will be assessed in the lab and receive a mark for their laboratory work.

The lecturing component of the unit introduces object-oriented design and programming using C++, starting with an introduction of the concept of object and classes, inheritance and polymorphism. C++ programming language is introduced: class definitions, notation, private and public access, member and friend functions, working with file I/O (streams), and working with structured data (strings, arrays, vectors, etc.). The concepts are introduced through real examples (e.g. Complex number calculator). Particular attention goes into linking this with the programming concepts introduced in the Computing unit (EENG19000), specifically in terms of memory manipulation and pointers, in order to address needs and abilities of the students undertaking a program of study in the Department of Electrical and Electronic Engineering. The latter part of the lectures (4) introduces Software Engineering as a structured approach to the design and implementation of medium-to-large scale software systems. Similar to any engineering projects, it is essential that you are able to specify what you want to achieve, to design how you are going to achieve that, and that you can implement the design using appropriate software technology. Topics covered by the unit include:

  • Software Processes
  • Software Requirement Analysis
  • System Models
  • Architecture Design (including distributed architectures)
  • The role of object-oriented analysis and design.

Aims:

  • Introduce students to Software Engineering as an engineering discipline about designing and implementing multi-component programs.
  • Introduce students to object-oriented programming using C++
  • Teach students practical skills in programming in C++

Intended Learning Outcomes

On completion of this unit students will be able to:

  • Follow a structured approach to requirement specification
  • Follow a structured design approach to software design,
  • Solve engineering problems using C++ language
  • Recognise the processes involved in medium-to-large scale software engineering development projects, including identifying and commenting on the roles of the team(s) participating in such systems.

Students will also become familiar with two industry leading Integrated Development Environments (IDEs):

  • Microsoft Visual C++ (non-real time) as part of Microsoft Studio .Net platform

Teaching Information

  • Lectures (12)
  • Laboratories (7 sessions of 3hrs each)

Assessment Information

1. C++ coursework. It consists of two parts: a project using C++ and an accompanying technical report documenting and supporting the computing tasks, and a Software Engineering essay, consisting of questions covering material from the Software Engineering component of the lectures. The weight of this mark is 70%.

2. Laboratory work  students learning is assessed in the ultimate or penultimate lab session, depending on their progress. Weight is 30%.

Reading and References

  • I. Somerville, Software Engineering, 7th Edition, Addison-Wesley, 2004
  • Laboratory notes, prepared by Dr. Dritan Kaleshi.
  • Additional various books on C++ programming, readily available by the library in Queens Building.

Feedback