Umple: Towards Combining Model Driven with Prototype Driven System Development
Total Page:16
File Type:pdf, Size:1020Kb
PAPER IDENTIFICATION NUMBER: 40 Umple: Towards Combining Model Driven with Prototype Driven System Development Andrew Forward1, Omar Badreddin1, Timothy C. Lethbridge1 School of Information Technology and Engineering (SITE) University of Ottawa, K1N 6N5 Canada [email protected], [email protected], [email protected] Abstract—The emergence of model driven methodologies is text a tracer bullet [3]) is typically used whereby the proto- bringing new challenges for software prototyping. Models tend type evolves into the working production system. to focus on the design of the system, and are less concerned with, or less able to, support prototype qualities like re-use, Each prototype approach has advantages and disadvantages evolution, or weaving together independently designed parts. [4]. The decision to develop a specific type of prototype, or This paper presents a model-oriented prototyping tool called not to develop a prototype at all, is based on a number of Umple that supports model driven engineering and overcomes factors where cost of the prototype is critical [5]. Moreover, some of the challenges related to prototyping in a modeling it is not unusually for a throwaway prototype to be turned environment. Umple allows end users to quickly model class into an evolutionary prototype and later refined into a final and state machine models and to incrementally embed imple- deliverable product. mentation artifacts. At any point in the modeling process, users can quickly generate a fully functional prototype that exposes modeling implications on the user interface, and allows stakeholders to quickly get a feel of how the full system will II. EMERGENCE OF MODEL-DRIVEN PRACTICES behave. Model driven software development, while may still be Index Terms—Modeling, Prototyping, UML. lower than generally accepted to be a best practice [6], is on the rise. The software industry is increasingly adopting software modeling to generate parts of, or complete, sys- I. INTRODUCTION tems. Model-centric software development brings chal- ROTOTYPING in the software industry plays an indis- lenges to prototyping: P pensible role. “The majority of software projects used 1) Models are generally more concerned with internal some kind of prototype” [1]. In early development activi- system components and behavior, rather than system ties, a throw-away prototype (also known as a software user interface, look and feel. spike [2] ) may be used to help in defining the system UML, a widely adopted modeling notation, is more con- scope, assess feasibility, cerned with the internal system design and behavior. UML models put less or no emphasis on user interface. Manuscript received October 9, 2001. (Write the date on which you submitted your paper for review.) This work was supported in part by the 2) Models do not easily evolve into complete systems. U.S. Department of Commerce under Grant BS123456 (sponsor and fi- There are significant challenges in model driven develop- nancial support acknowledgment goes here). Paper titles should be written ment of software. One major challenge is synchronizing in uppercase and lowercase letters, not all uppercase. Avoid writing long formulas with subscripts in the title; short formulas that identify the ele- generated code with source models, a practice generally ments are fine (e.g., "Nd–Fe–B"). Do not write “(Invited)” in the title. Full referred to as round-tripping [7]. Annotating models with names of authors are preferred in the author field, but are not required. Put information to guide prototype generation involves the same a space between authors’ initials. hurdle. F. A. Author is with the National Institute of Standards and Technolo- gy, Boulder, CO 80305 USA (corresponding author to provide phone: 3) Software modeling notations do not reduce the need for 303-555-5555; fax: 303-555-5555; e-mail: author@ boulder.nist.gov). prototyping. S. B. Author, Jr., was with Rice University, Houston, TX 77005 USA. He is now with the Department of Physics, Colorado State University, Fort Whether they are throw-away or evolutionary, prototypes Collins, CO 80523 USA (e-mail: [email protected]). are used to brainstorm ideas related to the system, explore and estimate effort. In later stages, an evolutionary proto- different designs, and expose the look and feel of the system type (sometimes called model prototype, or in an agile con- early on in the development life cycle. Prototypes are par- PAPER IDENTIFICATION NUMBER: 40 ticularly useful for the business domain stakeholders who Throw-away prototypes are cost sensitive. They are an im- typically do not, and need not, understand software model- portant aspect of exploring a design alternative or new ing notations. Therefore, there is a need to generate tangi- technology, but they should be used sparingly. Stakeholders ble artifacts, whether they are screen mock-ups or executa- are generally unwilling to invest any significant amount of ble programs. Models, on their own, do not satisfy this effort into throw-away prototypes. Therefore, documenta- need. tion is even further minimized, increasing the risk of losing 4) Software modelers do not fully understand the conse- the lessons learned. quences of their models Evolutionary prototypes evolve into a final working prod- Our previous research indicates that modelers quite often uct. Stakeholders are more willing to invest effort and time create models that do not quite reflect how the system is into evolutionary prototypes as the effort is maintained intended to behave [8]. within the project. Lessons learned are better documented and maintained. This class of prototypes is becoming more 5) There are limitations in existing approaches to proto- attractive for the following reasons: type generation from UML models Existing prototyping approaches rely on one specific model- 1) Iterative development methodologies advocate the de- ing notation for code generation. However, in typical soft- velopment of small executable deliverables. These ware projects, there are more than one modeling notation to types of methodologies blend well with evolutionary describe the same system (e.g. a class diagram, an activity prototype-oriented methodologies. diagram and a state diagram). It is therefore desirable to 2) The technology needed to support evolutionary proto- generate prototypes from a number of related aspects of a typing is beginning to emerge [10] model. In addition, annotation of modeling artifacts specif- Because models, especially in iterative development metho- ically to support prototype generation is not desirable since dologies, are continuously updated and enhanced, it is im- models are continuously updated. Unless the annotations portant to be able to generate prototypes from incomplete are closely integrated into the modeling notations, mainten- models. Generating artifacts from an incomplete model will ance of such annotations quickly becomes time consuming. inevitably require some development intervention to fill in the gaps to produce a tangible artifact that can be used as a prototype. Such effort can be wasted if the underlying tools III. PROTOTYPING and development processes do not accommodate iterative development. The level of completeness in a prototype is a major factor of success. For example, Jones states “The fact that the proto- type was fully functional was critical to its success in elicit- ing requirements” [9]. However, the cost of developing a IV. UMPLE HIGH LEVEL APPROACH prototype and the level of completeness in a prototype are To support an environment for rapid development of model- proportional. Therefore, it is important to define what as- centric systems, it is essential to support the development of pects of the functionality of the prototype are most impor- high system aspects, as well as low level algorithmic speci- tant so that stakeholders can focus on them. fications at the same time. “Complete prototypes can sel- We consider the following properties of prototypes to be dom be produced exclusively with generators and reusable crucial: software. Highly complex parts still need to be written by 1) Accurate reflection of system components and data hand” [11]. This is the Umple approach. 2) Accurate reflection of current system design directions, Umple combines high level system abstractions and low and contribution to future design and implementation level specifications in the same development artifacts, mak- decisions. ing it possible to both design the system, and incrementally add developed components. In addition, Umple combines 3) Quick and cheap generation of a prototype, since the the modeling of class and state machine models and support cost (effort and time) associated with prototyping is a prototype generation from both modeling notations. major factor behind the level of completeness (fidelity) of a prototype. Umple’s complete syntax and grammar is maintained on- line. We also make available a light version of Umple to 4) Maximize potential of reuse and composition. illustrate the approach and concept [12]. 5) Support of different levels of abstraction 6) Support of incremental development of features A. Modeling and Prototyping Approach Creating models in a typical visual environment can be a demanding task, especially in cases of large models. PAPER IDENTIFICATION NUMBER: 40 Mouse-centric approaches require multiple fine tuning of tutes a key, or use the Umple defaults. Umple key syntax is lines and connections, and continuous dragging and moving as follows: