Home
hibu student project 2011 corena s1000d 4.0 process data module
Contents
1. 11 4 2 SOTWAare M I 11 4 3 Documentation Required by Development Start 11 4 4 fpe E 11 4 5 External 5 m 11 Project ae oe 12 5 1 TING Project GIO UP 12 5 1 1 Description of Group 12 5 2 External Resources and 14 Roles and Responsibilities cette eaae endis ctae aen pee Eie diss 15 6 1 Introduction to Roles And Responsibilities 15 6 2 Administrative 15 Project Planv 3 01 2011 ameo gt 7 8 6 2 1 Project EAC CM 15 6 2 2 Documen llo u E 15 6 2 3 WED usikre 15 6 2 4 je Rae eat 15 6 3 Technical Responsibilities 16 6 3 1 eC H 16 6 3 2 pe M 16 6 3 3 COIE 16 6 3 4 M
2. 7 2 6 MU E LM E 7 2 7 Technology Documents 8 2 7 1 Up 8 2 7 2 Springe trame Work 8 2 7 3 M 8 2 7 4 Test Driven 8 2 8 E EI INI Inm 8 2 9 Budget MC IRR 9 Documents Prior to the Second Presentation a 10 3 1 Atialysis DOCUMENT eet Ro 10 3 1 2 S1000D Doc rentatiOh coner enr ner ree gy eee ten 10 3 2 Design Doc mient oce 11 3 3 Implementation Document 12 3 3 2 Ne 12 Documents Prior to the Third Presentation nnne 13 4 1 Project REVIEW EID UI UU T 13 4 2 Hand Off best 13 Document Overview v 3 2 orun 2013 ameo REVISION HISTORY Version Number Date 05 Jan 2011 Changes Assigned First version 07 Mar 2011 Second Official Version 01 Jun 2011 Document Overview v 3 01 Jun 2011 Third Official Version Updated documents with new chapters and added documents prior to third presentation ameo 1 INTRODUCTION Our assignment t
3. 17 10 Project Development 19 101 19 10 2 20 10 3 Vists Artefatts 20 11 Resources Required the Project Split on 21 12 Activities and Resources Until the Project Plan is 23 13 5 in 24 REVISION HISTORY Version Number Date Changes Assigned 19 Oct 2010 First Official version of document MHA 05 Jan 2011 Minor changes to activity diagram Smaller changes in text Added introduction for the project Moved references Corrected references to standard Syntax error correction Document Review by all team members Edited introduction Prestudy Report v 2 05 Jan 2011 Tam 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to m
4. M M 16 Project N AEE 17 7 1 lecce 17 7 2 SPHINTOVENVIOW e 17 7 2 1 Unexpected EvVentsu uu u uy 17 7 2 2 Updated Timetable orte tre repete ore sensation 17 7 3 Important e 18 7 4 Died ls 19 7 5 Weekly RepoEFts de Pani dee de aua 19 7 6 Other Control 5 ense enne nnne enne nnns trn en nennen nnne enne 19 7 6 1 Document Standard nnne 19 7 6 2 t u uy A 19 7 6 3 Code Standard DOCUMENT 19 7 6 4 TestuReDOrtSs sig sacs 19 5 21 REVISION HISTORY Version Number Date Changes Assigned 1 05 Jan 2011 First Official Version of Document AOL 07 Mar 2011 Second official version AOL Adjusted estimates for hours and Sprints Added section 7 2 2 01 Jun 2011 Updated estimates for hours and Sprints Set new MHA delivery date and added third presentation date Project Plan v 3 01 Jun 2011 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engin
5. 4 1 2 Synonyms Acronyms and 5 4 1 3 AUROR eree e tree ket ebat di otia diea a deseada deat ides tlie td Us 4 1 4 ASSIBIIGd n s sm ten MM MEE MM 4 The Task n 5 2 1 What Are the Requirements For the Logic 6 2 2 Documentado EE EE 6 Project Goals and 5 8 3 1 Product Goals and Limitations 8 3 1 1 Stable 8 3 1 2 Fully Support 510000 4 0 8 3 13 A Product eet 8 3 1 4 All Core Functionality Implemented 8 3 1 5 The Project Should Well 9 3 2 Educational Goals and Limitations esses ener nnne 9 3 2 1 Scrum Methodology 9 3 2 2 Developing Larger Projects in 9 3 2 3 Working on A Project for a Customer 9 Preconditions for This Project n epar 11 4 1 Knowledge and Skills Required
6. u au u au kaha 6 4 4 Performance uz sus 6 4 5 Server Sid fem 6 EXE GWI GXT Hr 6 6 7 7 Further Reading u uu 7 7 1 7 7 2 Getting Sarte umero cere ss oe a 7 7 3 DOCUMENTATION secs Rm 7 8 Reference s E ere eee 8 REVISION HISTORY Version Number Date Changes Assigned 1 07 Jan 2011 First Official Version EAE AOL Google Web Toolkit v 1 2 arson 2081 ameo 1 INTRODUCTION Our assignment is coming from CORENA Norge A S We are going to make a logic engine for support execution of S1000D process Data Modules This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules This logic engine can branch and loop through the selected modules The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in an IETP based web application The user of the application should be presented with the ability to move back and forth through the steps using two buttons The user should be able to save the session for future continuation The logic engine should be according to the International S1000D Specification v 4 0 1 1 OF THIS DOCUMENT This document is written to give an introduction to th
7. 14 7 1 Arild Oldervoll c 14 7 2 Marius Haraldseth ER 15 7 3 Eirik uade EEEa 15 7 4 Olav Brandt eee 16 8 ud 16 Project Review 1 2 01 2011 eO REVISION HISTORY Version Number Date Changes Assigned 1 01 Jun 2011 First official version AOL Project Review v 1 3 01 Jun 2011 am 1 INTRODUCTION Our assignment to develop logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT This document is meant to give a report of our project all the way through It will give an overview on how our project has been accomplished how our development model Scrum has been working ou
8. 5 1 q 3 1 1 Intention of this Document 3 1 1 1 Objective ti 3 1 1 2 ODJecUVE EEE EE 3 1 2 Synonyms Acronyms and Definitions a 3 1 3 Pede 3 1 4 ntn 3 PEEL Teile or niic 4 2 1 4 2 2 CORA 4 3 TIS ASSISMIMENK foes coca uu u nasus Guau yu dunt Vana hatten 5 3 1 E ET a E u 5 3 2 LE SL 5 3 3 What are the Requirements for the Logic 7 3 4 Other Requirements uu rere pente tte ete 7 4 Expected LUE m 8 5 Why CORENA Needs this y u e repe eiie dius 8 6 Why We Want to Do this 8 7 Our Vision for this ie ecrit c e ees eec E D E ce N ese Roce erates 8 8 aea 9 REVISION HISTORY Version Number Changes Assigned 06 Jan 2011 Second Official Document Added front page and standard introduction Added description to group name edited title Several smaller changes Changed logo pictures Added ref
9. 31 10 2 Dialogues sanne eiker 31 10 3 Dialogue Children ores ERE peti 33 1031 AO BGO D gt cette tote ie s 33 MEE XuDpo 34 10 3 3 userEntry iiie re e eat Ee eoe da iae Ede eol 35 10 3 4 pushBUttOnr uu u uu onsen cri 36 10 4 Prompts and Messages u u u Nu u u Au a 37 10 5 38 10 6 Warnings nd CAUTIONS ee saksaq 39 11 EXPresSlonS ua 41 1121 Background oe remo nee M ME 41 MEETS M p 41 12 Reference S cuu Coss ies 43 Design Document v 2 3 01 2011 REVISION HISTORY Version Number 1 Design Document v 2 01 2011 Date Changes Assigned 07 Mar 2011 First final version MHA 01 Jun 2011 Second Official Verision Added chapters for Caution and Warnings Saving and Loading sessions Data Binding subchapter State Table Database MVP subchapter Updated diagrams ameo 1 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take
10. 1 1 searchAndRetrieveState FIGURE 4 22 FETCH STATE FROM THE STATE TABLE 1 deleteVariable 1 1 searchAndDeleteVariable 1 2 storeVariable 1 3 storeVariable 1 4 storeValues FIGURE 4 23 UPDATE A VARIABLE IN THE STATE TABLE Analysis Document v 2 01 Jun 2011 eO 5 REFERENCE S 1 International Specification for technical publications utilizing a common source database S1000D Technical Publications Specification Maintenance Group TPSMG 01 Aug 2008 Issue 4 0 2 Communicate with a Server Google code http code google com webtoolkit doc latest DevGuideServerCommunication html last visited 06 Mar 2011 3 What is Model View Presenter WeAsk http www weask us entry model view presenter last visited 06 Mar 2011 4 Model view presenter Wikipedia http en wikipedia org wiki Model View Presenter last visited 06 Mar 2011 5 Hibernate JBoss Community Hibernate http www hibernate org last visited 27 Apr 2011 6 Hibernate Java Wikipedia http en wikipedia org wiki Hibernate 9628Java9629 last visited 27 Apri 2011 7 Getting Started with Hibernate revision 1 4 Alan P Sexton Published 23 Jan 2006 cs bham ac uk www cs bham ac uk aps syllabi 2005 2006 issws h03 hibernate html last visited 09 May 2011 Analysis Document v 2 25 01 2011 eO DESIGN DOCUMENT HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERE
11. 255 2 variable id INT run id INT variable type 45 E gt EE Wem wr tmp id INT gt variable 45 idtmp value INT gt value V ARCHAR 45 dE gt vdue 255 gt type VARCHAR 45 tmp variable id INT run id INT GE ete These are the State Table tables for the SLRP application which holds the data for each session The session s table is the table containing the identification number of a session and its start date The session id is the primary key for this table The states table is the table holding the history and reference to each state or dmNode in a session The state id is this table s key The variables table is the table containing all the variables with connection to their values The variables are global in our program but the variable name will be used for several sessions and therefore we have a variable id as a unique and primary key The values table is where the values for the variables will be stored The connection to the variable is in the variable id The primary key is the value id The tmp variables table is where the temporary variables which dialogues will use are saved until they are done and validated When they are validated the values will be stored in the State Table tables Connection to the session is through the session id The primary key is the tmp id The tmp values table is
12. tide 6 2 1 CORENA Norge AS Our 6 3 Scrum Development Methodology and Accomplishment 8 4 What Could We Have Done 10 4 1 5 ere e eee ueni RUE 10 4 2 UncdereStiliates y un 10 4 3 Breakdown of User Stories Into 11 4 4 Earlier Prototyping Eai e Eit 11 b 11 5 1 Analysis and GR 11 5 2 Client suy 12 5 3 see 12 5 3 1 Programming 1 12 5 3 2 vekst 12 5 3 3 Data u usia 13 5 3 4 dcl fT 13 5 3 5 RPC Service Client to Server 13 5 3 6 HTML JavaScript and CSS sinet tet acc vence a ee e Ln ERE RNC e ded des 13 5 4 pipe 13 5 5 Exception Hamad ling nest ct aya 14 6 n terere 14 7
13. 4 7 DIALOGUE HANDLING When the Logic Engine encounters a dialogue type element lt dialog gt lt message gt it will 1 create a temporary state table for the dialogue and 2 pass the contents of the element and its child elements to the Renderer The Renderer will interpret the elements and create display package that is sent to the client When user submits input from the dialogue the event and the input data are sent via service call to the server The server will fill the dialogue state table with the data and the Logic Engine will attempt to validate it If the data validates the Logic Engine moves on to the next step in the process DM If not an error message is generated sent to the client and displayed Figure 4 13 shows an activity diagram for the dialogue handling Figure 4 14 shows a component diagram for the dialogue handling Analysis Document v 2 18 01 Jun 2011 eO og State Table invalid data i valid data FIGURE 4 13 ACTIVITY DIAGRAM FOR DIALOGUE HANDLING Submit SubmitinputService Dialog Statd Table Proxy FIGURE 4 14 COMPONENT DIAGRAM FOR DIALOGUE HANDLING Analysis Document v 2 19 01 Jun 2011 eO 4 8 STATE TABLE We need a state table for this application It is a requirement that this should be persistent Persistency means that it should be stored outside of the application so if the program should crash for example the state table will still be e
14. values isEmpty true variables isEmpty true variables isEmpty false FIGUR 8 7 STORE VARIABLES TO THE STATE TABLE To delete a state table session every state and variable belonging to that specific session also have to be deleted The variables and states are take care of by Hibernate We just have to delete the session object row The sequence diagram for deleting a state table session is shown in figure 8 8 Design Document v 2 23 01 Jun 2011 1 deleteSession 1 4 buildSessionFactory openSession sd Start Hibernate Session 1 2 load 1 2 1 RunTable 1 3 delete sd Close Hibemate Session 1 4 close session FIGURE 8 8 DELETE A STATE TABLE SESSION To delete states and variables we need to enter the state table session and iterate through them to find the one we are looking for Then we delete this object from the Hibernate Session object See activity diagrams 8 9 and 8 10 FIGURE 8 9 DELETE A STATE FROM THE STATE TABLE Design Document v 2 24 01 Jun 2011 FIGURE 8 10 DELETE VARIABLE FROM THE STATE TABLE To fetch a state from the state table there are two options Fetch the previous state Fetch a state by a number Both of these methods use the fetchState method which fetches a state by using the number of the state The difference is that to fetch the previous state we use a method fetch
15. FigurE 6 2 Server Component of SLRP Design Document v 2 14 01 Jun 2011 6 3 CLIENT SERVER SERVICE The client will have two service interfaces a normal interface and an asynchronous interface which it will use to call the service implementation located in the model at the server component The server implements the normal interface located in the client and the client will use this interface The client will receive a callback from the server with the result from the service call 6 3 1 COMMAND PATTERN We will use calls to the server services These services will need three classes each name for the service Located at the client Service Interface xxxService o Annotate with RemoteServiceRelativePath name Async version of the interface xxxServiceAsync Located at the server Server implementation xxxServicelmpl This pattern is called the Command Pattern Since the call is asynchronous you will receive a callback from the service implementation with the result 7 DATA OBJECT MODEL DOM Java offers mainly two different ways of parsing XML documents and storing them in memory DOM Data Object Model or SAX Simple API for XML We have chosen DOM for our application SAX is faster in use than DOM but it does not organise or model the data parsed so we would have to create our own data structure With DOM the data is organised in a tree structure organised by the elements in the
16. 3 1 PROJECT GOALS AND LIMITATIONS The goals and limitations of this project can be divided into two categories Product goals and limitations which are the main objectives concerning the product we are developing the scope of the project and Educational goals and limitations which are our expected learning outcome from the project when we are finished PRODUCT GOALS AND LIMITATIONS We want to deliver a product we can be proud of to our customer CORENA If we achieve the following goals it is accomplished The product should be stable and not crash or encounter any other major failures under normal circumstances There should also be allowance for common abnormal situations and errorsin the input data being processed We want to support all features in the S1000D 4 0 process Data Module specification We want to do this in modular way with little or no hard coding of data and values to allow for support of other versions of the S1000D standard to be added later The support for other versions will not be a part of this project The Code Coverage or Test Coverage is a measure of to which degree the source code has been tested To be a releasable product CORENA requires a code coverage of at least 30 40 and this is something we want to achieve for our product The goal is to have a product that is ready for implementation into 5 existing products when we hand over our project to them In Scrum the developmen
17. Analysis Document v 2 01 2011 eO 3 GWT AND CLIENT SERVER We are developing program that is accessed through browser web application It is developed using Google Web Toolkit a set of tools and technologies where the core functionality is the ability to write Java code that is automatically translated to JavaScript to be run in a browser The nature of a web application is the two part structure consisting of a client and a server The client is the part that is accessed through a browser by the user of the program and is typically made up by primarily a graphical user interface The server is the backend of the program and is where the domain business logic resides Because the client and the server are in essence two separate entities communication between them is not as simple as in a standard desktop application Instead it must take place through some intermediary protocol or message handler of some sort FIGURE 3 1 BASIC STRUCTURE OF A WEB APPLICATION In our case GWT provides both the client parts of the application and the means of communication between the client and the server Our application s client and server will be sending and receiving data through so called RPCs or Remote Procedure Calls The functionality on our server will be usable to our client via services These are defined through a set of interfaces which are situated on the client and implemented by the server The client can
18. Process DM Process Data Module HiBu H gskolen Buskerud 1 3 AUTHOR S Marius Haraldseth MHA 1 4 ASSIGNED Marius Haraldseth MHA Vision Document v 2 06 Jan 2011 ameo 2 1 PARTICIPANTS STUDENTS 2 2 The group name Ameo comes from the first letter in our names Arild Oldervoll AOL Project Manager o arild amp oldervoll com phn 41 45 29 60 Marius Haraldseth o marius haraldseth net phn 41 52 06 10 Eirik Andr Eids EAE eirik eidsa no phn 45 85 92 44 Olav Brandt OBR o olav brafa net phn 98 44 87 17 CORENA yvind Ottersen External Examiner Roger Werner Laug CORENA 10000 Product Owner Tommy Sivertsen CORENA IETP Product Owner and our External Mentor Jarle Hjortland Responsible Architect J ran Lund System building and install ystein Hansen Web Client GWT responsible in the project Vision Document v 2 06 Jan 2011 am eo 3 1 THE ASSIGNMENT EMPLOYER 3 2 CORENA S1000D is a product for configuration control maintenance viewing and production of maintenance documentation for larger machines and vessels Customers using it are e g Pratt amp Whitney for their aircraft engines in the F 35 combat aircraft Boeing Bombardier s C series and new regional jets Goodrich Eurocopter Norwegian defense s new NH 90 Helicopters etc Previously this was software only availab
19. 05 Jan 2011 gt 4 5 5 41 EMPLOYER 5 Industritunet Dyrmyrgt 35 N 3611 Kongsberg Norway Phn 47 3271 7200 CORENA S1000D is a product for configuration control maintenance viewing and production of technical documentation for large vessels and equipment Customers using it are e g Pratt amp Whitney for their aircraft engines in the F 35 combat aircraft Boeing Bombardier s C series and new regional jets Goodrich Eurocopter Norwegian defence s new NH 90 Helicopters etc Previously this was software only available for the military but lately it has also become available for the civil market CORENA is one of the three leading software companies in the world in their area and their goal and ambition is to become number one 4 2 510000 PROCESS DM A S1000D process Data Module DM is an XML schema which describes different steps in an information process Based on interactive user dialogs sensors applications and external services communicating through an interface the logic engine decides the next DM and or step in the sequence Decision points branching looping and selective filtering are supported in the S1000D process DM The process DM can be seen as a process flow script where the return values define the next action The S1000D process DM represents a procedural flow consisting of several DMs and or steps that are sequenced The process DM is input which is proces
20. 3 3 4 Acceptance Testing RE 8 4 Ref rentces ies 9 REVISION HISTORY Version Number Date Changes Assigned 1 04 Jan 2011 First version OBR Quality Assurance v 1 2 04 Jan 2011 am 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT This document describes the strategies methods and procedures we will follow in regards to quality assurance for our product 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Process Set of instructions and conditions being executed Data Module Container of data information Interactive Electronic Technical Publication Technical manual prepared in digital form on a suitable
21. SAVE SESSION Once the session is saved all the work you do afterwards is also automatically saved When we save session a Boolean value isSaved in the StateTableController is set to true and name for the session is saved in the state table The process is showed in figure 9 1 below FIGURE 9 1 SAVE SESSION The client side of this feature is developed as shown in the class diagram in figure 9 2 below Design Document v 2 27 01 Jun 2011 FIGURE 9 213 CLIENT SAVE SESSION The client consists of an EventBus where events are fired when user pushes button in the application In this diagram the events and event handlers for saving is shown but it is exactly the same principles for loading a session and opening a new session In this diagram the views and presenters required for saving a session are displayed and as with the event and event handlers it is the same principle for the other functionality They all follow the MVP architecture design with an additional AppController as the client s controller see chapter 4 The Service package contains the classes which send the asynchronous remote procedure calls RPC to the server GWT handles this automatically and sends a callback with the response The SLRP class is the entry point of this application Design Document v 2 28 01 Jun 2011 Tam 9 2 LOAD SESSION If you want to continue previously saved session you can load it by clic
22. Something we have experience through this project is that before we start working on something we should have decided a standard for what we do There were several times in the start of the project were we all started working on something e g writing a type of document etc were we pretty soon noticed that the one of us did it in a different way than one of the others This was something we could have clarified better at an even earlier stage than we did It did lead to some editing after hand UNDERESTIMATES Estimation of correct work effort for the different tasks is new to all of us When we in the start were producing mostly documentation it went very well and we thought we had the Project Review v 1 10 01 2011 eO 4 3 hang of But when the development started we came out for the typical programmer s error in the estimate of developing tasks we thought most of the things were less complex than what they actually were Very soon we got the taste of this and adjusted our estimates Even then we often underestimated development tasks So what would we done different We would add even more time to our estimates regarding development BREAKDOWN OF USER STORIES INTO TASKS 4 4 We would have broken down the User Stories to tasks in a slightly different way now with our new experience in estimating and planning EARLIER PROTOTYPING Sk We would have started even earlier prototyping of some parts o
23. for these three group members is 650 hours IMPORTANT DATES During the project there will be four important dates January 12 The first presentation March 11 Second presentation sometime during this Sprint June 1 Delivery of the product o The delivery date is postponed from 30 because of Eirik s cancer treatment We will probably not see Eirik again until the presentation day and therefore the delivery was postponed so we could work with him on the presentation before he had a new round of chemo therapy Project Plan v 3 01 Jun 2011 amea 18 7 4 e June 9 Third and final presentation ACTIVITIES 7 5 For project tracking and control all work done in the project is categorised in the high level activities listed in High Level Activity Overview 6 For a more detailed time tracking the Sprint Backlog is used to track time on task level WEEKLY REPORTS Weekly reports are made for each week in the project They are sent weekly to our internal mentor and all the weekly reports will be gathered in the documentation delivered for the presentations These reports will give an overview of what the group and each group member has been working on for the previous week what is planned to be done for the next week and the general status of the project OTHER CONTROL DOCUMENTS The document standard contains all the rules and practices for Ameo s documentation such as fonts styl
24. or direction to the team during the Sprint unless asked by the team The team is utterly self managing The team commits to Product Backlog during the Sprint planning meeting No one is allowed to change this Product Backlog during the Sprint The Product Backlog is frozen until the end of the Sprint If the Sprint proves to be not viable the ScrumMaster can abnormally terminate the Sprint and call a new Sprint planning meeting to initiate the next Sprint The ScrumMaster can make this change of his or her own accord or as requested by the team or the Product Owner The Sprint can prove not to be viable if the technology proves unworkable if the business conditions change so that the Sprint will not be of value to the business or if the team is interfered with during the Sprint by anyone outside the team If the team feels itself unable to complete all of the committed Product Backlog during the Sprint it can consult with the Product Owner on which items to remove from the current Sprint If so many items require removal that the Sprint has lost its value and meaning the ScrumMaster can abnormally terminate the Sprint as previously stated If the team determines that it can address more Product Backlog during the Sprint than it selects during the Sprint planning meeting it can consult with the Product Owner on which additional Product Backlog items can be added to the Sprint The team members have two administrative responsibilities duri
25. such as ClickHandlers it will listen on an event bus which we will develop and it will call services Our presenter will use an event bus to communicate with services We will define application events which will be extending GwtEvent The presenter will then add handlers to listen for events To do this we will move the ClickHandler away from the view and handle them in the presenter An example on how to do this display getOpenButton addClickHandler 4 4 EXTENSION MVP is a broad and general architecture For our specific use of it we will be following the structure described in 5 In addition to the primary three components of MVP a fourth is added This component is responsible for client side logic that is not limited to one Presenter It is represented by a class AppController Tasks for the new component include the handling of an Event Bus for application wide events and generating Presenter amp View objects Design Document v 2 10 01 Jun 2011 am 5 Show functionality described the analysis document has been split into two separate and distinct functionalities One of these is dubbed Fetch and describes the way our program fetches a process DM file from the CORENA IETP Figure 5 1 shows the functionality s class diagram Figure 5 2 shows the sequence diagram for the functionality CLIENT SERVER FIGURE 5 1 CLASS DIAGRAM FOR FETCH PDM 1 openButton cli
26. 2011 ED Resources R101 R103 R201 R206 R207 401 R403 R405 R103 R201 R401 R403 R405 R201 R204 R206 R207 R501 23 13 REFERENCE S 1 Assignment description CORENA Norge AS 2010 2 International Specification for technical publications utilizing a common source database 510000 Technical Publications Specification Maintenance Group TPSMG 01 Aug 2008 Issue 4 0 3 Agile Project Management with Scrum Ken Schwaber Microsoft Press 1 Feb 2004 1 edition ISBN 13 978 0735619937 4 Agile Software Development with SCRUM Ken Schwaber and Mike Beedle Pearson Education 21 Mar 2008 1 edition ISBN 13 978 0132074896 5 Scrum development Wikipedia http en wikipedia org wiki Scrum 28development 29 last visited 12 Oct 2010 Prestudy Report v 2 05 Jan 2011 gt 24 PROJECT REVIEW HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 ERR 4 1 1 Intention of this DOCUMENT 4 1 2 Synonyms Acronyms and 5 4 1 3 AUEhOF S ccce Qu pete ehh 5 1 4 AEE 5 2 Proj tt
27. If we start this project it means that we get the chance to develop a process Data Module solution for CORENA which has been requested by one of their customers This is a complex task and will give us a lot of understanding on how to work in a larger software project We get the chance to work on a project which will be delivered to this customer if we manage to successfully develop an implementation that is acceptable We get the opportunity to work in a professional environment and we have been offered to use the CORENA facilities during our project CORENA will give us good support and this gives us excellent opportunities to improve our skills both in scripting and programming languages project management working with the Scrum development methodology and maybe end up in a job offer at the end of the project When doing this for CORENA we will also see a little bit of how it is to work for them This will give us a picture of what the place is like to work at If we don t start this project we will probably get in trouble finding another project in such a short time We will also send out a message saying we are not in control and should have done better research beforehand or that we have not done what we should have This will make a bad impression and probably lower our grade for this project It will also be a mental factor of strain for us at the end of this semester Prestudy Report v 2 15 05 Jan 2011 ameo 8 1 PROBLE
28. It provides an introduction to our assignment the company behind it CORENA and some initial requirements Additionally the document answers the question of why we want to do this assignment and our vision for the project Content chapters 1 Introduction 2 Participants 3 The Assignment 4 Expected Results 5 Why CORENA need this 6 Why we want to do this assignment 7 Our vision for this project File name Vision Document pdf PRESTUDY REPORT The Prestudy Report builds on the vision document and goes further into detail on the subjects described there The report goes into depth regarding the assignment the system it is a part of some problems and limitations as well as containing a list of high level project activities It also looks at some of the project s surroundings the environment it will be developed in our project development model and required resources Finally it examines some related projects alternative solutions to the project s requirements and a discussion of the consequences should we choose to start or not start this assignment Content chapters 1 Introduction 2 Project Environment 3 Related Projects 4 The System Document Overview v 3 5 Clun 2013 ameo 5 Assignment 6 Alternative Solutions 7 Consequences for Each Participant of the Project if We Start or Don t 8 Problems and Limitations 9 High Level Activity Overview 10 Project Development Model 11 Resou
29. Jetty Tomcat The user can choose a process DM and step through this module with the logic engine Steps in this process will be decided by user dialogs and input from sensors The user should be presented with the choices previous and next so they can navigate back and forth through their choices and or change some of their answers The user should have the option of continuing from a previously saved session WHY CORENA NEEDS THIS This assignment is made because CORENA has a customer who has requested this functionality for their previously delivered CORENA program We are supposed to make a solution which CORENA after hand will implement in their existing S1000D solution WHY WE WANT TO DO THIS ASSIGNMENT We think this is a challenging assignment in which we can learn a lot of new programming and scripting techniques and technologies We also think this is an exciting assignment with a lot of complexity which we need to understand in order to get this working CORENA would also like to offer an office for our disposal at CORENA This gives us a good opportunity to see how they are working and it will give us good support during this assignment OUR VISION FOR THIS PROJECT We hope and think that we can go through and finish this assignment and get a good result that CORENA can make use of in their products as their intention of this assignment also is We hope to learn a lot of new ways to program script and get a good
30. We used regular Java objects instead Most of our basic Java knowledge comes from our Java courses in the first two semesters in this three year bachelor education But parts of it also come from programming in subjects like Analysis and Design Network Operating Systems and Real Time Systems We have also used the knowledge from Programming regarding templates as we have used generics in Java Since we used Java this was an advantage to us because this was probably the programming language which we knew best DATABASE For our database system we have used a lightweight Java JDBC and SQL based database from Apache Derby Together with this we have used Hibernate as an object relational mapping system This mapping system has given us some challenges with difficult error messages and a mapping and configuration system which were new to us Project Review v 1 12 01 Jun 2011 am 5 8 3 5 3 4 5 315 5 3 6 5 4 When working with and developing the database aka the state table in the application we got to use a lot of our knowledge from the Database subject at HiBu Especially when it comes to modelling and knowing how the database should work DATA BINDING For data binding between XML and Java classes we have used the XStream library which serializes objects back and forth from XML to Java We use a lot of XML since the process Data Modules are written in XML PATTERNS We have used several pa
31. XML file a Document Object Model This is slower than SAX and takes more memory but it allows traversing of the XML document forward and backwards If DOM turns out to be too slow for our application when we start working on large data files it is always possible to change to SAX later on but this will be more time consuming than using DOM as we would have to create our own data structure Design Document v 2 15 01 Jun 2011 8 1 DATABASE SYSTEM For the state table in SLRP we must use persistent database system We have decided to use the Hibernate library for Java with the Apache Derby Database HIBERNATE We will use Hibernate so we can treat our database in an object oriented way Hibernate is an object relational mapping ORM library for the Java programming language It provides a framework for mapping an object oriented domain model to a traditional relational database We use Hibernate together with the Apache Derby database to gain persistence in our system There are several ways to map Java classes to database tables either by using annotations or an XML mapping file We will use the XML mapping file These mapping files extension is hbm xml and they are stored together with the classes that represent the mapping files tables Other than the mapping files we have configuration file which is known by its cfg xml extension This file is placed in the root of the src folder of the project The
32. a user It may be of three types a radiobutton menu a checkbox menu or a list menu A list menu may be single or multiple choice A menu is made up of one or more menuChoice elements which make up the entries in the menu The TypeController Type Builder structure framework is used to build menu widgets with MenuType as the key and WidgetBuilder as the value The common builder functionality of the menu types is located in an abstract superclass MenuBuilder which implements the WidgetBuilder interface This class is extended by each of the builders which implement an abstract method addMenuChoices Radiobutton and checkbox menus are made up of separate menu choice widgets which do not share a common parent The builders for these menus use an additional class to build the menu choice widgets MenuChoiceBuilder The list menu on the other hand is one single parent widget whose children are simply list entries with labels and values Figure 10 4 shows a class diagram for the building of menus Design Document v 2 34 01 Jun 2011 idgetController user entry is the other element used to obtain input from user and is represented text input field The user entry has a reference to a variable value where the data in the text field is saved The variable value is sent to the server via a SubmitEvent when it is updated Figure 10 5 shows a class diagram for the building of user entries Des
33. be more verbally which did not produce a report Scrum has also been new to our internal mentor Karoline Moholth but she has been reading up on Scrum and we have kept a continuous dialog in our weekly status meetings regarding Scrum This has solved some of the uncertainties in the best way and it has worked out very well In our opinion we have really succeeded with Scrum and with everything that has happened during our project we got to explore some of the real advantages of Scrum and agility We re in the opinion of that we have delivered a good project with this methodology Our internal communication and cooperation within our group has worked splendidly When Eirik got cancer we got to test this more than we could have wanted but we re in the opinion that we have got through that situation the best way we could This situation has not lead to any bad motions between any of us We have supported each other in a good way through it all Project Review v 1 9 01 2011 eO 4 1 For our project management we the Product Backlog which we have an Excel spread sheet In this we have a prioritised list of User Stories or requirements which we work our way from top to bottom As we have worked with the specification and requirements for the User Stories we have discovered new requirements It has led to splitting of some User Stories into smaller ones The Product Backlog has been our main requirements list and wi
34. decisions we make regarding the analysis and descriptions of the decisions themselves Content chapters 1 Introduction 2 510000 Specification 3 GWT and Client Server 4 Application Stucture 5 Reference s File name Analysis Document pdf We ve conducted an analysis into the S1000D specification It defines a structure for the process DMs the elements it consists of and requirements for software implementations The S1000D documentation is located in the 10000 pDM folder Contents documents 1 510000 Data Module Sequences 2 S1000D PDM External Application Interface 3 S1000D PDM Logic Engine 4 510000 Process Flow Construct Collection of user information 5 S1000D PDM Process Flow Construct Preliminary requirements and Close requirements 6 S1000D PDM Process Flow Construct Process 7 S1000D PDM Process Flow Construct Variable declarations 8 S1000D PDM References 9 S1000D PDM Variables Document Overview v 3 10 Clun 2013 ameo 312 DESIGN DOCUMENT The Design Document will contain a closer in depth overview of the application we are creating S1000D Logic Engine and Renderer for Process Data Modules SLRP It is important to notice that this document only covers the main architecture and design of the parts that has been developed so far Content chapters 1 2 10 11 12 Introduction Layout GUI View System Structure Mode
35. evaluating expressions Analysis Document v 2 15 01 Jun 2011 FIGURE 4 9 CLASS DIAGRAM FOR EVALUATING EXPRESSIONS 1 getNextElement I H 2 evaluate 3 getActiveProperty activeProperty operation 4 performOperation activeProperty function activeProperty value a hE activePri i operty f 7 getVariableValud FIGURE 4 10 SEQUENCE DIAGRAM FOR EVALUATING EXPRESSIONS 4 5 XML HANDLING The process DM is represented in an XML format when received from the IETP To use the data in this file further in our application it must be parsed into a format that the application can handle in a simpler manner than reading the file from start to finish every time it needs new data from the process DM The XML handler should separate the concern of the pDM format so that the rest of the application will have a unified representation of the data even though the S1000D specification might change with new versions Analysis Document v 2 16 01 Jun 2011 4 6 DISPLAY PACKAGE When encountering elements in the process DM that is displayable the Logic Engine will use the Renderer to generate display package to be sent to the client The display package contains the relevant data found in the element that is only the data that will be displaye
36. isTmpValue This is a Boolean parameter which tells the methods if they should store to the temporary tables or the regular state table tables A value of true saves to the temporary and false to the other Design Document v 2 01 Jun 2011 21 1 storeVariables sd Start Hibernate Session loop Variables 77 1 1 storeVariable 2 1 2 buildSessionFactory openSession 1 3 load 1 3 1 RunTable 1 4 VariableTable 775775577773 sd Close Hibemate Session 1 5 setVariable l 1 6 P 1 7 close session loop Values P 1 8 storeValue sd Start Hibernate Session x l 19 buildSessicpFactory openSession 13 1 1 10 load 1 10 1 VariableTable 1 11 ValueTable sj 1 1 12 Ly sd Close Hibemate Session 1 I 1 1 14 dose session FIGURE 8 6 STORE VARIABLES STATE TABLE The only real difference is that the method storeVariables receives a linked list with variables objects which is being inserted into state table one by one with the storeVariable method The storeVariable method uses the storeValue method to store the values of the variable to state table Design Document v 2 22 01 Jun 2011 values isEmpty false
37. lot He has met up with us as often as he has been able and besides of that we had a continuous communication through e mail and Skype Because of the agility of Scrum we have been able to include Eirik as much as he has been able to There has always been task for him when he has had energy to do it At this point in time all tests indicate that Eirik will recover from the cancer Except from Eirik the rest of us have kept healthy through the whole project without any absence from the project Because of the size of our assignment we really could have used more people in our project group at least one more would have been very helpful Our selection of people for the group Project Review v 1 8 01 Jun 2011 was not random either which makes it even harder to get enough people We got together four people which all knew what to expect from each other skilled and hardworking students Another big advantage Scrum has given us is that we have been agile regarding new requirements which have come up while working with the S1000D specification The specification is very big almost 2800 pages and complex This has been a challenge but adjustment along the way has not been problem Scrum development methodology makes this fully legal Every morning we have started with our daily Scrum meetings which have been very good in order to keep up with each other s work especially when Eirik has been gone we could still meet over
38. medium Process DM Process Data Module HiBu H gskolen i Buskerud 1 3 AUTHOR S Olav Brandt OBR 1 4 ASSIGNED Olav Brandt OBR Quality Assurance v 1 3 04 Jan 2011 am DOCUMENTATION REVIEW All of the documentation we produce during this project will be thoroughly reviewed After document has initially been written two non authoring group members review it before sending it back to the original author Prior to delivery the documents undergo another round Each group member reviews the document and the assigned person must confirm the changes before marking it Official Quality Assurance v 1 04 Jan 2011 am eo 3 1 SOFTWARE TESTING WHAT DO WE TEST Before defining how we are going to perform our tests it could be interesting to take a look at what we are going to test When we are testing we are basically attempting to do two things in relation to our product verifying and validating its correctness Verification is the process of determining whether or not you have built the product correctly In question form Does the software fulfil the requirements and or Does the software work correctly according to the requirements Validation is about checking if you have built the correct product Are the requirements correct in view of the needs and demands of the customer and or Does the software do what the customer wants it to do Naturally both of these activities are f
39. s1000d org Downloads Documents Issue4 0 s1000d Issue 4 0 final zip last visited 05 Jan 2011 Project Planv 3 21 01 2011 ameo gt ANALYSIS DOCUMENT HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER n i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 ERR 4 1 1 Intention of this Document 4 1 2 Synonyms Acronyms and 5 4 1 3 4 1 4 ntn PEE 4 2 51000 Specification rt tete I ee etie Re aed ee ae a eee 5 3 GWT 5 n 7 4 Application SUCU G tenete xke ett e R 9 4 1 Separation of Concerns MVP oni rd ee 10 4 2 gt u u 11 4 3 High Level Architecture HLA 12 4 3 1 Rendering of Visual 12 4 4 Fun etionalily Ul M 13 4 4 1 SHOW PDM T H M 13 4 4 2 Save and Load 5 aa EEN h 14 4 4 3 15 4 5 XME H
40. simply iterate over them calling WidgetController s buildWidget method on each of them without having to do any manual type checking and treatment This way when a new DisplayPackageElement and its builder are implemented the elements that can contain them do not need to be changed Figure 10 1 shows a class diagram of the dialogue building framework structure without the child elements Figure 10 2 shows an activity diagram that explains the process of building dialogues Builder IwidgetBuilder widgetController FIGURE 10 1 CLASS DIAGRAM SHOWING THE DIALOGUE BUILDING FRAMEWORK STRUCTURE Design Document v 2 32 01 Jun 2011 no more elements list more elements in list more elements in list no more elements in list FIGURE 10 2 ACTIVITY DIAGRAM FOR DIALOGUE BUILDING 10 3 DIALOGUE CHILDREN A Dialogue Group is a layout element used to toggle the direction its children are laid out in If the parent of the dialogue group is vertically oriented the dialogue group s layout is horizontal and vice versa It may contain the same child elements as the dialog element Figure 10 3 shows a class diagram for the building of a dialog group widget Design Document v 2 33 01 Jun 2011 layoutDirection lt lt use gt gt I DisplayPackagaElement Type WidgetBuilder A menu is one of the two elements used to obtain input from
41. success for our project Since my role as a Scrum master isn t a team leader as in a traditional project methodology but a facilitator for an effective team the success of the project was dependent on a committing and self organising team which we definitely had have really appreciated this chance to be part of the complete development cycle from initial assignment and vision discussions to the hand off of the project The project has taught me a lot about everything from planning talking to customers and creating requirements to the analysis design and implementation of a larger application and have had the chance to utilise a broad span of knowledge and skills acquired during this course in this project Eirik s sudden cancer diagnosis got us all startled But glad we ve had the team we had which has supported him and each other and has been willing to put in an extra effort in order to best accommodate for Eirik s participation and to limit the impact on the project and believe that it s thanks to good friends and team members and the use of Scrum that Project Review v 1 14 01 Jun 2011 Tam we have been able to adjust well to this situation I also want to add that Eirik s effort has been nothing but impressive and very motivating for the rest of us This project has had handful of challenges but together we have been able to handle them I would say that some of the biggest challenges have been the use
42. that separates the domain business model the user interface presentation view and the input handling controller shares the same idea and roles but some responsibilities are moved around compared to MVC Most notable the task of updating the view is moved from the model to the controller now called a presenter Figure 4 2 shows a graphical representation of the difference in associations between the software parts of MVC and MVP Analysis Document v 2 10 01 Jun 2011 am Controller Presenter FIGURE 4 2 MVC AND MVP 4 2 5 We have identified the main packages that the application will be divided into Each package has one main task usually representing a component of the SLRP All the packages we create belong to the com corena ietp sirp domain The packages are divided so that the content of one package should have minimal effect on any other packages and for easier testing FigurE 4 1 provides an overview of the packages FIGURE 4 3 PACKAGE OVERVIEW Analysis Document v 2 11 01 Jun 2011 eO 4 3 HIGH LEVEL ARCHITECTURE HLA 4 3 1 RENDERING OF VISUAL CONTENT In accordance with the S1000D specification the logic engine renders a display package for the screen to be displayed The display software in this case the client will handle the display package and display the correct elements on screen The specification also says that until a screen is processed and any expre
43. the few open source projects that are well documented from the creator The documentation is really good See reference 4 Google Web Toolkit v 1 07 Jan 2011 om REFERENCE S 9 Technical document Spring Framework Ameo 05 Jan 2010 http www linux com archive feature 124163 last visited 01 Dec 2010 http code google com intl no NO webtoolkit doc latest tutorial index html last visited 01 Dec 2010 http code google com intl no NO webtoolkit doc latest DevGuide htm last visited 01 Dec 2010 http www wmps com blog website design website build why use gwt for ajax applications last visited 1 Dec 2010 http code google com intl no NO eclipse docs install eclipse 3 6 html last visited 01 Dec 2010 http code google com intl no NO webtoolkit doc latest DevGuideCodingBasicsCompatibility html last visited 01 Dec 2010 http stackoverflow com questions 2590850 threading in gwt client last visited 01 Dec 2010 http en wikipedia org wiki Java Servlet last visited 01 Dec 2010 10 http en wikipedia org wiki JavaServer Pages last visited 01 Dec 2010 11 http code google com p gwt ext last visited 07 Jan 2010 Google Web Toolkit v 1 07 Jan 2011
44. the table which stores the values for the temporary variables Design Document v 2 18 01 Jun 2011 8 4 STATE TABLE APPLICATION STRUCTURE In SLRP our database and Hibernate system will be represented as figure 8 2 FIGURE 8 2 STATE TABLE SYSTEM IN SLRP The upper package in this diagram is our application The lower package is the org Hibernate package which we use for our mapping with the database This is the complete system for our state table We have a StateTableController which is the core which controls everything and the HibernateUtil which is the standard static singleton pattern that generates the SessionFactory The rest of the classes are object relational mapping ORM tables represented as objects classes in Java Design Document v 2 19 01 Jun 2011 This is the method to start new session with Hibernate against the database This method will be used every time we communicate with the database and returns a session object See the diagram below 1 getSessionFactory 1 1 openSession 2 beginTransaction FIGURE 8 3 START HIBERNATE SESSION We need to save persist and commit the session before we close it each time as shown IN figure 8 4 2 getSessionFactory HibemateException 4 getSessionFactory 1 save 2 1 commit 3 flush 4 1 rollback 5 flush 4 4 4 4 FIGURE 8 4 CLOSE HIBERN
45. then make an asynchronous call to the server requesting an operation to be performed and or a piece of data to be returned Analysis Document v 2 01 Jun 2011 eO As noted figure 3 2 both the client and server are written with Java code but while the client code is translated to JavaScript the server code is run as standard Java The client thus only supports code that is translatable while the server has no such limitations ServiceDefTarget RemoteS interface interface YourServiceAsync YourService YourServiceImpl interface interface class framework classes B3 Written by you Generated automatically Translatable Java code Standard Java code runs as JavaScript on client runs as bytecode on server FIGURE 3 2 GWT S RPC FRAMEWORK SHOWING CLIENT SERVER AND THE SERVICES THAT CONNECT THEM Analysis Document v 2 01 Jun 2011 eO APPLICATION STRUCTURE During analysis we ve attempted to identify the main components our program is made up by These components will be broken down into sub components through a more detailed design process Figure 4 1 shows the components we ve identified in the first development oriented Sprint Internal These components are contained within our actual application Logic Engine functionality related to the logic engine as specified by the S1000D specifications State Table Representation of the state of a
46. understanding on how itis to work with an agile development method like Scrum Vision Document v 2 06 Jan 2011 am 8 5 1 Assignment Description CORENA Norge AS 2010 2 International Specification for technical publications utilizing a common source database S1000D Technical Publications Specification Maintenance Group TPSMG 01 Aug 2008 Issue 4 0 Vision Document v 2 06 Jan 2011 am GOOGLE WEB TOOLKIT TECHNOLOGY DOCUMENT HIBU STUDENT PROJECT 2011 S1000D 4 0 PROCESS DATA MODULE RENDERER CORENA A ANA HOGSKOLEN i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 ey aaa 3 1 1 Intention of this Document 3 1 2 Synonyms Acronyms and Definitions eese eene enne nennen enne nnns nre nnns 3 1 3 AUtHhOF S EE NE dene fue odes A d EN ederet 3 1 4 ASSIGMOO 4 2 N 4 3 MEST 4 33 sa qipa 4 3 2 What is Includedin GWT 2 U l ie eh Eee VE randen 4 A Whyus e GWT unndra 5 4 1 Java and To EE 5 4 2 5 4 2 1 Developer Mode 6 4 3
47. work of developing the functionality The task list might not be complete but it must be completed enough to reflect mutual commitment on the part of all team members and to carry them through the first part of the Sprint while the team devises more tasks in the Sprint Backlog 2 4 DAILY SCRUM MEETING The Daily Scrum meeting is time boxed to 15 minutes The Daily Scrum will be held at the same place and the same time every work day Scrum Rules 1 06 Jan 2011 ameo gt All team members required to attend If for some reason a team member cannot attend in person the absent member must attend either by telephone Skype or by having another team member report on the absent member s status Team members must prompt The ScrumMaster starts the meeting at the appointed time regardless of who is present The ScrumMaster begins the meeting by starting with the person immediately to his or her left and proceeding clockwise around the room until everyone has reported Each team member should respond to three questions only o What have you done since the last Daily Scrum regarding this project o What will you do between now and the next Daily Scrum meeting regarding this project o What impedes you from performing your work as effectively as possible Team members should limit themselves to answering these three questions not digressing into issues designs discussion of problems or gossip The ScrumMa
48. working under conditions most similar to ours in regards to the development environment and requirements from HiBu Rivet s assignment was provided by Kongsberg Defence amp Aerospace where they updated a simulator of a Remote Weapon System developed by KDA Scrat did an assignment for Luminext where they created a client server solution for easy configuration of the Luminext Segment Controllers as well as backup and restoration abilities for configuration and firmware updates Neither of these teams used the same development tools and methodologies that we are using but the documentation they produced followed the same requirements ours do and is thus still of interest to us It is also interesting to read their end reports to see what they have learned during their project and what they would do differently for another project These are things we as well should strongly take into consideration for our project RELATED EXTERNAL PROJECTS Inmedius S1000D is a competitor to CORENA S1000D Inmedius has developed an implementation of the logic engine to S1000D called Inmedius S1000D Publishing Suite It is the same kind of software as CORENA S1000D but their implementation also provides an editor for the process DMs which is not a part of our assignment Our assignment is to develop a standalone version of the logic engine which will then be implemented by CORENA in both CORENA IETP and in CORENA S1000D Prestudy Report v 2
49. 06 Jan 2011 First version AOL OBR Scrum Rules v 1 06 Jan 2011 ameo 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT The purpose of this document is to define Scrum rules the project group agrees to follow during the project 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Explanation Time box A period of time that cannot be exceeded Sprint A defined time box of 14 to 30 calendar days often called an iteration in other models ScrumMaster The person responsible for the Scrum process Stakeholder Someone with an interest in the outcome of the project Product Backlog Requirements listed in prioritised order with time estimates Sprint Backlog
50. ATA MODULE CONCEPTUAL DIAGRAM Vision Document v 2 06 Jan 2011 3 3 WHAT ARE THE REQUIREMENTS FOR THE LOGIC ENGINE Previous function Next function Logthe states in a state table Save current position with history before exit support execution of the logical document should be according to the international S1000D issue 4 0 specification which be integrated with CORENA s products The implementation should be based on technology which is base for CORENA S1000D Web Client and CORENA IETP products Theinterpreter is supposed to execute in an independent web based IETP application based on Jetty Tomcat S1000D specification resources http www s1000d org Relevant chapters 4 11 Information management Process Data Module 7 7 1 Guidance and examples Logic Engine 7 7 2 Guidance and examples Process Data Module Nodes Common technology platform for the CORENA S1000D Web Client and CORENA IETP products is Java XML XSL Spring Framework Web services Ajax GWT Google Web Toolkit 3 4 OTHER REQUIREMENTS All technical documentation which will be used later in CORENA should be in English J CORENA wants us to use the Scrum development methodology Vision Document v 2 06 Jan 2011 am eo EXPECTED RESULTS CORENA is expecting a logic engine which should be integrated in an independent web based solution running on
51. ATE SESSION When new session is started in the database we first insert row into the run table then we insert the first state and finally we insert pre set variables if there are any See the diagram in figure 8 5 Design Document v 2 01 Jun 2011 ameo 20 1 startNewSession 1 1 StateTableController 1 2 startNewSession 1 2 2 RunTable 1 2 4 setPdmRef 1 2 5 getSessionld 1 3 storeNewState I 1 3 2 States Table few sete as 1 3 3 setStateNr 1 3 4 setStateReft 1 3 5 dose session 1 36 storeVariables FIGUR 8 5 STARTING A NEW STATE TABLE SESSION 1 2 6 session 1 2 1 buildSessionFactory openSession 12 MM En 1 3 1 buildS ssionFactory openSession sd Start Hibernate Session sd Close Hibemate Session sd Start Hibernate Session Pn j sd Close Hibemate Session sd Store Variables to State Table Gate4 Tm m The methods used to store variables and states are the same methods as is being used to perform these operations as single instructions when the program is running There is one exception and that is when we want to store several variables we have added another method see figures 8 6 and 8 7 The methods for saving variables and values to the state table contain one parameter isTmpVariable or
52. Case is extremely slow Project Review v 1 13 01 Jun 2011 eO 5 5 EXCEPTION HANDLING 7 1 This was also something which was pretty new to us been told to use it but the actual use itself we had little knowledge of So we have gathered some knowledge about this as well throughout the project GOAL ACHIEVEMENT We have reached nearly as far as we had planned in the Product Backlog something we are very proud of We have developed a partly functional logic engine with support for the most regular operations elements and functions from the S1000D specification We have developed an application that is solid extensible and of good construction so it is ready to be used and developed further on by CORENA We have also done a lot of analysis and research regarding the specification of the process Data Modules which CORENA has indicated is of great value for them in further development of the application and in one of their other projects which is to generate an editor for these process Data Modules SELF EVALUATION ARILD OLDERVOLL For me as the project leader and Scrum master it was really exciting from the beginning of the project to see how Scrum would work out None in the group had any previous experience with it neither did our internal mentor and pure Scrum has never been used in a HiBu bachelor project before us Therefore I m relieved that I m able to say that Scrum was a great benefit and
53. ENDINGAR 16 4 6 Display R ua aaa heva sag sauene sureste ike 17 4 7 Dialogue Handling iu u u 18 4 8 State EE EE 20 4 8 1 Hibernate Object Life Cycle 21 4 8 2 Application s State Table Structure 22 5 5 huske ee 25 REVISION HISTORY Version Number Date 1 25 Mar 2011 01 Jun 2011 Analysis Document v 2 01 Jun 2011 Changes First Official Version Updated chapter on Dialogue Handling Added chapter for State Table Added package description Added chapter on Display Package ameo Assigned OBR Update of chapter for State Table Updated chapter on Display Package Added subchapter for saving and loading sessions Added subchapter 4 5 XML Handling Added subchapter on Expressions Analysis Document v 2 01 2011 ameo 1 INTRODUCTION Our assignment to develop logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through th
54. HiBu R504 Office at CORENA Prestudy Report v 2 21 05 Jan 2011 ED Activity Resource s Required 301 Meeting Preparation R103 302 Scrum Meetings R201 R206 R501 303 Status Meetings R201 R204 R501 304 Meeting Minutes R103 400 Research R103 205 401 R402 R403 404 R405 501 Analysis R103 R108 502 Design R103 R108 601 Prototyping R105 R106 R302 R404 R405 602 Programming R105 R106 R302 R404 R405 701 Testing R105 R302 702 Document Review R103 801 Website R301 802 Presentations R110 R502 R201 R205 803 Standards R103 R401 R402 R403 804 Lectures R402 299 Other Documentation R103 399 Other Meetings R201 R501 Prestudy Report v 2 22 05 Jan 2011 12 ACTIVITIES AND RESOURCES UNTIL THE PROJECT PLAN IS READY Activities 101 Planning Create a project plan 103 Economy A budget containing estimated project expenses and economic resources 201 Templates Template for the requirement specification Template for the test specification 204 Requirement specification Defining and prioritising all requirements in collaboration with CORENA 205 Test specification Create test strategy Create the test specification 399 Other Meetings Requirement meeting s with CORENA Meeting with internal mentor 402 Tools Determine a project tracking tool to use Prestudy Report v 2 05 Jan
55. IMPLEMENTATION 6 PROTOTYPING 6 PROGRAMMING 7 QUALITY ASSURANCE 701 TESTING 17 Prestudy Report v 2 05 Jan 2011 EL 7 DOCUMENT REVIEW 8 GENERAL 8 WEBSITE 8 8 STANDARDS 8 LECTURES 02 00 01 03 04 Prestudy Report v 2 18 05 Jan 2011 ED 10 10 1 PROJECT DEVELOPMENT MODEL We have chosen Scrum as our project development methodology Our choice was made on the basis of some key characteristics It is an iterative and incremental approach as opposed to being linear and sequential like the waterfall model This means that the project will be divided into several iterations Sprints where modules of the product beginning with the highest prioritised part will go through an entire development process from inception to implementation and testing One important property of this is the minimisation of the consequences by unforeseen and project ending events If we are unable to fully complete the project the end result will be a product where for instance the most important 7096 of the requirements will be 100 finished and functional instead of a product where 100 of the requirements will be 7096 finished Jtis alightweight and agile model fit for small development teams Our primary alternative is the Rational Unified Process RUP which is also an iterative and incremental model and thus shares several of the positive attributes with Scrum However RUP is a heavier and more compr
56. INCLUDED IN GWT 2 Google Web Toolkit v 1 4 Gran 2081 ameo 4 1 Hosted Web Browser Allows you to preview your Java application the same way an user would see it Web Interface Library Lets you create and use Web browser widgets such as labels text boxes and radio buttons You program in Java using these widgets and the compilation process transforms them into HTML equivalents Java Emulation Library Provides JavaScript equivalent implementations of the most common Java standard classes Java to JavaScript compiler Produces the final Web code WHY USE GWT JAVA AND ECLIPSE 4 2 One of the biggest advantages of using GWT is that you develop in Java and in an object oriented world Google has made a very good Eclipse plugin that makes it easy to start developing GWT supports most of the core Java language syntax and semantics but there are a few differences that you should be aware of more about that in reference 7 In addition GWT brings many new libraries into the project called modules or widgets For example buttons and tab panels that modify their colour and shape to fit an operating system and or browser One thing to remember is that JavaScript is just single threaded GWT has something which is not real multithreading but in most cases does what you need 8 If true multithreading is required design the application in a way so that the server side can handle it TESTING One of the bi
57. List of tasks for the current Sprint defined by the team Product Owner Represents all stakeholders in the project and is responsible for the Product Backlog Chicken Someone interested in the project but does not have a formal Scrum responsibility Pig Someone committed to the project occupying one of the formal Scrum roles Scrum Rules v 1 06 Jan 2011 ameo 1 3 AUTHOR S Arild Oldervoll AOL 1 4 ASSIGNED Arild Oldervoll AOL Scrum Rules 1 06 Jan 2011 2 OVERVIEW The rules defined here are mostly a copy of the rules that Ken Schwaber has listed in his book Agile Project Management With Scrum 1 Schwaber is one of the two main creators of Scrum and he claims that these rules have worked in thousands of projects It is important to have defined rules for the Scrum process that everyone involved in the process has agreed to follow This is both to hold the Scrum process together and to avoid confusion 2 1 COMMITMENT All those who have pig role in the project i e those who have made commitment to the project also commit to follow these rules 2 2 CHANGES TO THE RULES At the end of every Sprint there is the Sprint retrospective meeting Rule changes should be suggested and discussed at this meeting It is important that these changes originate from the team and not the management Before a rule change is approved the ScrumMaster should be convinced that this rule change will enhance the pr
58. MS AND LIMITATIONS The biggest problem or more accurately limitation is time Originally the application also contained an process Data Module editor However our group consists of only four people so the scope of the project has been adjusted down This is done in order for us to be able to produce complete and high quality product within the given timeframe The team is fairly inexperienced with several of the technologies we will use in this project XML XSL Spring Framework POJO Web services Google Web Toolkit and Ajax However we have experience with web programming in general and also with Java Many of the technologies are also based on Java so after all the chance of finishing the project in a satisfying manner is high MAIN MILESTONES The milestones in this project are the three presentations Presentation 1 2 Week of 2011 Presentation 2 Between 14 March and 15 April 2011 Presentation 3 Beginning of June 2011 Prestudy Report v 2 05 Jan 2011 gt 16 9 HIGH LEVEL ACTIVITY OVERVIEW Activity Number Activity Name a 9 00 0 02 04 05 00 0 02 03 04 05 06 07 08 209 eee 0 02 03 04 05 99 00 0 02 99 00 0 02 00 0 02 00 1 1 301 MEETING PREPARATION 3 SCRUM MEETINGS 3 STATUS MEETINGS 3 MEETING MINUTES 3 PLANNING MEETINGS 3 OTHER MEETINGS 4 RESEARCH 401 TECHNOLOGY 4 TOOLS 4 OTHER RESEARCH 1 1 5 ANALYSIS AND DESIGN 5 ANALYSIS 5 DESIGN 6
59. N Both SVN and TortoiseSVN are also used by CORENA DOCUMENT EDITING SOFTWARE 2 7 H gskolen i Buskerud HiBu requires the project team to provide documents in open file formats like PDF or DOCX We will be using Microsoft Word to create these documents It is a very common office tool with a lot of features and the possibility to save the documents in several different open formats We will go with the open format PDF for our official documents JAVA IDE We will use Eclipse IDE for our development This is a free and very feature rich IDE also used by CORENA and has support for SVN Prestudy Report v 2 05 Jan 2011 ameo gt 3 1 RELATED PROJECTS RELATED INTERNAL PROJECTS AT H GSKOLEN I BUSKERUD 3 2 our knowledge and as far as our research has shown there not been any projects directly relating to the task we have been given by CORENA However there have been several computer science projects done at HiBu and in our prestudy we have looked at these projects We have decided to focus on two previous projects Rivet and Scrat They are both project groups that finished in June 2010 both with very nice end result and good grading from their sensors These are also projects we are already familiar with since we have attended their project presentations and have been talking a lot to the team members Because of the time proximity they are also the two computer science projects that have been
60. NATE OBJECT LIFECYCLE Transient objects are not yet saved to a row in the database They have no association with the database they act as normal Java objects There is no connection between the transaction and these objects These objects can be turned into persistent objects with the save method call of the Session object This is the Hibernate Session It can also be persisted by adding a reference from another persistent object to this object Persistent objects have an association with the database and are always associated with a persistence manager i e a Session object The object does not have to be saved to the database yet but it will have a primary key value set anyway When the delete method of the Session is called on a persistent object the object will be removed from the database but it will still be available as a regular Java object Detached objects are objects that were persistent but no longer have a connection to a Session object The object is now stale This object can be persisted again Analysis Document v 2 21 01 Jun 2011 eO 4 8 2 APPLICATION S STATE TABLE STRUCTURE The class diagram for the state table is shown in figure 4 16 below dbController FIGURE 4 16 ANALYSIS OF STATE TABLE CONTROL AND CONNECTION This class diagram represents the state table as persistent database and that we use controller to control every query to the database The queries are done automatically by Hibernate
61. PreviousState before the fetchState method What this extra method does is to first delete the current state and then decrement the stateNr for the StateTableController Then it sends a call to fetchState with the new stateNr as parameter See figure 8 11 The activity diagram in this figure shows both of these methods Design Document v 2 25 01 Jun 2011 FIGURE 8 11 THE PREVIOUS STATE FROM THE STATE TABLE To fetch variables from the state table we must load the current state table session object and iterate though it s variables in the Set When we find the variable we are looking for we save its values to a LinkedList and store a new Variable object in the application with these values the variable name and type See figure 8 12 ss 1 fetchVariable H 1 4 buldSessionFactory oper Session Gate11 1 2 load 1 2 1 RunTable search for variable 1 3 getVariables 1 4 getValues 1 5 Variable 1 6 close session isd Close Hibemate Session l l 1 l uM t l l l EE FIGURE 8 12 VARIABLE FROM THE STATE TABLE Design Document v 2 26 01 Jun 2011 9 SAVING AND LOADING SESSIONS SLRP will have functionality for saving a session and continuing where you left off 9 1
62. R A Wn i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 Design Document 2 e ntela ne n 2 CERE 5 1 1 Intention of this Document 5 1 2 Synonyms Acronyms and Deflinitions 5 1 3 5 oce ke e oed adiu ote deae aa edes passa 5 1 4 ASSIBITGd ccce te em MEE MM 6 Layout GU VIEW ES 7 Lej fe I 8 Model View Presenter 44 4 4 000 paqaspa 9 41 Models manet 10 4 2 M 10 4 3 Presento u su u 2 ui HE 10 4 4 Seal 10 Fetch m 11 5 1 12 5 1 1 SAX ERE M 12 5 1 2 EE 12 5 1 3 Data BI BdinB u uuu u u u aa 12 Client and Server 13 6 1 GE 13 6 2 SEVE EE 14 6 3 Cli
63. SLRP HIBU STUDENT PROJECT 2011 S1000D 4 0 PROCESS DATA MODULE RENDERER A AND HOGSKOLEN i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt DOCUMENTS 10 11 12 13 Document Overview Prestudy Report Project Review Project Plan Analysis Document Design Document Scrum Procedures Scrum Rules Product Backlog Quality Assurance High Level Activity Overview Vision Document GWT Technology Document DOCUMENT OVERVIEW HIBU STUDENT PROJECT 2011 CORENA 510000 PROCESS DATA MODULE RENDERER i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 lt e een 4 1 1 Intention of This Document u as una ua 4 1 2 Synonyms Acronyms and 5 4 1 3 AUthOF S ccce Qua di otii diea ad desee eae deat edes ilie tede Us 4 1 4 MEI MEM MM 4 Documents Prior to the First 5 2 1 VISION ipm 5 2 2 Prestudy em 5 2 3 Product Backlog sauna 6 2 4 6 2 5
64. Skype and keep up to date Other than this we have mostly been sitting next to each other and had good cooperation so we have mostly been quite aware were the rest of the team have been in their work In the beginning of each Sprint we had Sprint planning meeting doing the planning for the upcoming Sprint This meeting was time boxed to four hours In these meetings we took User Stories from the Product Backlog after how much velocity we had calculated for that Sprint and we split these User Stories up into several tasks The velocity for each User Story is calculated using poker planning In the end of each Sprint we had Sprint demo for CORENA This has also been good place for us to discuss solutions with them during the project Since each Sprint has been approximately three weeks this has been each three week period We had some meetings besides this as well especially in the start of the process to secure that we were developing the right product Our external mentor Tommy Sivertsen has also taken part in some of our daily Scrum meetings either by Skype or he has showed up at HiBu CORENA has been very easy to ask in situations outside of these meetings when we have been needing assistance or their opinion in some matters We also had a Sprint Retrospective by the end of each Sprint Up to and including Sprint 7 we produced a Sprint Retrospective report for the Sprints but after this we changed the way we held the retrospective to
65. To share documents between project team members we use Dropbox Dropbox synchronises all files in a selected folder on the computer with the other team members files so that everybody will see each other s files as soon as they are saved in the folder Since a local copy is located on each team member s machine backup of all the documents are ensured almost instantly when a file is saved Dropbox also provides a change history for each file and the Prestudy Report v 2 05 Jan 2011 2 4 possibility of reverting to any earlier version within the last 30 days It is also possible to restore deleted files Dropbox is also a secure service all files are password protected and encrypted and all transmissions are made through SSL COMMUNICATION 2 5 Our main tool for online communication is Skype Skype is a free program that offers free communication with text voice and video either one to one or for group conversations This is the main communication tool used by CORENA and therefore it is also easier to communicate with anyone in CORENA directly if needed SOURCE CODE SHARING 2 6 For sharing and collaborating on source code we will use a version control system in the project We have decided on using the Apache Subversion SVN system to share and commit source code This is a very feature rich and free version control system Together with SVN we will also use TortoiseSVN to check files in and out from SV
66. We treat the tables as objects in the application The session generator is just class which contains everything that needs to be done when starting a new session The start up of a new session will work as shown in figure 4 17 below This sequence diagram shows that it will store a session a state and the pre set variables from the pDM 1 startSession 1 1 startNewSession 1 1 1 storeNewSession 1 1 2 storeFirstState variable s 1 2 storeVariable 1 2 1 storeVariable FIGURE 4 17 CREATING A NEW SESSION IN THE STATE TABLE To delete a state table session will work as shown in the sequence diagram in figure 4 18 below Analysis Document v 2 22 01 Jun 2011 eO 1 1 searchAndDeleteSession 1 2 searchAndDeleteStates 1 3 searchAndDeleteVariables FIGURE 4 18 DELETE STATE TABLE SESSION When a state table session is deleted its states and variables also have to be deleted This will happen automatically when we delete the state table session The next two figures show how to delete a state and a variable figure 4 19 and 4 20 1 deleteState 1 1 searchAndDeleteState FIGURE 4 19 DELETE STATE FROM THE STATE TABLE 1 delete Variable 1 1 saarchAndDeleteVariable FIGURE 4 20 DELETE VARIABLE FROM THE STATE TABLE The methods for fetching states fetching variables and updating variables are almost identical Analysis Document v 2 23 01 Jun 2011
67. and 4 41 404040424 24 000042 0001060000000000000000000000000000000000 5 4 Serumi TOONS e Vas Eee depre vei 7 4 1 Product 7 4 2 Urera mai 7 5 Pros and Cons of Scrum Project 8 6 Calculation of Time Estimates in 9 6 1 Story POINTS 9 6 2 Poker 9 6 3 Mri pa GN 9 7 R TNER 11 REVISION HISTORY Version Number Date Changes Assigned 1 04 Jan 2011 First version AOL Scrum Procedures v 1 04 Jan 2011 ameo 1 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a w
68. ans increase the Sprint burn down velocity Scrum Procedures v 1 04 Jan 2011 armeo 4 1 MORE ON SCRUM TOOLS PRODUCT BACKLOG 4 2 It is important to notice that the Product Backlog is subject to change at any time It is available to every stakeholder and is maintained by the Product Owner The Product Owner represents all the customers and creates and manages the Product Backlog based on the needs and wishes from all the customers It is his job to prioritise the User Stories in a way that is satisfactory to the customers The priority can be changed for User Story at any time as long as it is not started on by the team if the customer requirements changes or other User Stories that are considered more important are added to the Product Backlog The customers can use the Product Backlog to see which features they will get and in which release they will get them The team will not use the Product Backlog to any extent as they should not plan for anything not in the current Sprint since everything that is not in that Sprint is subject to change USER STORIES A User Story is written from a customer s perspective In fact it is often the customer that writes the User Stories If there are many customers that write a similar User Story the Product Owner can write a common one The stories are written from a non technical perspective and use a common language to describe something that the customer can see directly in the prog
69. anually according to test cases Automated testing might be implemented for some features where this is applicable and beneficial If the proper unit and integration testing has been performed system testing should be a matter of checking that the subsystems play nice together and that everything is hooked up correctly At this level our automated white box tests will probably be too difficult to use due to the increased complexity Black box testing done manually will thus be the preferred approach Since system testing is mainly about test case driven functionality testing this kind of hands on testing is something that needs to be done extensively either way The final level of testing is customer acceptance testing This is where a selected group of the actual customers validates that the product performs as they expect In conventional testing acceptance tests are usually run once the requirements are finished and again once the entire program is completed In Scrum however additional User Story acceptance tests are done after a Sprint on each completed User Story That way every feature will go through validation while the project is still in development and potential changes are identified at a much earlier stage than in conventional testing Quality Assurance v 1 8 04 Jan 2011 am x 4 Quality Assurance v 1 04 Jan 2011 am x REFERENCES Prosjekth ndbok 2010 Torbj rn Str m and Olaf Hallan Graven H gskol
70. bility for delivering a product meeting all the requirements within the given timeframe The project leader will also be the ScrumMaster ensuring that the Scrum process is followed correctly Responsible Arild Oldervoll The person responsible for the documentation has the overall responsibility for making sure that all documentation being delivered follows all standards that all documentation is consistent and that the documentation is delivered on time to all eligible receivers and in the format requested by the receiver Responsible Marius Haraldseth The web responsible or web master must ensure that a website for the project group is developed and to keep it up to date with relevant information Responsible Eirik Andr Eids The person responsible for economy has to make sure that budget is created and to monitor our expenses The economy responsible must ensure that the project follows the budget and is within the economical frames set Responsible Olav Brandt Project Plan v 3 15 01 2011 ameo TECHNICAL RESPONSIBILITIES The analysis responsible is responsible for that all use cases and classes are analysed that a functional architecture is developed and that an analysis document is created and maintained Responsible Marius Haraldseth The design responsible must ensure that the system is described through classes objects state diagrams and activity diagrams that GUI is designed as well as ensur
71. ck FIGURE 5 2 SEQUENCE DIAGRAM FOR FETCH PDM Design Document v 2 11 01 Jun 2011 5 1 PARSING The data received from the IETP is an XML format and to usable by the rest of the application it must be transferred to a different format that is easier for the application to work with There are three main options commonly used for parsing and representation of XML data that we have considered to use these are SAX DOM and data binding SAX Simple API for XML is probably the least suitable parser for our application It parses the XML from start to end with no possibilities to navigate back and forth through the file DOM Data Object Model is a more appropriate choice than SAX for our application it creates an object for each node or element and a navigable object tree Each node object knows about its parents children and siblings and its attributes XML data binding provides the same features as DOM but instead of generic node objects each XML element is mapped to custom Java objects The advantage is that these objects also can contain business logic and methods related to that exact object which is useful for our application Therefore this is the method we have decided on using and we are using the library XStream for data binding With XStream most of the mapping is done automatically and only requires manual mapping in special cases It also creates a full object graph as in DOM Data b
72. cles mvp architecture html last visited 16 Mar 2011 Design Document v 2 43 01 Jun 2011 6 Java DB Oracle and Sun http www oracle com technetwork java javadb overview index html last visited 25 Mar 2011 7 Relational Persistence for Java and NET JBoss Community HiberNate http www hibernate org last visited 27 2011 8 Hibernate Java Wikipedia En http en wikipedia org wiki Hibernate 9628Java9629 last visited 27 Apr 2011 Design Document v 2 01 2011 44 SCRUM PROCEDURES HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER CORENA A A i Buskerud Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 RT 3 1 1 Intention of this Document 3 1 2 S ES UII EM 3 1 3 ASSIBIYGG 3 PEMB NECEM 4 2 1 The Team is the Project nein 4 2 2 The Most Important Tasks are Done First 4 2 3 4 2 4 Rol sar NotiDeflnedua teet andra Sas 4 3 Scrum Project Planning in 5 3 1 Scrum Planning During the 5 3 2 Sprint m 5 3 3 Day to Day Planning
73. configuration file contains mappings for the drivers and connection for the database as well as a lot of other options both mandatory and optional Hibernate3 require these libraries in the build path the versions we have used A Hibernate3 jar Aantlr 2 7 6 jar commons collections 3 1 jar dom4j 1 6 1 jar javaassist 3 12 0 GA jar jta 1 1 jar slf4j api 1 6 1 jar slf4j simple 1 6 1 jar hibernate jpa 2 0 api 1 0 0 Final jar A hibernate validator 4 0 0 Beta2 jar validation api 1 0 CR3 jar We have used Hibernate version 3 6 3 Final Distribution Design Document v 2 16 01 Jun 2011 To use Hibernate we have created standard HibernateUtil class which generates SessionFactory for communicating with the database The SessionFactory shall only be created once and later on utilized in the communication with the database For each time we then communicate with the database we create a Session which we have to close at the end of the communication What happens when we perform save query to the database is that we first create transient object which we makes persistent with session save object Now the object is persistent but it is not saved until the query is committed To commit we use this statement session getTransaction commit The object s is are now saved as row s in the database and persistence is obtained Diagrams which present this are shown in fi
74. d to the user Other server side data is evaluated in the Logic Engine and is not something the client needs or should have access to There are two main categories of displayable data elements dialogues and collections of figures tables and multimedia objects either directly in a dmNode or as a number of procedural steps Dialogues are standard pop up dialogues whose content is decided the fly by the Logic Engine i e the content is completely dynamic procedural step can contain a number of displayable data including text figures and tables A list of procedural steps can be followed by an optional embedded dialogue Figure 4 11 shows a class diagram for display package handling Figure 4 12 shows a sequence diagram for display package handling I I lt lt use gt gt lt lt gt gt 1 t 1 FIGURE 4 11 CLASS DIAGRAM FOR DISPLAY PACKAGE HANDLING Analysis Document v 2 17 01 Jun 2011 eO 1 setDisplayPackage 2 generateDisplay Package Widd et alt display package contains stand alone dialogue 3 generatePopupDialogWidget alt T procedural step list is followed by embedded dialogue 5 generateEmbeddedDialogWidget AERA LL c 6 display FIGURE 4 12 SEQUENCE DIAGRAM FOR DISPLAY PACKAGE HANDLING
75. d to explain our application structure and configuration We have used UML for this and this was the main aspect of this subject We have developed a lot of analysis documents from the specification because of the size and complexity of the specification we used a whole Sprint for doing this Even though we used so much time on the specification there were hidden complexity which we at later stages discovered which also made our application even more complex and made us re analyse the design Most of the architecture analysis we did together as a group This gave us a good and stable architecture with input from all of us We worked a lot on a common whiteboard CLIENT SERVER 5 3 To develop an application with a client server relationship has been a bigger challenge than just to develop a desktop application without this relationship We had to make RPC services between these two components and for this we used the command pattern which implements an asynchronous call from the client to the server with a following callback TECHNIQUES 5 3 1 5 3 2 MAIN PROGRAMMING LANGUAGE In this project we have used Java as our main programming language in addition to some XML scripting We have used frameworks like Google Web Toolkit GWT with the Ext GWT GXT extension We tried out Spring in the start of the project but after some research later on we discovered that for what we were going to develop we didn t have to use it
76. determine if the lt dmThenSeq gt or the lt dmElseSeq gt is valid so that the correct next dmNode is displayed when the next button is pressed As a User I want all the proceduralStep proceduralStepAlt elements a dmNode to be displayed correctly on the screen so that the logic engine processes all proceduralStep and proceduralStepAlt elements before displaying them to calculate the correct display according to the S1000D specification As a User want a previous button so that can go back to previous steps As a User I want the next and previous buttons to be disabled if a lt proceduralStep gt contains dialog or dialogAlt so that the buttons are yeilding for the OK and Cancel buttons defined in the dialog elements As a User want the correct element from an element group such as lt dmNodeAlt gt proceduralStepAlt dialogAlt or messageAlt to be displayed based on the evaluation of the expression element As a User want all numberAction attribute values listed on the 510000 pDM specification to be supported by the logic engine As a User want to communicate with external applications so that the next appropriate step is automatically displayed As a User want the lt dmRef gt element to be processed correctly by the logic engine so that if the reference is another process data module the logic engine will execute it or so that if the ref
77. e Google Web Toolkit It will just scratch the surface and give an overview but it also provides sources of information for a more in depth study 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description GWT Google Web Toolkit framework from Google to write AJAX applications GX Ext GWT Java library for building RIA with GWT T RIA Rich Internet Application a web application with many similar characteristics as a desktop application AJAX Asynchronous JavaScript and XML se chapter 2 JavaScript Very much used scripting language for the web Not to be confused with Java programming language XML eXtensible Markup Language set of rules for encoding data machine readable format 55 Cascading Style Sheets used for design of web pages HTML HyperText Markup Language used to sew the webpage together with content Then use CSS to design it IDE Integrated Development Environment 5 Java Server Pages 1 3 AUTHOR S Eirik Andr Eids EAE Google Web Toolkit v 1 3 Gran 2081 ameo 1 4 ASSIGNED 3 1 Eirik Andr Eids AJAX Before we say too much about GWT we should take a look at AJAX The idea behind AJAX is to retrieve data from the server asynchronously in the background without interfering with the display or behaviour of the existing page 5 In reality it is a group of interrelated web development techniques used on the client side of interactive web applicat
78. e application will load this session from the state table See figure 4 8 for an activity diagram Analysis Document v 2 01 Jun 2011 eO 14 4 4 3 FIGURE 4 8 SAVE SESSION EXPRESSIONS Expressions are what truly separate process Data Modules from other Data Modules They contain logical operations and functions that need to be evaluated by the Logic Engine according to the spec Expressions are used for applicability branching validating user entry and more The functionality of a single lt expression gt is decided by the state of its child elements An lt expression gt element may contain one of the following e Four types of operator Boolean number set string e Five types of function Boolean number set string substring e Six types of value Boolean string real integer set no value variable reference The operators and functions are further represented by several dozen operations and actions several of which have multiple parameter and return types When the Logic Engine encounters an lt expression gt element while traversing the process Data Module it is sent to an Expression Evaluator for evaluation The Expression Evaluator checks the type of data the expression contains and performs the appropriate action The result is returned to the Logic Engine which then executes the next step based on the result Figures 4 9 and 4 10 show a class diagram and sequence diagram for
79. e can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT This project plan contains all of the information on how we are planning on executing the project It describes the assignment goals limitations and the plan and strategy from our first presentation in the beginning of January and until delivery of the finished product in mid May 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Data Module Container of data information Process Data One of the module types specified in the S1000D standard Module Contains logic rules and statements combined with data modules PDM Process Data Module HiBu H gskolen i Buskerud IETP Interactive Electronic Technical Publication XML eXtensible Markup Language 1 3 AUTHOR S Arild Oldervoll AOL Marius Haraldseth MHA 1 4 ASSIGNED Arild Oldervoll AOL Pro
80. e steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT The analysis document will contain documentation describing the background for the decisions we make regarding the analysis and descriptions of the decisions themselves 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Process Set of instructions and conditions being executed Data Module Container of data information 1 3 AUTHOR S Olav Brandt OBR Marius Haraldseth MHA Arild Oldervoll AOL 1 4 ASSIGNED Olav Brandt OBR Analysis Document v 2 4 01 Jun 2011 eO 2 510000 SPECIFICATION Our program will be developed according to the 510000 specification This sets number of requirements in terms of the features functionality and structure of our program The 10000 specification requires that our application contains logic engine which utilises state table The primary job of the logic engine is to determine what to display next It interprets and executes process Data Modules The state table is a collection of variables and their values The logic engine must be able to populate store retrieve update and delete state information in the state table The logic engine must use values from this table in branches loops and to evaluate expressions
81. eb based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 INTENTION OF THIS DOCUMENT 1 2 This document will elaborate on what Scrum is and how we use it in our project Scrum is an agile software development methodology that was introduced in the 90 s and has become very popular Scrum has a strong focus on the customers and developers and the customers will be strongly involved in the project throughout its lifecycle The team of developers are also the project manager and they are doing most of the planning of the project The project is divided into iterations called Sprints AUTHOR S 1 3 Arild Oldervoll AOL ASSIGNED Arild Oldervoll AOL Scrum Procedures v 1 04 Jan 2011 armeo 2 1 WHY SCRUM Scrum has several advantages Following is a description of some of the advantages that are most important to us in Ameo THE TEAM IS THE PROJECT LEADER 2 2 The amount of work to be done in a Sprint and what work to do is discussed between the team and the Product Owner The team then commits itself to the Sprint goal and is equally responsible for achieving this goal before the end of the Sprint The team can use any means necessary to achieve the desi
82. ecification to proceed to The documentation have been a little difficult to determine how far we should go in this Scrum project where the balance should be but now in the end I am very happy and proud of what we have both developed of the application and the documentation we have produced think Scrum has been a very good development methodology and that we have kept to it as much as we possibly could do This way of doing a project is also a new way in concern to everything have learned here at HiBu 7 3 EIRIK ANDR EIDSA In this project have especially learnt that things do not always go as one believe plan or hope also see how privileged you are when you re in a group that is so incredibly nice and good at adapting itself when you are so unfortunate to end up in a hospital in the middle of the project This has made me able to do what could and been capable of Project Review v 1 15 01 2011 eO project methodology chose has made it relatively easy to adapt to this situation and feel we ve all learned a lot from it I got sick pretty much exactly at the time the development was about to start Because my presence got pretty unstable I was not calculated for the planning of the Sprints but rather considered bonus if I managed to get anything done on User Story I was assigned Which I did A lot of my responsibilities for this entire project have been the graphical parts of basically ev
83. ecifications not just simply satisfying our preconceived expectations As far as possible we will try having different people developing and black box testing a piece of software Testing can be approached either with dynamic or static methods Dynamic testing is where you test by running the parts of the software to be tested Meaning the tests examine the program behaviour watching how it responds to given specific input Static testing on the other hand does not involve actually using the software Instead work produced during development is read reviewed and checked For instance reading through the requirements and making sure they fit the user s wishes or testing that an algorithm is valid by manually inspecting and analysing it Quality Assurance v 1 6 04 Jan 2011 am I 3 3 Although our testing will be largely dynamic we ll also perform some static testing by doing code reviews After the initial completion of a programming task the developer will send his code to another team member for review This other team member will pass this reviewed and revised code along to a third person who once finished will send it back to the original developer for his final review FUNCTIONAL TESTS For our dynamic testing of functionality and functionality derived areas we will follow a bottom up strategy Meaning we will begin at the bottom testing small software units and then work ourselves up testing subsyst
84. een to find a balance between Scrum s documentation requirements and the school s documentation requirements the solution to this has been to include the documentation as part of the product we are developing Arild and Olav have more experience regarding documentation than Marius and Eirik since they had the subject Basic Game Programming In a real Scrum project we would have started developing almost immediately We would probably have used less than one Sprint to map the most basic User Stories for what we would develop before the real development started We had our own project room at HiBu room C171 This has been a perfect room for our project just big enough In January we got the horrible message that Eirik had got cancer of type osteosarcoma This is a very aggressive type of cancer and Eirik started an intensive treatment which would last for approximately six months This would of course affect our project as well Since we used Scrum which is a very agile development method we have solved this better than we could have done with any other project model We had not used a lot of time planning for things who would now have been a waste Instead we have adjusted our work from that point and onward None of the work we have done was a waste the only thing that was influenced is how far down the Product Backlog we will reach When that is said Eirik has done a fantastic work even though he has been ill and absent for treatments a
85. ehensive model features that are not particularly desired by our small team Another possibility is the so called Extreme Programming model XP Like Scrum belongs to the Agile family of development methods but is too lightweight to be the ideal model for our project and the documentation it requires Our project provider CORENA uses Scrum as their development model and they have expressed a wish for us to do so as well Following are some central features of Scrum ROLES Scrum defines a number of roles all of which are divided into two main categories of stakeholders pigs and chickens The pigs are the people who are committed to the product and its development while the chickens are the customers and non team managers The Pig roles are the ScrumMaster the project manager in traditional methodologies the Product Owner the voice of the customer responsible for prioritising requirements and the Team the actual developers Prestudy Report v 2 19 05 Jan 2011 ameo gt 10 2 5 5 10 3 development work Scrum is done iterations called Sprints This is where the iterative and incremental part really shows itself A Sprint typically lasts 2 4 weeks and should usually deliver at least one fully completed feature of the product potentially ready for release We will use Sprints lasting 3 weeks It is not allowed to alter the product backlog the Team has commi
86. ems and larger pieces of software made up from the smaller units This of course corresponds to the standard way of doing software development in object oriented programming Some modifications and or additional steps will be necessary as we re not following a linear development model The basis of our testing will be the unit testing of classes including their methods In short the point of a unit test is the testing of a unit class on its own in isolation By specifying different input and the output that should be the result you are able to test if your unit performs as expected It also makes refactoring code much less scary as you can constantly test to see if your changes broke the class As a side note because the unit should be completely isolated you only want to find errors in the unit you re testing any dependencies will need to be faked mocked by the use of interfaces and dummy objects a demand that places certain requirements on the way your classes are designed By verifying that all our units are working correctly the testing of the next level should be limited in complexity because the problem area is reduced to the interaction between tested units This again should help in the same way with the testing of the next level after that which is the interaction between tested subsystems Additionally having a full suite of unit tests will certainly be helpful when doing regression testing checking to see if anything wa
87. en i Buskerud 2010 Unit testing Wikipedia http en wikipedia org wiki Unit testing last visited 14 Dec 2010 Integration testing Wikipedia http en wikipedia org wiki Integration testing last visited 14 Dec 2010 System testing Wikipedia http en wikipedia org wiki System testing last visited 14 Dec 2010 Acceptance testing Wikipedia http en wikipedia org wiki Acceptance testing last visited 14 Dec 2010 Test automation Wikipedia http en wikipedia org wiki Test automation last visited 14 Dec 2010 Manual testing Wikipedia http en wikipedia org wiki Manual testing last visited 14 Dec 2010 Software testing Wikipedia http en wikipedia org wiki Software testing last visited 14 Dec 2010 HIGH LEVEL ACTIVITY OVERVIEW HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER A AND HOGSKOLEN i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt Activity Number Activity Name r n cae COO RR _ High Level Activity Overview 3 Ar 601 PROTOTYPING 602 PROGRAMMING 700 QUALITY ASSURANCE 701 TESTING 702 DOCUMENT REVIEW High Level Activity Overview v 3 3 ameo VISION DOCUMENT HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER A Wn i Buskerud Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt
88. ent Server 15 6 3 1 EE 15 Data Object Model DOM uuu 15 Database sen NT 16 8 1 allen 16 8 1 1 Defi intI fiS 17 8 2 Apache Derby sage 17 8 3 State Table Database Model 18 8 3 1 Gatebiler de 18 8 4 State Table Application Structure 19 8 4 1 Open and Close Hibernate Session 20 8 4 2 Start a New State Table Session and Saving to State Table 20 01 2011 8 4 3 Delete State Table Session 1 23 8 4 4 Delete States and 1 24 2444 1 entente nnne 24 8 4 5 Fetch States From the State Table 25 8 4 6 Fetch Variables From the State 26 9 Saving and Loading 5 27 9 1 SAVE SESSION m C 27 9 2 Load S SSION E 29 10 Display Package 2 31 10 1 Widget Building And Type Builder Mapping
89. er with all the new challenges and considerations this implies We want to learn good and practical procedures for communicating with customers so they get what they want instead of what we think they want and we want our customer to spend a minimum amount of resources on this communication Project Planv 3 01 2011 ameo gt 10 4 1 PRECONDITIONS FOR THIS PROJECT KNOWLEDGE AND SKILLS REQUIRED 4 2 To start this project we need to familiarise ourselves with the technologies it will require and we need to understand the assignment The project requires some technologies which we haven t used before like Spring Framework and Google Web Toolkit Since our product will be stand alone web based application it will be an advantage that we have experience with web development in some way or another in the past We also need knowledge acquired from our study at HiBu so far including but not limited to programming software analysis and design project control and planning and networks SOFTWARE 4 3 We need to make sure we have access to all the software we are going to use including the IDE text editing software software for source version control XML editing tools time tracking tools a spreadsheet program and so on We also need a server up and running for the source version control our website and to run our application on DOCUMENTATION REQUIRED BY DEVELOPMENT START 4 4 We will begin development
90. erence is not to another process data module the referenced data module is sent to the IETP As a User I want the logic engine to handle failed evaluations and error conditions occuring while evaluating expressions as defined in the specification Product Backlog Page 2 Ameo Product Backlog Product Backlog CORENA S1000D 4 0 Process Data Module Renderer Priority Id Estimate Sprint UserType Story Story Type As User I want lt table gt elements to be displayed when specified in dmNode As User I want message elements to be displayed when specified in dmNode As User I want lt figure gt elements to be displayed in the main screen with the actual content of the element displayed As User I want lt multimedia gt elements to be displayed in the main screen As a User I want the logic engine to enter a loop where it is specified by a lt dmLoop gt element until the lt expression gt evaluates to false As User I want warning message to be displayed if the process Data Module contains unsupported elements so that I will be aware of the problem As a User I want information about runtime errors to be recorded in detail so that it is possible to reconstruct the errors in order to pinpoint the problem As User I want all runtime errors to be detected and handled by the logic engine As User I want all runtime errors to be detected and handled the logic engine As a User I want a web ba
91. erences Document Review by all team members Vision Document v 2 06 Jan 2011 am EL 1 INTRODUCTION Our assignment to develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT It is two main objectives for the vision document 1 1 1 OBJECTIVE 1 To clarify the assignment scope and terms with the employer i e CORENA NORGE AS 1 1 2 OBJECTIVE 2 To get the assignment and project group approved by HiBu Kongsberg 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Process Set of instructions and conditions being executed Data Module Container of data information Interactive Electronic Technical Publication Technical manual prepared in digital form on a suitable medium
92. ers can then discuss what went well and what did not go well in the Sprint The majority of the Sprint review is spent with team members presenting functionality answering stakeholder s questions regarding the presentation and noting changes that are desired At the end of the presentations the stakeholders are polled one by one to get their impressions any desired changes and the priority of these changes The Product Owner discusses with the stakeholders and the team potential rearrangement of the Product Backlog based on the feedback Stakeholders are free to voice any comments observations or criticisms regarding the increment of potentially shippable product functionality between presentations Stakeholders can identify functionality that occurs to them as they view the presentation and request that the functionality is added to the Product Backlog for prioritisation The ScrumMaster should attempt to determine the number of people who expect to attend the Sprint review meeting and set up the meeting to accommodate them At the end of the Sprint review the ScrumMaster announces the place and date of the next Sprint review to the Product Owner and all stakeholders 5 SPRINT RETROSPECTIVE MEETING The Sprint retrospective meeting is time boxed to 3 hours tis attended only by the team the ScrumMaster and the Product Owner Product Owner is optional The meeting starts with all team members answering two que
93. erything Logos presentations documentation GUI etc This is work I enjoy a lot and I think we succeeded pretty well with it 7 4 OLAV BRANDT The work on SLRP has been a terrific opportunity to utilise the skills and knowledge I have accumulated during my three years as student at HiBu As soon to be computer engineering graduate the pure software nature of our project assignment was an ideal match As someone interested in the entire process of software development getting to follow an entire life cycle of such large project as a key participant has been an excellent experience The technical challenges have been of multiple varieties and not far between I m especially partial to those existing in the higher levels of abstraction of which there have been plenty during this project Making sure the solutions we choose are well thought out and properly designed has been an area I ve spent a lot of time and energy Of course in a team of our size and especially with a team using Scrum the work doesn t stop there Implementing the design also makes up a large part of the time l ve spent on development and in reality the process is more organic and intertwined than it might appear on paper Going back and forth between analysis amp design on the one side and prototyping and implementation on the other has been the MO for the majority of the time The ability to bounce ideas between team members getting and providing inpu
94. es use of paragraphs use of colours naming of files and more The document responsible must ensure that all documents that are produced by Ameo follow this standard A budget of our expected expenses are documented in Budget 7 These expenses are to be covered by CORENA and therefore it is important that we keep track of our expenses and make sure that we stay on budget The Code Standard sets the standard for code writing in Ameo regarding such things as formatting naming of variables and functions and so on The code responsible must ensure that all the code produced by Ameo follow this standard Project Plan v 3 19 01 Jun 2011 ameo gt test reports will document that the tasks are completed but it is also where the tasks described in detail The Sprint Backlog only contains a short description title of the task Project Plan v 3 20 01 2011 ameo gt REFERENCE S 1 Scrum Planning and Product Backlog Ameo 2010 HiBu 2 Prosjektplan Bj rnar Lintvedt Thomas Fiskum Bembridge Kjetil Skaret Mads Haugsmoen Tahreem Butt amp Robert Grande Scrat 2010 HiBu 3 Prosjektplan Lone Knutsen Arne Kristian mellem Zoran Vukobratovic Ole Marting Gr tterud Thomas Transeth KDA Rivet 2010 HiBu 4 Product Backlog Ameo 2010 HiBu 5 Document Overview Ameo 2010 HiBu 6 High level Activity Overview Ameo 2010 HiBu 7 Budget Ameo 2010 HiBu 8 10000 Issue 4 0 10000 http public
95. f the functionality for the application Sometimes we discussed a little too much before we started developing and prototyping and in this phase we often came up with either other challenges we hadn t thought of or smart solutions This was something we later in the project changed and used more prototyping in parallel with analysis and design This is the way it should be in Scrum as well TECHNICAL The technical was in addition to our development methodology the absolutely biggest challenges of our assignment The logic engine and renderer we should develop is based on specification which is very big and complex It is almost 2800 pages and to retrieve all of our requirements in our project User Stories from this specification has been a real challenge We used one Sprint just to analyse the most important parts of this application and document this but it turned out that one Sprint was not sufficient to achieve accurate estimates and combined with our lack of experience in estimating this led to too low estimates Therefore to develop the logic engine and support for elements in this specification is a vast task which we have been noticing ANALYSIS AND DESIGN When it comes to analysing and designing our tasks the knowledge from our subject Analysis and Design came in handy In this subject we learned a lot about the different Project Review v 1 11 01 Jun 2011 am 5 2 forms of diagrams which we have use
96. ggest issues in developing for the web is browser testing and adaption When creating web applications support for each type and version of browsers must be developed individually To adopt all the different browsers often takes a lot more of the developer s time than to create the core application With GWT this problem is gone The GWT compiler compiles one special piece of code to each browser automatically so that it has the same appearance and behaviour in all browsers Now we can talk about WYSIWYG What you see is what you get The developer can spend the time on real development instead of troubleshooting and hacking to get it to work everywhere With the use of a good IDE like Eclipse there are very good possibilities for testing of code with breakpoints and unit testing using JUnit like we are used to in Java Google Web Toolkit v 1 5 arson 2081 ameo 4 2 1 DEVELOPER MODE 4 3 One very nice feature of GWT is that you can test your code almost on the fly in the browser with a GWT developer plugin in most modern browsers This is called developer mode At this stage we are only using Java and HTML CSS The JavaScript is first made at compile time at the end USER EXPERIENCE 4 4 The user experience is in general very good in GWT applications First of all you get rid of problems with back and forward buttons in browsers Have you noticed that some places it says something like Do not press backwards or your cred
97. gure 8 3 and 8 4 in chapter 8 4 1 Be aware that we in this chapter are talking about two different kinds of sessions The first one which is mentioned above is a Hibernate session which is created every time we interact with the database The second is one run or session in the state table which represents one run with the program when a user opens a new manual It can be saved and continued by another user at a later time DEFININTIONS Transient object The object is not represented in the database Persistent object The object is represented in the database Detached object The object has been persistent but is not anymore It is in a stale state 8 2 APACHE DERBY We will use Apache Derby as our database system since we only need a small embedded database in our application Derby is a small and easy to use full featured relational SQL database It is also free under the Apache license Derby is portable and 10096 Java and it is only 2 5 MB We use a Derby client database To use this we need one library in the build path derbyclient jar Design Document v 2 17 01 2011 8 3 STATE TABLE DATABASE MODEL SLRP s state table database model State Table tate id INT variable id INT v re run id INT ps value id INT state nr INT run id INT 2 start date DATE Q value 255 state ref 45 Q st variable V ARCHAR 45 O pdm ref
98. hat the state of our application is and other important information Content chapters 1 Introduction 2 Server Components 3 Client Components 4 What We Support From The Specification 5 The Build 6 References Document Overview v 3 13 01 Jun 2011 am e0 File name Document pdf Document Overview v 3 Gr dun 2013 ameo 14 PRESTUDY REPORT HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 FO CU CHONG em 4 1 1 Intention of this DOCUMENT REPE 4 1 2 Synonyms Acronyms and Deflinitions 4 1 3 PUNOI 6 lu DT DIRE 5 1 4 5 5 Project 6 2 1 Scrum Project Management 6 2 2 Time Tracking co ede aun 6 2 3 Document Sh ring passat 6 2 4 Communication e E RENE A EE 7 2 5 Source Code Shame 7 2 6 Document Editing Software 7 27 JAVA IDE S 7 Related Projects siembra 8 3 1 Related Internal Projects at H gskolen
99. he states defined through the process Save current position with history before exit The support execution of the logical document should be according to the international S1000D specification issue 4 0 that can be integrated with CORENA s products implementation should be based on the same technology that the CORENA 510000 Web Client and CORENA IETP products are based on Theinterpreter is supposed to execute in an independent web based IETP application based on Jetty Tomcat S1000D specification resources 8 Relevant chapters 4 11 Information management Process Data Module 7 7 1 Guidance and examples Logic Engine 7 7 2 Guidance and examples Process Data Module Nodes Common technology platform for the CORENA S1000D Web Client and CORENA IETP products is Java XML XSL Spring Framework Web services Ajax GWT Google Web Toolkit DOCUMENTATION HiBu and CORENA require some documentation from us to be delivered before each presentation A full description of the documents can be found in Document Overview 5 Table 2 1 shows a list of the documentation that will be delivered Project Plan v 3 01 Jun 2011 ameo gt Document Delivered by presentation 1 1 1 1 1 TABLE 2 1 DOCUMENT OVERVIEW 1 1 2 3 2 3 2 3 2 3 3 3 3 3 2 3 2 3 2 3 3 1 2 3 1 2 3 3 Project Plan v 3 01 Jun 2011
100. hout having to check its type and call the correct method in the correct class 10 2 DIALOGUES Dialogues are one of the kinds of display package data and are built using the TypeController lt Type Builder gt structure framework The dialogue building implementation of this structure framework consists of e DisplayPackageElement interface and the type of its implementers e g DialogGroup or Menu The WidgetBuilder interface with method buildWidget DisplayPackageElement element The TypeController extension WidgetController WidgetController also implements the WidgetBuilder interface and uses the buildWidget method to send the DisplayPackageElement to the correct WidgetBuilder The dialog element itself is a DisplayPackageElement with a WidgetBuilder implementation DialogBuilder However in order to keep the client as simple as possible dialogues are never children only top level elements This means they won t be automatically built by other WidgetBuilder implementations instead they ll always be built directly by the display package handling software Design Document v 2 31 01 Jun 2011 TypeController lt Type Builder gt structure framework is especially useful for building dialogues as the lt dialog gt element consists of complex children that themselves may consist of complex children and so on By having these implement the DisplayPackageElement interface a parent class may
101. i Buskerud 8 3 2 Related External Projects 2 3 oo ED reete ete 8 NASCE 9 4 1 EtiplOy8r cit 9 4 2 S1000D Process DM ec 9 4 3 Benefits to the 510000 Process 11 TRE cundum 12 5 1 OUP PROJECT EE NE 12 5 2 Requirements for the Logic Engine 12 5 3 Other REQuireMents 13 Alternative Solutions RR 14 6 1 Google Web Toolkit Alternatives 14 6 1 1 E A 14 6 1 2 MB CL 14 6 2 PD a CMC 14 Consequences for Each Participant of the Project if We Start or 15 7 1 Pros and Cons for CORENA niri intere 15 Prestudy Report v 2 05 Jan 2011 ameo 7 2 Cons for 5 15 8 Problems and 16 8 1 Milestones a H 16 9 High Level Activity Overview
102. ign Document v 2 35 01 Jun 2011 lt lt use gt gt Ibi Sane 1 lt lt use gt gt IWidgetBuilder A push button is used to launch a so called associated action a new dialogue or an external application This is something that occurs on the server so the display package client version is of limited complexity The buttons used for submitting cancelling resetting a dialogue are not lt pushButton gt elements Figure 10 6 shows a class diagram for the building of push buttons Design Document v 2 36 01 Jun 2011 FIGURE 10 6 CLASS DIAGRAM FOR BUILDING PUSH BUTTONS PROMPTS AND MESSAGES Design Document v 2 The 10000 specification uses the lt prompt gt element to present text information to the user prompt is made up of several different text elements and can be positioned relative to its parent which is always another display package element The ability to position the prompt affects the layout of the parent and the order of its children This means the builders of certain parent elements also has to treat the lt prompt gt element when building their widgets The text elements in a prompt are built individually using the TypeController lt Type Builder gt structure framework An interface TextElement is implemented by all text element data classes and their type is used as the key in the map An HtmlTextBuilder interface is implemented by
103. ill be performing from unit testing to system and acceptance testing Content chapters 1 Introduction 2 Document Review 3 Software Testing File name Quality Assurance pdf PROJECT PLAN The project plan is a layout for the rest of the project as well as a further continuation of the documentation produced in the prestudy report Subjects described here include amongst others the goals limitations preconditions and organisation of the project It is then followed by a list of 3 week Sprints with start and end dates an estimated amount work hours available and an initial goal for the time period Content chapters 1 Introduction 2 TheTask 3 Project Goals and Limitations 4 Preconditions for This Project 5 Project Organisation 6 Roles and Responsibilities 7 Project Control 8 References Document Overview v 3 7 Gr dun 2013 ameo File name Project Plan pdf 2 7 TECHNOLOGY DOCUMENTS Technology descriptions are separated into individual documents They are meant to provide a basis for the understanding and use of technologies we will be utilising and are written primarily for our own purpose GWT is to quote its technology document an open source Java based framework for creating AJAX applications The document goes into more detail on what GWT is why we re using it some disadvantages and suggests some further reading Spring is a Java framework The technology document explains further wha
104. in January after our first presentation Before this we must have a Product Backlog which will be our requirements since we are working with Scrum We need to have developed test cases we need technology documents and we need this project plan document For our Product Backlog to be finished we need to have developed all of the high level user stories this will be done in cooperation with our employer CORENA A vision document which functions as an application for our project is already written and approved by both HiBu and CORENA See Table 2 1 for a complete overview of all the documentation to be delivered FACILITIES 4 5 We need a project room where we can meet to work on the project have our Scrum meetings internal mentor meetings and a place for us to have Scrum utilities like the task board EXTERNAL RESOURCES We need support from and rapid contact with our assignee CORENA for this project to succeed Tommy Sivertsen from CORENA is the Product Owner and our external mentor and Project Plan v 3 11 01 Jun 2011 ameo gt we need to cooperate closely with him to prioritise the Product Backlog see 41 and to get the technical and domain expertise we need to be able to develop this product successfully 5 PROJECT ORGANISATION 5 1 THE PROJECT GROUP The project group consists of four members all studying computer engineering at HiBu Two of the group members study embedded systems while the other two study si
105. inding requires that a class is created for each element that is supposed to be mapped The classes contain the legal attributes and child elements stored as variables as well as getter and setter methods for each of these These classes can be found in the package com corena ietp slrp server pdm elements as sub packages These classes are mostly a representation of elements specified in the 10000 specification as documented by AMEO the 510000 documents The class PdmElementGenerator is where the actual data binding takes place as shown in Figure 5 3 Design Document v 2 12 01 Jun 2011 FIGURE 5 3 FETCHING AND DATA BINDING 6 CLIENT AND SERVER 6 1 CLIENT Our client component is the application frontend and will hold the view and presenter parts of the application This is the mainly where GWT will be used in our application and the source code will be compiled into JavaScript The main client components are shown in Figure 6 1 Proxy Desig l EA 01 Ju FIGURE 6 1 Client components of SLRP 6 2 SERVER Our server component will be the component containing the model Most of the functionality will be contained here The model or server if you d like contains the logic engine which is our main and most important functionality of the application Other parts of the model are the state table the XML handler and the communication component D sign Server component J
106. ing companies regarding software for viewing configuration management maintenance and production of bigger maintenance documentation in the Project Review v 1 6 01 2011 world They hold resources which might the world s strongest collection of 10000 domain experts CORENA is working with customers like Pratt amp Whitney Bombardier Goodrich Eurocopter BAE and KDA Complex reality made easy Project Review v 1 7 01 Jun 2011 am 3 SCRUM DEVELOPMENT METHODOLOGY AND ACCOMPLISHMENT Throughout our project we have used Scrum as our development methodology The first reason we thought of Scrum was because CORENA use it as their methodology CORENA suggested that we used it and we took a deeper look into it and thought it looked interesting and we wanted to try something new and got the school s approval In the beginning we used much time gathering information about Scrum and trying it out During the first semester we got pretty much into it and by the first presentation we had gotten rid of most of the initial problems Because we are the first group at HiBu to use pure Scrum this has been a challenge both for us and for the school because Scrum doesn t produce a lot of documentation and without documentation the foundation for our grades would be very limited This required some more documentation from us than what s traditionally produced by our development methodology So a real challenge has b
107. ing on the menu type overwrites adds or removes the element id s from the menu state e User Entry A user entry sets variable value which together with the element id is submitted when the user entry text field is updated and stored in the model server Dialogues Clicking the Submit button in dialogue message submits the element id to the model server where all the assertions validations and other expressions defined by its child elements are evaluated 10 6 WARNINGS AND CAUTIONS Warnings and Cautions with the elements warning caution and warningAndCautionPara are supported as display package and text elements Building them on the client was complicated by the warningAndCautionPara element differing from other text elements Instead of separating pure text into its own element like lt paraBasic gt in prompt lt warningAndCautionPara gt puts its pure text directly in the element as a value similar to HTML To make this work with the framework already in place warningAndCautionPara is represented as both a text element containing pure text and a Display Package element holding the list of child elements including the text element version of itself Furthermore a lot of functionality was shared between warning and caution and has been abstracted into superclasses Both the data classes for warning and caution as well as their builders are extending a cla
108. ing that design document is created and maintained Responsible Eirik Andr Eids The code responsible must ensure that code standard is developed and adhered to He will also have general overview of all technologies and be able to help the team members using them Responsible Arild Oldervoll The test responsible has to make sure that a test strategy and specifications are developed and adhered to and that all tests are performed as specified Responsible Olav Brandt Project Plan v 3 16 01 2011 ameo gt Zl PROJECT CONTROL SPRINTS 752 In Scrum the iterations are called Sprints and by standard Sprint has duration of 4 weeks but anything from 1 4 weeks is considered normal In our project we have been using Sprints of 4 weeks for the pre study phase but after the first presentation when development starts we will reduce the sprint duration to three weeks In Scrum the Sprints are time boxed meaning that if there are remaining tasks in Sprint the Sprint will not be extended but the tasks not done will be dropped and usually moved to the next Sprint Any features not completed during the Sprint will not be demonstrated during the Sprint review SPRINT OVERVIEW The amount of hours available in each Sprint is possible to estimate but at this time it is not possible to estimate accurately what will be done in each Sprint see the document Scrum Planning And Product Backlog 1 I
109. input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 INTENTION OF THIS DOCUMENT 1 2 The Design Document will contain a closer in depth overview of the application we are creating S1000D Logic Engine and Renderer for Process Data Modules SLRP It is important to notice that this document only covers the main architecture and design of the parts that has been developed so far SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Data Module Container of data information process DM Process Data Module Model View Controller G Graphical User Interface Process Set of instructions and conditions being executed Model View Presenter Remote Procedure Call S Simple API for XML Data Object Model MVC MVP Ul DB RPC AX DOM j L XM Extensible Markup Language 152 AUTHOR S Marius Haraldseth MHA Arild Oldervoll AOL Olav Brandt OBR Design Docu
110. ions Normally we would use HttpRequest which would refresh the whole page AJAX on the other hand uses XMLHttpRequest which is an object that is used for communication between the server and the browser It should also be mentioned that IE6 and earlier versions don t support this object With only one little AJAX application on a webpage it would work very well with just a few simple JavaScript lines of code The problem comes with large projects like Google Docs Wave or Gmail which could be very difficult to write in JavaScript This is where GWT comes into play WHAT IS GWT GWT is an open source Java based framework for creating AJAX applications When developing applications using this framework you write Java similar to Swing applications and when compiled the client side code is converted to HTML CSS and JavaScript GWT also includes many ways to communicate with the server all asynchronous which is the definition of AJAX applications We are going to use the Spring Framework at the server side which is one of the main features in GWT 2 1 See reference 1 and chapter 4 5 WORKFLOW 3 2 The workflow using GWT is very practical and would look something like this Write Java code with use of GWT modules and CSS Test with the help of JUnit and developer mode in Eclipse No JavaScript yet Compile the project to JavaScript Finalise webpage working in any browser based on HTML JavaScript and CSS WHAT IS
111. it card will be charged twice In GWT you can control where it is possible to use these buttons and where it is not Put in another way you say when to put a bookmark in the browsing history that the browser uses for this function PERFORMANCE 4 5 Performance is a very big key in user experience GWT has done something that is quite smart Normally you have to do a lot of server calls to retrieve a webpage It is all these calls that take most of the time The browser first calls for the HTML index page then the browser finds some scripts it has to call one at the time then images style sheets and so on GWT makes this more efficient so the browser can use fewer calls Normally you also have to download all the specially made code for all of the browsers In GWT you just get a package that is made for your specific browser These two key features help very much when it comes to the performance You may also think that auto generated JavaScript code is slower than hand written but that is actually not true The performance is usually better or on the same level dependent on the developer s skills SERVER SIDE GWT is very robust when regarding what servers it can work with it can use many different server solutions It also works with the Spring Framework 1 JSP and Jetty Tomcat which we are going to use GWT uses something called Servlets that is a part of JSP A Servlet is used to pass data dynamically between the server a
112. ject Plan v 3 01 Jun 2011 ameo 2 5 process Data Module process DM is an XML schema that describes different steps information process Based on input from interactive user dialogs sensors applications external services and states saved from previous steps the logic engine decides the next DM and or step in the sequence Decision points branching looping and selective filtering are supported in the S1000D process DM The process DM can be seen as a process flow script where the return values define the next action The S1000D process DM represents procedural flow consisting of several DMs and or steps that are sequenced The process DM is input data that is processed in a logic engine The logic engine is an interpreter for the process DMs and throughout the process it defines states Our assignment is to develop this logic engine for the execution of a process DM s components Based on the components in the DM an interaction between the user and the IETP should occur see Figure 2 1 The process DM is especially well suited to represent procedural data fault data and descriptive data dmElseSeq dmNode dmRef proceduralStop ICN S 1000D A 070201 A D02 16 0001 1 A 002 01 FIGURE 2 1 PROCESS DATA MODULE CONCEPTUAL DIAGRAM Project Plan v 3 01 Jun 2011 gt 2 1 WHAT ARE THE REQUIREMENTS FOR THE LOGIC ENGINE 242 Previous function Next function Logt
113. kewise connected to non functional requirements including aspects like stability usability and performance HOW DO WE TEST In testing process all of these areas must be covered However as opposed to normal industry project where developers and testers are separate people with separate roles we need to fill both pairs of shoes Of course that doesn t mean we don t have to perform all of the necessary tests but our testing strategy is influenced by this reality There are two main types of testing techniques correlating to the tester s point of view when looking at the software White box testing refers to tests done from the inside In this technique the tester has a full view of the inside of the software i e the source code and is testing the inner workings of it Black box is the opposite where the testing occurs from the outside Here the tester cannot see the insides of the software but is testing functionality described in the requirements White box testing requires technical knowledge of programming and of the inner workings of the software and is commonly performed by a developer Black box testing requires no such knowledge and often follows pre written test cases with some chosen input and expected output In a typical industry environment this is performed by a dedicated tester Since we will be doing both we need to be extra careful and make sure everything is tested properly according to the sp
114. king the load button in the application An event is then fired on the EventBus calling the remote procedure call service s getSessionList method An asynchronous call is now sent to the server s service implementation From CoreController a list is fetched from the state table and returned with the callback to the client In the client dialogue is created with presenter and view showing the list returned with the callback The user is prompted to select one and press the Open button new event is now fired on the EventBus to the RPC service s loadSession with the selected session name as an argument This method sends an asynchronous callback to the server In the server s service implementation the call is received in the loadSession method This method forwards the call with sessionName and stateTableController as arguments through CoreController which saves the stateTableController object and next through LogicEngineController and LogicEngine LogicEngine creates a SessionGenerator object which only lives in the scope of this method Here the loadSession method is run and the session info is loaded from the state table and the process Data Module is loaded from CORENA IETP Back in the LogicEngine the process Data Module is sent to the Renderer for getting the next DisplayPackage When this package is fetched it is returned with the callback to the client where view and presenter are being generated The curren
115. l View Presenter Fetch Pdm Client and Server Document Object Model DOM Database System Saving and Loading Sessions DisplayPackage Handling Expressions Reference s File name Design Document pdf Document Overview v 3 Clun 2013 ameo 11 3 3 DOCUMENT The Implementation Document will contain our implementation process javadoc code standard and decisions on lower level than design Content chapters 1 Introduction 2 Code Standard 3 Test Driven Development 4 State Table Database 5 XML Handling and Data Binding 6 JavaDoc 7 Reference s File name Implementation Document pdf The javadoc is the API documentation of the code in our application This can be found under javadoc SLRP Javadoc Document Overview v 3 Gr dun 2001 ameo 12 4 DOCUMENTS PRIOR THE THIRD PRESENTATION 4 1 PROJECT REVIEW The Project Review is a total review of our project how it has worked out things we could have done better etc Content chapters 1 Introduction 2 The Project 3 5 Development Methodology 4 What We Could Have Done Better 5 Technical 6 Goal Achievement 7 Self Evaluation 8 Conclusion 9 References File name Project Review pdf 4 2 HAND OFF DOCUMENT The Hand Off Document is a document intended for CORENA when they will take over the development of the application It is a document which will tell where we are in the development w
116. ld be in English CORENA wants us to use the Scrum development methodology Prestudy Report v 2 05 Jan 2011 gt 13 6 1 ALTERNATIVE SOLUTIONS In this project several parts are locked into the technology requirements from CORENA largest one is the S1000D standard which is the core of the project Therefore we only look at alternative solutions for the web user interface and web server alternatives GOOGLE WEB TOOLKIT ALTERNATIVES 6 2 CORENA wants us to use Google Web Toolkit GWT is a development toolkit for building and optimising complex JavaScript based applications They do so by translating Java to JavaScript that runs in the web clients There are other similar technologies like Adobe Flex Flash Microsoft Silverlight and Java FX They do much of the same so here we will discuss just one of these alternative solutions Adobe Flex Flash Adobe s technology is a highly productive free open source framework for building expressive web applications that deploy consistent on all major browsers desktops and operating systems by leveraging the Adobe Flash Player and Adobe AIR runtimes While Flex applications can be built using the Flex SDK in Eclipse Adobe Flash Builder software can accelerate development through features like intelligent coding interactive step through debugging and visual design of the user interface layout For the backend logic it is possible to use PHP Java etc F
117. le for the military market but lately it has also become available for the civil market CORENA is one of the three leading software companies in the world in their area and their goal and ambition is to become number one THE TASK A process Data Module DM is an XML schema which describes different steps in an information process Based on interactive user dialogs sensors applications and external services through an interface the logic engine decides the next Data Module and or step in the sequence Decision points branching looping and selective filtering are supported in the S1000D process DM The process DM can be seen as a process flow script where the return values define the next action The S1000D process DM represents a procedural flow consisting of several DM s and or steps that are sequenced The process DM is input data which is processed in a logic engine The logic engine is an interpreter for the process DM s and throughout the process it defines states Our assignment is to develop this logic engine for the execution of a process DM s components Based on the components in the DM an interaction between the user and the IETP should occur see figure 3 1 The process DM is especially well suited to represent procedural data fault data and descriptive data Vision Document v 2 06 Jan 2011 am eo ICN 51000D A 070201 A D0216 00011 A 002 01 Fig 1 Process data module conceptual diagram FIGURE 3 1 PROCESS D
118. learn some video and photo editing does training work out and sometimes he takes a ride to the track with his Subaru Impreza Marius has a sparkle for nice cars In his past he has done a lot of track and field and he has been doing shooting both shotgun and saloon rifle Marius did his compulsory military service in the army as a motor pool responsible at Terningmoen Elverum Marius is responsible for documentation and analysis Eirik Andr Eids EAE Eirik is from a farm in Eids almost as far west as you can get in Norway He moved to Kongsberg when he started his bachelor degree in computer engineering Eirik has a background in media and communication In his spare time he plays the piano cello and his Nikon camera is almost never more than an arm s length away on mountain trips all year around The areas of responsibility for Eirik during this project are web page and design Olav Brandt OBR Olav is the only one in this group who actually is from Kongsberg He has already finished a degree in political science and is now soon done with the bachelor degree in computer engineering like the rest of us In his spare time Olav likes to read books listen to music watch movies and play the computer game Super Meat Boy Olav s areas of responsibilities are economy and test 13 Project Plan v 3 01 Jun 2011 ameo 5 2 EXTERNAL RESOURCES AND 5 This project has four resources and co
119. lex and GWT provides many of the same features Flex is better at creating a nicer looking application faster but GWT is also a very good tool Most likely Java and GWT will be a faster working solution for our application and because this will be integrated with CORENAs systems it should support their technologies It would be nice to use HTML5 but is still under development and is not finished APACHE Apache web server is one of the most used and safest web server applications To get an even more light weight solution it is possible to strip Apache down or use another alternative completely However Apache is the standard and we feel it is the best choice Prestudy Report v 2 14 05 Jan 2011 ameo gt 7 CONSEQUENCES FOR EACH PARTICIPANT OF THE PROJECT IF WE START OR DON T 7 1 PROS AND CONS FOR CORENA If we start this project it means that CORENA might take some load off of their shoulders not having to develop this implementation of the logic engine for the S1000D process DMs themselves CORENA also gets an opportunity to see if we are capable and if we can be worth to hire CORENA will save a lot of money if we can develop a good implementation for them If we don t start the project CORENA will have to do the work themselves and they already have a lot to do They will not get to see us work and will therefore not know more about us in consideration of a future cooperation 7 2 PROS AND CONS FOR US
120. ll then travels from the client to the server via a service The server queries the IETP for the file which is returned to the client and shown in a content panel FigurE 4 5 class diagram for show pdm 5 shows the functionality s class diagram FigurE 4 6 shows the sequence diagram for the functionality FIGURE 4 5 CLASS DIAGRAM FOR SHOW PDM Analysis Document v 2 13 01 Jun 2011 eO 4 4 2 5 callback to client with sessionList 1 click 2 showSelectPdmDialog 3 getPdmReference 5 getPdm T display 6 getPdm FIGURE 4 6 SEQUENCE DIAGRAM FOR SHOW PDM SAVE AND LOAD SESSIONS It should be possible to save and load sessions in the application These features will be implemented in the state table see chapter 4 7 When saving the session a value will be set and the session info will not be deleted when closing the application See figure 4 7 for a sequence diagram of the server part 1 getSessionList 2 getSessionList 3 getSessionList 4 getSessionList 6 loadSession 7 loadSession 8 loadSession 9 loadSession 10 callback with display package FIGURE 4 7 SERVER LOAD A SESSION When loading a session a session list will be loaded from the state table and shown to the user for selection The user will select a session and th
121. m member answers 3 questions What has the team member done since the last daily stand up Scrum Procedures v 1 5 04 Jan 2011 armeo meeting what is the team member planning on doing until the next stand up meeting and has the team member any impediments that restricts him her from doing the planned work or slows him her down This can be anything from an algorithm that the team member is struggling with to a management member who has asked him her to do some additional work not related to the task Solutions to these impediments are not discussed during the daily stand up meeting but they are noted by the ScrumMaster and can be discussed after the meeting In general it is the ScrumMaster s responsibility to remove these impediments The purpose of this meeting is to let everyone get an insight into what everybody else is working on the general progress of the project and if they can help or get help from some of the other team members It s also during this meeting that tasks are assigned by the team members themselves At the end of a working day the hours actually used on tasks worked on and new estimate of the remaining hours are both entered into the Sprint Backlog From this a burn down chart can be produced which shows the progress of the project and the burn down of tasks visually This gives a good overview of the actual progression and the team can use this to easily see if they have to increase their effort or by other me
122. m does not take into consideration features and User Stories further down the Product Backlog and therefore these can be harder to implement at a later time without redoing the work already done Another strength is that it is the team itself that does the planning and time estimation and not a project leader This is because it is the team that works on the project every day and therefore has the best knowledge about the complexity of a new task and when and how it should be done A complex problem can often be almost impossible to plan detailed level because there are too many unknown factors and the time required to plan such complex problem increases almost exponentially with the increase in complexity But with Scrum there would normally not be spent much more time on planning than the time spent on the Scrum meetings The team finds a small part of the complex problem that they can start on to deliver a potential shippable product at the end of the first Sprint and has probably acquired more knowledge on how to proceed and what to do next at the end of that Sprint Scrum Procedures v 1 04 Jan 2011 armeo 6 1 CALCULATION OF TIME ESTIMATES IN SCRUM STORY POINTS 6 2 In the Product Backlog the time and resource estimate for the User Stories are given in story points This is a dimensionless number meaning it does not reflect a number of hours days or weeks to complete a User Story Rather it illustrates the com
123. member is able to do some work we will only count it as a bonus which will lead to more of the Product Backlog being completed Table Project Plan v 3 17 01 Jun 2011 ameo gt 7 3 7 1 Sprint overview gives an overview of the remaining Sprints the expected hours available and expected Sprint goals for those Sprints Sprint 10 11 Start Date 18 Jan 2011 09 Feb 2011 02 Mar 2011 24 Mar 2011 15 Apr 2011 11 May 2011 12 01 2011 End Date 08 Feb 2011 01 Mar 2011 23 Mar 2011 13 Apr 2011 11 May 2011 31 May 2011 09 Jun 2011 TABLE 7 1 SPRINT OVERVIEW Estimated hours available 220 160 180 240 230 360 200 Estimated Sprint Goal Analyse the 510000 structure and elements Display the data modules in the application Define architecture Create most important features of the logic engine Create remaining logic engine features Implement support for external applications Final Reports and Presentation The development is expected to be finished in the middle of Sprint 11 around May 17th The original estimate of 1760 hours of development is downsized to a total of 1390 hours A total of 489 hours were used during the 5 first Sprints so the total for the project is expected to be 2079 hours This equals 520 hours per group member with four group members but since the estimate is based on three persons from middle of Sprint 6 the actual estimate
124. ment v 2 5 01 Jun 2011 1 4 ASSIGNED Arild Oldervoll AOL Design Document v 2 01 Jun 2011 2 LAYOUT GUI VIEW We have made a decision for the user interface in our application It is an easy and intuitive layout In the guidelines from the S1000D specification it is said that Next and Previous buttons should be on top of the content panel but we have made a decision to put them in the bottom as we see this as a more logical solution Our content panel will be a scrollable panel so the Next and Previous buttons will always be visible Open Load mi version 1 0 encoding UTF 8 7 gt childElement name 000 sependency OKMXDXC gt Prewous Next FIGURE 2 1 THE VIEW FOR OUR APPLICATION SLRP Design Document v 2 7 01 Jun 2011 3 SYSTEM STRUCTURE Our application is a part of a larger system It is accessed through a web browser on a user s computer and needs to communicate with the CORENA for certain functionalities such as document service Figure 3 1 1 shows deployment diagram for the system our application is part of FIGURE 3 1 DEPLOYMENT DIAGRAM FOR THE SYSTEM Design Document v 2 8 01 Jun 2011 MODEL VIEW PRESENTER This is the main design pattern for our application SLRP We will use the model view presenter MVP pattern One of the reasons we will use MVP is that it will make testing of the
125. mulation and game development The name of the project group Ameo is the first initial from each group member Name Initials Phone Arild Oldervoll AOL arild oldervoll com 414 52 960 Marius Haraldseth MHA marius haraldseth net 41520610 Eirik Andr Eids EAE eirik eidsa no 458 59 244 Olav Brandt OBR olav brafa net 984 48 717 Arild Oldervoll AOL Arild is the project leader He s from Os not far from Bergen Arild has an education as pilot from the USA and in his spare time he tries to fly as much as possible when he can afford it He also uses a lot of his time on the Red Cross where he is a member He is in the Search and Rescue SAR team Arild also does workouts in the gym In his past he has played instruments for about 11 years mostly the tuba and he has run a lot of orienteering he has actually won the Norwegian Championship in his class Other than being the project leader Arild has responsibility for the code we are going to develop during this project Project Plan v 3 01 2011 ameo 12 Marius Haraldseth Marius comes from a farm located in Nes in Hallingdal He now lives in Drammen with his girlfriend where they moved two and half years ago when he started his bachelor degree in computer engineering Marius and his girlfriend have just bought their own apartment in Drammen and are moving there this December 2010 In his spare time Marius plays a little guitar tries to
126. n value variable reference then if applicable checking the operator for all possible operations or the function for every type of action and finally checking for the specified values types before passing them to the correct method This however would lead to several dozen if else sentences in at least three layers of nested statements which is the very opposite of dynamic The amount of checking required to easily obtain type safety is also why finding a dynamic and generic solution has been such a challenge The specification defines operators with different operations and functions with different actions which in turn have different return types different parameter types and different amounts of parameters Several of the operations and actions also have multiple signatures and in one case more than one return type within the same signature A one size fits all solution was hardly apparent SOLUTION The solution came through Java s generics which is not something we ve had any kind of significant experience with prior to this project Thankfully we have had some lectures on the equivalent templates which helped with our basic approach and understanding Through several rounds of experimentation and prototyping with generics we believe we ve found a solution that allows us to avoid type checking whenever we use a value and at the same time maintain an acceptable level of type safety Because an expression onl
127. n Scrum we do not take into account the possibility of unexpected problems and delays to occur and there is no risk analysis of such events before the project starts Instead of planning on what to do if something unexpected would happen the plan is adjusted only when something happens In our project such an unexpected event has occurred One of our team members has become seriously ill and will spend a lot of time in the hospital and receiving treatment Scrum handles such unexpected events pretty well We have not lost any time on creating plans that we now have to change When we lose most of the velocity produced by a team member it will only affect the number of tasks we are able to complete in the Sprint we are in when it happens and it will of course affect the number of User Stories we will be able to complete within a given timeframe Further on since we don t know how much he will be able to participate in the project we have decided to assign him a User Story with a lower priority that is not scheduled for the current Sprint This is so that he can do as much as he is capable of without us being dependent on a certain velocity from him Due to this event we ve updated the estimated hours available each Sprint and our Sprint goals for these Sprints When estimating hours we have for now estimated O hours for our sick team member and a slight increase in hours from the other team members to compensate for some of this If the ill team
128. nd clients For more information see reference 9 and 10 EXT GWT GXT Google Web Toolkit v 1 6 07 Jan 2011 7 1 Ext GWT is an additional Java library that can be used to develop rich internet applications RIA with the Google Web Toolkit CORENA wants us to use this as it is used in their existing technology but Google does no longer develop the library and it has been superseded by Smart GWT DISADVANTAGES There are disadvantages with using GWT but that is the case with most technologies When it comes to GWT there are more advantages than disadvantages for our use Some say that the use of Java is its disadvantage just like it also is an advantage That is because of the development circle When you have to compile it may take a long time but that time is nothing compared to the time you save and the frustration you are relieved of regarding getting it to work in all browsers Besides it is not healthy to sit for too long in front of a computer so the time can be used to get up and stretch But still you don t have to compile all the time to test the code when you develop in hosted mode FURTHER READING INSTALLATION 7 2 You first have to have Eclipse installed for this guide More detailed guide reference 6 GETTING STARTED 7 3 There are some in depth tutorials from Google This is good to get the feeling of how this works See reference 3 DOCUMENTATION This is one of
129. ng the Sprint They are to attend the Daily Scrum meeting o They are to keep the Sprint Backlog up to date and available in a public folder on a public server visible to all New tasks must be added to the Sprint Backlog as they are conceived and the running day to day estimated hours remaining for each task must be kept up to date 4 Scrum Rules v 1 06 2011 ameo gt SPRINT REVIEW MEETING The Sprint review meeting is time boxed to 4 hours The team should not spend more than 1 hour preparing for the Sprint review The purpose of the Sprint review is for the team to present to the Product Owner and stakeholders functionality that is done Done means here that the functionality is completely engineered with documentation and could be potentially shipped or implemented Functionality that has not achieved done status cannot be presented Artefacts that aren t functionality cannot be presented except when used in support of understanding the demonstrated functionality Artefacts cannot be shown as work products and their use must be minimised to avoid confusing stakeholders or requiring them to understand how system development works Functionality should be presented on the team members workstations and executed from the server closest to production The team Sprint review starts with a team member presenting the Sprint goal the Product Backlog committed to and the Product Backlog completed Different team memb
130. ntacts external to the project All communication from the project group to any of these resources and contacts should be initiated by the project leader Since the project group is using Scrum any communication with the team from any of these contact and resources should be directed to the project leader ScrumMaster to avoid the introduction of impediments directly on the team Role Mail Phone Olaf Hallan Graven Internal Sensor olaf hallan graven hibu no 473 21012 ivind Ottersen External Sensor Oivind Ottersen corena com 32 71 72 26 Tommy Sivertsen External Mentor Tommy Sivertsen corena com 32717233 Karoline Moholth Internal Mentor karoline moholth com 920 81 428 14 Project Plan v 3 01 Jun 2011 ameo 6 1 ROLES AND RESPONSIBILITIES INTRODUCTION TO ROLES AND RESPONSIBILITIES When working in Scrum we are trying to avoid dividing the work into roles as the entire team is committed to completing all tasks and all team members can work on any task Instead we are dividing the work into responsibilities That means that there is one person in the team that oversees that a general task is completed in time and according to our defined standards Each team member will have at least one administrative responsibility and one technical responsibility ADMINISTRATIVE RESPONSIBILITIES The project leader is the contact person for all contacts not part of the team The project leader will also have the overall responsi
131. o develop a logic engine for support execution of S1000D process Data Modules version 4 0 is given by CORENA Norge A S This logic engine can take input from users and or external applications such as sensors to decide its next step in a flow of process Data Modules It can branch and loop through the selected process Data Module The logic engine will be an interpreter for process Data Modules We will make it a stand alone logic engine in a web based application running on Jetty Tomcat The user of the application should be able to move back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT This document overview will provide a listing of the documents we have produced for this project together with a short description of each of them 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Process Set of instructions and conditions being executed Data Module Container of data information 1 3 AUTHOR S Olav Brandt OBR Marius Haraldseth MHA 1 4 ASSIGNED Olav Brandt OBR Document Overview v 3 4 Gr dun 2013 ameo 1 DOCUMENTS PRIOR THE FIRST PRESENTATION VISION DOCUMENT 2 2 The Vision Document defines the basis of the project and was the first piece of documentation produced
132. ocess and that the team understands the full meaning of the rule change 2 3 SPRINT PLANNING MEETING The Sprint planning meeting is time boxed to 8 hours and consists of two segments that are time boxed to 4 hours each The first segment is for selecting Product Backlog and the second segment is for preparing a Sprint Backlog 2 3 1 GENERAL The attendees for the Sprint planning meeting are the ScrumMaster the Product Owner and the team Additional parties can be invited by any of these people to provide additional business domain or technology domain information and advice but they are dismissed after this information is provided There are no chickens as observers present The Product Owner must prepare the Product Backlog prior to the meeting In absence of either the Product Owner or the Product Backlog the ScrumMaster is required to construct an adequate Product Backlog prior to the meeting and to stand in for the Product Owner Scrum Rules 1 06 Jan 2011 ameo gt The goal of the first segment or first 4 hours is for the team to select those Product Backlog items that it believes it can commit to turn into an increment of potentially shippable product functionality The team will demonstrate this functionality to the Product Owner and stakeholders at the Sprint review meeting at the end of the Sprint The team can make suggestions but the decision of what Product Backlog can constitute the Sprint is the res
133. of Scrum use of a lot of new technologies like GWT Hibernate etc and the comprehensive S1000D specification which easily can hide small detail that has big impact on our project This has led to strong focus on creating a solid architecture and underlying functionality which I am sure CORENA will have a great benefit from when they overtake our product 7 2 MARIUS HARALDSETH This project has been a real challenge and new experience for me I m very glad to be in such a positive and skilled group to work with these people has made it all much simpler Even Eirik with cancer has been in a better mood and more positive than could have imagined The composition of these points has been of great value for our success through this project During this project have gained a lot of knowledge when it comes to working in a project and have learned a lot about testing and working with the test driven development way This was something wanted to be more familiarised with before and know got a perfect opportunity to learn To think this way is totally different than what l ve been used to and I can now see why they say that it generates more stable and fault free code Our project was a pure software project and this was exactly what wanted the most My responsibilities in the project have been analysis and documentation The analysis of this assignment has been a real challenge because we had a very massive and complex sp
134. other DMs It can ask the user questions and interact with external applications the logic engine stores the input data and uses it to direct the users in the procedural flow The data in the process DM is also used to customise the output for the user s display Conditional looping if then else is supported in the S1000D process DM This to simplify the maintainer s navigation so he she will only get what is relevant at the current time Prestudy Report v 2 11 05 Jan 2011 gt THE ASSIGNMENT 5 1 OUR PROJECT CORENA is expecting us to develop a logic engine which should be integrated in an independent web based solution based on Jetty Tomcat The user should be able to choose a process DM and step through this module step by step with the logic engine Through user input and communication with integrated sensors the next step in the process DM is determined The user should be presented with the choices previous and next so they can navigate back and forth through their choices and or change some of their previous answers The user should have the option of continuing from a previously saved session We need to develop a method for recognising the S1000D process DMs from other DMs in our logic engine Our logic engine should support S1000D v 4 0 and it should be possible to add support for other versions of the S1000D process DMs In other words we should not hard code specification support CORENA has a vi
135. ove back and forth through the steps using previous and next buttons The user should be able to save the session to continue at a later time The logic engine should support the International S1000D Specification Issue 4 0 1 1 OF THIS DOCUMENT This document is a report on the result of our prestudy for the project assignment It will describe the task in more detail and the basic strategy for how we will complete the assignment This will be more detailed in the Project Plan document 1 2 SYNONYMS ACRONYMS AND DEFINITIONS Synonym Description Process Set of instructions and conditions being executed Data Module Container of data information Interactive Electronic Technical Publication Technical manual prepared in digital form on a suitable medium XML Extensible Markup Language Prestudy Report v 2 05 Jan 2011 Tam FO 1 3 AUTHOR S 1 4 Arild Oldervoll AOL Marius Haraldseth MHA Eirik Andr Eids EAE Olav Brandt OBR ASSIGNED Marius Haraldseth MHA Prestudy Report v 2 05 Jan 2011 2 1 PROJECT ENVIRONMENT SCRUM PROJECT MANAGEMENT TOOL 2 2 For this project we have decided to use Scrum as our development methodology Therefore it is important for us to find a project management tool that fulfils the following three criteria Scrum support including User Stories o Product Backlog o Burn down charts Free to use for the en
136. plexity of a User Story compared to the other User Stories in the Product Backlog This means that if a User Story is given an estimate of 2 story points it s about half as complex as a User Story that is estimated to 4 story points POKER PLANNING 6 3 To determine the estimates for the User Stories we use a meeting called poker planning or just playing poker At a poker meeting all the team members are present and are dealt a hand of cards The cards we use are special poker planning cards each card with a valid story point value and each member will have a full hand i e all the different values The valid story point values for our poker meetings are O 0 5 1 2 3 5 8 13 20 40 100 and eo The reason why only these values are valid is that it s not possible to give a really accurate estimate of whether it will take 5 6 7 or 8 points but it should be possible to say if it s about twice as big The higher the value is the harder it gets to give an accurate estimate of the complexity The fact that it is considered a big and complex User Story implies that it might be several unknown factors and therefore hard to give an accurate estimate When the cards are dealt the team starts to discuss one of the User Stories in the Product Backlog They discuss what the User Story involves and the complexity of it but they do not discuss actual story points When they are done discussing each player puts one of the cards down on the
137. ponsibility of the Product Owner Theteam is responsible for determining how much of the Product Backlog that the Product Owner wants worked on that the team will attempt to do during the Sprint Time boxing the first segment to 4 hours means that this is all of the time that is available for analysing the Product Backlog Further analysis must be performed during the Sprint Large grained high priority Product Backlog with imprecise estimates might not be thoroughly understood during this part of the Sprint planning meeting and might result in the team not being able to complete all of the Product Backlog it selects The second segment of the Sprint planning meeting occurs immediately after the first segment and is also time boxed to 4 hours The Product Owner must be available to the team during the second segment to answer questions that the team might have about the Product Backlog Itis upto the team acting solely on its own and without any direction from outside the team to figure out during the second segment how it will turn the selected Product Backlog into an increment of potentially shippable product functionality No one else is allowed to do anything but observe or answer questions that the team may have in order to obtain further information The output of the second segment of the Sprint planning meeting is a list called the Sprint Backlog of tasks task estimates and assignments that will start the team on the
138. process DM Renderer The component that decides how information is to be displayed in the GUI GUI Used to interact with the user XML Handler Process Data Modules are represented through XML files This component handles these files Communication For communicating with the CORENA IETP and possibly external applications External Analysis Document v 2 01 2011 IETP Interactive Electronic Technical Publication The IETP our application is interacting with is developed by CORENA It is used by our application to fetch process DM files and possibly for certain rendering responsibilities S1000D Version Handler Some external format protocol or method used by our program to handle different process DM versions ameo FIGURE 4 1 MAIN COMPONENTS 4 1 SEPARATION OF CONCERNS MVP Separation of concerns is a core principle in software development Separating our program into different parts each with a distinct role and corresponding responsibilities allows us to more easily change refactor or replace software code without affecting the rest of the application Separation of concerns is applicable throughout the entire software development process For the analysis part we ve made a decision on a software architecture that divides a program into three main parts Model view presenter According to 4 MVP is a derivative of the model view controller software pattern an architectural pattern
139. product should be documented in a way so that it can easily be implemented CORENA after delivery of the project e business value to CORENA the documentation is part of the product and by documenting everything we learn about the technologies methods and tools we use that can be of interest for CORENA this will add additional value to the company EDUCATIONAL GOALS AND LIMITATIONS Maybe more important than the product we deliver is what we learn from this project as we are doing this project in a learning environment with higher acceptance for partially failing with the product if we can learn and improve from our unfortunate experiences Therefore we also want these educational goals to be achieved if we are to say that the project was successful We have decided on using Scrum as our development methodology and we want to learn how to use it and to get familiar with the strengths and weaknesses of this methodology We believe we have achieved this goal if we succeed with our project using Scrum to the extent possible We also want to evaluate how Scrum is works as the methodology used in a HiBu student project All our work at HiBu so far has been smaller projects and teams than the scale of this project With this project we want to learn how to tackle a larger assignment and use the bigger team to our advantage Project Plan v 3 01 Jun 2011 ameo gt This is the first time we are developing project for a custom
140. ram E g it does not explain a fast search algorithm that a search function will implement just that the search result is displayed quickly after the button is pushed A common format for the User Story is As a User I want to do something so that I learn something Here the user can be changed with any other role like administrator manager editor etc The want to is a description of the actual feature described from a user perspective and the so that part explains the reason for why the feature is wanted The so that is not mandatory and can be left out if it is obvious why you want the feature but it is important for the developers to understand the motivation for that User Story Scrum Procedures v 1 04 Jan 2011 ameo THE PROS AND CONS SCRUM PROJECT PLANNING As was said in the introduction the main difference in the planning is apparent in when the project plan is detailed For those supporting Scrum this is often highlighted as one of the strong features while those who are arguing against Scrum would often highlight it as a weakness 50 it is safe to say that it is both strength and weakness It is a strength because in Scrum there is almost no overhead time lost on planning a feature or part of an iteration that later needs to be changed or removed because of the circumstances The team will only spend time on planning the tasks that they are certain they will complete It is a weakness because the tea
141. rces Required in the Project Split on Activities 12 Activities and Resources Until the Project Plan is Ready File name Prestudy Report pdf PRODUCT BACKLOG The Product Backlog contains requirements in the form of User Stories The User Stories are prioritised by the Product Owner and each has a dimensionless and comparative time effort estimate Linked to the User Stories are test cases one or more per User Story Content sheets e Product Backlog Explanation Removed User Stories File name Product Backlog pdf TEST CASES The Test Cases document contains all of our tests for the User Stories The tests are linked to specific User Stories The test cases describe the testing procedure with the action s to be taken by the tester and the expected result Content e Test Cases e Action s e Expected Result s Document Overview v 3 Gr dun 2013 ameo 2 5 File name Test Cases pdf QUALITY ASSURANCE 2 6 The Quality Assurance document describes what and how we will be conducting the document reviews and software testing in our project It starts off by introducing our document review procedures as well as various important concepts such as verification and validation functional and non functional tests and test levels It also examines specific techniques and approaches to the testing process In the latter parts of the document it goes into detail on each type of functional testing we w
142. red outcome The ScrumMaster will remove any impediments on the team and make sure that they can work uninterrupted during the Sprint This works well because it is the team that is working on the problem and thus has the best knowledge about the complexity Therefore they are the best resource for Sprint planning In addition overhead time on planning is reduced THE MOST IMPORTANT TASKS ARE DONE FIRST 2 3 Many project development methodologies will either attack the most complex problems first or the easiest problems first In contrast Scrum starts with the User Stories that are most important for the customers represented by the Product Owner Even within a Sprint the most important work is done first as opposed to analysing and designing everything for an iteration at the beginning of the iteration SCRUM IS TRULY AGILE 2 4 Scrum is a very agile process It is only the current and maybe the next Sprint that is planned to any detail The priority and requested features from the customers are expected to and will change during the project so no time spent on project planning is lost when the requirements are changed The team can also add and remove tasks during the Sprint as they see it necessary as long as the main goal of the Sprint is unchanged The assigned tasks can change on a day to day basis without planning effort being lost ROLES ARE NOT DEFINED With Scrum there are only three active roles in a project Produc
143. rint starts with a Sprint Planning Meeting This is actually divided into two meetings each timeboxed to 4 hours The first meeting is a meeting between the team and the Product Owner where they discuss the next Sprint and the User Story or Stories that the team will be working on during this Sprint The Product Owner explains the User Stories in detail They then agree on how much and what work the team will commit to complete during the next Sprint and an overall goal for that Sprint is determined the second part of the meeting the last 4 hours the team is left alone to plan the Sprint and how to achieve the Sprint goal They do this by determining all the tasks required to complete the Sprint They then enter these into a Sprint Backlog with a time estimate for each task Even though the team is doing this on their own they are allowed to invite consultants and experts on areas they will be working on if they need better insight into certain areas of the Sprint to determine tasks required and time estimation for these tasks These consultants and experts will leave the meeting when their expertise is not required DAY TO DAY PLANNING AND CONTROL As already seen for the Sprint planning the team is the project leader Therefore they are self organising which means that there is no one who will tell them what to do or how to do it The working day starts with a daily stand up meeting During this meeting each tea
144. rson International Edition ISBN 13 978 0 13 207489 6 2 Agile Project Management with Scrum Ken Schwaber Microsoft Press ISBN 13 9780735619937 Scrum Procedures 1 04 Jan 2011 armeo 11 SCRUM RULES HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 1619 q 3 1 1 Intention of this Document u a aquqa 3 1 2 Synonyms Acronyms and 85 3 1 3 AURO dekretene 4 1 4 ntn mE 4 MENS JI me Ee 5 2 1 Seide 5 2 2 Changes tothe Rules rite adeo niunt Fe uen ee ao e Curie exe ud oa 5 2 3 Sprint Planning 5 2 3 1 GSMS Mall EE 5 2 3 2 First SE 5 2 3 3 Second KETTEN 6 2 4 Daily Serum Meeting iu na 6 3 Si 8 4 Sprint Review Meeting U u u u 9 5 Sprint Retrospective nennen en nnne tenens sten 10 5 11 REVISION HISTORY Version Number Date Changes Assigned 1
145. s broken because of a code change fix Unit tests are white box tests and will be done via an automated unit testing framework and various other tools mocking coverage etc where appropriate As already mentioned because we have unit tested all necessary classes the next level of testing should be limited in both complexity and scope For our integration subsystem tests we will be testing the communication cooperation of a collection subsystem made up by the units we tested at the previous level Additionally another bonus of having done unit tests is the natural extension these have into the integration subsystem testing while you in unit testing wanted to avoid dependencies and used dummy objects the opposite is a central part of what you want to test at this level Quality Assurance v 1 7 04 Jan 2011 am I This means that you reuse large parts of the unit tests only changing the dummy objects with the real ones When this is not enough additional automated tests will be written where possible otherwise manual testing must be done These mentioned tests are considered white box tests Black box testing will be done as well and because we are using Scrum we are essentially testing the integration of a new feature into our pre existing and already tested program This testing will vary depending on what is being integrated like the user interface file handling or other logic and is assumed to be mostly done m
146. sed in a logic engine The logic engine is an interpreter for the process DMs and throughout the process it defines states Our assignment is to develop this logic engine for the execution of a process DM s components Based on the components in the DM an interaction between the user and the IETP should occur see figure 4 1 The process DM is especially well suited to represent procedural data fault data and descriptive data The process DM is not well suited to represent wiring data parts data and schedule data Prestudy Report v 2 05 Jan 2011 ameo To control branching looping and context filtering 510000 process DMs declare variables The logic engine maintains these variables in state tables containing them for decision points and filtering Variables can be declared from users external applications presets or post sets d proceduralStep dmNode proceduralStep ICN S 1000D A 070201 A D0216 0001 1 A 002 01 Fig 1 Process data module conceptual diagram FIGURE 4 1 PROCESS DATA MODULE CONCEPTUAL DIAGRAM Prestudy Report v 2 10 05 Jan 2011 am eO 4 3 BENEFITS THE 10000 PROCESS DM The S1000D process Data Module adds advanced capability which you will not find in other DMs The downside to this is complexity Because of this it is necessary to define whether not you need this advanced capability or if it will just cause unnecessary effort 10000 process DM is more interactive than
147. sed user interface As User I want web based user interface QUALITY ASSURANCE HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER CORENA i Buskerud ameo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 ey aaa q 3 1 1 Intention of this Document qua as 3 1 2 Synonyms Acronyms and 5 3 1 3 Baku 3 1 4 e EE 3 2 Documentation Review uu uy eksakt 4 3 SSOP WAC Testing HE 5 31 What Do We Test aa aya masaqa aqa aod eo ch adden chu Oe 5 3 1 1 Verification and Validation 5 3 1 2 Levels of Testing 5 3 1 3 Functional and Non Functional Testing 5 3 2 APORTE 6 3 2 1 6 3 2 2 6 3 3 Functional cc 7 3 3 1 Bac mms 7 3 3 2 Integration Subsystem Testing 7 3 3 3 System Scenario Testing ERR Te Reda 8
148. sion that our end product will be of such a high quality that they can implement it into CORENA IETP and CORENA S1000D 5 2 REQUIREMENTS FOR THE LOGIC ENGINE Previous function Next function Log the states Save current position with history before exit The support execution of the logic engine should be according to the international 510000 specification issue 4 0 which can be integrated with CORENA s products The implementation should be based on technology which is base for 510000 Web Client and CORENA IETP products interpreter is supposed to execute an independent web based IETP application running on Jetty Tomcat S1000D resources http www s1000d org Relevant chapters 4 11 Information management Process Data Module 7 7 1 Guidance and examples Logic Engine Prestudy Report v 2 12 05 Jan 2011 ameo 5 3 7 7 2 Guidance and examples Process Data Module Nodes Common technology platform for the CORENA S1000D Web Client and CORENA IETP products is Java XML XSL Spring Framework Web services GWT GXT Google Web Toolkit Ajax The implementation we are going to develop should be stable well tested and secured against failures even if the process DMs contain faults or are made for another version of the S1000D standard OTHER REQUIREMENTS JAll technical documentation which will be used later in CORENA shou
149. ss containing common functionality and or data Figure 10 9 shows a class diagram for warnings and cautions minus the text elements Design Document v 2 39 01 2011 DisplayPackageElementType WidgetBuilder lt lt lt lt gt gt lt FIGURE 10 9 CLASS DIAGRAM FOR WARNINGS AND CAUTIONS Design Document v 2 01 Jun 2011 1 htmlTextControl HtmiTextBuilder 40 11 11 1 EXPRESSIONS BACKGROUND 11 2 As mentioned in the Analysis document expressions contain a variety of operations functions and values Supporting all of these out of the box was deemed unneeded and impractical Instead we ve focused on coming up with a design of the surrounding framework that allowed for a dynamic approach to adding support for new operations functions or values The primary source of challenge when designing and developing support for expressions has been the dilemma of type safety versus a goal of keeping everything dynamic and generic Or more directly we wanted to do things as generic as possible but we didn t want the application to get blown up by a run time exception because of some mistaken assumption or spelling error Type safety could easily be obtained by checking the content of the expression compared to the possible child elements operator functio
150. ssions are evaluating to true the variables for that dmNode should be stored in a separate State Table This lead to the general HLA shown in FIGURE 4 4 High Level Architecture serviceCall FIGURE 4 4 HIGH LEVEL ARCHITECTURE The red elements are part of the client and the green elements are part of the server backend The ClientController is an addition to the MVP and is the one that requests the next Display Package from the server when ready The logic engine will then process the variables in the temporary State Table and evaluate the expressions to calculate a new Analysis Document v 2 12 01 Jun 2011 am 4 4 Display Package the renderer and then sending this back to the ClientController through the Service Callback In order to keep it dynamic the ViewGenerator will then generate the view and the PresenterGenerator will register listeners for the widgets generated on the ViewGenerator This will ensure that it s flexible and dynamic follows the S1000D specifications and that MVP is conserved FUNCTIONALITY 4 4 1 SHOW PDM core functionality of our application is to show process DMs in a GUI The process DM file is located on the CORENA IETP and needs to be transferred to our program before it is shown The file is fetched as a result of the process DM being selected by a user in the GUI The call originates from the user clicking the Open button and selecting the process DM in a dialogue The ca
151. ster is responsible for moving the reporting along briskly from person to person During the Daily Scrum only one person talks at a time That person is the one who is reporting his or her status Everyone else listens There are no side conversations When a team member reports something that is of interest to other team members or needs assistance of other team members any team member can immediately arrange for all interested parties to get together after the Daily Scrum to set up a meeting Chickens are not allowed to talk make observations make faces or otherwise make their presence in the Daily Scrum meeting obtrusive Chickens stand on the periphery of the team so as not to interfere with the meeting If too many chickens attend the meeting the ScrumMaster can limit attendance so that the meeting can remain orderly and focused Chickens are not allowed to talk with team members after the meeting for clarification or to provide advice or instructions Pigsor chickens who cannot or will not conform to the above rules can be excluded from the meeting chickens or removed from the team pigs Scrum Rules v 1 06 Jan 2011 ameo gt 3 Scrum Rules 1 06 Jan 2011 ameo gt SPRINT We have decided to have the Sprints time boxed to 21 30 consecutive calendar days The team can seek outside advice help information and support during the Sprint No one can provide advice instructions commentary
152. stions o What went well during the last Sprint o What could be improved in the next Sprint ScrumMaster writes down the team s answers in summary form The team prioritises in which order it wants to talk about the potential improvements The ScrumMaster is not at this meeting to provide answers but to facilitate the team s search for better ways for the Scrum process to work for it Actionable items that can be added to the next Sprint should be devised as high priority non functional Product Backlog Retrospectives that don t result in change are sterile and frustrating Scrum Rules v 1 06 Jan 2011 ameo gt 6 REFERENCE S 1 Agile Project Management With Scrum Ken Schwaber Microsoft Press 2003 ISBN 13 978 0 7356 1993 7 Scrum Rules v 1 06 Jan 2011 ameo 11 Product Page 1 Ameo Product Backlog Product Backlog CORENA S1000D 4 0 Process Data Module Renderer Priority Id Estimate Sprint UserType Story Story Type As a User I want all booleanAction attribute values listed on the S1000D pDM specification to be supported by the logic engine As User I want all the setAction attribute values listed on the S1000D pDM specification to be supported by the logic engine As User I want all StringAction and SubStringAction attribute values listed on the 510000 pDM specification to be supported by the logic engine As a User I want the logic engine to evaluate an expression to
153. system a lot easier as we split most of the functionality away from GWT This gives us the opportunity to test all functionality without having to use hosted mode in GWT Service interfaces FigurE 4 1 Model View Presenter and client server for SLRP Design Document v 2 01 Jun 2011 4 1 MODEL Our model will be located at the server component The model will contain the logic engine the state table an XML handler etc The model is the part which will process and interpret the in the application The model will be the part which implements our business logic and objects 4 2 VIEW An application can have several views Our application will contain one primary view which will contain the content panel of our application the upper button panel with Open Load and Save buttons and the button panel at the bottom with Previous and Next buttons The view contains all of the Ul components to make up the application The view will implement an interface defined in the presenter It will not fire any events of its own 4 3 PRESENTER The presenter part of our application will control what will be displayed in the view and create the content with the help of functionality in the model The presenter will prepare and render everything that will be shown in the view The presenter will handle and register all buttons located in the views and it will present data to our content panel view It will listen for DOM events
154. t Owner ScrumMaster and the Team This implies that everyone on the team are considered equal and it is up to the team to assign the available resources to different tasks to reach the Sprint goals This means that for example a tester can be used on analysis if required Scrum Procedures v 1 04 Jan 2011 armeo 3 1 SCRUM PROJECT PLANNING IN GENERAL Compared to many traditional project methodologies like waterfall and RUP Scrum has some differences but is also similar in some aspects The biggest difference is in which phase of the project the detailed planning is done although the plans should contain much of the same level of detail at the completion of the project SCRUM PLANNING DURING THE PRESTUDY 3 2 What resembles a traditional project plan and requirements specification is in Scrum called the Product Backlog The Product Backlog is a list containing all the User Stories known at the current time see User Stories section 3 2 Each User Story has a priority that the Product Owner has determined and an effort estimate see Calculation of Time Estimates in Scrum chapter 5 that the team has determined The Product Backlog is normally ordered with the highest priority item on the top When development starts the team will pick User Stories from the top of the Product Backlog Therefore the User Stories on the top of the Product Backlog are more detailed and have a more accurate estimate SPRINT PLANNING 3 3 A Sp
155. t amongst the team is something value highly and something feel we ve accomplished in the project Every member is a highly capable developer and valuable resource and the cooperation between us has been a high point The challenges have not been all technical with Eirik s situation standing out from miles away Losing much needed project hours has been a real loss but his excellent attitude and continued effort has boosted the group s morale and allowed us to push that much harder Given his situation he has performed well above all expectations and in the end all of us as a group have gotten further as a result 8 CONCLUSION Project Review v 1 16 01 2011 eO All in all this project has been real challenge really good experience Our team has managed to stay focused through some stressful and more difficult times We have all learned a lot about management teamwork planning and work estimation We are satisfied and proud of the final result we have achieved and the way we have run the project Project Review v 1 01 Jun 2011 am 17 PROJECT PLAN HIBU STUDENT PROJECT 2011 CORENA S1000D 4 0 PROCESS DATA MODULE RENDERER i Buskerud aeo Arild Oldervoll Marius Haraldseth Eirik Andr Eids Olav Brandt 5 1 2 3 fe dg ole lt e nTen een 4 1 1 Intention of This Document u as una ua
156. t for us challenges and our thoughts of the project from a retrospective point of view This document will explain what we did well and what we could have done in a different way 1 2 SYNONYMS 5 AND DEFINITIONS Synonym Description GWT Google Web Toolkit Development toolkit framework for building complex browser based applications for Java G Ext GWT Extension for GWT SQ Structured Query Language U Unified Modelling Language M R Model View Presenter Architecture Pattern XT L ML VP DD UI SS Project Review v 1 4 01 Jun 2011 eO 1 3 AUTHOR S Marius Haraldseth MHA Arild Oldervoll AOL Eirik Andr Eids EAE Olav Brandt OBR 1 4 ASSIGNED Marius Haraldseth MHA Project Review v 1 01 Jun 2011 2 THE PROJECT idea of this project started when Arild and Marius worked Norge AS from January 2010 and through the summer During that time they were presented with project proposal for the bachelor thesis at H gskolen i Buskerud They thought the project sounded interesting and challenging so they presented it for other students at HiBu The group gathered quickly and we ended up with group of four people Because of the projects size we had actually wanted to be a full group of six people but we also wanted to only have group members that we knew were hard working and dedicated as we realised that it was big project The projec
157. t methodology Ameo is using for this project the Product Backlog will not show exactly what will be done during the project timeframe since the Product Backlog is subject to several major and minor updates during the project s lifespan In most cases it is also never ending meaning that it s not possible to complete a Product Backlog as new features and requirements are continuously added by the Product Owner as the market change and the customers demands are developing But since we are doing this project as part of our program at HiBu we have to limit the scope of the project Therefore we are aiming on completing all the User Stories that are in the Product Backlog when this project plan was made see 4 Product Backlog The Product Owner can add and modify our Project Plan v 3 8 01 Jun 2011 ameo gt 3 2 Product Backlog during the project but he should discuss these changes with the project group first It is important to notice that in a true Scrum project this would not be the case the Product Owner changes the Product Backlog freely based on input from the customers and only needs to discuss this at the Sprint planning meetings He can discuss User Stories with team members to get a better estimate of the effort required The product and project in general should be well documented with three focus areas Allow the examiners to determine the progress and success of the project by studying the documentation e The
158. t step of the session is then displayed In figure 9 2 the process is described Design Document v 2 29 01 2011 StateTable Controller null StateTable Controller FIGURE 9 3 LOAD SESSION Design Document v 2 01 2011 ameo 30 10 DISPLAY PACKAGE HANDLING 10 1 WIDGET BUILDING AND lt TYPE BUILDER gt MAPPING For the transition between the display package data and the client side widgets generated from it we had goal to avoid constant check type and then act design and code mentality However because the widgets are client specific and not something the model which generates the display package should know or care about we weren t able to implement direct interface where you could say displayPackageElement buildWidget Some type checking was required The answer we came up with was to automate the type checking by using Map that maps between a Type and a Builder The Type is an enumeration describing data elements implementing a specific interface like DisplayPackageElement The Builder is an interface like WidgetBuilder implemented by classes building Widget or some other object used by the client The mapping is handled by an abstract convenience wrapper class using generics TypeController which is extended by specific implementations like WidgetController This allows us to directly build the client representation of a server data object wit
159. t that actually means what it consists of and some advantages of using it XML is a mark up language and is among others used to write the process Data Modules Our technology document provides some background information the format and elements of the language as well as an example Test Driven Development is type of development process where tests are written before business code The document introduces some key aspects and terms a couple of different approaches and pros cons to adopting it 2 8 SCRUM We have produced documentation for the development methodology our group is using Scrum The document is meant to give an insight into what using Scrum entails why and how we use Scrum what having Scrum as a development methodology means for our project and more Content chapters 1 Introduction Document Overview v 3 8 Clun 2013 ameo 2 9 5 6 Why Scrum Scrum Project Planning in General More on Scrum Tools The Pros and Cons of Scrum Project Planning Calculations of Time Estimates in Scrum File name Scrum Procedures pdf BUDGET The budget contains a list of incurred and expected expenses The budget is approved by CORENA and it is important for us to monitor our expenses using the Budget Document Overview v 3 Clun 2013 ameo 3 DOCUMENTS PRIOR TO THE SECOND PRESENTATION 3 1 ANALYSIS DOCUMENT The Analysis Document will contain documentation describing the background for the
160. t would have its basic in Java but it included several unfamiliar technologies and techniques like Google Web Toolkit GWT with the GXT extension Spring Framework XML Ajax in addition to the comprehensive S1000D specification When we started the project it was a discussion if we should implement our application in their existing software CORENA IETP but after some meetings and discussions we decided on that we should make it a standalone application with communication against CORENA IETP for loading process Data Modules and other data Since CORENA uses Scrum as their development method they wished for us to do the same we considered this against other methodologies and agreed on that Scrum would probably be a good choice for us Now we can look back at ten meaningful challenging and demanding months CORENA required that all documentation which they would use should be in English We therefore decided to write all of our documentation in English The name of our group Ameo comes from the first letter of the group members first names Arild Marius Eirik Olav The name of our application SLRP is made from 510000 Logic Engine and Renderer for Process Data Modules It is pronounced 513 2 1 CORENA NORGE AS OUR EMPLOYER CORENA is a company with offices at several locations around the globe One of their offices is located in Kongsberg with approximately 30 employees CORENA is one of the three lead
161. table with the value facing down When everybody has decided on a card the cards are turned If the players disagree on the estimate the cards are pulled back and the discussion continues If some team members have picked a high value this might indicate that they know or realise something about the User Story that the other team members don t They continue the discussion and then play cards until they agree on one value When everybody agrees they have the estimate for that User Story and can continue with the next story until all the stories are done VELOCITY The velocity is the number of story points a team can complete during a Sprint scaled by a suitable factor This number is based on the team member s availability and number of hours they can work on that Sprint The planned velocity can be used to determine in which Sprint a User Story will be completed Of course this will change as the Product Backlog changes At Scrum Procedures v 1 04 Jan 2011 ameo the end of a Sprint the actual Sprint velocity for that Sprint can used to calculate more accurate velocity for the following Sprints Normally an average of the last 2 3 Sprints are used to calculate the estimated velocity if the team availability stays the same The velocity may also be adjusted up or down as necessary Scrum Procedures v 1 10 04 Jan 2011 ameo 7 REFERENCE S 1 Agile Software Development with Scrum Ken Scwhaber and Mike Beedle Pea
162. tering it together with its signature in EvaluationController As a side note the EvaluationController is currently a static class or it has all static fields and methods This is because of some data binding limitations and not a design necessity beyond this limitation Figure 11 1 shows a class diagram for the expression evaluation without any Evaluation implementations Figure 11 2 shows an activity diagram that describes the expression evaluation process valueBox lt lt use gt gt 1 FIGURE 11 1 CLASS DIAGRAM FOR EXPRESSION EVALUATION Design Document v 2 42 01 Jun 2011 12 static value variable reference evaluation else not supported e FIGURE 11 2 ACTIVITY DIAGRAM FOR EVALUATING EXPRESSIONS REFERENCE S International Specification for technical publications utilizing a common source database 510000 Technical Publications Specification Maintenance Group TPSMG 01 Aug 2008 Issue 4 0 Product Backlog Ameo last updated 07 Mar 2011 2010 HiBu GWT with MVP A Case Study David Chandler published Mar 2010 DevNexus http www slideshare net turbomanage gwt mvp case study last visited 07 Mar 2011 Should Use SAX or DOM Nazmul Idris published May 23 1999 http developerlife com tutorials p 28 last visited 08 Mar 2011 Large scale application development and MVP Chris Ramsdale http code google com webtoolkit arti
163. the text element builders and the value in the map A lt message gt element is a relatively simple element used to display messages to the user It may be in the form of a pop up dialogue or embedded in some other element Figure 10 7 shows the class diagram for building prompts including text elements Figure 10 8 shows the class diagram for building messages 01 Jun 2011 1 TextElementType Htm TextBuilder htmiTextControlier widgetController p E s DisplayPackageElementTypel IwidgetBuilder lt lt use gt FIGURE 10 8 CLASS DIAGRAM FOR BUILDING MESSAGES 10 5 SUBMITTING INPUT The way we submit user input which originates in the client to the model server for evaluation is an important part in our quest to keep the client simple and free of model logic The client should know as little as possible about what it is sending but it must know something in order to send it Design Document v 2 38 01 Jun 2011 We have defined three submission scenarios addition to the one defined the specification Associated action Clicking widget whose display package element has an associated action attached to it submits the element id to the model which executes the action The associated action may the only response to submission or one of several Menu Clicking a menu entry submits the element id s to the model which depend
164. thin each Sprint we have developed tasks for each User Story gathered in a Sprint Backlog In this Sprint backlog we also had in an Excel spread sheet showing the sprint burndown and in addition we used a whiteboard in our project room as our main task board Our main background for project management comes from the introduction lessons in this subject Bachelor Thesis with Project Management In these lessons we had lectures where we learned a lot about project management documentation test strategies and other requirements for us in such project This was good information to bring into the start of the project Other than this we have used a web based time logging tool for logging time on different activities Toggl This tool has worked out very well we have the opportunity to get reports from it and split up into several projects and activities We have also logged on task level in our Sprint Backlogs Together with Scrum we have used test driven development TDD for as much as it were appropriate for We discussed this with CORENA and they also had the vision that it sometimes did not fit especially for some of the GUI programming But for all parts not a part of the GUI we have used TDD Pair programming is common in Scrum but because of our small group this was difficult to do in bigger parts of the time but we did some of it in more complex challenges WHAT COULD WE HAVE DONE BETTER DECIDE ON STANDARDS 4 2
165. tire team and for the entire project period Online interface and hosting To our surprise there are very few project management tools that provide these three things the two last requirements are especially hard to find support for We decided to use Pivotal Tracker This is an online project planning tool based on agile development methods It does not completely fulfil all the points in the first requirement but it comes very close and is satisfactory for our use For example it lacks true burn down charts which are an important artefact in Scrum but it has visual reports that represents the same information that a burn down chart does It is also free for an unlimited number of users and projects It includes bug tracking and it is possible to include attachments to User Stories and bugs After testing Pivotal Tracker for some time we decided that it did not support our needs in a satisfactory manner Instead we are using a set of physical aids and tools in true Scrum form whiteboards and Post it notes We also came up with an Excel spreadsheet for the Sprint Backlog and Burndown Chart adjusted for our requirements TIME TRACKING TOOL 2 3 We have found a good time tracking tool named Toggl This is an online tool with the possibility to download an application for Android and iPhone It makes it very intuitive to track time online and makes good reports so we can see how much time is used on each task DOCUMENT SHARING
166. tted to during a Sprint Sprints are time boxed they cannot last longer than planned If some of the work were not completed the requirement it belonged to would have to be completed in another Sprint Every day during a Sprint a 15 minute meeting is held the Daily Scrum Meeting where each team member explains what was done since the last meeting what will be done until the next meeting and if there are were any problems There are other meetings as well including a planning meeting at the beginning of a Sprint and a retrospective meeting when a Sprint has been completed LISTS ARTEFACTS There are three main types of documents or artefacts in the Scrum model The Product Backlog is a list of requirements sorted by priority This list describes what the product should do written in a non technical User Story form Each requirement has an accompanying priority set by the Product Owner and a development effort set by the Team The Sprint Backlog contains tasks to be performed during the Sprint The Burn Down chart shows what work has yet to be completed in the Sprint Backlog Prestudy Report v 2 05 Jan 2011 ameo gt 20 11 RESOURCES REQUIRED IN THE PROJECT SPLIT ACTIVITES Resource ID Name R108 Visual Paradigm O O i O R404 Other Technical Publications R405 International S1000D Specification Issue 4 0 2008 08 01 R500 Facilities R501 Meeting Room R502 Presentation Room R503 Office at
167. tterns in our application patterns like singleton pattern command pattern the event driven messaging design pattern and the model view presenter MVP architecture pattern We have some general knowledge of patterns from the Analysis and Design subject but most of this we had to learn through the project SERVICE CLIENT TO SERVER To communicate between the client and the server we use the command pattern This pattern uses asynchronous RPC services RPC s is something we all have a little knowledge from the subjects Operating Systems and Network but the use of it we had to learn HTML JAVASCRIPT AND CSS We gathered some useful knowledge through the subject Programming for internet because we are developing a web application We have used a little JavaScript CSS and html TESTING Testing was something we had no experience with from the past at all In our classes at school we are told that testing is a good thing but nothing about how to do it We learned some test strategies in the Project Management course but the actual use was brand new to all of us This follows therefore that we have learned a lot about testing We have written a lot of automatic JUnit4 unit tests We have also used EasyMock3 library to mock objects in the tests On the client side we had to extend GwtTestCase in some tests to test classes which generate dynamic GUI Widgets It was something we did not desire as testing with GwtTest
168. undamental to any kind of product development If the software you have built fails verification it means it s in a broken state and not usable by the customer If it on the other hand passes verification but fails validation it means you might have built a working high quality piece of software but not the correct kind of software A software development process is usually divided into levels at the top we find requirement gathering and specification then analysis system design and at the bottom code class design Each of these levels of development should have a corresponding level of testing Acceptance testing is at the highest level Here both requirements and completed pieces of software are tested in order to validate them in view of the customer s wishes System scenario testing accompanies the analysis level and tests the correctness of the entire system Integration subsystem testing targets the integration of individual units into subsystem collections Unit testing is the testing of the smallest part of the software the unit In object oriented software testing the units are classes Additionally testing is divided into two primary categories functional and non functional tests A functional test is necessarily the result of one or more functional requirements Can the software perform the action described in this requirement A non functional test is Quality Assurance v 1 5 04 Jan 2011 am eO I 3 2 li
169. used in applicability CI Soc _ am Node dmNode en FIGURE 2 2 1 PROCESS DATA MODULE CONCEPTUAL DIAGRAM The logic engine should be able traverse process Data Module elements maintain state variables present dialogues and evaluate expressions It must traverse the process Data Modules sequentially It should also be able to communicate with external applications through an interface Our application will also need to communicate with the CORENA IETP Analysis Document v 2 5 01 Jun 2011 eO The specification also sets requirements for the features of the application s graphical user interface Additional specification guidelines for the GUI s presentation and looks together with the design of the existing CORENA IETP are another set of signals we must take into account Our program need some form of version management to recognise different versions of the S1000D process DMs and what to do with them Different versions may include different elements require other ways of handling certain elements or actions or have a different structure The logic engine needs to have error detection record detailed information about the error so it is possible to pinpoint the problem We ve produced a separate set of S1000D documentation with additional analysis and mapping of a process DM s structure and elements They can be found under the folder S1000D
170. xtant To fulfil this requirement we will use a database for the state table In this state table it should be possibilities to Storea new session Store a new variable o Temporary and not temporary o A variable can have several values Update variables Store a new state Retrieve sessions variables and states Delete state table sessions and states For communication with our database we will use the object relational mapping tool Hibernate Hibernate is a free open source tool This tool makes it possible for us to work with objects and not tables B E R Relational Persistence for Java amp NET We will refer to two types of session State table session this will always be referred to as the state table session It is a run session in the application Hibernate Session object this will be referred to as Session object This is an object which the Java objects gets an association with when they are persisted see chapter 4 7 1 This object is created every time we have an interaction with the database Analysis Document v 2 20 01 Jun 2011 eO 4 8 1 HIBERNATE OBJECT LIFE CYCLE The Hibernate object has a lifecycle as shown in figure 4 15 below garbage collection save ref from persistent object delete get load create Query list createQuery iterate etc evict close clear update lock garbage collection FIGURE 4 15 THE HIBER
171. y contains one operation function value variable reference we can compress the values of these elements into one single field in the Expression class during the data binding process This field is named evaluation It contains the name of the operation or action as a String and has an interface counter part to which it is mapped Design Document v 2 41 01 2011 Using we between this field plus the corresponding method s signature that is the types of its parameter s and the number of parameter s and an implementation of the generic Evaluation R P interface which defines the return and parameter types and a getResult method The map is wrapped in an EvaluationController for convenience and to separate the implementation from the class clients In effect this gives us a kind of function pointer where the Expression class which is being evaluated simply calls the EvaluationController s getResult method with its evaluation signature after first checking that it is supported which is then passed on to the correct Evaluation implementation These implementations are only called from EvaluationController and only if they are registered with the current signature Thus unless the mapping itself is erroneous no wrongful casting should occur and type safety is maintained Adding support for new operations or functions is done by creating a class implementing the Evaluation interface and regis
Download Pdf Manuals
Related Search
Related Contents
Road Map to A/UX: Release 3.0 Type 90 Ti Rotor Used In Beckman Coulter Manual de Instruções RTDF – rev.3 Budo - Les Enseignements du fondateur de l`Aïkido Samsung Samsung B9150 Kasutusjuhend CHROMOPHARE® C 952 - Frank`s Hospital Workshop Sommario Sicurezza e manutenzione..................................................1 Copyright © All rights reserved.
Failed to retrieve file