Module ICL-3006:
WBP-Design& Impl Visualisation

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 2

Overall aims and purpose

To pursue an full, formal, development cycle of the prototype system developed during the prerequisite module. This will require applying theoretical, practical, and procedural skills to deliver a product of commercial quality.

Course content

● Software life cycle; Analysis; Design; Implementation; Testing; Deployment; Models of software development; Extreme Programming

  • o Time and cost constraints; Milestones and Deliverables; Options Analysis; Project scheduling – tools and techniques.

o Requirements Analysis; Requirements Specification; Functional and non-functional requirements; Identification of Use Cases; Use Case Diagrams

o Use of UML to produce static and dynamic models of a proposed software system.

o Testing methodologies; Balck and White Box Testing; Unit and System Testing; Regression testing; Test Documentation;

o Team structures; Group working; SCRUM; Co-ordination of activity; Version control; Programmer productivity; Problem solving.

o The concept of professionalism; Professional ethics; Legal Isues – Copyright, Computer Misuse, Data Protection; Health and safety; Contracts and Employment Law Environmental issues.

● Documentation styles and processes.

● Commonly used project and code documentation.

● Project control and collaboration tools, processes, and documents.

Assessment Criteria

excellent

Demonstrate overall understanding of the Software Life Cycle.

Can critically evaluate and compare competing models of software development; can systematically describe the principles of Extreme Programming.

Create detailed design documents based upon system requirements.*

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 design and implement a test plan; can produce test documentation.

Analyse customer requirements and produce a requirements document and description of Use Cases.

Can produce a well presented requirements document, with a partially researched solution to the customer’s problem.

Ability to follow a development process, from design to testing.

Select an appropriate process, complete all necessary documentation to produce working, tested software. Able to use another's documentation to complete testing of another's application.

Understanding of the types of software testing, how to construct appropriate defect reports and their uses to limit the number of defects in software.

Can describe a set of user requirements accurately. Describes user requirements succinctly using the MoSCoW priority system and can convert these requirements into broad brush algorithms in pseudo-code. Accurately describes requirements with priorities and converts them through pseudo code to the final C# code with appropriate detail where necessary.

Understand professional issues related to the computing. Know about the legal, social and ethical issues associated with the use of computer technology.

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.

good

Demonstrate overall understanding of the Software Life Cycle.

Demonstrate knowledge of some of the literature relating to the Software Life Cycle.

Create detailed design documents based upon system requirements.*

Can produce static and dynamic models for small but complex software systems.

Appreciate the role of testing in software development and make use of a range of testing methodologies.

Demonstrates significant knowledge of different forms of testing (e.g. load performance and security testing).

Analyse customer requirements and produce a requirements document and description of Use Cases.

Can produce a fully researched solution to the problem at hand, with a full requirements document outlining the requirements in detail.

Ability to follow a development process, from design to testing.

Follow the basic process, completing all documentation to produce working, tested software.

Understanding of the types of software testing, how to construct appropriate defect reports and their uses to limit the number of defects in software.

Ability to capture requirements and convert those into the appropriate application logic, using intermediary pseudo-code where necessary.

Understand professional issues related to the computing. Know about the legal, social and ethical issues associated with the use of computer technology.

Demonstrate a capacity for taking charge of their own professional development and learning needs.

threshold

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.

Create detailed design documents based upon system requirements.*

Can read and understand a set of UML diagrams; can produce simple class and object diagrams.

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.

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.

Ability to follow a development process, from design to testing.

Complete a basic process to produce a working piece of software.

Understanding of the types of software testing, how to construct appropriate defect reports and their uses to limit the number of defects in software.

Can construct a test-plan to be followed by a human tester. Utilises unit tests to provide automated testing of individual components in addition to human testing. Provides a full unit test suite, uses additional automated testing for integration tests as well as human black-box and open-box testing.

Understand professional issues related to the computing. Know about the legal, social and ethical issues associated with the use of computer technology.

Demonstrates a satisfactory level of knowledge of the main concepts and ideas within the subject area.

Learning outcomes

    1. Understand professional issues related to the computing. Know about the legal, social and ethical issues associated with the use of computer technology.
    1. Understanding of the types of software testing, how to construct appropriate defect reports and their uses to limit the number of defects in software.
    1. Ability to follow a development process, from design to testing.
    1. Create detailed design documents based upon system requirements.
    1. Demonstrate overall understanding of the Software Life Cycle.
    1. Appreciate the role of testing in software development and make use of a range of testing methodologies.
    1. Analyse customer requirements and produce a requirements document and description of Use Cases.

Assessment Methods

Teaching and Learning Strategy

Hours
Lecture 10
Tutorial 12
Private study 278

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
  • 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.
  • Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team

Resources

Reading list

Barker, S., 2013. Brilliant PRINCE2: What You Really Need to Know About PRINCE2 . Pearson.

Billingham, V., 2008. Project Management: How to Plan and Deliver a Successful Project . Studymates Ltd.

Buttrick, R., 2013. The Project Workout: The ultimate handbook of project and programme management . Prentice Hall

Carroll, J., 2012. Agile Project Management In Easy Steps . In Easy Steps Ltd.

Morgan, J. and Dale, C., 2013. Managing IT Projects For Business Change: From Risk to Success . BCS.

Rubin, K.S., 2013. Essential Scrum – A practical guide to the most popular Agile process . Pearson Education.

Stark, E., 2014. Project Management For Beginners: Proven Project Management Methods To Complete . Createspace Independent Publishing Platform

Or later editions where applicable.

Websites

https://www.pmi.org.uk/ProjectManagementProfessional

http://www.bcs.org/BritishComputerSociety

Courses including this module

Compulsory in courses: