CS5002 - Software Engineering (2023/24)
|Module specification||Module approved to run in 2023/24|
|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 2023/24(Please note that module timeslots are subject to change)||
This module provides a systematic approach to software analysis, design, construction, testing, deployment, and maintenance. The module also broadens the student’s knowledge of software engineering and systems development methods, techniques and tools. The general principles of Software Engineering and Systems Development will be introduced; notably the software life cycle and different software development approaches. Students will be able to choose appropriate software development methods and apply them to case studies. They will use a variety of critical 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, and professional and legal issues in the development of software products, information systems and services. Experience of working as an individual and a team member on a software development case study will enhance students’ employability.
Prior learning requirements
Successful completion of Level 4 or equivalent
The main topics of the module syllabus include:
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, LO6)
3. Software Engineering applied to the development of software products. (LO1, LO2, LO3, LO5, LO6)
4. Software Life Cycle: Requirement specification, System Modelling, Design (including system architecture, software components and user interfaces etc.); Construction; Testing; Transition; Maintenance. (LO3, LO5)
5. Classification of software development approaches – (e.g., iterative/waterfall, data-driven/process-driven, structured/object-oriented, prototyping etc.). (LO2, LO3)
6. Software development methodologies (Agile Software Development, Rational Unified Process, DSDM, Experimental Prototyping etc.): overview description of main stages and their aims, purpose, and relationship between different techniques. (LO2, LO3, LO5)
7. Modelling techniques: fundamental 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 and Software reuse. (LO2, LO3, LO5)
9. Introduction to software testing approaches component, integration, system and sub-system testing. (LO1, LO3, LO5)
10. Introduction to information security, risk and security management. (LO4, LO5)
11. Introduction to principles and concepts of software project management, including project planning and estimating, monitoring and control, risk, quality and configuration management. (LO5, LO6)
12. Project management tools and techniques, e.g., Gantt chart, network diagrams, critical path analysis, cost-benefit analysis, earned value, and work breakdown structure. (LO2, LO5, LO6)
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 developing skills each week for 30 weeks. Appropriate blended learning approaches and technologies, such as the university’s integrated learning environment (currently using WebLearn) and online tools, will be used to facilitate and support students learning, in particular 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 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, students will be able to:
- LO1: Demonstrate an understanding of the concepts and principles of system and software development, considering legal, ethical, social and professional (LESP) issues.
- LO2: Demonstrate a systematic understanding of the main stages of software engineering within a range of standard software development methods and an awareness of supporting CASE tools.
- LO3: Demonstrate practical skills in building fragments of software systems using suitable design patterns and apply a range of key modelling techniques appropriate for development in various problem domains.
- LO4: Recognise information security and security risk issues and demonstrate an awareness of software architectures and design guidelines for safe and secure systems development.
- LO5: Demonstrate an awareness of software architectures and design guidelines for safe and secure systems development and describe the essential concepts of project planning, risk analysis & management, and quality and configuration management.
- LO6: Apply key project management concepts, tools and techniques to a given specification in teams and individually.
The module will be assessed by:
- One major group assignment (LO1 –LO6)
- One individual assignment (LO1-LO6)
- A two-hour examination (LO1-LO6)
The two coursework assignments will be based on case studies. They will require students to select a suitable software development method for the particular case study, 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 then receive oral feedback. The examination will be part-seen and includes questions on a short case study which will be available in advance. The exam will test students on 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.