Issue No.09 - Sept. (2013 vol.39)
Dragan Milicev , University of Belgrade, Belgrade
Zarko Mijailovic , SOL Software, Belgrade
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2013.8
We present a novel approach to modeling and implementing user interfaces (UI) of large business applications. The approach is based on the concept of capsule, a profiled structured class from UML which models a simple UI component or a coherent UI fragment of logically and functionally coupled components or other fragments with a clear interface. Consequently, the same modeling concept of capsule with internal structure can be reapplied recursively at successively lower levels of detail within a model, starting from high architectural modeling levels down to the lowest levels of modeling simple UI components. The interface of capsules is defined in terms of pins, while the functional coupling of capsules is specified declaratively by simply wiring their pins. Pins and wires transport messages between capsules, ensuring strict encapsulation. The approach includes a method for formal coupling of capsules' behavior with the underlying object space that provides proper impedance matching between the UI and the business logic while preserving clear separation of concerns between them. We also briefly describe an implementation of a framework that supports the proposed method, including a rich library of ready-to-use capsules, and report on our experience in applying the approach in large-scale industrial systems.
Unified modeling language, Business, Couplings, Complexity theory, Object oriented modeling, Buildings, User interfaces, information systems, Graphical user interface (GUI), Unified Modeling Language (UML), modeling, model-driven development, software architecture, business applications, data-centric applications
Dragan Milicev, Zarko Mijailovic, "Capsule-Based User Interface Modeling for Large-Scale Applications", IEEE Transactions on Software Engineering, vol.39, no. 9, pp. 1190-1207, Sept. 2013, doi:10.1109/TSE.2013.8