-
Notifications
You must be signed in to change notification settings - Fork 5
GumTree Design_161153051
nxi edited this page Apr 9, 2015
·
1 revision
Created by Tony Lam, last modified on Jul 12, 2010
Time and resource for software development are always constrained. Rapid development and maintainable code have hence become an important issue for modern day software design. The design of GumTree is no exception. In order to achieve those goals, we inject the following concepts in our design:
- Reusability - maximising code reuse can free developers from working on fundamentional features, and hence they can spend more time on writing more complex domain specific logics.
- Scalability - making application easily extensible can encourage developers to reuse the existing code base.
- Reconfigurability - design with configurability in mind reduces the amount of coding in a large project that requires to support a number of similar use cases.
- Plug-in Architecture - this is a modular way to
- Service Oriented Architecture -
- Resource Oriented Architecture -
Platform + Frameworks + Customisations
- Platform - each GumTree application is built on an application platform, which includes a runtime kernel plus a number of application services. The GumTree platform itself is a fully functional application, where additional features are adding by installing plug-ins into the runtime kernel. Plug-ins can leverage application services such as logging and persistence to simplify the coding task. Further explanation on the concept of platform is available on the article "Creating Micro-platforms" (see further readings)
- Frameworks - framework is referred as a collection of reusable components to solve complex issues, for example, the data analysis framework is designed to help developers to glue existing algorithms in an easy way. GumTree applications can equip with one or multiple frameworks to address different needs of the users.
- Customisations - depending on your user requirement, an application may require little or significant customisation on the existing building blocks. In order to make good use of existing components, GumTree promotes two type of customisations: extension and integration. When a new behaviour is added within the context of an existing framework, we contribute this via extension. If possible, we implement more sophisticated features by integrating components from multiple frameworks.
- Creating Micro-platforms - http://ianskerrett.wordpress.com/2006/05/23/creating-micro-platforms
- Object-Oriented Application Frameworks - http://www.cs.wustl.edu/~schmidt/CACM-frameworks.html
- GumTree - A Java Based GUI Framework for Beamline Experiments (Design Principle section) - http://lns00.psi.ch/nobugs2004/papers/paper00090.pdf
Document generated by Confluence on Apr 01, 2015 00:11
Home | Developer Guide | Copyright © 2013 ANSTO