F27IP Industrial Project: Software Development Methods (GA)

Dr Idris Skloul Ibrahim

Course co-ordinator(s): Dr Idris Skloul Ibrahim (Edinburgh).

Aims:

This is an Industrial Project course that consists of two parts: Work-based Learning (WBL) and an Industrial Project.

The WBL part of the course will deliver work-based blended on-line learning material. Topics learned may be subject to continuous e-assessment. This course introduces topics in legacy systems, software development life cycle, system configuration and release management.

The Industrial Project part of the course will require the student to perform/implement an industrial project, embedded in and contextualised for the host company, focusing on the practical techniques learned in the WBL part of the course.

Detailed Information

Pre-requisites: none.

Location: Edinburgh.

Semester: 3.

Syllabus:

  • Modern software architecture and design principles: object-oriented software design; model-based design; design patterns
  • Legacy systems: software architectures and technologies; risk associated with replacing or keeping legacy systems; common pitfalls and mitigations
  • Software Development Life Cycle (SDLC): software Deployment; Software Maintenance; Continuous Integration (e.g. Jenkins)
  • System configuration and Release Management: system configuration process; Version control (e.g. Git); Software release management methods (e.g. itSMF, ITIL); Software release management tools (e.g. Puppet, Plutora); Virtual Machine (e.g. Docker, VirtualBox) usage for development and deployment
  • Industrial project development (incl. project scope and design, planning, requirements engineering, system implementation, software testing and evaluation, and critical assessment)

Learning Outcomes: Subject Mastery

  • Understand legacy systems’ architectures and technologies; and be able to assess the risks towards modernisation (e.g. towards virtualisation)
  • Understand high level activities in the Software Development Life Cycle, Software Deployment and Maintenance
  • Understand methods, technologies and tools of software release management and version control
  • To be able to use a software version control tools to manage software development, e.g. Git
  • To be able to use virtualisation technologies for software development and deployment, e.g. Docker
  • To be able to scope, plan, implement and evaluate an industrial project
  • To understand the time and effort involved in implementing an industrially-based project

Learning Outcomes: Personal Abilities

  • To be able to relate learned knowledge to work place computing projects
  • To be aware of distinctive features of work-based blended learning.
  • To be able to identify, define, and analyse alternative project scenarios
  • Take some responsibility for their work and for a range of resources
  • To be able to communicate effectively with colleagues at work place and extract and organise requirements effectively

Assessment Methods:

Coursework: 100%
Re-assessment: Coursework: 100%

SCQF Level: 7.

Credits: 15.