WM278-30 Software Development Life Cycle
Introductory description
With the increasing trend across the industry, software engineering skills are becoming a vital part of any product development. It goes hand-in-hand with the integration of the mechatronics hardware devices, which is becoming crucial for many sectors, not just the software industry.
Module aims
The aim of this module is to cover the main phases of the software development life cycle including requirements analysis, design, development, testing, and maintenance. It is important for software engineers to control the changes in the software development process and for that software configuration is required. A brief introduction to tools and techniques for managing changes in software, code, and documentation will also be discussed in the module.
This module also aims to discriminate key software process models including the Agile Manifesto, Scrum, XP, Lean, and Kanban and further understand different design patterns and solutions to effectively design a project in software development. More importantly, through a number of carefully designed, work-based projects and case studies, the module aims to deliver to students the Agile mindset, which is also critical and allows them to apply to real-world problems.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
Importance of Software Engineering
Software development methadologies
Stages of software development life cycle
Gathering and analyzing requirements
Software Design using UML
Designing the Software using UML
Use Case diagram
Activity diagram
Sequence diagram
State diagram
Deployment diagram
Overview of software quality assurance
Defining quality: requirements and specifications
Security as a fundamental aspect of quality
Quality by design: building in quality
Program verification technologies and methods
Inspections and code reviews
Software testing
Blackbox testing
Whitebox testing
Software configuration control
Requesting, evaluating, and approving software changes
Implementing software changes
Introduction to Automotive SPICE and MISRA compilers
Software documentation
Generate documentation from the code
Writing user manual
Software process modelling
The Agile Manifesto
User stories
Backlog management
Sprint management
Team velocity estimation
XP values and principles
Pair programming
Test-driven development
Continuous integration
Coding standards
Lean Software Development
Kanban
Measure and manage workflow
Feature-driven development
Combining Agile with traditional software development
Enterprise Agility
Learning outcomes
By the end of the module, students should be able to:
- Discriminate key software process models used in software development, by carefully analysing and designing a project using these models.
- Distinguish current and emerging principles and practices for software development, use these techniques to analyse and optimize process workflow.
- Demonstrate a sound understanding of a range of software process models using symbolic representations.
- Apply the range of software techniques to improve configuration management, version control and software build.
- Discriminate different design patterns and software testing strategies, and effectively apply these patterns and testing solutions to a project.
Indicative reading list
- I. Sommerville, “Software Engineering”, Pearson education, 2016, ISBN: 9781292096131
- R. Stephens, “Beginning Software Engineering”, Indiana: Wrox 2015, ISBN: 9781118969168.
- Andrew Stellman, Jennifer Greene: “Learning Agile: Understanding Scrum, XP, Lean, and Kanban”, 2014, ISBN: 9781449331924.
- Jonathan Rasmusson: “The agile samurai: how agile masters deliver great software”, 2010, ISBN: 9781934356586
View reading list on Talis Aspire
Subject specific skills
The student should be able to demonstrate a high level of competencies in the following areas:
Software requirements capturing, architectural design, system modeling, verification and validation, spring management, Kanban, Scrum principles
Transferable skills
Team working, problem-solving, oral and written communication
Study time
Type | Required |
---|---|
Lectures | 30 sessions of 1 hour (23%) |
Practical classes | 20 sessions of 1 hour (15%) |
Supervised practical classes | 20 sessions of 1 hour (15%) |
Work-based learning | 60 sessions of 1 hour (46%) |
Total | 130 hours |
Private study description
Private study includes:
- Pre-block reading list given on Moodle to encourage flipped learning approach
- Pre-block online Quizzes
- Pre-block exercises given on Moodle.
- Post block reading list published on Moodle that helps students to do Individual projects.
- Post-block problem sets released on Moodle.
- Post block online Quizzes for revision
- Post-block reading list on will be published to encourage the outperforming students
- Online forum for discussing queries with course peers and tutor.
- Online consulting session for providing one to one support to help struggling students.
- Distance learning support using technology enhanced learning.
Costs
No further costs have been identified for this module.
You must pass all assessment components to pass the module.
Assessment group A
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Software Design Specification (Group) | 40% | 30 hours | No |
A group report on the design of a software system, up to 3,000 words. The group normally consists of 5-6 people, and the whole group shares the same mark. |
|||
Software Documentation (Individual) | 60% | 45 hours | Yes (extension) |
This assessment includes a written report (up to 2,500) and plus system development based on the report (a half of the assessment time required).
|
Feedback on assessment
Feedback will be given as appropriate to the assessment type:
– verbal formative feedback on lab activities related to in-module assessment.
– written summative feedback on post module assessments.
Courses
This module is Core for:
- Year 2 of DWMS-H655 Undergraduate Digital and Technology Solutions (Cyber) (Degree Apprenticeship)
- Year 2 of DWMS-H652 Undergraduate Digital and Technology Solutions (Data Analytics) (Degree Apprenticeship)
- Year 2 of DWMS-H653 Undergraduate Digital and Technology Solutions (Network Engineering) (Degree Apprenticeship)
- Year 2 of DWMS-H654 Undergraduate Digital and Technology Solutions (Software Engineering) (Degree Apprenticeship)