CS2D1-30 Software Engineering
Introductory description
This module will allow students to understand the importance of the software life cycle, including a range of software development methodologies, and to design object oriented software with the aid of a formal system modelling notation. They will gain experience with software tools that support development, e.g. source control systems and test frameworks, and through this come to understand the practical challenges with the development of a significant software system. Ultimately, they will critically evaluate their experience of practical software development with regards to project management, software processes, and technical accomplishment.
Module aims
The module aims to provide students with knowledge of techniques used for managing and delivering software in industry. The module will cover the full software development life cycle from gathering requirements at the start through to organising the development tasks and finally consideration for releasing the software developed.
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.
In this module, students will learn:
- Object oriented modelling and design: objects, classes, inheritance, aggregation, and composition
- Formal notation for expression issues related to the analysis, design, and implementation of systems
- Classical software engineering principles, including life cycles, cost estimation, testing, and maintenance
- Human computer interaction: human information processing models and memory, learning and skill acquisition, interaction styles, and accessibility
- Techniques for eliciting user requirements
- Architectural design and implementation: technology selection, application of design patterns, and frameworks for system design
- Levels of system and performance testing: unit, integration, system, and user/acceptance testing
Learning outcomes
By the end of the module, students should be able to:
- Describe the importance of stages in the software life cycle including a range of software methodologies.
- Design object oriented software with the aid of a formal modelling notation.
- Understand principles of user interface design.
- Critically evaluate their experience of practical software development with regard to project management, software processes, and technical achievement.
Indicative reading list
Sommerville, I., "Software Engineering (9/e)", Pearson (2010)
Pressman, RS, "Software Engineering: A practitioners Approach (8/e)", McGraw Hill (2014)
Subject specific skills
- Critically analyse a business domain in order to identify the role of information systems
- Highlight issues and identify opportunities for improvement through evaluating information systems in relation to their intended purpose and effectiveness
- Analyse business and technical requirements to select and specify analyses business and technical requirements to select and specify appropriate technology solutions
- Design, implement, test and debug software to meet requirements using contemporary methods including agile development
- Configure and deploy solutions to end users
- Follow a systematic methodology for initiating, planning, executing, controlling, and closing technology solutions projects
- Apply industry standard processes, methods, techniques and tools to execute projects
- Contemporary techniques for design, developing, testing, correcting, deploying and documenting software systems from specifications, using agreed standards and tools
- How teams work effectively to produce technology solutions
- Common vulnerabilities in computer networks including unsecure coding and unprotected networks
- How to deliver a technology solutions project accurately consistent with business needs.
- The fundamentals of data structures, database system design, implementation and maintenance
Transferable skills
- Able to give and receive feedback constructively and incorporate it into his/her own development and lifelong learning
- Applies analytical and critical thinking skills to Technology Solutions development and to systematically analyse and apply structured problem solving techniques to complex systems and situations
- Have demonstrated that they have mastered basic business disciplines, ethics and courtesies, demonstrating timeliness and focus when faced with distractions and the ability to complete tasks to a deadline with high quality.
- Flexible attitude
- Ability to perform under pressure
- A thorough approach to work
- Logical thinking and creative approach to problem solving
Study time
Type | Required |
---|---|
Lectures | 40 sessions of 1 hour (13%) |
Tutorials | 14 sessions of 1 hour (5%) |
Practical classes | 35 sessions of 1 hour (12%) |
Work-based learning | 186 sessions of 1 hour (62%) |
Other activity | 25 hours (8%) |
Total | 300 hours |
Private study description
No private study requirements defined for this module.
Other activity description
Self study
Costs
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Assessment group A1
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Work-based project report | 80% | Yes (extension) | |
Presentation relating to work-based project | 20% | Yes (extension) |
Feedback on assessment
Written feedback will be provided for the report and presentation
Courses
This module is Core for:
- Year 2 of DCSA-I1I2 Undergraduate Computer Science and Technology Solutions (Data Analyst) (Degree Apprenticeship)