Monday, March 12, 2007

Management of Complexity

Cagle (2006) explains that "You can never eliminate complexity from a system, you can only move it from place to place". The purpose of my research is to allow software developers to deal with complexity as far as possible in order to leave the end-user free to model their own problems. My research aims to adapt or create software systems to provide the visual editor for the source tree, and allow model builders to create a model by editing this. By doing so, model builders would create a generic model for a particular modelling subject.

Representing Complexity as Linked Trees

My research aims to adapt or create software systems to provide the visual editor for the source tree, and allow model builders to create a model by editing this. By doing so, the model builders would create a generic model for a particular modelling subject. Vanguard Studio is used to automatically convert the taxonomy into a decision support and modelling system. Vanguard have made their server available for collaborative model development (Vanguard Software, 2006). UK universities are already linking together to use Vanguard Studio on a network for aerospace and construction industry modelling. The model users can then use this decision support and modelling system to create their models. These models would be a more specific subset of the generic model, and could be applied for their own analysis. I have provided a translation mechanism to convert information or models into other representations (primarily web based), and to visualise this information. RDF (Resource Description Framework) allows for linking of peoples' information sources with each other, the structure for this is more of interlinked graphs. "RDF is used to model knowledge, where tree-based representations are not enough" (Nilsson et al, 2002). I used and tested this methodology for linking models using Protégé and then translating to Vanguard Studio which also allows interlinking of models. The translations I have then made to web standard languages such as RDF have been successful but I have found that the semantic web needs more interaction and modelling capability, while Web 2.0 technologies have good user interface and interaction capabilities but lack sufficient structure for complex calculations. Another issue of dealing with complexity is how much you use a top-down approach and how much a bottom-up approach in the collaboration necessary to define information sources.

I have found a clear relationship between my end-user programming techniques that involve meta-programming and Semantic Web techniques that involve use of meta-information. Combining these approaches involves a meta modelling management approach that manages complexity on behalf of end-users. This approach deals with linking and using (reusing) information as required in order to solve the problem the user is interested in. An implication of this research is that there is a strong need for user-friendly tools for non-programmers to edit meta-data and meta-programs that must be human understandable and machine understandable. The Web is evolving from being primarily a place to find things to being a place to do things as well (Uschold, 2003) citing (Smith, 2001). It is important to take advantage of this change to enable end-user programming. This allows model builders and users to seek agreement between individuals and between their models and the software representation by intervening in the model building process. This is a practical solution that can be used until machine processable semantics might in future make more automated solutions possible.

Representing Complexity in Other Ways

Sometimes it is difficult to construct an ontology to represent a model, such as when a potential new design is to be modelled and little is yet known about it, so alternatives must be investigated. This kind of problem is investigated by the Institute for People-Centred Computation IP-CC (2006) collaboration network, where representatives from different universities and manufacturers can collaborate to investigate ways of discovering the information required. Also, techniques of Aspect Oriented Programming (Elrad et al, 2001) and (Murphy et al, 2001) can be used to identify functions that can be used in calculating results without the requirement of a detailed underlying taxonomy. Aspect oriented programming could be used to capture and translate user requirements especially where software functions can not be neatly attached to particular objects or nodes in a hierarchy. These are known as cross-cutting concerns as they may affect several nodes. A diagrammatic representation of the cross-cutting concerns can then be translated into a computer language representation such as AspectJ for Java (Kiczales et al, 2001) and AspectXML for XML (eXtensible Markup Language) (Peterson, 2005). This allows for specification of a program as a model and translation to different languages, beginning with Java, and XML. This also makes use of XML as a programming language not just an information format. Collaborations involving Aspect Oriented Programming can be found at (Aosd.net, 2007) and (AspectXML, 2007).Techniques for representing and visualising uncertainty can also be used to help cope with the problem of a limited specification (Marsh et al, 2002), (Bru et al, 2004).

References

Aosd.net, 2007. Welcome to aosd.net - http://aosd.net/.

AspectXML 2007. Community open-source project - http://www.aspectxml.org/.

Bru, C., Scanlan, J., Hale, P., 2004. Visualization of Cost Information, International Journal of Agile Manufacturing, 7(1), pp 53-59.

Cagle, K, 2006. Thoughts on Complexity - http://www.oreillynet.com/xml/blog/2006/03/thoughts_on_complexity.html.

Elrad,T., Filman, R. E., Bader, A., 2001. Aspect-oriented programming: Introduction. Communications of the ACM, 44(10), pp 28-32.

Institute for People-Centred Computation (IP-CC), 2006. Supporting Discovery in Design and Innovative Decision-making http://www.ip-cc.org.uk/.

Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W. G., 2001. Getting Started with AspectJ. Communications of the ACM, 44(10) pp 59-65.

Marsh, R., Hill, T., Scanlan, J., Dunkley, M., Cleevely, P., 2002. Modelling manufacturing cost uncertainty with input distributions and exemplars. In: 9th ISPE International Conference on Concurrent Engineering: Research and Applications, Cranfield University pp 881-890.

Murphy, G. C., Walker, R. J., Baniassad, E. L. A., Robillard, M. P., Lai, A., Kersten, M. A., 2001. Does aspect-oriented programming work?, Communications of the ACM, Vol 44(10) (October 2001) pp 75 - 77, ISSN:0001-0782.

Nilsson, M., Palmér, M., Naeve, A., 2002. Semantic Web Metadata for e-Learning - Some Architectural Guidelines WWW2002 Hawaii USA.

Peterson, M. D., 2005. O'Reilly XML.com - [Part 3] Assets, Atom Feeds, and AspectXML - The Triple Threat of Web Development?http://www.oreillynet.com/xml/blog/2005/09/part_3_assets_atom_feeds_and_a.html.

Smith, R, 2001. What's Required in Knowledge Technologies: A Practical Vie . In Proceedings of Knowledge Technologies 2001.

Uschold, M., 2003. Where are the semantics in the semantic web? AI Magazine Vol 24 (3) pp 25-36.

Vanguard Software, 2006. Global Knowledge Portal http://wiki.vanguardsw.com/.

My Research - http://www.cems.uwe.ac.uk/~phale/

Modelling - http://www.cems.uwe.ac.uk/amrc/seeds/Modelling.htm.

No comments: