Module overview
This module is to prepare students for undertaking large software projects. It introduces the students to the high-level strategies required for managing projects from their genesis to completion.
The module also introduces the students to secure engineering of software systems.
The practical aspect will enable students to gain practical coding skills in secure software development for web-based applications.
While no prior knowledge of a specific programming language is assumed, students should already be competent in at least one high-level language.
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Formal management for software projects
- Quality assurance practices for software projects
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Select appropriate modern software development methods for a variety of software projects, taking into account assessment of risk.
- Describe a number of modern software development methods, including the life cycle for developing secure software systems.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Evaluate the outcome of implementing security measures in server-side and client-side code
- Implement security measures in server-side and client-side code
Syllabus
Managing the software development process:
Estimating the effort in software projects
Contracts, planning and monitoring
Costing and budgeting
Models of Software Projects
Quality assurance:
Concepts in QA
Capability Maturity Modelling
ISO 9000 standards
Metrics
Testing strategies
Risk management
Risk Based Software testing
Security by design
Security models, and principles of secure computing
Software Engineering methodology for secure systems
Privacy and trust issues in software system design
Development methods:
Iterative and incremental development
Agile Development techniques
Test-driven development
Manual vs Automated Testing
Refactoring
Secure software design and development
Web-based Secure Coding
General techniques for secure programming are covered using an example web development framework using e.g PHP, JavaScript or ASP.Net
Learning and Teaching
Type | Hours |
---|---|
Follow-up work | 18 |
Revision | 10 |
Lecture | 36 |
Wider reading or practice | 36 |
Tutorial | 12 |
Preparation for scheduled sessions | 18 |
Completion of assessment task | 20 |
Total study time | 150 |
Resources & Reading list
Textbooks
Roger S. Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill Higher Education.
K. Schwibe. IT Project Management.
Ian Sommerville. Software Engineering. Pearson.
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Final Assessment | 70% |
Continuous Assessment | 30% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External