As part of the (modular) MSc ('98-'99), at the end of each module taken, a piece of work was undertaken.
The modules, in the chronological order taken, are as follows: DDCSS, OOSD, HCID, ROOD, OOSI, OODB, OORTS
A module 'running' throughout the academic year was also studied: Software Engineering Research Methods (Dissertation)
During the summer (1999), as the last part of my MSc, a project was undertaken while on industrial placement
|Database Design for Client-Server Systems||Grade awarded:||B||top|
Synopsis: The module addresses the database design issues raised by the burgeoning of client-server architecture and provides the database designer with the theoretical underpinning and practical techniques required to effectively exploit this technology.
Assessment: Produced a database design for an order processing system and more specifically tuned an OpenIngres 2.0 database system, based on the Transaction Processing Performance Council’s benchmark. In essence, chose appropriate table structures for the database in order to gain maximum performance under the TPC-C, given the ERD and the transactions' characteristics. A report was conducted justifying the decisions made and describing how to exploit the OpenIngres 2.0 features.
|Object-Oriented Software development||Grade awarded:||B+||top|
Synopsis: This module introduces the participant to the principles of object technology. The module focuses on modelling and design skills. It also provides an overview of the main areas of application of object technology.
Assessment: Given the scenario for a 'Patient Monitoring System', produced a complete set of models in UML notation. The models included: Package diagram, Use-Case, Class, Sequence and Collaboration diagrams and Statecharts. The models were produced using 'Rational Rose 98' and were accompanied by full documentation and an evaluation report describing the process followed.
|Human-Computer Interface Design||Grade awarded:||A+||top|
Synopsis: The introduction of multimedia and of rapid prototyping environments requires the working software developer to acquire new skills and approaches to user interface design. One aspect of this is the arrival of solid and broadly applicable methodologies. This module will teach such a methodology. Since, to be useful and flexible, any methodology must give considerable latitude as to the precise techniques adopted within it, a higher level understanding of the available options and their applicability will also be developed.
Assessment: Applied the Graphical User Interface Design and Evaluation (GUIDE) methodology to design the user interface for a (English -> Greek) computerised phrase book. The process, intermediate design stages & outcomes and the prototype were documented. A report reflecting on the application of the methodology was compiled.
|Rigorous Object-Oriented Design||Grade awarded:||A-||top|
Synopsis: The module emphasises the use of rigorous techniques in the software design process, with specific reference to the object-oriented paradigm. The main part of the module focuses on the combination of rigorous techniques with visual modelling, utilising latest industry standard notations. The module also considers the use of rigorous techniques in other areas of software development such as programming, and provides some insight into recent achievements and future directions.
Assessment: Given a partial class diagram (in UML), I completed it populating it with rigorous constraints using the OCL. Following that, a prototype was developed in Eiffel. A report, examining how UML with OCL models can be mapped to implementations in Eiffel, was carried out.
|Object-Oriented Software Implementation||Grade awarded:||A||top|
Synopsis: The module is aimed at students who are familiar with at least one procedural programming language who wish to gain experience/familiarisation in the use of an object oriented language. At the end of the module the student will have gained the necessary experience to construct software systems using object oriented technologies in an industry standard programming language (currently Java).
Assessment: Implemented a Java program using object oriented techniques . Specifically the game of 'Blackjack' was implemented. The Observer pattern was used resulting in a program with swappable user-interfaces. A report giving details of how the program illustrates re-usability, extendibility, maintainability and use of OO techniques in general, was produced.
|Object-Oriented Databases||Grade awarded:||A-||top|
Synopsis: New database technology is rapidly evolving from a pure relational to a mixed relational/object-oriented or pure object-oriented paradigm. This evolution is driven by the need to satisfy the data storage requirements of new application areas such as multi-media. This module aims to equip students with the theory of object-oriented databases, provide practical experience in the use of some contemporary object-oriented database management systems and to evaluate the suitability of object-oriented databases in various application areas.
Assessment: Produced database design taking the OO approach. Given a short description on the UK political election system, we created a conceptual model (UML object model), defined the schema (ODMG 2.0 ODL) and 'wrote' examples of ODMG 2.0 OQL queries based on the schema. Furthermore, a prototype was created using POET 5.1 & Java. Finally, a report discussing the details but also providing a comparison of OODBs and ORDBs in respect with the work produced, was compiled.
|Object-Oriented Real-Time Systems||Grade awarded:||A-||top|
Synopsis: Real-time computer systems are increasingly using concurrency and object-oriented constructs in their implementation to provide flexible and dependable systems. This module introduces the student to a concurrent object-oriented approach to software construction for real-time systems.
Assessment: Modified an existing Ada 95 program (train simulator)... Conducted a report that included a critique on the code written, a discussion on the use of inheritance in Ada 95 and a comparison of pre-emptive and co-operative scheduling (slicing vs. tasking).
|Software Engineering Research Methods||Grade awarded:||B||top|
Synopsis: Continual advances and innovations in software technology mean that software practitioners often need to understand research and its practical implications for the software industry. This module equips the student with the conceptual knowledge and practical skills necessary to evaluate new ideas and technologies, and to conduct advanced study and investigations in software engineering and related topics. The module explores methods of conducting software engineering research and the problem of evaluating the effectiveness of software engineering research and its practical value.
Assessment: Written dissertation. Oral presentation
Click on link below for full details
Title of dissertation: 'Component Technology'
Synopsis: To provide a realistic environment for the student to synthesise material drawn from the modules studied, to apply this synthesis to an in-depth investigation of a complex problem, and to devise or recommend creative and appropriate solutions to the problem. The project will normally be based in an external organisation and will entail placement of the student in that organisation for the duration of the project.
Assessment: See details below
Project title: To disseminate UML and best OO practices into four Caradon companies Trend, ESSER, Novar and Gent
One of the results of the project was a job offer from Caradon Trend (The company that currently employs me)
DDCSS, OOSD, HCID, ROOD, OOSI, OODB, OORTS, SERM, Project