CS5002 - Software Engineering (2022/23)
|Module specification||Module approved to run in 2022/23|
|Module title||Software Engineering|
|Module level||Intermediate (05)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2022/23(Please note that module timeslots are subject to change)||
This module provides a systematic approach to the analysis, design, construction, testing, deployment and maintenance of software. The module also broadens the student’s knowledge of methods, techniques and tools used in software engineering and systems development.
The general principles of Software Engineering and Systems Development, in particular the software life cycle and different software development approaches, will be introduced. Students will be able to choose appropriate software development methods and apply them to case studies. They will use a variety of key techniques and tools to model requirements and logical design. Students will apply their knowledge of computer systems and application areas to produce outline physical designs. Students will develop project planning and management, teamwork and communication skills, taking into consideration risk/safety, security, professional and legal issues in the development of software products, information systems and services. Experience of working as an individual and as a member of a team on a software development case study will enhance students’ employability.
Prior learning requirements
Successful completion of Level 4 or equivalent
1. The distinction between software products, information systems and services LO1
2. Systems Analysis and Design applied to the development of Information Systems LO2, LO3, LO4, LO10
3. Software Engineering applied to the development of software products LO1, LO3, LO4, LO5, LO10
4. Software Life Cycle: Requirement specification, System Modelling, Design (including system architecture, software component and user interfaces etc); Construction; Testing; Transition; Maintenance LO3, LO7
5. Classification of software development approaches – (e.g. iterative/waterfall, data-driven/process-driven, structured/object-oriented, prototyping etc); suitability for a range of applications. LO2, LO3
6. Specific software development methods (Agile Software Development, Rational Unified Process, DSDM, Experimental Prototyping etc): overview description of main stages and their aims, purpose of techniques, relationship between techniques. LO2, LO3, LO5
7. Modelling techniques: key UML analysis and design modelling techniques – Use Case models, Communication diagrams, Class diagrams, Sequence diagrams, State Charts, deployment diagrams, etc. LO3, LO4, LO5
8. Component Technologies for Software development. Programming Paradigms, Design Patterns and Implementation Frameworks. Development of Software Components using programming languages, IDEs and CASE Tools. Software System Integration. LO4, LO5
9. Software reuse LO1, LO2
10. Introduction to software testing approaches (e.g. black box/white box), component testing, integration testing, system/sub-system testing. LO1, LO3, LO5
11. Introduction to information security, risk and security management LO6, LO7
12. Dependable Systems and Security Engineering LO6, LO7
13. Introduction to principles and concepts of software project management, including project planning & estimating, monitoring & control, risk, quality and configuration management. LO6, LO7, LO8
14. Project management tools and techniques, e.g. Gantt chart, network diagrams, critical path analysis, cost-benefit analysis, earned value, work breakdown structure, risk analysis and management. LO7, LO8, LO9, LO10
Balance of independent study and scheduled teaching activity
The module is taught through a combination of lectures, for basic concepts, methods and techniques for Software Engineering, and practical tutorials for enhancing learning and development of skills each week for 30 weeks.
Appropriate blended learning approaches and technologies, such as, university’s integrated learning environment (currently using WebLearn) and online tools, will be used to facilitate and support students learning, in particularly to:
• Deliver teaching materials
• Provider a communication platform to support coursework
• Provide formative and summative feedback to students
Students will be expected and encouraged to produce reflective commentaries and an action plan for personal development on the learning activities and tasks that they carry out to complete their work, e.g. in the form of an assessed section of their coursework report.
On successful completion of this module, the student will be able to:
LO1. Demonstrate an understanding of the concepts and principles of system development and software development taking into consideration legal, social, ethical and professional issues.
LO2. Describe and compare standard software development methods.
LO3. Demonstrate an understanding of the aims of the main stages within a range of standard software development methods and how key techniques work together to support these aims
LO4. Apply a range of key modelling techniques appropriate for development in a variety of problem domains – together with an awareness of supporting CASE tools.
LO5. Demonstrate practical skills in building fragments of software systems using suitable design patterns and software development tools.
LO6. Recognise issues of information security, security risks and management
LO7. Demonstrate an awareness of software architectures and design guidelines for safe and secure systems development, and how life-cycle risk assessment and operational risk assessment are used to understand security issues that affect a system design.
LO8. Describe the essential concepts of project planning, risk analysis & management, quality and configuration management.
LO9. Apply project management concepts and key project management tools and techniques to a given specification.
LO10. Work in teams and individually; select and use appropriate communication formats, and documentation standards.
The module will be assessed by:
• one major group assignment (LO1 – LO10)
• one individual assignment (LO1-LO9)
• and a two-hour examination (LO1-LO9),
The two courseworks will be based on case studies and will require students to select a suitable software development method for the particular case study and to carry out relevant research and deliver specified outcomes that may involve a range of systems analysis, design and other software engineering and project management activities.
Students will be required to present the coursework informally approximately two weeks prior to hand-in and will receive oral feedback at the time.
The examination will be part-seen and will include questions on a short case-study which will be available in advance. The exam will test students in terms of a broad range of software engineering concepts and applications.
Consistent with University policy, formative and summative feedback will be provided at various points throughout the teaching year.
Where possible, the most current version of reading materials is used during the delivery of this module. Comprehensive reading lists are provided to students in their handbooks. Reading Lists will be updated annually.
• Sommerville, I., 2016, Software Engineering, 10th Edition, Pearson, ISBN: 1292096136
• Pressman, S.R., 2014, Software Engineering: A Practitioner's Approach, 7th Edition, McGraw-Hill, ISBN: 9339212088
• Hughes, B, 2012, Project Management for IT-related Projects. BCS Publications, ISBN: 978-1-78017-118-0
• Pfleeger, C. P. et al., 2015. Security in Computing, 5th edition, Pearson, ISBN 978-0-13-408504-3
• Michael E. Whitman and Herbert J. Mattord, 2009, Principles of Information Security, Delmar Learning, ISBN-13: 9780840031167 / ISBN-10: 0840031165
• Bennett, McRobb, Farmer, 2010, Object-Oriented systems analysis and design using UML, 4th edition, McGraw-Hill.
• Jacobson, Booch and Rumbaugh, 1999, The Unified Software Development Process. Addison-Wesley
• ACM Transactions on Software Engineering and Methodology, ACM New York, NY, USA, ISSN:1049-331X
• The Computer Journal of the British Computer Society, ISSN 1460-2067 (Electronic); Publisher: Oxford: Oxford Journals, Oxford, UK : Oxford University Press.
• Ian Sommerville's Software Engineering book website: http://iansommerville.com/software-engineering-book/
• Safari Books Online
Electronic Databases (available from the University Library)
• ACM Digital Library
• IEEE Xplore/IET Digital Library