Skip to main content

Module

CSC2035 : Software Systems Design and Implementation

  • Offered for Year: 2021/22
  • Module Leader(s): Dr Nick Cook
  • Lecturer: Dr Rouaa Yassin Kassab
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semesters
Semester 2 Credit Value: 30
ECTS Credits: 15.0

Aims

To provide an introduction to the design and implementation of software systems.

There are factors that we have to take into account when designing and implementing software systems that either do not arise in application development or are relatively less important in application development. These include the longevity of systems compared to applications, agreement on shared abstractions that are often codified in interfaces and standards, and the conservation of resources to maximise their availability to applications. This module gives students an appreciation of such factors and their implications for good design and software development in general.

Operating systems and their extension to networks of systems are used as exemplars. The lessons drawn from their design and implementation are applicable not only to other systems but also to good applications design. The appreciation of their general applicability and the trade-offs in involved in systems will inform any future software development students undertake.

The module is directly related to and builds on the Stage 1 module CSC1032 on Computer Systems Design and Architectures.

Outline Of Syllabus

The module is organised into by three strands: operating systems, networks of systems and a thread of practical systems development work that complements and exemplifies the other two aspects.

In operating systems, the focus will be on processes and memory management, scheduling and the need for, and mechanisms to achieve, inter-process communication and concurrency control. In Networks we cover the fundamental abstractions presented by the Internet, with a particular focus on achieving reliable communication over an unreliable network of networks.

Specific topics covered in the theoretical strands include:
-       the process model and process lifecycle
-       process address space and isolation and virtual memory
-       process implementation
-       scheduling requirements and algorithms
-       concurrent execution and mechanisms for data sharing
-       the mutual exclusion problem and the implementation of solutions
-       network topologies
-       network protocols
-       network layers and their realisation in TCP/IP
-       internetworking and reliable communication

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion12:002:00Exam
Guided Independent StudyAssessment preparation and completion261:0026:00Revision for exam
Guided Independent StudyAssessment preparation and completion301:0030:00coursework 1
Guided Independent StudyAssessment preparation and completion301:0030:00coursework 2
Structured Guided LearningLecture materials221:0022:00Non-synchronous online lectures and related material recorded in advance
Scheduled Learning And Teaching ActivitiesLecture221:0022:00Present in Person (PiP) lectures preferably in lecture theatre. Alternate; scheduled on line seminar
Guided Independent StudyDirected research and reading331:0033:00Lecture preparation and follow-up
Scheduled Learning And Teaching ActivitiesPractical111:0011:00PiP supervised practical labs, in flat floor labs. If cannot deliver PiP: synchronous online drop-in
Scheduled Learning And Teaching ActivitiesPractical112:0022:00PiP supervised practical labs, in flat floor labs. If cannot deliver PiP: synchronous online drop-in
Scheduled Learning And Teaching ActivitiesWorkshops112:0022:00PiP practical demonstration/exemplification of lecture material, in flat floor lab. online if no pip
Guided Independent StudyIndependent study801:0080:00Background reading, technical investigation and programming practice
Total300:00
Teaching Rationale And Relationship

Techniques and theory are presented in lectures and related material and cover core concepts. Additional reading and technical background is provided to facilitate systems programming and development. Practical activities and workshops provide students with application experience of the techniques and theories taught, assessed through systems implementation in their project work.

Assessment Methods

The format of resits will be determined by the Board of Examiners

Exams
Description Length Semester When Set Percentage Comment
PC Examination1202A66N/A
Other Assessment
Description Semester When Set Percentage Comment
Practical/lab report2M17Software implementation
Practical/lab report2M17Software implementation
Formative Assessments
Description Semester When Set Comment
Lab exercise2MExercises and quizzes to support learning and summative assessments
Assessment Rationale And Relationship

Coursework will assess systems programming and the application of good systems design principles. Examination will assess understanding of theoretical concepts. The examination will be replaced by a 24 hour take home paper if the public health situation prevents on-campus, Present-in-Person assessment.
The formative exercises allow students to prepare for the summative assessments and reinforce other learning.


N.B. This module has both “Exam Assessment” and “Other Assessment” (e.g. coursework). If the total mark for either assessment falls below 35%, the maximum mark returned for the module will normally be 35%.

Reading Lists

Timetable