Module ICP-2302:
Software Hut
Module Facts
Run by School of Computer Science and Electronic Engineering
20 Credits or 10 ECTS Credits
Semester 1
Organiser: Dr Cameron Gray
Overall aims and purpose
To provide a theoretical and practical introduction to the process of software engineering.
Course content
-
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
threshold 40% |
good 60% |
excellent 70% |
|
---|---|---|---|
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. |
Assessment Methods
Type | Name | Description | Weight |
---|---|---|---|
Group Project | 0 | ||
Written Examination | 50 | ||
Mini Project | 25 | ||
PESTLE Assignments | 25 |
Teaching and Learning Strategy
Hours | ||
---|---|---|
Private study | 52 | |
Lecture | 24 hours over 12 weeks |
24 |
Laboratory | 24 hours over 12 weeks (semester 1) |
24 |
Group Project | 100 |
Transferable skills
- 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
Resources
Resource implications for students
Department supplied infrastructure (software/servers/etc. - no cost to student)
Talis Reading list
http://readinglists.bangor.ac.uk/modules/icp-2302.htmlPre- and Co-requisite Modules
Pre-requisite of:
Co-requisite of:
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)