Teaching Responsibility

LJMU Schools involved in Delivery:

Computer Science and Mathematics

Learning Methods

Lecture

Workshop

Module Offerings

6131COMP-JAN-CTY

Aims

To provide an overview of designing and engineering both distributed software systems and embedded systems with references to architectures, communication and synchronisation. The practical focus of this module is on developing software with concurrent and distributed components and developing for embedded systems.

Learning Outcomes

1.
Survey technologies and methods used in embedded systems design and development
2.
Solve execution issues intrinsic to embedded architectures and develop software for embedded systems alongside other software systems
3.
Appraise communications standards and techniques used in embedded systems
4.
Critically evaluate operational issues in embedded, concurrent and distributed systems

Module Content

Outline Syllabus:Monolithic vs Distributed Systems Distribution vs Parallelisation -Message Passing and Shared Memory Concurrency and Scheduling in Software Systems -Liveness, Races and Deadlocks -Ensuring deterministic behaviour -Shared resource access; synchronisation, mutual exclusion, atomicity System architecture for embedded systems -Microprocessor (modified) Harvard vs. Von Neumann architectures -Programmable Controllers and Microcontroller (MCU) architectures -Watchdogs -Memory and memory units (EPROM, EEPROM, RAM, FLASH) Software architectures for embedded systems -Superloop and RTOS -Managing I/O and interrupts Communications standards used in embedded systems -Shared medium/bus systems -Dedicated line, clock synchronisation, A/D conversion -Deterministic arbitration and access protocols -Dedicated hardware and emulated ("bit-banged") software-defined implementations
Module Overview:
To provide an overview of designing and engineering both distributed software systems and embedded systems with references to architectures, communication and synchronisation. The practical focus of this module is on developing software with concurrent and distributed components and developing for embedded systems.A largely practical software engineering course that will equip students with skills to work in distributed and concurrent software systems. It will also provide experience of development for embedded systems with consideration of relevant basic interfacing electronics concerns.
Additional Information:A largely practical software engineering course that will equip students with skills to work in distributed and concurrent software systems. It will also provide experience of development for embedded systems with consideration of relevant basic interfacing electronics concerns.

Assessments

Centralised Exam

Report