11.07.2015 Views

ADRIA: A Method for Abstract Design of Rich Internet Applications ...

ADRIA: A Method for Abstract Design of Rich Internet Applications ...

ADRIA: A Method for Abstract Design of Rich Internet Applications ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ADRIA</strong>: A <strong>Method</strong> <strong>for</strong> <strong>Abstract</strong> <strong>Design</strong> <strong>of</strong><strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> <strong>for</strong> the Web 2.0Peter Dolog and Jan StageAalborg University, Department <strong>of</strong> Computer ScienceSelma Lagerlöfsvej 300, DK-9220 Aalborg East, Denmark{dolog,jans}@cs.aau.dk<strong>Abstract</strong>. <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> can contribute to realize the visions <strong>of</strong> the so-called Web2.0. <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> provide users with facilities in web applications that are similar todesktop applications. In this paper, we present the <strong>ADRIA</strong> method <strong>for</strong> designing rich internetapplications. The design activities <strong>of</strong> <strong>ADRIA</strong> depart from the results <strong>of</strong> an object-orientedanalysis. The method employs interaction spaces as the basic abstraction mechanism coherentlythroughout all the design activities. The notation is based on UML. The activities <strong>of</strong> the methodsare described, and its use is illustrated with a case study <strong>of</strong> the design <strong>of</strong> an interactive webapplication <strong>for</strong> furniture configuration. This application features recommendation <strong>of</strong> furnitureitems according to the interaction <strong>of</strong> a user and advanced customization features <strong>for</strong> furnitureplacement to show the main advantages. We also present the results from an evaluation <strong>of</strong> themethod in a university education setting.Keywords: Web 2.0, <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong>, s<strong>of</strong>tware design, interaction spaces1 IntroductionWeb 2.0 is a vision about the second generation <strong>of</strong> web in<strong>for</strong>mation services. The aim is toenhance creativity, in<strong>for</strong>mation sharing, and collaboration among users, while providing richpossibilities <strong>for</strong> interaction. User interaction with Web 2.0 applications will require improvedresponsiveness and increased interactivity compared to first generation web services.<strong>Rich</strong> internet applications can contribute to realize the ideas behind Web 2.0. <strong>Rich</strong> internetapplications were introduced as a response to the limitations in richness that users <strong>of</strong> firstgeneration web services have experienced in comparison to desktop applications [9], [10]. Theterm <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> was first launched by Macromedia to denote this class <strong>of</strong>applications. <strong>Rich</strong> internet applications have been enabled by recent advances in internet browserplugin technologies such as Flash from Adobe, ActiveX technologies, and AJAX [19]. Thesetechnologies provide users <strong>of</strong> web applications with possibilities similar to desktop applications.Recently, this technology has also been adopted by others, <strong>for</strong> example Google and Flickr.<strong>Rich</strong> internet applications introduce additional complexity connected with asynchronouscommunication and synchronization problems as some data are being held and processed at theclient side. This complexity influences the s<strong>of</strong>tware engineering methods that are needed to buildsuch applications. The richness and wide range <strong>of</strong> possibilities introduce a need <strong>for</strong> strongabstraction mechanisms. This is similar to user interface design <strong>for</strong> desktop applications. This isalso apparent from recent developments in the area <strong>of</strong> web in<strong>for</strong>mation systems engineering wherewe have witnessed several emerging methods, such as an extension <strong>of</strong> WebML [2] to reflect thecomplexity <strong>of</strong> the rich internet applications.In this paper we present <strong>ADRIA</strong>, a method <strong>for</strong> abstract design <strong>of</strong> rich internet applications. Themethod combines interaction spaces and task models [14], [14] with UML <strong>for</strong> designing adaptiveweb applications [7], [8]. This combination has three advantages. First, interaction space is anatural metaphor <strong>for</strong> designing user interface fragments that a web user will interact with. Theyreflect the richer interaction possibilities that characterize rich internet applications. Second, usecases are the basis <strong>for</strong> designing the interaction with a rich internet application. They connectinteraction design directly to the users’ work. Third, UML statechart diagrams are used to refinethe use cases. These task models provide a natural means to define user interaction events whichare connected to synchronization events between client and server and synchronization eventsbetween fragments <strong>of</strong> the user interface. The aim with <strong>ADRIA</strong> is to contribute with a newdevelopment processes <strong>for</strong> the web 2.0 with particular focus on modeling, overall design and userinterface issues.The purpose <strong>of</strong> this paper is to present the <strong>ADRIA</strong> method and illustrate how it can be used todevelop a rich internet application. The following section 2 presents the <strong>ADRIA</strong> method <strong>for</strong>designing rich internet applications and discusses how the resulting design can be trans<strong>for</strong>med into1


2.2 Identify Interaction StructuresThe first activity in <strong>ADRIA</strong> is Identify Interaction Structures. This activity departs from theresult <strong>of</strong> an object-oriented analysis, and it produces a structural interaction space model. Itcomprises four steps as illustrated in Figure 2.50"*,1' (6-47(8"*'.4 (OOADocument)*'&/%9:(;$


temporarily maintained at the client side to enable the user to easily interact with it. It can bereinitialized as soon as a user changes a focus to another item in the room configuration. Again,the CFurnitureList object, if implemented in AJAX, will implement an AJAX function that isresponsible <strong>for</strong> synchronization with server side persistent data storage through the server sideSFurnitureListBrowser class. The SFurnitureListBrowser has to implement a getRecommendationmethod to retrieve recommended store items based on parameters passed through thecommunication between client and server. This step also involves identification <strong>of</strong> the methodsthat are need <strong>for</strong> client and server side objects.CFurnitureListBrowser1SFurnitureListBrowserFigure 9 Refinement <strong>of</strong> the FurnitureList interaction space into client and server side objectsThe second step is to define the exchange <strong>of</strong> messages. Client side and server side objects needto communicate in well structured messages. The request to the server basically means a request toupdate a state <strong>of</strong> the client side object. There<strong>for</strong>e, the message should contain an identification <strong>of</strong> aclient side object, identification <strong>of</strong> called server side object method and parameters <strong>for</strong> themethods. Similarly, call back asynchronous message with the results should be structuredsimilarly. Figure 10 depicts an excerpt <strong>of</strong> a UML Guide that describes the system’s responses touser interactions. The model is a refinement <strong>of</strong> the task model presented in Figure 6. There are twodialog steps depicted at the figure: Room and Room&Store. They are counterparts <strong>for</strong> theinteraction spaces and activities in the task model.The third step is to define concurrency and synchronization. The Room&Store stateincorporates 3 concurrent regions representing three concurrently presented dialog steps:RoomItems, StoreItems and RecommendedStoreItems. We distinguish client side from server sidemethod calls by placing C and S letters respectively at the beginning <strong>of</strong> the object names. You canobserve that we instantiate classes we have defined above as refinements <strong>of</strong> interaction spaces.Such a notation advices which objects will be implemented at the server side and which at theclient side. The star symbol as a synch pseudostate between concurrent regions represent anunlimited upper bound <strong>for</strong> a difference between how many times the incoming and outgoingtransitions have been triggered which is consistent with UML 1.3 notation <strong>for</strong> state machines.Room/CRoomBrowser .ShowRooms (USER )SelectedRoom (RoomId ,null,null )StoreItems/sit := cnfg,CFurnitureBrowser () ;/sit .ShowTypes (chosen )Room &Store/cnfg:= new CRoomConfiguration (RoomId )SelectItem (chosen )/selected := cnfg.addItem (chosen )RoomItems/room := cnfg .CFloorPlanViewer (RoomId );SelectItem (selected ,storeid )/room .ShowItems (selected )/selected :=cnfg .addItem (chosed)/returned := SFurnitureBrowser .GetRecommendation (selected ,storeid )***RecommendedStoreItems/fl:= cnfg.CFurnitureBrowser ();/fl.ShowItems (returned )SelectItem (chosed )Figure 10 An excerpt <strong>of</strong> the UML Guide model with client and server side object invocationsWhenever a user selects an item from store items (SelectItem event on the transition fromStoreItems), the item is placed into the room by synchronization invoked cfng.addItem function.The model at the client side is reinitialized and client side functions such as room.ShowItems()rerenders the displays considering the added item as part <strong>of</strong> the scene. More interesting situationhappens whenever user selects an item in a room. An event, which triggers synchronization with aserver <strong>of</strong> furniture shop specified by shopid, occurs. The recommended items based on similarityfunctions <strong>for</strong> example or based on user preference are retrieved. Additional parameters can bespecified such as booking history and so on. Synchronization with server side class is indicated bya message SFurnitureBrowser.getRecommendation(selected, storeid).3.4 Create User InterfaceThe third activity with <strong>ADRIA</strong> is to design the appearance <strong>of</strong> the user interface. This involvesdescription <strong>of</strong> a presentation model and sketching <strong>of</strong> each user interface element. In section 49


elow, we describe experiences from the experiment, where we tried <strong>ADRIA</strong> out on the FurnitureConfigurator example. This section also provides the final user interface related to Use case 3.3.5 ImplementationFigure 11 shows an example <strong>of</strong> an AJAX java script function to get recommendations from aweb service. First, SOAP headers need to be set properly <strong>for</strong> XML message. Second, after gettingresults back from the web service, the returned XML message with the recommended items has toparsed and <strong>for</strong>matted <strong>for</strong> the client. Third, <strong>for</strong> privacy reasons, a proxy needs to be implementedwithin the application domain to call an external web store interface. The proxy is exposed throughan application web service interface specified in the UML Guide. The proxy transfers the call fromthe client to the web service call to the web store (not shown in the code fragment). It is alsopossible to provide an implementation without a proxy. A web service call outside the domain <strong>of</strong>the application is however possible with AJAX just when digitally signed messages are sent.function GetRecommendation(selected){xmlhttp.open("POST", "",true);xmlhttp.onreadystatechange=function() {if (xmlhttp.readyState==4) {alert(parsexml(xmlhttp.responseText))}}xmlhttp.setRequestHeader("Man", "POST http://www.rcapp.org/SFurnitureBrowserHTTP/1.1")xmlhttp.setRequestHeader("MessageType", "CALL")xmlhttp.setRequestHeader("Content-Type", "text/xml")sendstring = ""sendstring = sendstring + "\n\n"+"


We have needed just altogether five work sessions with duration <strong>of</strong> 2 hours on average. Theprocess followed was quite sequential, comparable with the figure presented in the methodologysection. First, scenario, use cases and problem domain entities have been discussed. The taskmodel has been derived from the use cases. We per<strong>for</strong>med 3 iterations with respect to the problemdomain classes; we needed 2 iterations to come up with the task model which is presented in theprevious section. We also needed 2 iterations to end up with implementation classes and the UMLguidestatechart diagram. The changes which resulted in several iterations have been triggeredboth due to the users (usability), and also technology and developers feedback.RecommendedStoreItemsStoreItemsRoomItems /RoomConfigurationFigure 12 An example application based on the designs presented aboveBased on these results, the design method is promising with respect to the kind <strong>of</strong> applicationswe have been targeting. The main advantage <strong>of</strong> the proposed method was the effectiveness <strong>of</strong>communication <strong>of</strong> the designs both to the customer and to the developer. The means to structurethe scenario from tasks and user interaction point <strong>of</strong> view have been understood quite well by therepresentatives <strong>of</strong> the users. On the other hand, the UML-guide state diagram together with therefinements <strong>of</strong> the problem domain classes to the implementation classes at the client and serverside served their purpose to communicate the synchronization aspects useful in the context <strong>of</strong>AJAX technology and distribution <strong>of</strong> the code and data stores among client and servers. As theapplication scenario also points out, the design technique can also be used in integration scenarioswhere data stores on the server sides already exist and the goal is to design just a brokerageplat<strong>for</strong>m which will provide improved user experience on top <strong>of</strong> integrated applications withenhanced web based user interface.Other projects. The <strong>ADRIA</strong> method was used last year in 4 student team projects. The <strong>ADRIA</strong>was applied by a team <strong>of</strong> 6 people in developing a geographical quiz application <strong>for</strong> Facebook, bya team <strong>of</strong> 3 people in developing a brokerage portal <strong>for</strong> music mixes, by a team <strong>of</strong> 3 people indeveloping interactive plug-in and editing solution <strong>for</strong> content management systems, and by team<strong>of</strong> 5 people in developing an online shop.Figure 13 depicts the GeoQuiz: the geographical quiz application <strong>for</strong> Facebook as an example<strong>of</strong> a running application available also from Facebook. The application is an interactive quiz whichinegrates geographically oriented questions on top <strong>of</strong> google maps and integrates it into thefacebook. The example depicted in Figure 13 is from geographical monuments <strong>of</strong> Europe. As youcan see, there is a score bar integrated as a separate object, google map as a autonomous object andquiz related hints as separate objects. User is supposed to find a monument by clicking a rightplace and placing a pinpoint as you can see on the Figure 13. Based on preciseness <strong>of</strong> the answerand time in which the answer was given, the application calculates the number <strong>of</strong> points. Theapplication allows <strong>for</strong> zooming in and calculating right distances based on google maps interface.Based on the above you can see, that this application has all properties <strong>of</strong> a Web2.0 <strong>Rich</strong> <strong>Internet</strong>application such as advanced visualization, high interactivity, and autonomous user interfaceobjects which need to interact with each other.11


Figure 13 GeoQuiz as a facebook applications [21]4.2 Experimental ResultsWe have conducted an experimental study in those projects mentioned above. Please not thatstudy system at Aalborg University is organized around group projects in each semester. Studentsare grouped to solve particular larger problem in a project. This study was conducted on the 1semester <strong>of</strong> the s<strong>of</strong>tware engineering master program (7 th semester <strong>of</strong> total). The semester topic isweb engineering. As mentioned above, 4 different student groups applied the <strong>ADRIA</strong> method <strong>for</strong>abstract user interface design <strong>of</strong> their web applications. This setting is actually very close to thereal industrial settings <strong>of</strong> a first project with novice web engineers. There<strong>for</strong>e, this study canconfirm the <strong>ADRIA</strong> method is easy to learn and apply by people with basic knowledge aboutobject oriented analysis and design. At the beginning <strong>of</strong> their project, the students receive atechnical report describing <strong>ADRIA</strong> method. They did not know about it be<strong>for</strong>e. That was the onlystudy material they had during the per<strong>for</strong>mance <strong>of</strong> their project. We wanted to find out thefollowing about <strong>ADRIA</strong> method: How was it to work with <strong>ADRIA</strong> and its various activities How much the <strong>ADRIA</strong> method concepts have been used How useful was it to work with various concepts <strong>of</strong> <strong>ADRIA</strong> methodOur hypotheses be<strong>for</strong>e the study were:H1: Overall <strong>ADRIA</strong> method can be usually easy to apply but sometimes difficult especially incomplex interactions.H2: Structural interaction space models <strong>of</strong> <strong>ADRIA</strong> are mostly easy to apply.H3: The behavioral interaction space models <strong>of</strong> <strong>ADRIA</strong> are sometimes difficult applyH4: Structural interaction space models <strong>of</strong> <strong>ADRIA</strong> are applied in more than half use cases (usuallythe more complex one requiring more reasoning)H5: Behavioral interaction space models <strong>of</strong> <strong>ADRIA</strong> are applied sometimes (usually when morecomplex interaction is needed among autonomous user interface objects with distributedcomputation)H6: Structural interaction space models <strong>of</strong> <strong>ADRIA</strong> are mostly useful in design phaseH7: Behavioral interaction space models <strong>of</strong> <strong>ADRIA</strong> are mostly useful <strong>for</strong> designing anddescribing implementation <strong>of</strong> synchronization among autonomous user interface objects.Couple <strong>of</strong> weeks be<strong>for</strong>e the end <strong>of</strong> the projects we handed questionnaires to the projectsparticipants. Each participant filled in the questionnaire independently. We have asked themindependently because the roles <strong>of</strong> students in the teams varied, different team membersparticipate in designing the applications with different intensity, and there<strong>for</strong>e they could <strong>for</strong>mtheir own opinions on the <strong>ADRIA</strong> method. The questionnaire contains questions quantifying theabove mentioned questions on how was it to work with, intensity, and usefulness <strong>of</strong> the <strong>ADRIA</strong>12


concepts as well as open questions asking <strong>for</strong> reasons why the project participants answered in thatway. In the time <strong>of</strong> writing, 9 students have completed the questionnaire.Overall, six out <strong>of</strong> nine students reported regarding to how was it to work with the <strong>ADRIA</strong>method as sometimes difficult. The other three answered that it was mostly easy. This confirmsour hypothesis H1.There are two reasons <strong>for</strong> these answers. The first is the timeframe <strong>of</strong> the project and theirbackground. As the projects were relatively short (one semester) and they did not work that muchwith the <strong>ADRIA</strong> concepts. However, we need to also know what made them to answer that it issometimes difficult. The questionnaire actually contained also the detailed answers about differentconcepts <strong>of</strong> <strong>ADRIA</strong> as described above. For structural interaction space models we actually foundout that they are mostly easy to apply (2 answered easy, 5 answered mostly easy, 1 did not answerthe related questions as he did not participate and only one answered that it was sometimesdifficult). This actually confirms our hypothesis H2. The reason why there is sometimes difficulty<strong>for</strong> some people was reported at the step where use cases are updated to reflect the tasks. Thisactivity in the <strong>ADRIA</strong> method should result in hierarchical states which are assigned tosubsequence <strong>of</strong> activities in task model. As this abstraction is slightly more complex, the novicedesigners had sometimes associated a difficulty with it. More difficulty actually resides in thebehavioral part <strong>of</strong> the <strong>ADRIA</strong> method which decomposes the task models into UML statediagrams – so called UML-Guides. There, 2 students answered that it was difficult and 5 studentsanswered that it was sometimes difficult and 2 students answered that it was mostly easy. Thisconfirms our hypothesis H3. The reason <strong>for</strong> this answer was mostly that the UML-Guide is thatthe behavioral abstractions with concurrent regions to specify parallel computation withsynchronizations among autonomous objects require a bit higher ef<strong>for</strong>t as well as experience.However, as we will see later, these abstractions are not necessary very <strong>of</strong>ten, but on the otherhand they are very useful especially in the kinds <strong>of</strong> applications where more interaction isnecessary.We have also asked students to answer questions about intensity with which they used the twodistinctive concepts <strong>of</strong> structural and behavioral interaction spaces <strong>of</strong> <strong>ADRIA</strong>. As we found out,structural models are used more <strong>of</strong>ten as they help to structure the object oriented application andinterface while the behavioral models are used only sometimes but in very justified cases. 5 out <strong>of</strong>9 students answered that the structural interaction space models are used in more than half <strong>of</strong> theuse cases, 2 <strong>of</strong> them answered that they are used sometimes. This confirms our hypothesis H4.Again, the reason <strong>for</strong> this answer is intuitively clear. The modeling is needed in most cases wherethe complexity is higher. This was confirmed in more than half cases. In other cases, the studentscan start programming without prior reasoning with structural interaction spaces. On the otherhand the behavioral models are used sometimes. This confirms our hypothesis H5. The reason <strong>for</strong>this is again intuitively clear. The behavioral models adds additional overhead which can bejustified only in the cases where this models help to clarify concurrency, synchronization and morecomplex interactions among objects. This was the case when the students actually used the UML-Guides. It is also interesting to see, that <strong>for</strong> the traditional simple data centric applications such asthe one which record the metadata <strong>for</strong> music mixes on the web, the UML-Guides were not usedthat much as the required interactivity was small and navigation sequences simple to envision thatthe students could program them without a design model.We have also explicitly asked about usefulness <strong>of</strong> the various concepts in <strong>ADRIA</strong> methods indifferent stages. We have found out that the structural models <strong>of</strong> interaction spaces were moreuseful in design phase to reason about different structure <strong>for</strong> the user interfaces. 4 students out <strong>of</strong> 9reported that it was useful in more than half <strong>of</strong> the cases and 2 students reported that it wassometimes. This confirms our hypothesis H6. The UML-Guide models have been found useful inboth, design and implementation, when synchronization between autonomous user interfaceobjects was needed. However, the usefulness <strong>for</strong> later implementation was considered higher. Inthe design phase 5 students considered it useful sometimes in the cases where we reported about italready and 1 student considered it useful in more than half <strong>of</strong> the cases. For the subsequentimplementation, 3 students rated it as useful in more than half <strong>of</strong> the cases and 5 studentssometimes and this again in those cases where the synchronization was needed between objects.This confirms our hypothesis H7.Furthermore, it is also interesting to observe, that the designs and implementation <strong>of</strong>applications triggered additional interaction spaces which have not been initially design at thebeginning which also confirms the suitability <strong>of</strong> the method <strong>for</strong> iterative development.13


5 Related WorkA number <strong>of</strong> design methods have provided extensions dealing with different aspects <strong>of</strong> richinternet applications. WebML extension <strong>for</strong> rich internet applications has been proposed in [2].The authors have proposed new abstractions <strong>for</strong> client side and server side functionality withinhypertext schema reflected also on the pages, such as client side entity, area, web page, clientbased selectors to operate on client side data, and client side operations. The synchronizationbetween client user interface fragments and between client events and the server is implemented ina generator.RUX method [12] describes a rich internet application user interface design in three steps:abstract interface design, concrete interface design, and final interface design. The RUX providesmedia, connectors, and views elements <strong>for</strong> modeling abstract interface design. Media is an atomicelement <strong>for</strong> presenting in<strong>for</strong>mation. Views are used to model sets and groups <strong>of</strong> in<strong>for</strong>mation to bevisible at the same time. Connectors connect media to the other design models such as navigationand data models. <strong>Abstract</strong> interface design there<strong>for</strong>e represents a composition <strong>of</strong> presentation out<strong>of</strong> different media fragments. Concrete presentation design refines the abstract presentationdesigns with spatial, temporal and interaction aspects. Spatial presentation is defined by means <strong>of</strong>controls, layouts, and navigators. Handlers, specific behavior objects, are introduced to specifychanges <strong>of</strong> a user interface based on user interaction. Handlers are synchronized as specified intemporal presentation design which describes how temporal presentation elements or groupsbehave as the time evolves; how they are synchronized when they run in parallel and whenspecific handlers are invoked.OOH4RIA [15] concentrates on RIA features in the presentation model and the orchestrationmodel. The presentation model specifically targets the Google Web Toolkit, capturing its differentwidgets. Widgets are either basic GUI elements (e.g., a button), or composite widgets (e.g., a grid).Screenshots specify the spatial arrangement <strong>of</strong> widgets that will be rendered together on thescreen. The orchestration model captures the interaction between the widgets and the rest <strong>of</strong> thesystem, the navigation between screenshots and the way widgets react to user actions. TheOOH4RIA models are modeled in UML and the language elements are defined in MOF metamodels.This allows <strong>for</strong> model trans<strong>for</strong>mations based on model driven architecture.The difference which <strong>ADRIA</strong> provides is the focus on interaction spaces and earlyrequirements. There<strong>for</strong>e, it can be used with other methods which provide further refinement steps<strong>of</strong> higher level early requirements models <strong>of</strong> <strong>ADRIA</strong>. <strong>ADRIA</strong> also provides the state machineextension which can be used as a complement to other methods.The notion <strong>of</strong> interaction spaces originate from work on model-based user interface design. Thisbroad research area includes work on the creative process <strong>of</strong> user interface design that is conductedby human designers. The aim here is to provide tools and techniques that support humans inhandling the complexities involved in the design task. This has also been denoted as designheuristics [20]. A crucial prerequisite <strong>for</strong> this approach is strong abstraction mechanisms that canhelp designers tame the complexities <strong>of</strong> the user interface design task.The literature reflects three different types <strong>of</strong> abstraction mechanisms that have been suggested<strong>for</strong> user interface design. The first type originates from user interface technology. In the Cameleonreference framework [4], the most abstract description <strong>of</strong> a user interface is a logical model that isbased on elements that are abstractions <strong>of</strong> existing widgets [11]. Thus this approach employs anabstraction mechanism that is derived from existing user interface technology. Widgets have beenadopted by SHDM [3] as well.The second type <strong>of</strong> abstraction mechanisms originates from the domain <strong>of</strong> the prospective users<strong>of</strong> the system. Some focus on the tasks <strong>of</strong> the users. Tasks are a key element <strong>of</strong> the applicationdomain <strong>of</strong> a system [14]. Most task-driven design techniques exploit hierarchically organized taskstructures with temporal dependencies between sub-tasks to derive models <strong>of</strong> user interfaces [21].Others focus on the objects <strong>of</strong> the users’ work. This is a key element in the problem domain <strong>of</strong> asystem [14]. Finally, there are attempts to include both tasks and objects [12].The notion <strong>of</strong> interaction space is an interesting abstraction mechanism <strong>for</strong> model-based design<strong>of</strong> user interfaces. It is used in the Wisdom (Whitewater Interactive System Development withObject Models) method [17][18].Views have been suggested as another abstraction <strong>for</strong> user interface design. For a given task,the designer defines how many views are needed to support that task. Then the sub-tasks <strong>of</strong> thattask are distributed on the views [24]. This idea is similar to interaction spaces in the sense that anabstract concept <strong>for</strong>ms the basis <strong>for</strong> design. However, a view represents a screen or part <strong>of</strong> a screenand thereby, it is less abstract than an interaction space that can represent any means <strong>for</strong>interaction.14


Task models have been studied in the context <strong>of</strong> WSDM [5]. Similarly to our approach, thetasks are used to describe control flow between user activities and their decompositions to webapplication internal operations. We use the tasks model together with the interaction spaces. Weper<strong>for</strong>m refinements to UML Guide which bridges user interaction with synchronization andcommunication specification. Our approach provides the advantage <strong>of</strong> being solution domainindependent. The mapping to the notion <strong>of</strong> web pages is per<strong>for</strong>med at the UML-Guide whichallows <strong>for</strong> flexible plug in principle <strong>for</strong> different strategies to allocate behavior to the web clientand web application server.Interactive Dialog Model (IDM) [1] and SiteLang [23] focus on dialog specification and storyboarding. Story boards are based on state machines. Both approaches do not deal withcomplexities raised by client side and server side functionalities as introduced in recenttechnologies <strong>for</strong> rich internet application and different synchronization issues which are supportedby our design technique.6 ConclusionWe have proposed <strong>ADRIA</strong>, a new UML-based design method <strong>for</strong> rich internet applications.The method reflects the need to have a part <strong>of</strong> the business logic at the client side, and it providesflexibility with respect to the web page design as these decisions are made later in the design stageaccording to the UML-Guide principles. It has been illustrated through an example that the methodprovides direct means to analyze user interaction as well as asynchronous communication betweenweb client and web server. The evaluation also confirms our hypothesis on where our method isstrong in the overall development project lifecycle with novice web engineers. It also shows, thatthe modern Web2.0 applications can be build with the methods which are realized as adaptations<strong>of</strong> existing mostly object oriented analysis and design methods.In our further work, we plan to conduct larger set <strong>of</strong> studies about features <strong>of</strong> this method. Weneed to especially look at more experienced practitioners as well as further properties <strong>of</strong> themethod to better support the designers with further guidelines.References[1] Bolchini, D., Paolini, P.: Interactive Dialogue Model: A <strong>Design</strong> Technique <strong>for</strong> Multichannel<strong>Applications</strong>. IEEE Transactions Multimedia, Vol. 8, No. 3, June 2006.[2] Bozzon, A., Comai, S., Fraternali, P., Carughi, G., T.: Conceptual Modeling and Code Generation <strong>for</strong><strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong>. ICWE2006: International Conference on Web Engineering. Palo Alto,Cali<strong>for</strong>nia USA. ACM Press.[3] Calvary, G., Coutaz, J., Thevenin, D., Limbourg, Q., Bouillon, L. and Vanderdonckt, J. A UnifyingReference Framework <strong>for</strong> Multi-Target User Interfaces. Interacting with Computer, 15, 3 (2003), 289-308[4] De Moura, S., S, Schwabe, D.: Interface Development <strong>for</strong> Hypermedia <strong>Applications</strong> in the SemanticWeb. La-Web 2004 Proceedings, Oct. 2004, IEEE Press.[5] De Troyer, O., Casteleyn, S.: "Modeling Complex Processes <strong>for</strong> Web <strong>Applications</strong> using WSDM", InProceedings <strong>of</strong> the Third International Workshop on Web-Oriented S<strong>of</strong>tware Technologies (held inconjunction with ICWE2003), IWWOST2003[6] Dolog, P., and Stage, J.: <strong>Design</strong>ing Interaction Spaces <strong>for</strong> <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> with UML. In PieroFraternali, Luciano Baresi, and Geert-Jan Houben(eds.), Proc. <strong>of</strong> ICWE2007: International Conferenceon Web Engineering. Como, Italy, July 2007. pages 358-363, Short Paper. LNCS 4607, Springer Verlag2007[7] Dolog, P.: Engineering Adaptive Web <strong>Applications</strong>. Doctoral dissertation. University <strong>of</strong> Hannover.March 2006.[8] Dolog, P., and Nejdl, W.: Using UML and XMI <strong>for</strong> Generating Adaptive Navigation Sequences in Web-Based Systems. In Proc. <strong>of</strong> «UML» 2003 - Sixth International Conference on the Unified ModelingLanguage: Modeling Languages and <strong>Applications</strong>, October 2003, San Francisco, USA, Springer Verlag,LNCS 2863[9] Driver, M., Valdes, R., Phifer, G.: <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong> Are the Next Evolution <strong>of</strong> the Web.Technical report, Gartner, May 2005.[10] Duhl, J.: <strong>Rich</strong> <strong>Internet</strong> <strong>Applications</strong>. White Paper, IDC, November 2003.[11] Limbourg, Q. and Vanderdonckt, J. Adressing the Mapping Problem in User Interface <strong>Design</strong> withUsiXML. In Proceedings <strong>of</strong> TAMODIA 2004, ACM, 155-163.15


[12] Linaje, M., Preciado, J., C., Sánchez-Figueroa, F. Engineering <strong>Rich</strong> <strong>Internet</strong> Application User Interfacesover Legacy Web Models, IEEE <strong>Internet</strong> Computing, vol. 11, no. 6, pp. 53-59, November/December,2007.[13] Mahfoudi, A., Abed, M. and Abid, M. Towards a User Interface Generation Approach Based on ObjectOriented <strong>Design</strong> and Task Model. In Proceedings <strong>of</strong> TAMODIA 2005, ACM, 135-142.[14] Mathiassen, L., Munk-Madsen, A., Nielsen, P. A. and Stage, J. (2000) Object-Oriented Analysis &<strong>Design</strong> . Aalborg: Marko.[15] Melia, S., Gomez, J., Perez, S., and Diaz, O. A model-driven development <strong>for</strong> gwt-based rich internetapplications with OOH4RIA. In Daniel Schwabe, Francisco Curbera, and Paul Dantzig, editors,Proceedings <strong>of</strong> the 8th International Conference on Web Engineering (ICWE 2008), Yorktown Heights,New York, USA, pages 13-23. IEEE, July 2008.[16] Nielsen, C. M., Overgaard, M., Pedersen, M. B., Stage, J. and Stenild, S. (2006) Exploring InteractionSpace as <strong>Abstract</strong>ion Mechanism <strong>for</strong> Task-Based User Interface <strong>Design</strong>. Proceedings <strong>of</strong> TAMODIA 06.Berlin: Springer-Verlag.[17] Nunes, N. J. and Cunha, J. F. Wisdom: A S<strong>of</strong>tware Engineering <strong>Method</strong> <strong>for</strong> Small S<strong>of</strong>twareDevelopment Companies. IEEE S<strong>of</strong>tware, 2001.[18] Nunes, N. J. and Cunha, J. F. Wisdom - Whitewater Interactive System Development with ObjectModels. In M. van Harmelen (Ed.), Object Modeling and User Interface <strong>Design</strong>. Addison-Wesley, 2001.[19] Paulson, L., D.: Building <strong>Rich</strong> Web <strong>Applications</strong> with Ajax. Computer, 38(10):14–17, 2005.[20] Prinebeau, C. and Vanderdonckt, J. Exploring <strong>Design</strong> Heuristics <strong>for</strong> User Interface Derivation from Taskand Domain Models. In Proceedings <strong>of</strong> CADUI 2002, 103-110.[21] Ratnavravi, L., Christensen, A., M., Midtgaard, M., Boeg, P., H., Dao, A., T., N., Justesen, M.: <strong>Internet</strong>Development: GeoQuiz – A Facebook Application. 7 th Semester Project Report on S<strong>of</strong>tware EngineeringStudy Program. December 2008. Aalborg University.[22] Reichart, D. Forbrig, P. and Dittmar, A. Task Models as a Basis <strong>for</strong> Requirements Engineering andS<strong>of</strong>tware Execution. In Proceedings <strong>of</strong> TAMODIA 2004, ACM, 51-58.[23] Thalheim, B., Düsterhöft, A.: SiteLang: Conceptual Model <strong>for</strong> <strong>Internet</strong> Sites. Proceedings <strong>of</strong> ER 2001,20th International Conference on Conceptual Modeling, Yokohama, Japan, November 27-30, LNCS2224, pp. 179–192, 2001, Springer[24] Wolff, A., Forbrig, P., Dittmar, A. and Reichart, D. Linking GUI Elements to Tasks – Supporting anEvolutionary <strong>Design</strong> Process. In Proceedings <strong>of</strong> TAMODIA 2005, ACM, 27-34.16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!