Module information

Module details

Title
Software Engineering 1
Type
Specialist
Module code
S-CSC-S1
Credits
10
Phase
2
Requirement
Compulsory

Aim of this module

This module will provide trainees with opportunities to contribute to software development cycles, programming practice in database design, computational modelling, image processing/visualisation, and how to set up a programming environment. Trainees will work with different modelling designs and processes related to clinical systems programming and management within a medical environment collaborating with related specialisms and patients.

Work-based content

Training activities

# Learning outcome Training activity Type Action
# 1 Learning outcome 1,9,10 Training activities

Interpret the results of a functional requirements exercise to produce a detailed specification

Type DTA Action View
# 2 Learning outcome 2,9 Training activities

Set up a programming environment

Type DTA Action View
# 3 Learning outcome 9,10 Training activities

Draft a project plan to deliver a specification within a defined timescale

Type DTA Action View
# 4 Learning outcome 3,6,9 Training activities

Connect to and control a relational database using code

Type DTA Action View
# 5 Learning outcome 4,6,9 Training activities

Construct a computational model and interpret the output

Type DTA Action View
# 6 Learning outcome 5,6,9 Training activities

Develop an image processing or data visualisation application

Type DTA Action View
# 7 Learning outcome 6,7,8,9 Training activities

Review existing or legacy code and recommend amendments

Type DTA Action View
# 8 Learning outcome 6,7,8 Training activities

Analyse an algorithm in use in the department for time and/or memory complexity

Type DTA Action View
# 9 Learning outcome 8,9,10 Training activities

Perform verification and validation of a piece of software or code

Type DTA Action View
# 10 Learning outcome 8,9,10 Training activities

Produce handover documents for a software development

Type DTA Action View

Assessments

Complete 2 Case-based discussions

Complete 2 DOPS or OCEs

Direct Observation of Practical Skills Titles

  • Deploy software.
  • Profile code and identify suitable areas for optimisation.
  • Conduct a debugging session.
  • Refactor a piece of code.
  • Recover and reconstruct a previous version of code from a version control system.

Observed Clinical Event Titles

  • Record the requirements of a project.
  • Deliver a training session to an end user for a piece of software.

Learning outcomes

# Learning outcome
1

Summarise and agree the clinical need for a project and develop a specification of requirement.

2

Set up a programming environment.

3

Design a relational database system for a clinical information system including data normalisation.

4

Develop a computational model for physical sciences or clinical systems.

5

Develop image processing/data visualisation applications.

6

Apply good software design and programming practice.

7

Review and appraise code developed by others.

8

Verify, validate and document software.

9

Practice in accordance with legislation, ethics and best practice.

10

Demonstrate effective communication skills with stakeholders and the multidisciplinary team.

Clinical experiences

Clinical experiences help you to develop insight into your practice and a greater understanding of your specialty's impact on patient care. Clinical experiences should be included in your training plan and you may be asked to help organise your experiences. Reflections and observations from your experiences may help you to advance your practice and can be used to develop evidence to demonstrate your awareness and appreciation of your specialty.

Activities

  1. Observe a meeting to discuss a software development project with an end user.
  2. Attend a meeting that is part of the formal management of a software development project.
  3. Attend a training session, to teach the use of software to end users.
  4. Observe how scientific analysis software is used a clinical environment.
  5. Observe a review process with regards to a piece of software.
  6. Attend a meeting where a new technology and its implication to healthcare is discussed.
  7. Attend a risk analysis meeting where a piece of software is discussed with respect to its role as a medical device.
  8. Observe the deployment of a software package (or an upgrade) on a clinical system.

Academic content (MSc in Clinical Science)

Important information

The academic parts of this module will be detailed and communicated to you by your university. Please contact them if you have questions regarding this module and its assessments. The module titles in your MSc may not be exactly identical to the work-based modules shown in the e-portfolio. Your modules will be aligned, however, to ensure that your academic and work-based learning are complimentary.

Learning outcomes

On successful completion of this module the trainee will be able to:

  1. Describe the use of software engineering techniques and physiological measurements on situations relevant to a clinical setting.
  2. Explain the use of project management methodologies in developing clinical measurement and software design projects.
  3. Discuss and critically evaluate the project life cycle, including specification, design, implementation, validation and verification in the context of a novel software design solution.
  4. Critically appraise methods to identify safety hazards in real-life informatics systems.
  5. Describe the use of software techniques in the analysis of physiological data.

Indicative content

  • Processes and methodologies for requirements gathering:
    • Software techniques including Genetic algorithms etc
  • Using project management methodology – comparisons of methods.
  • Food and Drug Administration (FDA)/Medicine and Healthcare products Regulatory Agency (MHRA).
  • Appropriate systems modelling (e.g. UML and pseudocode).
  • SQL coding.
  • Good programming practice including:
    • Appropriate use of software coding guidelines, e.g. local quality system documentation
    • Use of a version control system
    • Use of appropriate software tools
    • Appropriate use of comments
    • Consideration of human factors in the development of user interfaces
  • Correct use of data types/structures.
  • Use of algorithms in bioinformatics and theoretical systems biology and/or physical sciences:
    • Appropriate use of software coding guidelines, e.g. local quality system documentation
    • Use of a version control system
    • Use of appropriate software tools
    • Appropriate use of comments
    • Consideration of human factors in the development of user interfaces
  • Correct use of data types/structures (e.g. floats vs. integers, Booleans, arrays, dictionaries, hash tables, etc.).
  • Good programming practice including:
    • Version control system,
    • Appropriate software tools
    • Appropriate use of comments
    • Consideration of human factors in the development of user interfaces
    • Correct use of data types/structures (e.g. floats vs. integers, Booleans, arrays, dictionaries, hash tables, etc.)
  • Underlying physics of acquisition modalities.
  • Clinical use of images.
  • Clinical limitations of imaging.
  • Basic image science e.g. noise reduction etc.
  • 3D image reconstruction.
  • Restoration.
  • 3D image rendering.
  • Algorithm for time and memory complexity.
  • Demonstrate an understanding of the complexity of an algorithm:
    • Big-O notation and order of time complexity
    • Memory requirements
  • Use of pseudocode (or other appropriate means) to explain how the code works.
  • National data security guidelines (Cyber Security Plus and successors).
  • Lifecycle management of data protection and cyber security measures.
  • Regulation: FDA and MHRA.
  • Software lifecycle (Waterfall, Iterative, Spiral, Agile) including change management and version control.
  • Data analysis (including classification and regression).
  • Data presentation.
  • Object Relational Mapping (ORM).
  • APIs to databases.
  • UML and systems modelling.
  • Algorithm design, validation and optimisation.
  • Genetic algorithms.
  • Data structures.
  • Data types.
  • Object oriented programming.
  • Documentation: user and technical (including commenting techniques).

Module assigned to

Specialties

Specialty code Specialty title Action
Specialty code SBI1-2-22 Specialty title Clinical Scientific Computing [2022] Action View
Specialty code SBI1-2-23 Specialty title Clinical Scientific Computing [2023] Action View
Specialty code SBI1-2-24 Specialty title Clinical Scientific Computing [2024] Action View