Run by School of Computer Science and Electronic Engineering
20 Credits or 10 ECTS Credits
Organiser: Dr Cameron Gray
Overall aims and purpose
To provide a theoretical and practical introduction to the process of software engineering.
Software life cycle; Analysis; Design; Implementation; Testing; Deployment; Models of software development; Extreme Programming
Time and cost constraints; Milestones and Deliverables; Options Analysis; Project scheduling – tools and techniques.
Requirements Analysis; Requirements Specification; Functional and non-functional requirements; Identification of Use Cases; Use Case Diagrams
Use of UML to produce static and dynamic models of a proposed software system.
Testing methodologies; Balck and White Box Testing; Unit and System Testing; Regression testing; Test Documentation;
Team structures; Group working; SCRUM; Co-ordination of activity; Version control; Programmer productivity; Problem solving.
The concept of professionalism; Professional ethics; Legal Isues – Copyright, Computer Misuse, Data Protection; Health and safety; Contracts and Employment Law Environmental issues.
Learning outcomes mapped to assessment criteria
Demonstrate overall understanding of the Software Life Cycle.
|Can identify and describe the stages of the software life cycle; can state and describe various models of software development.||Demonstrate knowledge of some of the literature relating to the Software Life Cycle.||Can critically evaluate and compare competing models of software development; can systematically describe the principles of Extreme Programming.|
Apply project-planning techniques to the process of software development.
|Use of fundamental project planning techniques; identification of milestones and deliverables.||Can undertake contingency planning; demonstrates knowledge of the role of time and cost constraints||Effective use of project planning software; identification of critical paths; understand the role of an options analysis;|
Analyse customer requirements and produce a requirements document and description of Use Cases.
|Can explain the purpose of the analysis process; can distinguish different kinds of requirements; can read and understand Use Case diagrams.||Can produce a fully researched solution to the problem at hand, with a full requirements document outlining the requirements in detail.||Can produce a well presented requirements document, with a partially researched solution to the customer’s problem.|
Create detailed design documents based upon system requirements.
|Can read and understand a set of UML diagrams; can produce simple class and object diagrams..||Can produce static and dynamic models for small but complex software systems.||Can produce static and dynamic models of simple software systems.|
Appreciate the role of testing in software development and make use of a range of testing methodologies.
|Can describe a range of testing methodologies; can read and understand test documentation and its purpose.||Demonstrates significant knowledge of different forms of testing (e.g. load performance and security testing).||Can design and implement a test plan; can produce test documentation.|
Work effectively in a software development team.
|Demonstrates knowledge of industry standard team structures; can work effectively with others to solve technical and organisational problems||Demonstrates knowledge of the literature relating to the management of software development.||Can maintain project administration documents; understand and use various systems of version control;|
Understand professional issues related to the computing. Know about the legal, social and ethical issues associated with the use of computer technology. Adopt approved professional practices.
|Demonstrates a satisfactory level of knowledge of the main concepts and ideas within the subject area.||Demonstrate a capacity for taking charge of their own professional development and learning needs.||Demonstrates a good level of knowledge of most of the subject area with evidence of depth in specific instances; Can apply appropriate practices within a professional and ethical framework.|
Teaching and Learning Strategy
24 hours over 12 weeks
24 hours over 12 weeks (semester 1)
- Literacy - Proficiency in reading and writing through a variety of media
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Computer Literacy - Proficiency in using a varied range of computer software
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Exploring - Able to investigate, research and consider alternatives
- Information retrieval - Able to access different and multiple sources of information
- Inter-personal - Able to question, actively listen, examine given answers and interact sensitevely with others
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Presentation - Able to clearly present information and explanations to an audience. Through the written or oral mode of communication accurately and concisely.
- Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team
Subject specific skills
- Knowledge and understanding of facts, concepts, principles & theories
- Use of such knowledge in modelling and design
- Problem solving strategies
- Analyse if/how a system meets current and future requirements
- Deploy theory in design, implementation and evaluation of systems
- Recognise legal, social, ethical & professional issues
- Knowledge of management techniques to achieve objectives
- Specify, design or construct computer-based systems
- Deploy tools effectively
- Work as a member of a development team
- Development of general transferable skills
- Knowledge of systems architecture
- Specify, deploy, verify and maintain information systems
- Defining problems, managing design process and evaluating outcomes
- System Design
- Knowledge and/or understanding of appropriate scientific and engineering principles
- Specify, deploy, verify and maintain computer-based systems
- Principles of appropriate supporting engineering and scientific disciplines
Resource implications for students
Department supplied infrastructure (software/servers/etc. - no cost to student)
Talis Reading listhttp://readinglists.bangor.ac.uk/modules/icp-2302.html
Pre- and Co-requisite Modules
Courses including this module
Compulsory in courses:
- I110: BSc Computer Information Systems year 2 (BSC/CIS)
- I11B: BSc Computer Information Systems (4 year with Incorp Found) year 2 (BSC/CIS1)
- IN00: BSc Computer Information Systems for Business year 2 (BSC/CISB)
- IN0B: BSc Computer Information Sys for Bus (4 year w Incorp Found) year 2 (BSC/CISB1)
- G400: BSC Computer Science year 2 (BSC/CS)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 2 (BSC/CS1)
- GN41: BSC Computer Science for Business year 2 (BSC/CSFB)
- GN4B: BSc Computer Science for Business (4 year with Incorp Found) year 2 (BSC/CSFB1)
- I102: BSc Computer Science (with International Experience) year 2 (BSC/CSIE)
- GW49: BSC Creative Technologies year 2 (BSC/CT)