Methods for architecting software
MetadataVis full innførsel
This thesis covers the challenges of developing event-driven software applications. It covers the analysis of the problem in order to suggest methods for architecting software for designing and implementing a framework dealing with the challenges of developing software. The implemented framework uses concurrent components to divide the overall behavior of an application into contained parts, having their own execution context. Further a message passing implementation is suggested, that uses ports and channels to establish a decoupled messaging system between components. Lastly a statechart engine is designed and implemented providing a way of keeping track of abstract states in a component. The framework is implemented in Objective- C, allowing it to be used to develop applications for the iOS platform and for the Mac OSX platform. The prototype application shows how the framework can be used to model an iOS application, using the abstraction introduced by the framework. The framework has been tested as to establish the correctness of the implementation and the performance in order to determine its usage for large complex applications. It is concluded that the methods considered and implemented into a framework provide a way of architecting event-driven software in ways that increases the abstraction level and introduce new possibilities for debugging event-driven applications.