Module ICP-2302:
Software Hut

Module Facts

Run by Computer Science

20 Credits or 10 ECTS Credits

Semester 1 & 2

Organiser: Dr Ik Soo Lim

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 50
Written Examination 25
Assignment Part 1 12.5
Assignment Part 2 12.5

Teaching and Learning Strategy

Hours
Private study 80
Lecture

24 hours over 12 weeks

24
Tutorial 6
Laboratory

70 hours over 24 weeks (ran in Semster 1 and 2) includes Laboratory preparation and reports

70
  20

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

Pre- and Co-requisite Modules

Courses including this module