Module information
Details
- Title
- Software Engineering 2
- Type
- Specialist
- Module code
- S-CSC-S3-2
- Credits
- 15
- Requirement
- Compulsory
Aim of this module
As part of this module trainees will take part in a software development project from start to finish including liaising with end users to develop a functional specification for the project. Trainees will gain experience implementing key aspects of the code, carrying out verification and validation of the delivered software and training the end users in its use. The trainees will further develop their programming skills by using a variety of different programming languages and more advanced programming techniques.
Work-based content
Competencies
| # | Learning outcome | Competency | Action |
|---|---|---|---|
| # 1 | Learning outcome 1,13 |
Competency
Interview users and translate user requirements into a functional specification |
Action View |
| # 2 | Learning outcome 2,12 |
Competency
Write a project plan and manage a project accordingly |
Action View |
| # 3 | Learning outcome 3,4,5,6,7 |
Competency
Implement key aspects of code in a software development project in at least one of the following areas:
|
Action View |
| # 4 | Learning outcome 4,5,7 |
Competency
Write a piece of software using advanced programming techniques to implement code including:
|
Action View |
| # 5 | Learning outcome 4,5 |
Competency
Design an appropriate interface to software you have developed, including a means of defect management |
Action View |
| # 6 | Learning outcome 4,5,6 |
Competency
Develop an application that uses a web browser as the user interface |
Action View |
| # 7 | Learning outcome 4,5,6 |
Competency
Develop software in different programming languages using compiled, interpreted and markup languages |
Action View |
| # 8 | Learning outcome 4,5,7 |
Competency
Implement and document a formal testing protocol for a piece of software |
Action View |
| # 9 | Learning outcome 10,13 |
Competency
Validate and verify the software at the end of the project |
Action View |
| # 10 | Learning outcome 2,10,12,13 |
Competency
Complete the formal documentation and handover at the end of the project |
Action View |
| # 11 | Learning outcome 4,5,7,8 |
Competency
Deploy and validate an application using an appropriate technology |
Action View |
| # 12 | Learning outcome 9,10,12 |
Competency
Take a lead role in the review of software as part of an annual review process and/or quality management system |
Action View |
| # 13 | Learning outcome 4,5,9,10,12 |
Competency
Review and bring legacy code into conformance with best practice |
Action View |
| # 14 | Learning outcome 11,13 |
Competency
Investigate and evaluate the state of the art in a software application area and feedback the findings |
Action View |
| # 15 | Learning outcome 11,13 |
Competency
Investigate a new technology or framework in the field of scientific computing and demonstrate a use case |
Action View |
Assessments
Complete 3 Case-Based Discussions
Complete 3 DOPS or OCEs
Direct Observation of Practical Skills Titles
- Merge software development streams in a version control system.
- Deploy software you have developed.
- Profile code and identify suitable areas for optimisation.
- Test software for correct functioning.
Observed Communication Event Titles
- Lead a requirements gathering exercise.
- Deliver a training session to an end user for a piece of software you have developed.
- Explain to a healthcare professional how software you have developed works.
- Discuss the implications of a developing technology in your field on your department and healthcare.
Learning outcomes
| # | Learning outcome |
|---|---|
| 1 | Discuss and develop a specification of requirements for a project with an end user. |
| 2 | Plan and manage a software development project. |
| 3 | Write code required for a software engineering project. |
| 4 | Use good software design and programming practice. |
| 5 | Use programming languages. |
| 6 | Develop applications using a web browser as the user interface. |
| 7 | Develop a protocol for testing a piece of software. |
| 8 | Deploy applications, including the use of containerisation. |
| 9 | Review and appraise code developed by others. |
| 10 | Verify, validate and document software, and provide training to end users. |
| 11 | Critically appraise advances in technology and practice applied to clinical computing. |
| 12 | Practice in accordance with legislation, ethics and best practice. |
| 13 | Demonstrate effective communication skills with the multidisciplinary team. |
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:
- Apply integrative knowledge of software that is used for modelling bioinformatics data.
- Summarise and present results from complex bespoke software for clinical scenarios in written form.
- Critically evaluate the use of software packages to solve a clinical problem.
Indicative content
- Software techniques.
- Neural networks and their applications.
- Artificial intelligence and expert systems.
- Image processing software.
- Genetic algorithms.
- Modelling biological systems.
- Analysis of DNA, protein, biological diversity and molecular interaction data.
- Use of bioinformatics and systems biology databases.
- Data sources and data synthesis and Monte-Carlo modelling.
Clinical experiences
Important information
Clinical experiential learning is the range of activities trainees may undertake in order to gain the experience and evidence to demonstrate their achievement of module competencies and assessments. The list is not definitive or mandatory, but training officers should ensure, as best training practice, that trainees gain as many of these clinical experiences as possible. They should be included in training plans, and once undertaken they should support the completion of module assessments and competencies within the e-portfolio.
Activities
- Attend a meeting that is part of the formal management of a software development project.
- Attend a training meeting organised by the department, to teach the use of software to end users.
- Observe how scientific analysis software is used a clinical environment.
- Observe a review process with regards to a piece of software.
- Attend a meeting where a new technology and its implication to healthcare is discussed.
- Attend a risk analysis meeting where a piece of software is discussed with respect to its role as a medical device.
- Observe the deployment of a software package (or an upgrade) on a clinical system.