Module Descriptors
OBJECT-ORIENTED APPLICATION ENGINEERING
COSE50582
Key Facts
Digital, Technology, Innovation and Business
Level 5
30 credits
Contact
Leader: Graham Mansfield
Hours of Study
Scheduled Learning and Teaching Activities: 78
Independent Study Hours: 222
Total Learning Hours: 300
Assessment
  • Test - A portfolio-based test weighted at 40%
  • Coursework - An individual assignment with report 1000 words weighted at 60%
Module Details
Texts
Head First Design Patterns, Freeman, E. et al (2004), O'Reilly Media, ISBN: 978-0596007126
Design Patterns Elements of Reusable Object-Oriented Software, Gamma, E. et al (1994), Addison-Wesley, ISBN: 978-0201633610
Applying UML and Patterns An Introduction to Object-Oriented Analysis and Design and Iterative Development 3rd ed., Larman, C. (2008), Dorling Kindersley, ISBN: 978-8177589795
Introduction to Java Programming 9th ed., Liang, Y.D. (2013), Pearson Education, ISBN: 978-0273771388
OCA/OCP Java SE 7 Programmer I & II Study Guide (Exams 1Z0-803 & 1Z0-804), Sierra, K. and Bates, B. (2015), Certification Press, ISBN: 978-0071772006

Resources
Development environment: Java SDK and NetBeans
Microsoft Visio modelling tool
Special Admissions Requirements
Prior study of COSE40577: Introduction to Software Development or equivalent.
Indicative Content
Object-Oriented Development
Review of object-oriented principles (objects and classes, association, inheritance and polymorphism) and their implementation in Java
The Object class and its methods
Abstract classes and interfaces
Wrapper classes for primitive types
Inner and nested classes
String processing
Two-dimensional arrays
Handling files (java.nio package), input, output and serialisation, building database applications with JDBC
Localisation and Internationalisation, processing dates and time
Regular expressions
Exception handling and assertions
Multithreading and concurrency
Java collections framework
Graphical User Interface development using Swing
Java 7 features such as enumerations, enhanced for loop, formatted output, Scanner auto-boxing and unboxing of primitives, generic types, variable-length argument lists
JDK tools and deploying applications
Design Patterns
Design patterns, including how to model them with UML:
- Delegation vs. inheritance
- O-O design patterns
- GOF type - managing behaviour
- Other O-O patterns to include
o DAO, grasp, singleton, bridge, template method, factory method, composite, visitor, command, strategy, chain of responsibility adapter, proxy, decorator
Applying patterns to application domains, discussion of patterns in context of Application
Databases - decoupling databases from applications, saving & restoring state
Frameworks to include Struts, JUnit
Module Learning Strategies
52 hours of lectures presenting key topics and concepts.

26 hours of practical sessions in which students will build a portfolio of work involving the application of concepts presented in the lectures to solve problems in given contexts. An O-O case tool may be used which has predefined patterns that can be adapted for solving given problems.
Module Additional Assessment Details
TEST (90 MINUTES) weighted at 40%. Coursework weighted at 60%.


TEST Weighting 40%: A portfolio-based test (Duration 1.5 hours). (Learning outcomes 1 and 2)
A COURSEWORK Weighting 60%; An individual assignment to design, implement, test and present an application that uses design patterns, with a report (1,000 words) critically evaluating alternatives and justifying the choice of design pattern. (Learning outcomes 2 and 3). Final assessment.