COMP27900: Systems Integration (2007-2008)
There is a growing recognition that theoretical teaching should be supplemented with substantial practical applications, without which theory is meaningless. Moreover, applications should be comprehensive and give students a wide scope for enquiry and decision-making. This is the principle underpinning Enquiry-Based Learning. The process will be even more relevant, if it is to be carried out in groups rather than individually. Through group work, students learn to collaborate as they would in any purposeful human organization. Group work also naturally induces members to communicate process-related ideas to one another, so it gives them a natural incentive to express their ideas coherently and effectively. All these are vital skills which can be fostered through a team-based comprehensive project.
The main aim of the course unit Systems Integration is to put into practice the philosophy expounded in the Introduction. The main element of the unit is a comprehensive team-based project to be carried out over two semesters. The project consists of a number of software development tasks ranging from specification to implementation and testing. The nature of the artifact to produce varies, but typically consists of a Web-based information system featuring dynamically generated pages and persistent information storage through a database management system.
The team-based nature of the project is another key aspect. Teams are small, typically of four or five members, and expected to work independently of one another (although communication between teams is not prevented). The main challenge for each team is to achieve effective collaboration of its members in the pursuit of relatively complex tasks. This requires accurate communication and close co-ordination of activities amongst members. An interesting consideration is how this process influences the members? individual learning and methods, e.g. by inducing them to express their ideas explicitly and precisely.
The unit does not introduce any new theory. Its main aim is to consolidate the most fundamental principles of software construction covered mainly in the first year. Four areas of software engineering are prioritized: program design and programming in an imperative, object-oriented language (Java); database design and implementation; human-computer interface design; and Web-based application design, incorporating the so-called three-tier client-server paradigm (browser ? server ? database management system). A related key aim of the project is to illustrate the problem of integrating these multiple aspects into a working system capable of evolution in response to changing requirements and system environment.
On successful completion of this course unit, students should be able to:
Demonstrate a sound understanding of the fundamental software engineering concepts and principles in the areas listed under Aims and, above all, explain how these principles inform the development of actual software systems.
Read the relevant Java programs and demonstrate understanding by carrying out such tasks as identifying and correcting logical errors, filling gaps, making changes, etc.
Understand a natural language (or semi-formal) program specification for a system and correctly implement it.
Reason about a program in relation to its specification.
Construct a precise, detailed and coherent system specification from an outline and relatively fuzzy set of requirements.
Design and implement substantial Java servlet programming components realizing the 3-tier model.
Subject practical skills:
Use program development tools (Integrated Development Environments etc.) effectively.
Establish and apply effective strategies for detecting, identifying and correcting logical errors in software.
Establish and apply effective strategies for testing software against specifications.
Apply a rigorous and systematic approach to the description of any type of system and to problem-solving.
Plan activities akin to software engineering and ensure their execution in accordance with the plan (control).
Understand a specification document correctly and construct an artifact consistent with it.
Understand the factors of effective collaboration within a small team of fellow specialists tasked with the production of software systems or other artifacts of a similar nature.
Effectively collaborate accordingly.
Assessment of Learning outcomes
Owing to the team-based nature of the project, the assessment of an individual student?s performance has two main objects: (1) individual achievement and (2) contribution to team achievement. Both components are evaluated by a variety of elements considered jointly. These include:
(a) Relatively small software development tasks to be carried out and assessed individually.
(b) Tests under examination conditions of practical knowledge gained from performing individual and team work.
(c) Written descriptions of the student?s contribution to their team?s achievement. These must be endorsed by the other members of the student?s team.
(d) Team output, mainly reports, software and laboratory demonstrations. In practice, the most distinctive feature of the team effort (as opposed to individual work) is to integrate the members? individual solutions into a coherent whole. The team mark is converted to a component of the student?s individual mark by application of a normalized contribution coefficient. The latter is determined as objectively as possible by the individually-evaluated elements (a), (b) and (c).
Contribution to Programme Learning Outcomes
A1, A2, A4, B1, B2, C6, D2, D6
Introduction to Web-based distributed systems.
Client-server architecture: two- and three-tier models.
Web browser - Web server connection. Static versus dynamic Web pages.
Technologies - HTTP protocol, HTML and browser-server connection
Java enterprise applications. Java servlet programming.
Role of object-oriented programming in servlet applications.
A generic design for servlet-based dynamic Web applications.
Connecting a Java application to a database using JDBC.
Key programming concepts as they apply to Web-based applications
Key principles of database design as they apply to Web-based applications
Key principles of human-computer interaction as they apply to Web-based applications
Supplementary TextTitle: Java Servlet programming
Author: Hunter, Jason and William Crawford