University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Informatics 2C - Introduction to Software Engineering (INFR08019)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 8 (Year 2 Undergraduate) AvailabilityAvailable to all students
SCQF Credits10 ECTS Credits5
SummaryThis course gives an overview of the engineering of software systems. It introduces the main activities and concerns of industrial and commercial software engineering, and enables students to go beyond programming towards software engineering in their own work.
Course description The aim is to understand and execute the process of building software systems. The process will entail capturing requirements as use-cases, modelling the system using class and sequence diagrams, implementing the system using Java and running requirements-based tests and system level tests. Beyond the construction process itself, some important surrounding concerns are
introduced including: satisfying non-functional requirements, building good human interfaces, and considering various software licensing models.

The core topics covered, all at introductory level, in this course are:
* Software engineering as a discipline: history, professionalism, ethics
* Software engineering activities: requirements capture; design; implementation; testing, debugging
and maintenance; software process management.
* Modelling in UML (use cases, class diagrams, sequence diagrams).
* Design principles and their influence on maintainability of software.
* Software configuration management.
* Verification, validation and testing.
* Software usability and HCI issues.
* Economic and social aspects of software ownership, patents and licensing.
* Software quality assurance.

Some further topics will also be covered, depending on topicality and lecturer's expertise. These might include, for example:
* Model-driven development: how to use UML for construction, not just description, of systems
* Software in the world: embedded systems, web services, cloud computing, autonomous computing and other means of delivering functionality
* Agile software development.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Students MUST have passed: Informatics 1 - Computation and Logic (INFR08012) AND Informatics 1 - Data and Analysis (INFR08015) AND Informatics 1 - Functional Programming (INFR08013) AND Informatics 1 - Object-Oriented Programming (INFR08014)
Prohibited Combinations Other requirements None
Additional Costs none
Information for Visiting Students
High Demand Course? Yes
Course Delivery Information
Academic year 2017/18, Available to all students (SV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 100 ( Lecture Hours 15, Seminar/Tutorial Hours 5, Summative Assessment Hours 1, Programme Level Learning and Teaching Hours 2, Directed Learning and Independent Learning Hours 77 )
Assessment (Further Info) Written Exam 60 %, Coursework 40 %, Practical Exam 0 %
Additional Information (Assessment) In order to pass the course you must satisfy all of the following requirements:
* achieve at least 40% in the examination;
* obtain a combined total mark of at least 40%

The students will work together in small groups to develop a software. The software development project will be split into assignments focussing on the different software engineering activities - requirements capture, system design, implementation, and testing. Most assignments (if not all) will be group assignments.

To assess individuals fairly in a group assignment, the assignment will be composed of several tasks and an individual in the group will need to complete a set of tasks (non-overlapping with other members) independently.
Feedback Not entered
Exam Information
Exam Diet Paper Name Hours & Minutes
Main Exam Diet S1 (December)1:00
Resit Exam Diet (August)1:00
Learning Outcomes
On completion of this course, the student will be able to:
  1. Explain how to apply commonly agreed ethical principles to a software engineering situation , and motivate and describe the activities in the software engineering process
  2. Construct use cases for the system requirements , and explain and construct UML class diagrams and sequence diagrams
  3. Understand and construct a software system using Java , and assess the software system using testing and other appropriate tools
  4. Evaluate aspects of human usability of an application program or web site
  5. Compare different approaches to software licensing
Reading List
1. "Software Engineering". Ian Sommerville. 10th Ed. Pearson. 2016.
2. "UML Distilled". Martin Fowler. 3rd Ed. Addison-Wesley. 2004.
3. "Using UML". Perdita Stevens with Rob Pooley. 2nd Ed. Addison-Wesley. 2006.

Additional Information
Course URL
Graduate Attributes and Skills Not entered
KeywordsNot entered
Course organiserDr Paul Jackson
Tel: (0131 6)50 5131
Course secretaryMs Kendal Reid
Tel: (0131 6)51 3249
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information