Inidcative Content
This module will cover topics of:
Software Engineering as an academic discipline
Software development lifecycles (requirements, costing, design process, implementation, testing and evaluation)
Modelling techniques and tools
Typical teams, and associated roles and practices
Planning, cost estimation, risk evaluation, and contingency planning
Small to large project address, issues of scalability and problem solving
Peer review of developments of applications and solutions
Project Management
Utilise literature from provided and personal research to solve problems
Requirements specification
Design paradigms - including Agile Techniques
Design architectures and patterns (e.g. model-view-controller)
Managing deployment and maintenance, and change control of software
Practices for safety-critical systems
Risks and identification of these throughout the Software Development lifecycle
Security: typical threats, attacks and exploits, and the motivations behind them
Quality, metrics, testing, and process improvement (using maths as appropriate to weighting solutions)
Internationalisation and localisation
Professional, legal, and ethical, societal, and environmental software development issues
Areas current and emerging related to research into Software Engineering
Emerging innovation within the industry
Additional Assessment Details
Group based mini project – A group based component which looks at the full software engineering lifecycle as a project. Students will be required to specify, design, implement and test a small software project based on a real-world problem. In supporting the development of the solution the student’s will be expected to develop and apply an appropriate professional infrastructure utilising relevant tools and techniques as discussed in the relevant sections of the module (Learning Outcomes 1 to 3).
Individual reflective report – This will be an account of the student’s learning and skill development during the module and the first assessment (Learning Outcome 4).
Learning Strategies
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
Learning Outcomes
1. Demonstrate a systematic understanding of the current theory and practice of software engineering concepts and principles
Knowledge and Understanding, Enquiry, Learning
2. Analyse, design, implement, test and document a software product using appropriate software development methods and tools as part of a small development team
Application,
Analysis,
Problem Solving
3. Demonstrate a systematic understanding of current legal, ethical and professional issues pertaining to software engineering
Knowledge and Understanding,
Learning
4. Reflect critically on personal contribution, professionalisation and skills developed during the production of a software product using industry standard software engineering principles and practices as part of a development team
Communication,
Reflection
Texts
All texts and electronic resources will be updated and refreshed on an annual basis and available for students via the online Study Links resource platform. All reference materials will be collated and curated and aligned to Equality, Diversity & Inclusion indicators.
Farley, D. (2021). Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional
Sethi, R. (2022). Software Engineering: Basic Principles and Best Practices. Cambridge University Press
Tollen, D.W. (2021). The Tech Contracts Handbook: Software Licenses, Cloud Computing Agreements, and Other It Contracts for Lawyers and Businesspeople
Girvan, L. (2022). Agile From First Principles
Wiegers, K. (2021), Software Development Pearls: Lessons from Fifty Years of Software Experience, Addison-Wesley Professional; 1st edition
Woods, A. (2021), Rules for Software Development: A Book About Professionalism, Andrew Woods
SIGSOFT (www.sigsoft.org)
Resources
There are no prescribed technologies/applications however, there are a number freely available or university provisioned tools that will be presented.
Web Descriptor
This module focuses on key Software Engineering principles encompassing the management of the entire software development process. In addition, this module gives exposure to current industry standard practices such as the Agile software development methodology and quality driven development. It provides theoretical and practical exposure to skills demanded by employers and is constantly reviewed to ensure you have everything you need to succeed as a professional Software Engineer.