Coronavirus (Covid-19) Information

Module ICE-3101:
Software Engineering

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 2

Overall aims and purpose

This module aims to:

  • Introduce the theoretical underpinnings of the Software Engineering discipline.
  • Expose students to core concepts, providing the framework to overlay on current industrial practice.
  • Provide practical direction on the usee of enterprise-level tools for software engineering
  • Provide theoretical support to project management, professionalism, and process choices by showing how and why those choices are made.

Course content

Indicative content includes:

  • Complementary views of the Software Development Lifecycle, such as Waterfall, Double-Diamond, Agile, SCRUM.
  • Methods of generating and managing the, often complex, list of requirements for any sizable software engineering project.
  • ‘Full-stack’ developers, specialist developers, DevOps, Operations, and their roles in developing and maintaining software systems.
  • Source Code Management (SCM) concepts, objects, and processes. Comparing and contrasting the centralised and de-centralised models of SCM tools.
  • Continuous Integration (CI) and Continuous Delivery (CD) forms of the development process and how these are supported by other parts of the lifecycle, other tools and processes.
  • Traditional and semantic versions practices, demonstrating the strengths and weaknesses of each.
  • Strong quality control in software engineering, the practice of managing quality records and the surrounding issues.
  • Traditional application environments, enterprise environments, cloud environments and their impact on software engineering.
  • Release strategies and processes and their consequences on quality, customers, and the product.

Assessment Criteria

threshold

Equivalent to 40%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.

good

Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.

excellent

Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.

Learning outcomes

  1. Appreciate the core concepts of the Software Engineering discipline.

  2. Understand the various objects, processes, and strategies involved in Source Control Management and their implementation in contemporary software products.

  3. Describe different methods to create, categorise, and store software requirements.

  4. Associate elements of the Software Development Lifecycle with the appropriate project management and software engineering theory.

  5. Evaluate and select appropriate release and delivery strategies according to project requirements.

Assessment Methods

Type Name Description Weight
Souce Code Management Essay 15
Delivery Methodology Essay 15
DevOps Planning Exercise 20
Unseen Examination 50

Teaching and Learning Strategy

Hours
Lecture

Traditional lecture (2 hrs x 12 weeks.)

24
Tutorial

Tutorial sessions, which take place in lecture a theatre, and will include interactive demonstrations, group discussions, role play, individual and group work.

24
Private study

Private study, including completing assignments.

152

Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Exploring - Able to investigate, research and consider alternatives
  • Information retrieval - Able to access different and multiple sources of information
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
  • Argument - Able to put forward, debate and justify an opinion or a course of action, with an individual or in a wider group setting
  • Self-awareness & Reflectivity - Having an awareness of your own strengths, weaknesses, aims and objectives. Able to regularly review, evaluate and reflect upon the performance of yourself and others

Subject specific skills

  • Access and synthesize information and literature sources;
  • Use both verbal and written communication skills to different target audiences;
  • Communicate proposals persuasively and respond positively to feedback;
  • Demonstrate familiarity with relevant subject specific and general computer software packages.
  • Knowledge and understanding of facts, concepts, principles & theories
  • Use of such knowledge in modelling and design
  • Problem solving strategies
  • Analyse if/how a system meets current and future requirements
  • Deploy theory in design, implementation and evaluation of systems
  • Knowledge of management techniques to achieve objectives
  • Knowledge of information security issues
  • Evaluate systems in terms of quality and trade-offs
  • Deploy tools effectively
  • Development of general transferable skills
  • Defining problems, managing design process and evaluating outcomes
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Knowledge and understanding of computational modelling
  • Principles of appropriate supporting engineering and scientific disciplines

Courses including this module