Massey Documents by Type

Permanent URI for this communityhttps://mro.massey.ac.nz/handle/10179/294

Browse

Search Results

Now showing 1 - 3 of 3
  • Item
    Real world evaluation of aspect-oriented software development : a thesis submitted in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University, Palmerston North, New Zealand
    (Massey University, 2006) Elgar, Christopher Mark
    Software development has improved over the past decade with the rise in the popularity of the Object-Oriented (OO) development approach. However, software projects continue to grow in complexity and continue to have alarmingly low rates of success. Aspect-Oriented Programming (AOP) is touted to be one solution to this software development problem. It shows promise of reducing programming complexity, making software more flexible and more amenable to change. The central concept introduced by AOP is the aspect. An aspect is used to modularise crosscutting concerns in a similar fashion to the way classes modularise business concerns. A crosscutting concern cannot be modularised in approaches such as OO because the code to realise the concern must be spread throughout the module (e.g. a tracing concent is implemented by adding code to every method in a system). AOP also introduces join points, pointcuts, and advice which are used with aspects to capture crosscutting concerns so they can be localised in a modular unit. OO took approximately 20 years to become a mainstream development approach. AOP was only invented in 1997. This project considers whether AOP is ready for commercial adoption. This requires analysis of the AOP implementations available, tool support, design processes, testing tools, standards, and support infrastructure. Only when AOP is evaluated across all these criteria can it be established whether it is ready to be used in commercial projects. Moreover, if companies are to invest time and money into adopting AOP, they must be aware of the benefits and risks associated with its adoption. This project attempts to quantify the potential benefits in adopting AOP, as well as identifying areas of risk. SolNet Solutions Ltd, an Information Technology (IT) company in Wellington, New Zealand, is used in this study as a target environment for integration of aspects into a commercial development process. SolNet is in the business of delivering large scale enterprise Java applications. To assist in this process they have developed a Common Services Architecture (CSA) containing components that can be reused to reduce risk and cost to clients. However, the CSA is complicated and SolNet have identified aspects as a potential solution to decrease the complexity. Aspects were found to bring substantial improvement to the Service Layer of SolNet. applications, including substantial reductions in complexity and size. This reduces the cost and time of development, as well as the risk associated with the projects. Moreover, the CSA was used in a more consistent fashion making the system easier to understand and maintain, and several crosscutting concerns were modularised as part of a reusable aspect library which could eventually form part of their CSA. It was found that AOP is approaching commercial readiness. However, more work is needed on defining standards for aspect languages and modelling of design elements. The current solutions in this area are commercially viable, but would greatly benefit from a standardised approach. Aspect systems can be difficult to test and the effect of the weaving process on Java serialisation requires further investigation.
  • Item
    The development of an incremental debugging system : a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University
    (Massey University, 1978) McDonald, Malcolm John
    Debugging is a major area of software development that has received little attention. This thesis starts by looking at work done in the area of bug prevention, bug detection, bug location and bug correction. A debugging system, BIAS, is proposed to help in detecting, locating and correcting bugs. Three major design goals are established. Firstly, the system should be simple and easy to understand as this will encourage use. Secondly, the system should be general so that it will be available to a large number of users. Finally, it should be incremental as this will save users' time. An incremental language, STILL, is designed to show how BIAS applies to structured languages. The construction of the system is shown. Each data structure, and how it is used, is described. BIAS uses an interpretive system and runs threaded code on a pseudo-machine. How the threads are interpreted and how they are set up is shown next. The use of BIAS is shown by following through an example session with the system. This consists of entering a program, editing it, and running it. As bugs show themselves, various debugging commands are used to locate the bugs. The program is then edited, and the corrections linked into the code so that it will run correctly. This cycle is repeated until no bugs remain, without at any time recompiling the whole program. It turns out that the best way of achieving the design goals is to extend an incremental compiler host to include debugging commands. This gives a clear emphasis to the power of incremental compilers.
  • Item
    A direct manipulation object-oriented environment to support methodology-independent CASE tools : a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University
    (Massey University, 1996) Zhong, Bei
    The aim of the thesis is research into application of direct-manipulable OO graphical environments to the development of methodology-independent CASE tools. In this thesis, a Methodology-Independent Graphical OO CASE Environment (M1GOCE) is proposed. MIGOCE consists of three parts: OO Notation Workshop, OO Notation Repository and Universal OO Diagramming Tool. OO Notation Workshop is an OO graphical editor which is used to design existing and new notations; OO Notation Repository is a notation database that stores different notations designed by the notation workshop; Universal OO Diagramming Tool is an upper-CASE graphical environment, by which a user can draw arbitrary OO diagrams of different methodologies. The MIGOCE database management system provides OO notation sets management, OOA/OOD diagrams management and OO repository management for data integrity and sharing. MIGOCE has three outstanding characteristics: Methodology-independence, Directly-manipulable graphical environment and Easily-expanded program structure MIGOCE is completely methodology-independent. It not only supports existing OO methodologies, but also supports users' own notation designs. It provides support for mixing, updating existing methodologies or defining new ones. It typically allows the user to switch quickly different OO notation sets supported by corresponding methodologies for designing diagrams. Direct manipulation interfaces of MIGOCE enable it more flexible and distinctive. The user can easily add, delete, edit or show notation shapes, and get the system feedback very quick on the screen. The MIGOCE system itself is programmed using object-oriented programming language - C++. Its program structure enable the functions of itself easy to be modified and expanded. Although MIGOCE is a prototype, it provides a new way to develop the real methodology-independent OO CASE environment. So far, the way and style taken by MIGOCE have not been found in OO CASE literatures. This system gives a complete possibility of implementing a methodology-independent OO CASE tool and shows distinct effectiveness of such a tool in practice.