Time Tracking System with GWT
|
|
|
- Candace Andrews
- 10 years ago
- Views:
Transcription
1 Degree Project Time Tracking System with GWT Amaia Carrillo Agirre Subject: Software Engineering Level: Master Course code: 5DV00E
2
3 Acknowledgements I would like to thank and acknowledge all the people that have help me in many different ways during the development of this project and in my entire live, making this thesis what it is and making me who I am: Rüdiger Lincke and Francisco Modesto, for giving me advice and support, and sharing their knowledge with me, because without their help I would feel lost in my own project more than once. My university friends in Barcelona, for helping me since I started my studies, even being 2500km far from them. All the people I have met in Växjö during my Erasmus period, for making these 5 months unforgettable. It would be impossible to name all of them, so special mention to Stallvägen 28 girls and my boys from the 8th floor. My parents, for making me who I am in an extent part, helping me in everything and supporting me in every decision I have taken. Garazi, my sister, because life without her would have been too boring. i
4 Abstract Applied Research in System Analysis (ARiSA) AB, is a company whose main objective is to market the VizzAnalyzer software quality tool and related services, experiences, and research results.[1] In the beginning, recording the time spent on different activities and projects for project control, cost calculation, and customer billing manually and individually was sufficient and effective. With the number of projects and people involved at a time increasing the existing mechanisms were not sufficient anymore and needed to be replaced to support an efficient recording of time and report generation. To solve this situation, a prototype of a web-based time tracking system was implemented. The task for this thesis was to build on the existing prototype implementation, to improve and complete it. In detail, to extend the functionalities of the web application adding user, project and activity management, and report creation. The solution supports an efficient time tracking for employees and it makes the report generation easier. This thesis describes the requirements for the project and the resulting implementation. ii
5 CONTENT 1 INTRODUCTION PROBLEM AND MOTIVATION GOALS AND CRITERIA OUTLINE BACKGROUND NEW PROJECT SCENARIO TIME TRACKING SYSTEMS GOOGLE WEB TOOLKIT (GWT) AJAX Servlets GWT s transparency REQUIREMENTS, ANALYSIS AND OVERALL DESIGN USERS USE CASES & MODEL NON-FUNCTIONAL REQUIREMENTS DATA MODEL DESIGN MODEL COMMUNICATION PATTERN ARCHITECTURE: 3 LAYERS IMPLEMENTATION UC1: USER MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes Involved UC2: CATEGORY MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes involved UC3: ACTIVITY MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes Involved UC4: PROJECT MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes Involved UC5: DELIVERABLE MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes involved iii
6 4.6 UC6: TIME TRACK MANAGEMENT Use Case Specification Requirements Attributes Use Case Realization Classes involved UC7: REPORTING Use Case Specification Requirements Attributes Use Case Realization Classes involved UC8: LOG IN Use Case Specification Requirements Attributes Use Case Realization Classes involved UC9: LOG OUT Use Case Specification Requirements Attributes Use Case Realization Classes involved CONCLUSION & FUTURE WORK CONCLUSION FUTURE WORK...45 REFERENCES...46 iv
7 Table list Table 2.1: Time tracking systems' comparison... 4 Table 3.1: Use-Case overview... 8 Table 3.2: Non-functional Requirements... 9 Table 4.1: UC1's Functional Requirements Table 4.2: UC1's attributes Table 4.3: Classes involved in UC Table 4.4: UC2's Functional Requirements Table 4.5: UC2's Attributes Table 4.6: UC2's involved classes Table 4.7: UC3's Functional Requirements Table 4.8: UC3's attributes Table 4.9: UC3's involved classes Table 4.10: UC4's Functional Requirements Table 4.11: UC4's attributes Table 4.12: UC4's involved classes Table 4.13: UC5's Functional Requirements Table 4.14: UC5's attributes Table 4.15: UC5's involved classes Table 4.16: UC6's Functional Requirements Table 4.17: UC6's attributes Table 4.18: UC6's classes involved Table 4.19: UC7's Functional Requirements Table 4.20: UC7's attributes Table 4.21: UC7's involved classes Table 4.22: UC8's Functional Requirements Table 4.23: UC8's attributes Table 4.24: UC8's involved classes Table 4.25: UC9's Functional Requirements v
8 Figure list Figure 3.1: Use Case Model... 7 Figure 3.2: Data Model... 9 Figure 3.3: Class diagram Figure 3.4: Client side sequence diagram Figure 3.5: Server side sequence diagram (part 1) Figure 3.6: Server side sequence diagram (part 2) Figure 3.7: 3 layers architecture Figure 3.8: Layers interaction Figure 4.1: UC1's screenshots Figure 4.2: "Add user" requirement's sequence diagram Figure 4.3: "Create user" button's event (TimelogUsersView.java) Figure 4.4: Part of the creation of the interface(timelogusersview.java) Figure 4.5: Setting the form (grid) visible (TimelogUsersView.java) Figure 4.6: Asynchronous call (TimelogUsersView.java) Figure 4.7: Filling the DTO (TimelogUserView.java) Figure 4.8: Registry of services (Services.java) Figure 4.9: "Add" part of the UserHandler.java Figure 4.10: UserDao.java code for adding a user Figure 4.11: UserDto definition (UserDto.java) Figure 4.12: UserAction.java, the definition Figure 4.13: UserResponse.java, definition part Figure 4.14: UC2's screenshot Figure 4.15: UC3's screenshot Figure 4.16: UC4's screenshots Figure 4.17: UC5's screenshot Figure 4.18: UC6's screenshot Figure 4.19:UC7's screenshot Figure 4.20: UC8's screenshot vi
9 1 Introduction In many industries, and in particular in the service industry, internal and external cost estimation, planning, reporting, payment of salaries, and customer billing rely on the exact recording of time and effort spent. Recording time needs to be efficient and flexible, and with a minimum of overhead added. Applied Research in System Analysis (ARiSA) is an IT consulting company. Their goal is to leverage quality management on software and information systems engineering. They provide seminars, methods, and development tools supporting the efficient production and maintenance of high quality software. 1.1 Problem and Motivation In most of the projects ARiSA is involved in, customers get billed based on consulting time. Therefore, an exact accounting of the time spent on a project is important. Until recently, employees recorded the time spent on projects in personal time tracking sheets. With the number of projects and employees growing, it was more and more difficult to get an overview of the time spent. The effort required to update the individual time sheets with new tasks and activities was increasing as the time needed for creating reports based on the distributed reports. To improve on the increasingly unsatisfactory situation ARiSA started developing a web based application. Its purpose is to replace the current sheet based time tracking with an improved that is efficient, flexible, and low overhead solution. The problem addressed by this thesis is to complete and extend the existing prototype to a fully functional implementation. This is a difficult problem because it involves a complex data model. In addition, the infrastructure used at ARiSA involves Windows, Mac OS, and Linux based computers with a wide variety of web browsers used. Therefore the final solution should be operational in an inhomogeneous environment. 1.2 Goals and Criteria This section describes the goals pursued by this thesis in order to solve the problem and the criteria used for validating the goal: The main goal is to provide means for efficiently collecting time spent on a particular task. This goal will be reached when every user of the system can record date, time (from, to), task, and activity in an efficient way. Efficient means it should just take a few seconds for creating and saving a record. Additionally, it shall be possible to edit or delete existing records. The second goal is to be able to use the time tracking application without the need for installing extra software from everywhere, where Internet access is available. This goal is reached if a web application, which can be used by most of the currently available web browsers, is created. The third goal is to implement features allowing generating detailed reports based on the recorded time. This goal is reached if detailed reports can be generated based on the recorded time allowing specification of time, project, user, activity, etc., e.g., for bills or project control and cost calculation The final goal is to allow user management and the efficient specification of projects, deliverables, and activities. This goal is reached if authorized users can create, modify or delete information such as project, users, activities, etc. 1
10 1.3 Outline Chapter 2 contains more detailed information about the time recording workflow at ARiSA. In addition, used technologies and tools are discussed in general. In Chapter 3 the requirements, architecture and design of the overall solution are presented. Chapter 4 discusses the implementation of the design per Use-Case. Finally, in Chapter 5 we will summarize the conclusions we have taken while developing this application and we will talk about how it can be improved or expanded. 2
11 2 Background To make the problem of recording time more vivid we will describe a typical scenario when starting a new project. Then, discuss the technologies used for implementing the solution. 2.1 New Project Scenario A customer makes a request, which is written in a word document that later on will be shared with the rest of the working team. In the document, all the requested requirements are specified as well as the project s (resulting) deliverables, the activities for creating them, the estimated time, the budget and other information. Once the team has been informed about the new project, they start working on it or they continue with other on-going projects. Each member of the team has an individual time tracking spread sheet per project, where they manually take notes of the time they spend working on different activities of each deliverable of the project. After a certain period of time (usually every month), these spread sheets are collected and put all together manually, in other words, every employee s spread sheet about a concrete project is merged in a common one, and the same is done for every different project. The result will be used to create the cost calculation and invoices, which will show the total cost as well as the breakdown of each activity or deliverable. At the same time, the merged spreadsheet is useful for the verification of previous time and cost estimation, and for the internal personnel control. Finally, apart from cost estimations or invoices, other kinds of reports are also created in order to have more information about the evolution of the project during its development or the work of each employee, etc. These documents are made manually and printed in a pdf format in most of the cases, but they can also be spreadsheets or word documents. Due to an increasing number of projects, employees involved, and change requests it became more and more difficult to keep the activity and deliverable lists in each spreadsheet up to date. For example updating several spreadsheets efficiently with new deliverables was a problem. Also, building the final reports by combining the information in the spreadsheets took more and more time. For these reasons, ARiSA started implementing a web-based solution which has been the starting prototype of this thesis. It was only focused on the main requirement of the company, the time tracking. The interface was completely developed and the database had been started, but it only contained the necessary information for the concrete purpose. However, the database connexion was only implemented for the requests, and not to create, edit and delete info. In conclusion, the process to reach the main goal of the thesis was already started, but not finished, and all the rest needs were still to be developed. 2.2 Time Tracking Systems To address the limitations of the current spreadsheet based solution alternatives were investigated which satisfy the criteria stated in Section 1.2. There are several time tracking systems in the market nowadays, all with different settings. Some of them are made for only a specific task, while others cover many more computer based fields of a company. In platform matters, some are web-based while others are operative system dependent or specific for a device, for example iphone. There are also different licensing needs, from free open-source to subscription or licence based. 3
12 We have tried to analyse many of these products but they were not exactly what the company required. In Table 2.1, we compare a group of pre-selected products. It has been impossible to analyse all the existing products, but from the most notable ones, we have chosen those that fulfil at least one of the requirements and so those which seem to fit most with the specified goals. The characteristics we are comparing clear, on one hand, if the solution will be available in any of the operative systems used in the company, in other words, in any of the existing browsers. On the other hand, let us find out if it fulfils all the needs the company has, without overloading the system with too many features. Table 2.1: Time tracking systems' comparison Product name Platform Just necessary features Detail itimesheet[2] No Yes Only available for iphone, ipod touch and ipad dotproject[3] Yes No Volunteer supported project management application with too many features Grindstone[4] No Yes Microsoft Windows required TrackerSuite[5] Partial Yes Not ensured to run in every browser. 24SevenOffice[6] Yes No Complete ERP/CRM As a conclusion of Table 2.1, we can extract that there is no product in the market completely fulfilling ARiSA s needs. Due to this fact, the decision of developing a custom made application was taken. This application would successfully fill both kinds of requirements and so all the goals would be achieved. 2.3 Google Web Toolkit (GWT) For the development of the web-based application, we will use Google Web Toolkit, called from now on GWT. The information for both the development of the application and this section has been taken from [7], [8] and [9]. GWT is a powerful open source tool for building and optimizing complex browserbased applications. It provides all the widgets and Java APIs to perform anything that can be done in DOM or JavaScript, as it has been done usually until now. It allows writing AJAX applications that can be run in any browser or mobile operative system by encoding to highly optimize JavaScript. It can be developed in many IDEs and executed in any browser. Many tools, like Firebug or Inspector, can be used as you code in Java due to the fact that the developing mode is in the browser itself. One advantage of GWT is the powerful engines it has for optimization, for instance, the remove of dead code, in-lined methods and strings optimization. However, the most important advantage is that it allows developers to create one (complex and highperformance) web application that can run in most of the standard browsers without the need to adapt them to browser specific problems or requirements. The compiler does this job. In the following sections, will get more in detail on how this works AJAX At the beginning web pages were completely static and there was no interaction with the server. Each web page s content was the fixed, independently of the user that was accessing or the context. They evolved later in dynamic web pages, where depending on the user, the conditions or the context, the information shown on them varies because 4
13 this is taken from a database. Nevertheless, the developers found a disadvantage the necessity to refresh the whole web page in order to change any single detail of the content, making the user wait in front of the loading page. In that moment, a new technique that would solve this problem was about to be created. Asynchronous JavaScript and XML (AJAX) is the technique used for creating fast and dynamic web pages by making possible the update of only some parts of the page. Every time the user triggers an event, such as clicking a button, the necessary data is sent. Later on, just the needed data is fetched from the server as a response to the submitted actions, which will be used to repaint only the sections of the page that has to be changed. This procedure is done asynchronously, allowing the user continue performing other tasks in the browser while the data is returning. The keystone to carry out this procedure is the object call XMLHttpRequest (XHR). Usually the JavaScript invokes communication to the server through it, and it is used to address the problems that can be found in this communication. Some examples of these problems are, for instance, the ability to get and set HTTP headers or to handle different kind of content produced by the server. It has to be mentioned anyway, that not all the problems that can be found in the link are solved with XHR. However, as it is not the aim of this thesis to go into detail in the AJAX technique we will not continue further on, but more information can be found in [10] Servlets According to Sun Microsystems [11], Java developer, a servlet is a small Java program that runs within a Web server and receives and responses to request from Web clients, usually HTTP (Hypertext Transfer Protocol). It implements different methods in which the most important ones are those which define its life cycle. First of all, a servlet is created and initialized by the init method. During the system execution, any call to the service method is handled until the servlet is taken out of service. Once is not going to be used anymore, the destroy method destroys it, is collected by the garbage collector and in the end finalized. It can be thought as a non-face applet that is run on the server-side (from there its name). It gives the developers a simple and consistent mechanism for, in one hand, extending the functionality of a Web server and on the other hand, accessing existing business systems GWT s transparency After all the explanation about how a dynamic web page with AJAX technique is usually developed, we will describe which the differences are with the GWT framework, because even if the result is quite similar, the internal implementation is much simple. GWT has a mechanism that eases the application to make a call to the server-side code and get the data. This mechanism is a Remote Procedure Call (RPC) and is one of the most important pieces of the GWT, due to the fact that it hides all the plumbing necessary to create and consume a service. A service is the part of the code resident in the server-side that is called by the client and needs to receive and send data from this side, which usually is lightly complicated. However, in GWT technology all that has to be done is to define a service interface and program its implementation in the serverside. In addition, this connexion between both sides and all network operations are done asynchronously, otherwise, as most browser s JavaScript engines are mono-thread, the browser will look frozen during the execution, as we have said before. To implement 5
14 this asynchrony, for instance, a callback method is required to handle any possible result the service returns. Moreover, it is important to mention that when compiling a GWT project, a JavaScript is generated and not a bytecode. Because of this fact, object communication needs some help to bridge the language division. This division happens between the client and server sides, as well as JavaScript and the Java code of the browser, and object serialization has to be done, which is provided by GWT technology, as is different from the Java serialization. Finally, we can resume that due to all this plumbing that GWT makes it completely transparent to the developer; it offers the possibility to develop AJAX web-based applications without any AJAX knowledge, just Java programming language control. At the same time, there is no need of worrying about each browser s specification. Without using this technology, different applications have to be developed for different browsers. However, with GWT, the compiler makes it possible to develop an application once, which may be running in any of the main browsers. 6
15 3 Requirements, Analysis and Overall Design This chapter documents the requirements, analysis, and overall design of the Time Tracking System we develop. We will go from the users to a general view of the use cases, continuing with the non-functional requirements and the data and design model. Moreover, we will give some theoretical information about the architecture we have used. 3.1 Users There are two different users, depending on their privileges. As it can be seen in Figure 3.1 the main user, an employee, can manage time tracks and reports, as well as projects and deliverables, and of course will be able to log in and out of the system. Nevertheless, there is an especial kind of employee, super user or administrator, who has more privileges and is the person in charge of managing categories, activities and users. 3.2 Use Cases & Model In this section we present the main use-cases of the system. Figure 3.1 shows the usecases and their relation to the users in the system. Table 3.1 lists the use-cases and provides a brief description. Figure 3.1: Use Case Model 7
16 Table 3.1: Use-Case overview Use Case User management Category management Activity management Project management Deliverable management Time track management Reporting Log in Log out The super user can manage the users of the system. This includes displaying a list of the users in the system, adding new users, editing and removing existing users. The super user can manage the categories of the activities. This includes displaying a list of the categories existing in the system, adding new categories, editing and removing existing categories. The super user can manage the activities. This includes displaying a list of the activities that belongs to a concrete category existing in the system, adding new activities, editing and removing existing activities. Any user can manage the projects of the system. This includes displaying a list of the project he/she is working on, adding new projects, editing and removing existing projects. The owner of a project can manage the deliverables of the project. This includes displaying a list of the deliverables related to one project, adding new deliverables to a project, editing and removing existing deliverables. A user can manage his/her personal time track. This includes displaying the time track registered until that moment, starting and finishing new tracks, editing and removing existing tracks. A user can display reports (bills or memories) about any of the projects or deliverables he/she is working on. All users need to log in before they can do anything else in the system. All users can log out at any moment and from anywhere in their profile. 3.3 Non-Functional Requirements In Table 3.2 we will find the non-functional requirements of the system, all of them with a brief description. 8
17 Table 3.2: Non-functional Requirements Name Appearance The graphic design of the system has to be the same in the whole application. Intuitive The user may be able to use all the system s functionality in an intuitive way Platform dependency The application should work correctly in the main browsers DB consistency The new creations, changes or deleting operations should be recorded on the database at the moment. Multi user The system should allow the interaction of two or more users at the same time. Pre-installation The user does not need to install anything before visualizing the application. 3.4 Data Model The data model diagram (Figure 3.2) below is a simplified version of the whole diagram, due to the fact that only the classes, attributes and associations are shown. It generates a visual idea of which data is going to be necessary to store and manage, helping also the better understanding of the system. Figure 3.2: Data Model To describe Figure 3.2 the explanation will start from the User class. It is defined by the id, but also the name, which is unique, is used as an identifier. Apart from the password, 9
18 which is used for the identity checking, the rest of the attributes are additional information. A user can participate in several projects with more other users. Each project is identified by the id and contains a lot more information, for instance, the customer who asked for it or the creation date. It has a category type, in order to classify it in some way and it can be composed by several deliverables. A deliverable has information related to the project it belongs and in case it is a sub deliverable which its father is. It is identified by the id and also with a unique name, and it stores more data, such as a short name, a deadline and the rest of the attributes associated. A category is a class identified by the id and described by a name and a short name. Each of the categories contains many activities in order to classify these. An activity has the same attributes as a category, plus the cost. With all this structure, tasks to track the time and reports that show the tracked information can be defined. The first ones are defined by the user that executes an activity working on the deliverable of one project between the start and the end moment. They are defined by ids, but they have additional information as a description or links. The seconds, the reports, show which user has generate which type of report about which project or deliverable asking for information during a concrete period of time. They are also identified by an id. 3.5 Design Model In this section we will show a general class diagram (Figure 3.3) which shows how all the classes of the same kind interact with the others. Here we are going to describe in detail what each class is in order not to repeat it every time in all the use cases. As they all follow the same pattern, when explaining each use case specifically, we will just explain the mapping between them. For this reason the class and function names of this diagram are not real, but a generalization. The view class represents all the interface classes, where the interface appearance and the user s possible actions are defined. This class interacts with the DTO (Data Transfer Object) class used to transfer data between the client and the server sides and it contains all the necessary information taken from the interface to execute the request. (More detailed information about the DTO will be given in 3.7). The RPCService is a unique class that contains all the plumbing code for the correct connexion between both sides. It matches each action and response with the correspondent handler by consulting the service registry class. The action class is the one that contains the information that comes from the interface, while the response class is the one in charge of delivering the answer from the database. On the other hand, the handler s job is to get the information from the action, execute the request and places the result in the response. Finally, we have the DAO (Data Access Object) class and the entity. The first one makes the query to the database and typically has add, edit, delete and request functions, but can also contain many other different ones, depending on the needs. The result obtained from the query is placed in an entity class and will be consulted by the DAO in order to create the result. (If more information about a DAO is needed, go to 3.7). 10
19 Figure 3.3: Class diagram 3.6 Communication Pattern Once we have already analysed the class diagram, we would like to explain how they interact between them. For the same reason as before, instead of explaining it with one diagram per use case, we will use the general idea to explain it in detail. An example will be given for the first use case and both patterns could be used for any use case. We will start analysing the client side. The user generates an event or executes an action, for instance clicking a button, in the interface which is picked up by the view. This creates a DTO with all the necessary information for the realization of the task and it is sent inside the correspondent action and with the correspondent response to the RPCService interface. While this request is carrying out, the view will continue active. Once the asynchronous execution is done, the view will ask the response for the result, if there is any. This response is returned thanks to the AbstrackCallback class and the data from the result will used as it wants. The described sequence can be seen in Figure 3.4: Client side sequence diagram 11
20 Figure 3.4: Client side sequence diagram Next, we will talk about the server-side. However, and due to the fact that the sequence diagram would be too big, we have divided it into two parts: the RPC procedure and the developer s implementation. As we have said before, all the plumbing is so transparent that the developer s only need is to make an execute call, which later on will end up processing the code implemented by the user in the handler, as shown in Figure 3.5. The RPC will check in the service registry which handler belongs to the action it has been asked to carry out and will give it the control. Figure 3.5: Server side sequence diagram (part 1) To finish describing this process, we will expose how the user s request arrives to the data layer (Figure 3.6). In this execution, the handler takes the necessary data, if needed, from the DTO the action offers. The handler will execute the appropriate code in de DAO, which will make the SQL call to the database. At this point, the DB will return an entity from the correspondent class or a simple type of data, which will be prosecuted in 12
21 the DAO and returned to the handler. Before giving the control back to the RPC, the result will be loaded in the response in order to be accessible for the view. Figure 3.6: Server side sequence diagram (part 2) 3.7 Architecture: 3 Layers Our system will be implemented with the 3 layers architecture, which layers are the client-side or interface, the server-side and the database (Figure 3.7). We will explain the 3 of them separately and how they interact between them. The GUI (Graphical User Interface) is the top layer, the outside part of the system. It involves every page of the web-based application which the user will interact with, so it can be defined as what the user can see. The interface has to be intuitive and easy to work with and has to follow the same structure or appearance in all the pages. The user will express his/her wishes to the system by clicking buttons or icons, and the system will answer by showing the requested information or executed the requested command. In our case, it has been implemented with the GWT tool, using HTML for the content and CSS for the appearance. The next level is the domain layer, also called the object layer. It is located in the server side and it is the layer that manipulates all the data. This layer is considered the core of the system, due to the fact that is the link between the highest and the lowest level. It has knowledge about everything that is happening in the system, and this knowledge can be divided in two types. On one hand, there is the runtime data which is the data that is being used at a concrete moment. On the other hand, it knows all the structural information about both process and data structure. For the implementation of this part, we have chosen the Java programming language because is the one that works with GWT and because of its wide range of libraries. Finally, in the lowest level, we can find the data layer which contains all the storage data, in other words, the database. It is the layer in charge of the persistency and in which all the new information will be saved and the consults will be done using SQL. In this case, we have chosen MySQL for the database implementation and Apache Tomcat for the server. 13
22 The main advantages of this architecture lie in the divide and conquer strategy, which makes it easier to handle three simple layers than a complex one. Moreover, it eases the reusability and the better understanding of the system, which is always recommendable for a possible expansion or reorganization. Figure 3.7: 3 layers architecture However, data transfer between layers can become a problem. Differences in the programming language or transfers in the net can cause chaos. For that reason especial data objects are used, DTO and DAO (Figure 3.8: Layers interaction). To transfer information from the GUI to the domain layer can provoke several calls to the system. In order to save them, a Data Transfer Object can encapsulate all the needed information and with a single call will be enough. When the user requests information from the system, the same happens. The Transfer Object created by the system will be populated with the attribute s values and pass by value to the interface. The information has been taken from [12]. In the case of the access to the database, the problem remains in the different database structures existing nowadays. For this reason, Data Access Objects (DAO) handle the connection with the data source, managing both the obtaining and the storing of data. This pattern has been described in 46[13]. Figure 3.8: Layers interaction 14
23 4 Implementation This chapter documents the implementation of the overall design described in the previous chapter. It does this Use-Case by Use-Case, first presenting a more detailed Use-Case specification and then a Use-Case realization including the classes involved. Screenshots of the final implementation are provided. 4.1 UC1: User Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3. Moreover, the Use-Case realization offers some concrete examples that can be used for the rest of the use cases Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. The user is logged as admin so the Users view is available. 2. The user clicks in Users flag and this is displayed. 3. The super user has the following options: a. Press [Create new user] button. i. An empty information chart is shown. ii. The super user enters the information of the new user. iii. The user presses the [Save] button. (E1) iv. The system adds the new user to the system after checking for duplicates, invalid characters, password and password confirmation match, etc. (E2) v. The new user s data is displayed in a non-editable way. b. Select a user from the list of existing users. i. The user s information is displayed. ii. The user has the following options. 1. The user presses [Delete] button. a. The user is removed. b. Back to point The user presses [Edit] button. a. The information is editable and the user changes the information that wants to change. b. The user pressed [Save] button.(e3) c. The system updates the information after checking for duplicates, invalid characters, if the passwords match, etc. (E4) d. Back to point 3.b.i. 3. The user presses [Back] button. a. Back to point 3. Extensions E1. The user presses [Cancel] button. - End of the use case. E2. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 3.a.ii E3. The user presses [Cancel] button. - End of the use case. 15
24 E4. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 3.b.ii.2.a Requirements The functional requirements this use case must satisfy are the following (Table 4.1): Table 4.1: UC1's Functional Requirements FR1 Add a user A new user will be added to the system. The user is not already in the system. Post-condition A new user will be added to the system and it will be able to connect to the system and work with it. FR2 Post-condition FR3 Post-condition FR4 Post-condition Edit a user An existing user s information has to be changed. The new information is stored. Delete a user An existing user will be deleted from the system. The user will be erased from the system and will not be able to connect to the system anymore. Visualize user s data The specified user s information will be displayed on the screen Attributes In the following table, Table 4.2, all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. 16
25 Table 4.2: UC1's attributes Attribute Id Name Password Complete Name Telephone number User Management Automatically given by the system. Only used for internal reasons. Signing name of the user. Usually a short form. It is unique. Admin is the default super user account. Signing password of the user. Name of the user. Typically first and last name. of the user. Used for communication, etc. Lost password recovery. Phone number of the user, usually mobile phone Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like, and how with it all the functional requirements can be fulfil and every attribute s information can be collected. Figure 4.1: UC1's screenshots 17
26 Figure 4.1 shows the typical screenshots from User Management use case. In the first one, we can see the starting point where the super user chooses whether to create a new user or to visualize an existing user s information. In the second screenshot, we can see the form displayed in case the user wants to create a new user; and finally in the last screenshot, the information of an existing user is already shown and the super user can choose between editing and deleting it. With this interface, all the 4 requirements of this use case are fulfil at most in 4 clicks and the necessary time to fill the forms required wherever the user is in the system. Moreover, all the necessary information can be collected from the chart in order to fill all the attributes properly Classes Involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.3). Moreover, an example sequence diagram is presented. It shows the implementation of the add user requirement and it continues with an explanation in where the most important parts of the code are shown. Table 4.3: Classes involved in UC1 General name Class name (.java) View TimelogUsersView DTO UserDto Action UserAction Response UserResponse Handler UserHandler DAO UserDao Entity User 18
27 Figure 4.2: "Add user" requirement's sequence diagram 19
28 As an example of the behaviour of the system, Figure 4.2 shows the sequence diagram of Add user. First of all, the user decides to create a new user by clicking in a button and the system catches the event Figure 4.3. Figure 4.3: "Create user" button's event (TimelogUsersView.java) When executing the event, the form to create a new user will be displayed. The form has been created previously. It is composed by a label and a text or suggestion box per each attribute required placed in a grid, as shown in Figure 4.4. However, it will be visible from that moment on (Figure 4.5, line 225). Figure 4.4: Part of the creation of the interface(timelogusersview.java) Figure 4.5: Setting the form (grid) visible (TimelogUsersView.java) 20
29 Once the user has filled the form and after clicking in the save button another event will be caught in the same way as the previous one. After checking the correctness of the introduced data (Figure 4.6, line 271), a DTO will be created (Figure 4.6, lines 274 and 275 and Figure 4.7) and the asynchronous call will be done to the service (Figure 4.6, line 277). When creating the DTO (a serializable class), the information will be taken from the form as it can be seen in Figure 4.7. Figure 4.6: Asynchronous call (TimelogUsersView.java) Figure 4.7: Filling the DTO (TimelogUserView.java) After the call to the RPCService, as shown in the sequence diagram, the correspondent handler (found thanks to the service registry, Figure 4.8) is called. It will be the class in charge of taking the information coming from the presentation layer, delegate to the DAO the call to the database and set the result in the response class (Figure 4.9, line 21). Figure 4.8: Registry of services (Services.java) 21
30 Figure 4.9: "Add" part of the UserHandler.java In the DAO class the user entity is created and set with the corresponding information. The call to the database is done and the entity is returned to the DAO (Figure 4.10). Figure 4.10: UserDao.java code for adding a user The returned information, the new user s id, will be set in the UserResponse by the handler as can be seen in Figure 4.9 line 29. Afterwards, the AbstractCallback in the view will take it and set it to the DTO (see line 279 of Figure 4.6). To finish the example, parts of the classes that have not been shown before are displayed for a better understanding (Figure 4.11, Figure 4.12 and Figure 4.13.) 22
31 Figure 4.11: UserDto definition (UserDto.java) Figure 4.12: UserAction.java, the definition Figure 4.13: UserResponse.java, definition part 23
32 4.2 UC2: Category Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. The user is logged as admin so the Categories & Activities view is available. 2. The user clicks in Categories & Activities flag and this is displayed. 3. All the existing categories are shown in a table. 4. The super user has the following options: a. The user fills the chart with information of a new category and press [Add] button. (E1) i. The system adds the new category to the system after checking for duplicates, invalid characters, etc. (E2) ii. The new category is added to the existing categories table. b. Presses [Delete] icon of an existing category: i. The category is removed. c. Presses [Edit] icon of an existing category: i. The row with the category s information becomes editable. ii. The user changes the information that wants to change. iii. The user presses [Save] icon. (E3) iv. The system updates the information after checking for duplicates, invalid characters, if the passwords match, etc. (E4) d. Presses [Plus] icon of an existing category. i. The activities belonging to the selected category are displayed. e. Presses [Minus] icon of an existing category. i. The activities belonging to the selected category will be hidden. Extensions E1. The user fills the chart and press [Clear] button. - Back to point 2. E2. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 4.a E3. The user presses [Cancel] icon. - There is no change in the category and goes back to point 2. E4. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 4.c.ii Requirements The functional requirements this use case must satisfy are the following (Table 4.4): 24
33 Table 4.4: UC2's Functional Requirements FR5 Add a category A new category will be added to the system. The category is not already in the system. Post-condition A new category will be added to the system. Every user will be able to connect any project to it and the super user will be able to add activities to it. FR6 Post-condition FR7 Post-condition FR8 Post-condition Edit a category An existing category s information has to be changed. The new information is stored. Delete a category An existing category will be deleted from the system. The category will be erased from the system and will be disconnected from every project and activity. Visualize category s data The specified category s information is displayed in one of the rows of the Category table Attributes In the following table (Table 4.5) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.5: UC2's Attributes Category Management Attribute Id Short name Name Automatically given by the system. Only used for internal reasons. Identifier of a category, usually not very long. It is unique. Name of the category used to describe it briefly Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.14), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. 25
34 Figure 4.14: UC2's screenshot In the above screenshot,figure 4.14: UC2's screenshot Figure 4.14, we can see first of all a form where the information of a new category can be set. At the same time, in the table below all the existing categories are listed. Each row represents a different category and the list of sub-rows displayed when clicking the plus icon are the activities belonging to this category. Through this interface the user can execute all the functional requirements attached to this use case and all the information needed for the correct working of the system can be collected. Moreover, the 4 requirements can be executed in at most 3 clicks, which would be the case of editing a category, for example (choose the category panel, click in the editing button of the concrete category, edit the information and save it) Classes involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.6). Table 4.6: UC2's involved classes General name View DTO Action Response Handler DAO Entity Class name (.java) TimelogCatActView TimelogCatEntryView CategoryDto CategoryAction CategoryResponse CategoryHandler CategoryDao Category 4.3 UC3: Activity Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management. 26
35 4.3.1 Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. The user is logged as admin so the Categories & Activities view is available. 2. The user clicks in Categories & Activities flag and this is displayed. 3. The super user has the following options: a. The user fills the chart with information of a new activity and press [Add] button. (E1) i. The system adds the new activity to the system after checking for duplicates, invalid characters, etc. (E2) ii. The new activity is added to the existing categories table, below the categories it belongs but is not displayed. b. Press [Plus] icon of an existing category. i. The activities belonging to it are displayed. ii. The super user presses [Delete] icon of an existing activity. 1. The activity is removed. iii. The super user presses [Edit] icon of an existing activity: 1. The row with the activity s information becomes editable. 2. The user changes the information that wants to change. 3. The user presses [Save] icon. (E3) 4. The system updates the information after checking for duplicates, invalid characters, if the passwords match, etc. (E4) Extensions E1. The user fills the chart and press [Clear] button. - Back to point 2. E2. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 1.a E3. The user presses [Cancel] icon. - There is no change in the category and goes back to point 3. E4. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 3.b.iii Requirements The functional requirements this use case must satisfy are the following (Table 4.7): Table 4.7: UC3's Functional Requirements FR9 Add an activity A new activity will be added to the system. The activity does not already exit in the system. Post-condition A new activity will be added to the system and it will available for the users in the time tracking task. FR10 Post-condition Edit an activity An existing activity s information has to be changed. The new information is stored. 27
36 FR11 Post-condition FR12 Post-condition Delete an activity An existing activity will be deleted from the system. The activity will be erased from the system and will not be available for the time track management anymore. Visualize user s data The specified activity s information will be displayed Attributes In the following table (Table 4.8) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.8: UC3's attributes Activity Management Attribute Id Name Short name Cost Categories Automatically given by the system. Only used for internal reasons. Name of the activity. Identifies the activity in a faster way. It is unique. Describes how much that activity costs per hour. The categories it belongs to. All activities must belong to at least one category Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.15), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. Figure 4.15: UC3's screenshot 28
37 As in the category management screenshot, we first can find a form where all the needed information for a new activity can be filled. In addition, for each category, all the activities belonging to it can be displayed, so any change or erase can be done at any moment. Thanks to this GUI, new activities can be saved with all the attributes filled and every task the system must carry out in the aspect of activities can be perfectly executed in less than 3 clicks Classes Involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.9). Table 4.9: UC3's involved classes General name View DTO Action Response Handler DAO Entity Class name (.java) TimelogCatActView TimelogCatActEntryView ActivityDto CategoryDto ActivityAction CatActAction ActivityResponse CatActResponse ActivityHandler CatActHandler ActivityDao Category_activityDao Activity Category_activity 4.4 UC4: Project Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. A user is logged. 2. The user selects the [Projects] flag and this is displayed. 3. Here the user has the following options: a. Presses [Create new project] button. i. An empty information chart is shown. ii. The user enters the information of the new project. iii. The user presses [Save] button. (E1) iv. The system adds the new project to the system after checking for duplicates, invalid characters, etc. (E2) v. The information of the project is now shown as non-editable. b. Choose an existing project from the list i. The information about the project is displayed. 29
38 ii. Then the user has the following options: 1. The user presses [Delete] button. a. The project and all the information related to it (for instance, deliverables) are removed. 2. The user presses [Edit] button. a. The information is now editable. b. The user changes the information that wants to change. c. The user presses [Save] button. (E3) d. The system updates the information after checking for duplicates, invalid characters, etc. (E4) 3. The user presses [Back] button. a. Back to point 3. Extensions E1. The user presses [Cancel] button. - End of the use case. E2. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 3.a.ii E3. The user presses [Cancel] icon. - There is no change in the category and goes back to point 2. E4. The data is not valid - The system will show a message indicating what data is not correct. - Back to point 3.b.ii.2.b Requirements The functional requirements this use case must satisfy are the following (Table 4.10): Table 4.10: UC4's Functional Requirements FR13 Add a project A new project will be added to the system. The project does not already exist in the system. Post-condition A new project will be added to the system. It will be added to all the users who participate on it and those users will be able to use it in the time track management. FR14 Post-condition FR15 Post-condition Edit a project An existing project s information has to be changed. The new information is stored. Delete a project An existing project will be deleted from the system. The project will be erased from the system and will not be available for the time tracking anymore. 30
39 FR16 Post-condition Visualize project s data The specified project s information will be displayed on the screen Attributes In the following table (Table 4.11) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.11: UC4's attributes Project Management Attribute Id Name Short name Customer Creation date Next meeting date Participants Category Automatically given by the system. Only used for internal reasons. Complete name of the project. Identifier of the project is unique in the system. Usually a short form. Identifies the customer that asked to develop the project. It does not usually change once identified. Identifies when the project was created. It is not usual to be changed. Indicates when the next meeting about the project is going to be. Brief description of what the project is about. List of users that take part in the project. The category the project belongs to, depending on the kind of project Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.16: UC4's screenshotsfigure 4.16), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. 31
40 Figure 4.16: UC4's screenshots With the implemented interface, the user will first have to decide whether to create a new project or treat with an existing one. Depending on this choice, an empty or filled form will show up with all the information related to the project. The new project s options will just be to add it or not to the system, while the existing project may be edited or deleted. The screen has been designed in order to ease all the functionalities of the use case to the user in at most 4 clicks. Moreover, due to the form, all the required information will be set by the user Classes Involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.12). 32
41 Table 4.12: UC4's involved classes General name Class name (.java) View TimelogProjectsView DTO ProjectDto Action ProjectAction UserProjectAction Response ProjectResponse UserProjectResponse Handler ProjectHandler UserProjectHandler DAO UserDao User_projectDao Entity User User_project 4.5 UC5: Deliverable Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. A user is logged. 2. The user selects the [Deliverables] flag and this is displayed. 3. The user selects a project from the list of projects. 4. A table with all the deliverables belonging to the chosen project is displayed. 5. Here the user has the following options: a. Presses [Add] icon from the table: i. An empty row is shown in the beginning of the table. ii. The user enters the information of the new deliverable. iii. The user presses [Save] icon. (E1) iv. The system adds the new deliverable to the system after checking for duplicates, invalid characters, etc. (E2) b. Presses [Add] icon from a deliverable: i. An empty row is shown under the chosen deliverable (who will be the father of the new one) in the table. ii. The user enters the information of the new deliverable. iii. The user presses [Save] button. (E3) iv. The system adds the new deliverable to the system after checking for duplicates, invalid characters, etc. (E4) c. Presses [Delete] icon from a deliverable: i. The deliverable is removed d. Presses [Edit] icon: i. The information about the deliverable becomes editable in the table. ii. The user changes the information that wants to change. iii. The user presses [Save] icon. (E5) iv. The system updates the information after checking for duplicates, invalid characters, etc. (E6) 33
42 Extensions E1. The user presses [Cancel] button. - End of the use case. E2. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 5.a.ii E3. The user presses [Cancel] button. - End of the use case. E4. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 5.b.ii E5. The user presses [Cancel] button. - End of the use case. E6. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 5.d.ii Requirements The functional requirements this use case must satisfy are the following (Table 4.13): Table 4.13: UC5's Functional Requirements FR17 Add a deliverable A new deliverable will be added to the system. The deliverable is not already in the system. Post-condition A new deliverable will be added to the system and the users will be able to track the time they spend working on it. FR18 Post-condition FR19 Post-condition FR20 Post-condition Edit a deliverable An existing deliverable s information has to be changed. The new information is stored. Delete a deliverable An existing deliverable will be deleted from the system. The deliverable will be erased from the system. Visualize deliverable s data The specified deliverable s information will be shown Attributes In the following table (Table 4.14) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. 34
43 Table 4.14: UC5's attributes Deliverable Management Attribute Id Name Short name Parent Project Deadline Done Automatically given by the system. Only used for internal reasons. Complete name of the deliverable Identifier of the deliverable is unique in the system. Usually a short form. Brief description of what the deliverable is about. Deliverable it belongs to. It can be NULL if it does not belong to any other deliverable. Indicates the project it belongs to. Day the deliverable should be finished. If it is empty, it means that the deliverable has been postponed. Indicates if the deliverable is on-going or has already been finished Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.17), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. Figure 4.17: UC5's screenshot After choosing a project, the user will be able to see the list of the deliverables and subdeliverables belonging to it. Every deliverable will be displayed with all the related information and the user will be able to edit or delete them, and as far as they are not sub-deliverables, add them a children deliverable. This display eases the user to manage any deliverable his way in a really quick process (3 clicks at most), as described in the functional requirements. In addition, all the information explained in the attributes section can be got from this interface, so the use case will be completely fulfilled Classes involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.15). 35
44 Table 4.15: UC5's involved classes General name View DTO Action Response Handler DAO Entity Class name (.java) TimelogDeliverablesView TimelogDelivEntryView DeliverableDto DeliverableAction DeliverableResponse DeliverableHandler DeliverableDao Deliverable 4.6 UC6: Time Track Management In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. A user is logged. 2. The [Time Tracking] flag is automatically chosen or the user selects it and this is displayed. 3. Here the user has the following options: a. Presses [Add] icon. i. An empty row is shown in the beginning of the table. ii. The user enters the information of the new activity. iii. The user presses the [Save] icon. (E1) iv. The system adds the new activity to the system after checking for duplicates, invalid characters, etc. (E2) b. Presses [Delete] icon from a time track: i. The time track is removed c. Presses [Edit] icon: i. The information about the track becomes editable in the table. ii. The user changes the information that wants to change. iii. The user presses [Save] icon. (E3) iv. The system updates the information after checking for duplicates, invalid characters, etc (E4) Extensions E1. The user presses [Cancel] button. - End of the use case. E2. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 3.a.ii E3. The user presses [Cancel] button. - End of the use case. E4. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 3.c.ii 36
45 4.6.2 Requirements The functional requirements this use case must satisfy are the following (Table 4.16): Table 4.16: UC6's Functional Requirements FR21 Add a track on time A new track will be added to the system. None Post-condition A new time track will be added to the system. FR22 Post-condition FR23 Post-condition FR24 Post-condition Edit a track An existing track s information has to be changed. The new information is stored. Delete a track An existing track will be deleted from the system. The track will be erased from the system. Visualize track s data Every track s information is displayed on the screen Attributes In the following table (Table 4.17) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.17: UC6's attributes Time Tracking Management Attribute Id User Project Deliverable Activity Link Start End Duration Automatically given by the system. Only used for internal reasons. The user that has carry out the task. The project the user has been working on during that period of time. The deliverable of the project selected the user has been working on concretely. The activity the user has been doing on the chosen deliverable. Brief description or note about the job that has been done. It can be additional information of what the user has been working on. The exact moment the user has started the activity. The exact moment the user has finished the activity. The time the user has spent developing the activity. Automatically calculated. 37
46 4.6.4 Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.18), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. Figure 4.18: UC6's screenshot When the user logs in, all the time tracks belonging to him will be displayed in a noneditable table. This table will show all the information from every track which may be edited or deleted at any moment. Moreover, a new track may be added whenever the user wants by introducing all the required information. The implementation and design of this interface allows the user to execute any of the functional requirements defined in the use case in less than 3 clicks and to save all the necessary data of the track in the database Classes involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.18). Table 4.18: UC6's classes involved General name View DTO Action Response Handler DAO Entity Class name (.java) TimelogTableView TimelogEntryView TaskDto TaskAction TaskResponse TaskHandler TaskDao Task 4.7 UC7: Reporting In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. A user is logged. 2. The user clicks in Reporting flag and this is displayed. 3. All the existing reports that belong to the user are shown in a table. 4. Here the user has the following options: 38
47 a. Presses [Add] icon. i. An empty row is shown in the beginning of the table. ii. The user enters the information of the new report. iii. The user presses the [Save] icon. (E1) iv. The system adds the new activity to the system after checking for duplicates, invalid characters, etc. (E2) v. The report is displayed after the table. b. Presses [Repeat] icon of a report. i. The chosen report is displayed after the table. c. Presses [Delete] icon from a report: i. The report is removed d. Presses [Edit] icon of a report: i. The information about the report becomes editable in the table. ii. The user changes the information that wants to change. iii. The user presses [Save] icon. (E3) iv. The system adds a new report with the new information after checking for duplicates, invalid characters, etc because changes in an old report are considered as the creation of a new report. (E4) v. The new report is also added on the table. Extensions E1. The user presses [Cancel] button. - End of the use case. E2. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 4.a.ii E3. The user presses [Cancel] button. - End of the use case. E4. The data is not valid. - The system will show a message indicating what data is not correct. - Back to point 4.d.ii Requirements The functional requirements this use case must satisfy are the following (Table 4.19): Table 4.19: UC7's Functional Requirements FR25 Create a report A new report will be added to the system and displayed. The report has not been created yet. Post-condition A new report will be added to the system and the user will be able to see it on the screen. FR26 Post-condition FR27 Post-condition Create a report from an existing one An existing report will be modified to create a new one. The new report does not exist yet. The new report is created and it is displayed on the sreen. Delete a report An existing report will be deleted from the system. The report will be erased from the system. 39
48 FR28 Post-condition Repeat a report The specified report will be displayed on the screen Attributes In the following table (Table 4.20) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.20: UC7's attributes Reporting Attribute Id Type Creation Project Deliverable User Start End Automatically given by the system. Only used for internal reasons. Describes if the report is going to be a bill or a memory. The date the report was created. Automatically introduced. The project the report is going to be about if there is no deliverable. The deliverable the report is going to be about if there is any. The user who is asking for the report. The starting date of the period that is going to be reported. The ending date of the period that is going to be reported Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.19), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. 40
49 Figure 4.19:UC7's screenshot This use case s interface shows all the reports created by the user. From here, the user will be able to create a new one from the beginning or editing an old one. He also will be able to re-display an existing report or to delete it, as he wishes. As it can be seen, all the information about any report can be collected or shown in this GUI and all the defined requirements can be executed in no more than 3 clicks Classes involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.21). Table 4.21: UC7's involved classes General name Class name (.java) TimelogReportingView View TimelogReportEntryView ReportDto DTO BillDto MemoryDto ReportAction Action BillAction MemoryAction ReportResponse Response BillResponse MemoryResponse ReportHandler Handler BillHandler MemoryHandler ReportDao DAO BillDao MemoryDao Entity Task 41
50 4.8 UC8: Log In In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. The user introduces his/her username and password. 2. The system checks the password matches with the password of the username introduced. (E1) 3. The correspondent display is shown. Extensions E1. The data is invalid. - Back to point Requirements The functional requirements this use case must satisfy are the following (Table 4.22): Table 4.22: UC8's Functional Requirements FR29 Log in A registered user is going to log in the system. The user exists in the system. Post-condition The system will show the user an interface with all the information related to him: projects, deliverables, time track and reports if it is a normal user, and also users, categories and activities if it is a super user Attributes In the following table (Table 4.23) all the attributes this use case needs are shown, each of them with a brief explanation of their meaning or job. Table 4.23: UC8's attributes Log in Attribute Username Password Short name unique for each user. Key word chosen by the system or the user used for verification Use Case Realization In this section we will, on one hand, show screenshots of how each use case interface looks like (Figure 4.20), and how with it all the functional requirements can be fulfil and every attribute s information can be collected. 42
51 Figure 4.20: UC8's screenshot The interface shows a small dialog box where the user may introduce his username and password in order to enter the system. This simple GUI makes it easy to log in the system, fulfilling the only functional requirement of the use case Classes involved As we have said before, in this section we will list the classes involved in this use case and to which general group of the previous explanation it belongs (Table 4.24). Table 4.24: UC8's involved classes General name Class name (.java) View Timelog TimelogPanelView DTO - Action LoginAction Response LoginResponse Handler LoginHandler DAO SessionDao UserDao Entity User 4.9 UC9: Log Out In this section the specification, requirements, attributes and realization of the Use-Case are explained by mapping it with the described in chapter 3, but no example is given. For an example, look at the description of Use-Case number 1, User Management Use Case Specification In this section all the use case flow is explained, both in a successful case and in an alternative case (extensions). Main Success Scenario 1. The user presses [Logout] link. 2. The system closes the current session discarding the changes that has not been saved and displays the log in screen. 43
52 4.9.2 Requirements The functional requirements this use case must satisfy are the following (Table 4.25): Table 4.25: UC9's Functional Requirements FR30 Log out The current user of the system is going to abandon it. Post-condition The user will leave the system and screen will show the log in interface Attributes This use case does not need any attribute for its realization Use Case Realization In all interfaces of the system, except the login, there is the possibility of executing this use case by clicking in the Logout link. For this reason, we will not show any screenshot in this area, but the link can be seen in any of the screenshots shown before Classes involved As the Use-Case can be executed at any moment and has no link to the database, the only classes involved are all the view classes mentioned before. 44
53 5 Conclusion & Future Work In this last chapter, we will talk about the conclusions we have extracted from the development of this project. At the same time, we will mention some of possible jobs it could be done in the project, such as improvements, updates or extensions of functionalities in order to define which work has to be done in the future. 5.1 Conclusion The aim of this thesis was to solve a problem ARiSA had due to their increasing growth. This solution was going to arrive by improving and expanding a prototype which implementation was already started. For a successful work, the following goals had to been reached. The main goal was to provide a tool that was able to store the time spent on each particular task by a user in an efficient way. This goal has been successfully achieved by the implementation of the Time track management use case. Moreover, thanks to an intuitive interface, the use case can be executed in few seconds, like it was defined as efficient. The second goal referred to the fact of having a heterogeneous environment when talking about operative systems and access places. It was important to assure that no installation had to be required for the correct running of the system. Due to the use of GWT, it is sure that the system will run as expected in any browser, fulfilling the criteria. Another goal we had to reach was the reporting creation. The system needed to have the necessary features to allow users generate detailed reports based on the content of the database. To achieve this goal the generation of reports had be a reality, which it is. Reporting use case implements the necessary functions in order to consult all the necessary information in the database and create either a bill or a memory with it. Finally, the last goal we had to achieve to complete this thesis successfully was to provide the means to authorized users to manage users and specify projects, activities or tasks. This goal has been achieved, as it can be seen in the specification of the rest of the use cases. Any of the elements mentioned can be created, edited and deleted by users with that authority Because of the success just mentioned, we can conclude by saying that all the goals have been achieved. The project has fulfilled every expectation and so the web-based application is ready to become operational. 5.2 Future Work As future work, there are several points we would like to take into considerations. On one hand, it is important to keep the application up to date technologically talking. A revision of the GWT version would be recommended every certain time, in order not to have a deprecated code. On the other hand, many extensions can be implemented for this application. Some extensions may be data extensions, in other words, more data can be stored, and for instance, customer related data. This would generate at the same time an extension in the functionality aspect, because this would cause the creation of a new use case. Moreover, some use cases could be expanded to execute more tasks than the ones they are doing now. A good example of it is the reporting use case, due to the fact that other kind of reports can be needed in the future. In this case we would have to add a functional requirement to the use case and implement its execution. 45
54 REFERENCES [1] ARiSA AB ARiSA AB. Available at: [Accessed 14 June 2010] [2] Jean-François GRANG itimesheet: a TimeSheet software for iphone. Available at: [Accessed 15 June 2010] [3] Slackhat dotproject Open Source Software :: Open Source Project and Task Management Software. Available at: [Accessed 15 June 2010] [4] Epiforge Software Grindstone 2 Time Tracking. Available at: [Accessed 15 June 2010] [5] Automation Centre Web Based Project Management Software : TrackerSuite.Net. Available at: [Accessed 15 June 2010] [6] 24SevenOffice SevenOffice Web based systems for CRM and Collaboration. Available at: [Accessed 15 June 2010] [7] Google Google Web Toolkit Overview Google Web Toolkit Google Code. Available at: [Accessed 14 June 2010] [8] ScreamingToaster LLC developerlife Tutorials >> GWT Tutorial Introduction to GWT. Available at: [Accessed 16 June 2010] [9] ScreamingToaster LLC Developerlife Tutorials >> GWT Tutorial Building a GWT RPC Service. Available at: [Accessed 16 June 2010] [10] Powell, Thomas A., Ajax: The Complete Reference. [e-book] New York : McGraw-Hill. Available at: Linnaeus University Library Catalogue [Accessed 16 June 2010] [11] Oracle Corporation and/or its affiliates Java Servlet Technology. Available at: [Accessed 16 June 2010] [12] Oracle Corporation and/or its affiliates Core J2EE Patterns Data Transfer Object. Available at: [Accessed 16 June 2010] [13] Oracle Corporation and/or its affiliates Core J2EE Patterns Data Access Object. Available at: 46
55 SE Växjö / SE Kalmar Tel [email protected] Lnu.se
Budget Event Management Design Document
Budget Event Management Design Document Team 4 Yifan Yin(TL), Jiangnan Shangguan, Yuan Xia, Di Xu, Xuan Xu, Long Zhen 1 Purpose Summary List of Functional Requirements General Priorities Usability Accessibility
PROJECT MANAGEMENT SYSTEM
Requirement Analysis Document v.2 14.12.2009 CENG-401 SOFTWARE ENGINEER PROJECT MANAGEMENT SYSTEM (Project Manager) Ahmet Edip SEÇKİN 07010555 (Developer) Erhan ŞEN 07010507 (Developer) Semih Serdar CENGİZOĞLU
Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf
1 The Web, revisited WEB 2.0 [email protected] Credits: Some of the slides are based on material adapted from www.telerik.com/documents/telerik_and_ajax.pdf 2 The old web: 1994 HTML pages (hyperlinks)
Embedded BI made easy
June, 2015 1 Embedded BI made easy DashXML makes it easy for developers to embed highly customized reports and analytics into applications. DashXML is a fast and flexible framework that exposes Yellowfin
Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy
Google Web Toolkit Introduction to GWT Development Ilkka Rinne & Sampo Savolainen / Spatineo Oy GeoMashup CodeCamp 2011 University of Helsinki Department of Computer Science Google Web Toolkit Google Web
An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0
An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Rational Application Developer, Version 8.0, contains
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
1. Introduction 1.1 Methodology
Table of Contents 1. Introduction 1.1 Methodology 3 1.2 Purpose 4 1.3 Scope 4 1.4 Definitions, Acronyms and Abbreviations 5 1.5 Tools Used 6 1.6 References 7 1.7 Technologies to be used 7 1.8 Overview
Software Requirements Specification
METU DEPARTMENT OF COMPUTER ENGINEERING Software Requirements Specification SNMP Agent & Network Simulator Mustafa İlhan Osman Tahsin Berktaş Mehmet Elgin Akpınar 05.12.2010 Table of Contents 1. Introduction...
Maximizer CRM 12 Winter 2012 Feature Guide
Winter Release Maximizer CRM 12 Winter 2012 Feature Guide The Winter release of Maximizer CRM 12 continues our commitment to deliver a simple to use CRM with enhanced performance and usability to help
Business Process Management with @enterprise
Business Process Management with @enterprise March 2014 Groiss Informatics GmbH 1 Introduction Process orientation enables modern organizations to focus on the valueadding core processes and increase
How To Write An Ria Application
Document Reference TSL-SES-WP-0001 Date 4 January 2008 Issue 1 Revision 0 Status Final Document Change Log Version Pages Date Reason of Change 1.0 Draft 17 04/01/08 Initial version The Server Labs S.L
LabVIEW Internet Toolkit User Guide
LabVIEW Internet Toolkit User Guide Version 6.0 Contents The LabVIEW Internet Toolkit provides you with the ability to incorporate Internet capabilities into VIs. You can use LabVIEW to work with XML documents,
Evoko Room Manager. System Administrator s Guide and Manual
Evoko Room Manager System Administrator s Guide and Manual 1 1. Contents 1. Contents... 2 2. Read this first! Introduction to this Guide... 6 3. User Guide... 6 4. System Architecture Overview... 8 ----
Adding Panoramas to Google Maps Using Ajax
Adding Panoramas to Google Maps Using Ajax Derek Bradley Department of Computer Science University of British Columbia Abstract This project is an implementation of an Ajax web application. AJAX is a new
GUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
High Level Design Distributed Network Traffic Controller
High Level Design Distributed Network Traffic Controller Revision Number: 1.0 Last date of revision: 2/2/05 22c:198 Johnson, Chadwick Hugh Change Record Revision Date Author Changes 1 Contents 1. Introduction
Equipment Room Database and Web-Based Inventory Management
Equipment Room Database and Web-Based Inventory Management Project Proposal Sean M. DonCarlos Ryan Learned Advisors: Dr. James H. Irwin Dr. Aleksander Malinowski December 12, 2002 TABLE OF CONTENTS Project
USER GUIDE MANTRA WEB EXTRACTOR. www.altiliagroup.com
USER GUIDE MANTRA WEB EXTRACTOR www.altiliagroup.com Page 1 of 57 MANTRA WEB EXTRACTOR USER GUIDE TABLE OF CONTENTS CONVENTIONS... 2 CHAPTER 2 BASICS... 6 CHAPTER 3 - WORKSPACE... 7 Menu bar 7 Toolbar
Magento Integration Manual (Version 2.1.0-11/24/2014)
Magento Integration Manual (Version 2.1.0-11/24/2014) Copyright Notice The software that this user documentation manual refers to, contains proprietary content of Megaventory Inc. and Magento (an ebay
SysPatrol - Server Security Monitor
SysPatrol Server Security Monitor User Manual Version 2.2 Sep 2013 www.flexense.com www.syspatrol.com 1 Product Overview SysPatrol is a server security monitoring solution allowing one to monitor one or
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
FileMaker Server 11. FileMaker Server Help
FileMaker Server 11 FileMaker Server Help 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON
Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, [email protected] Writing a custom web
Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application
Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application First Generation HTTP request (URL or Form posting) W HTTP response (HTML Document) W Client Tier Server Tier Data Tier Web CGI-Scripts
Course Scheduling Support System
Course Scheduling Support System Roy Levow, Jawad Khan, and Sam Hsu Department of Computer Science and Engineering, Florida Atlantic University Boca Raton, FL 33431 {levow, jkhan, samh}@fau.edu Abstract
FileMaker Server 10 Help
FileMaker Server 10 Help 2007-2009 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, the file folder logo, Bento and the Bento logo
Manage Workflows. Workflows and Workflow Actions
On the Workflows tab of the Cisco Finesse administration console, you can create and manage workflows and workflow actions. Workflows and Workflow Actions, page 1 Add Browser Pop Workflow Action, page
Progressive Enhancement With GQuery and GWT. Ray Cromwell [email protected]
Progressive Enhancement With GQuery and GWT Ray Cromwell [email protected] Web Application Models Web 1.0, 1 Interaction = 1 Page Refresh Pure JS, No Navigation Away from Page Mixed Model, Page Reloads
AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev
International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach
Thin@ System Architecture V3.2. Last Update: August 2015
Thin@ System Architecture V3.2 Last Update: August 2015 Introduction http://www.thinetsolution.com Welcome to Thin@ System Architecture manual! Modern business applications are available to end users as
HP Business Process Monitor
HP Business Process Monitor For the Windows operating system Software Version: 9.23 BPM Monitoring Solutions Best Practices Document Release Date: December 2013 Software Release Date: December 2013 Legal
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
IceWarp to IceWarp Server Migration
IceWarp to IceWarp Server Migration Registered Trademarks iphone, ipad, Mac, OS X are trademarks of Apple Inc., registered in the U.S. and other countries. Microsoft, Windows, Outlook and Windows Phone
Evaluator s Guide. PC-Duo Enterprise HelpDesk v5.0. Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved.
Evaluator s Guide PC-Duo Enterprise HelpDesk v5.0 Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved. All third-party trademarks are the property of their respective owners.
Online College Magazine
Software Requirement Specification Chennai Campus Vandalur-Kelambakkam Road, Chennai 600048 Ciphers Online College Magazine IBM TGMC-2011 Version 1.0 Team Members : Mentor: Prof. B. Sathis Kumar 1. Aanchal
4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development
4 Understanding Web Applications IN THIS CHAPTER 4.1 Understand Web page development 4.2 Understand Microsoft ASP.NET Web application development 4.3 Understand Web hosting 4.4 Understand Web services
Cloud Omnichannel Contact Center Software
Product overview Cloud Omnichannel Contact Center Software Whether we are a contact center inside a company with some Internet presence or a contact center that provides services to customers from other
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.
Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7. This document contains detailed instructions on all features. Table
XTendTraders.com Trading room simulator
2011 2012 XTendTraders.com Trading room simulator BELGHITI ALAOUI Mohammed IMAFA BEN HAMOUDA Ahmed IMAFA EL FERACHI Anas AL EL HAJJI Khalil AL Polytech Nice Sophia Antipolis SI4 AL/IMAFA 2011 2012 1 CONTENTS
Enterprise Application Development In Java with AJAX and ORM
Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering [email protected] http://paulgrenyer.blogspot.com
Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010
Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache
MEDIAplus administration interface
MEDIAplus administration interface 1. MEDIAplus administration interface... 5 2. Basics of MEDIAplus administration... 8 2.1. Domains and administrators... 8 2.2. Programmes, modules and topics... 10 2.3.
Enabling AJAX in ASP.NET with No Code
Enabling AJAX in ASP.NET with No Code telerik s r.a.d.ajax enables AJAX by simply dropping a control on a Web page, without otherwise modifying the application or writing a single line of code By Don Kiely
Sharp Remote Device Manager (SRDM) Server Software Setup Guide
Sharp Remote Device Manager (SRDM) Server Software Setup Guide This Guide explains how to install the software which is required in order to use Sharp Remote Device Manager (SRDM). SRDM is a web-based
User Guide to the Content Analysis Tool
User Guide to the Content Analysis Tool User Guide To The Content Analysis Tool 1 Contents Introduction... 3 Setting Up a New Job... 3 The Dashboard... 7 Job Queue... 8 Completed Jobs List... 8 Job Details
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description Mastering LINUX Vikas Debnath Linux Administrator, Red Hat Professional Instructor : Vikas Debnath Contact
leveraging your Microsoft
Kanban Task Manager for SharePoint Manual Table of contents 1 INTRODUCTION... 3 1.1 LANGUAGES... 4 1.2 REQUIREMENTS... 4 2 INSTALLATION OF KANBAN TASK MANAGER... 4 2.1 INTRODUCTION... 4 2.2 INSTALL AND
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting
Project Databases Report
Project Databases Report Pizzeria Ordering System Teachers : Assistant: Jos de Bruin Dr. Hamideh Afsarmanesh Simon Msanjila Students: Tyrone Vriesde [email protected] 0588067 Tony Cheong [email protected]
Test Case 3 Active Directory Integration
April 12, 2010 Author: Audience: Joe Lowry and SWAT Team Evaluator Test Case 3 Active Directory Integration The following steps will guide you through the process of directory integration. The goal of
Customer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
CEFNS Web Hosting a Guide for CS212
CEFNS Web Hosting a Guide for CS212 INTRODUCTION: TOOLS: In CS212, you will be learning the basics of web development. Therefore, you want to keep your tools to a minimum so that you understand how things
FPT UNIVERSITY. Capstone Project
MINISTRY OF EDUCATION AND TRAINING FPT UNIVERSITY Capstone Project Online Event Organizing Company Management System Group Group Members Đoàn Minh Thiện 60130 Nguyễn Thanh Thống 60561 Mai Hoàng Trí Anh
YouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
Table of Contents. Search Results.21. Equipment Change Request...10 Equipment Removal Request...11 Disposed..12 Not found 12
Table of Contents Logging in.. 3 DIIT Online Service Desk Website...3 Asset Inventory Menu for Site.....4 Assets Summary Listing (HTML/Excel)... 4 Assets Summary by Room..6 Search / Edit / Remove Assets...7
Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar 2008. [email protected].
Whitepaper Frameworks Evaluation Document reference: TSL-SES-WP0001 Januar 2008. [email protected] 1 Introduction... 3 1.1 Purpose...3 1.2 Scope...3 2 RIA vs Stand-alone Desktop applications... 4
Easy Data Centralization with Webster. User Guide
Easy Data Centralization with Webster User Guide CONTENTS 3-4 1 Introducing Webster Webster - An Introduction 5-14 2 Installing & Configuring Webster Installing the System Configuring Webster 15-18 3 Managing
Experimenting in the domain of RIA's and Web 2.0
Experimenting in the domain of RIA's and Web 2.0 Seenivasan Gunabalan IMIT IV Edition, Scuola Suoperiore Sant'Anna,Pisa, Italy E-mail: [email protected] ABSTRACT This paper provides an overview
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration
Graduate Student Database Project
Graduate Student Database Project Nicholas Wallen Department of Computer Science Florida State University Major Professor: Dr. David Whalley In partial fulfillment of the requirements for the Degree of
Web-JISIS Reference Manual
23 March 2015 Author: Jean-Claude Dauphin [email protected] I. Web J-ISIS Architecture Web-JISIS Reference Manual Web-JISIS is a Rich Internet Application (RIA) whose goal is to develop a web top application
Vector HelpDesk - Administrator s Guide
Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Configuring and Maintaining Vector HelpDesk version 5.6 Vector HelpDesk - Administrator s Guide Copyright Vector Networks
Operational Decision Manager Worklight Integration
Copyright IBM Corporation 2013 All rights reserved IBM Operational Decision Manager V8.5 Lab exercise Operational Decision Manager Worklight Integration Integrate dynamic business rules into a Worklight
kalmstrom.com Business Solutions
HelpDesk OSP User Manual Content 1 INTRODUCTION... 3 2 REQUIREMENTS... 4 3 THE SHAREPOINT SITE... 4 4 THE HELPDESK OSP TICKET... 5 5 INSTALLATION OF HELPDESK OSP... 7 5.1 INTRODUCTION... 7 5.2 PROCESS...
STRUCTURE AND FLOWS. By Hagan Rivers, Two Rivers Consulting FREE CHAPTER
UIE REPORTS FUNDAMENTALS SERIES T H E D E S I G N E R S G U I D E T O WEB APPLICATIONS PART I: STRUCTURE AND FLOWS By Hagan Rivers, Two Rivers Consulting FREE CHAPTER User Interface Engineering User Interface
026-1010 Rev 7 06-OCT-2011. Site Manager Installation Guide
026-1010 Rev 7 06-OCT-2011 Site Manager Installation Guide Retail Solutions 3240 Town Point Drive NW, Suite 100 Kennesaw, GA 30144, USA Phone: 770-425-2724 Fax: 770-425-9319 Table of Contents 1 SERVER
Performance Comparison of Persistence Frameworks
Performance Comparison of Persistence Frameworks Sabu M. Thampi * Asst. Prof., Department of CSE L.B.S College of Engineering Kasaragod-671542 Kerala, India [email protected] Ashwin A.K S8, Department
MBARI Deep Sea Guide: Designing a web interface that represents information about the Monterey Bay deep-sea world.
MBARI Deep Sea Guide: Designing a web interface that represents information about the Monterey Bay deep-sea world. Pierre Venuat, University of Poitiers Mentors: Brian Schlining and Nancy Jacobsen Stout
Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.
1 2 3 4 Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5. It replaces the previous tools Database Manager GUI and SQL Studio from SAP MaxDB version 7.7 onwards
Webmail Using the Hush Encryption Engine
Webmail Using the Hush Encryption Engine Introduction...2 Terms in this Document...2 Requirements...3 Architecture...3 Authentication...4 The Role of the Session...4 Steps...5 Private Key Retrieval...5
CrownPeak Java Web Hosting. Version 0.20
CrownPeak Java Web Hosting Version 0.20 2014 CrownPeak Technology, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
In this chapter, we lay the foundation for all our further discussions. We start
01 Struts.qxd 7/30/02 10:23 PM Page 1 CHAPTER 1 Introducing the Jakarta Struts Project and Its Supporting Components In this chapter, we lay the foundation for all our further discussions. We start by
Web Development on the SOEN 6011 Server
Web Development on the SOEN 6011 Server Stephen Barret October 30, 2007 Introduction Systems structured around Fowler s patterns of Enterprise Application Architecture (EAA) require a multi-tiered environment
Web Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
Jetico Central Manager. Administrator Guide
Jetico Central Manager Administrator Guide Introduction Deployment, updating and control of client software can be a time consuming and expensive task for companies and organizations because of the number
4D Deployment Options for Wide Area Networks
4D Deployment Options for Wide Area Networks By Jason T. Slack, Technical Support Engineer, 4D Inc. Technical Note 07-32 Abstract 4 th Dimension is a highly flexible tool for creating and deploying powerful
Web Presentation Layer Architecture
Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results
Design and Functional Specification
2010 Design and Functional Specification Corpus eready Solutions pvt. Ltd. 3/17/2010 1. Introduction 1.1 Purpose This document records functional specifications for Science Technology English Math (STEM)
Net-WMS FP6-034691. Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant
Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT Networked Businesses D.8.1 Networked architecture J2EE compliant ( Version 1 ) Due date of deliverable: June 30 th, 2007 Actual submission date:
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
Content Author's Reference and Cookbook
Sitecore CMS 6.2 Content Author's Reference and Cookbook Rev. 091019 Sitecore CMS 6.2 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents
Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella
Google Web Toolkit Progetto di Applicazioni Software a.a. 2011/12 Massimo Mecella Introduction Ajax (Asynchronous JavaScript and XML) refers to a broad range of techniques Beyond the technical jargon,
CSCI110 Exercise 4: Database - MySQL
CSCI110 Exercise 4: Database - MySQL The exercise This exercise is to be completed in the laboratory and your completed work is to be shown to the laboratory tutor. The work should be done in week-8 but
QUICK START GUIDE RESOURCE MANAGERS. Last Updated: 04/27/2012
QUICK START GUIDE RESOURCE MANAGERS Last Updated: 04/27/2012 Table of Contents Introduction... 3 Getting started... 4 Logging into Eclipse... 4 Setting your user preferences... 5 Online help and the Eclipse
Site Administrator User Guide. show, tell, share
Site Administrator User Guide show, tell, share Contents About your Team site 1 What is a Team site? 1 What can you do on a Team or Business site that you can t do on www.present.me? 1 Getting Started
Designing and Implementing an Online Bookstore Website
KEMI-TORNIO UNIVERSITY OF APPLIED SCIENCES TECHNOLOGY Cha Li Designing and Implementing an Online Bookstore Website The Bachelor s Thesis Information Technology programme Kemi 2011 Cha Li BACHELOR S THESIS
Chapter-1 : Introduction 1 CHAPTER - 1. Introduction
Chapter-1 : Introduction 1 CHAPTER - 1 Introduction This thesis presents design of a new Model of the Meta-Search Engine for getting optimized search results. The focus is on new dimension of internet
Installation Notes for Outpost Network Security (ONS) version 3.2
Outpost Network Security Installation Notes version 3.2 Page 1 Installation Notes for Outpost Network Security (ONS) version 3.2 Contents Installation Notes for Outpost Network Security (ONS) version 3.2...
Category: Business Process and Integration Solution for Small Business and the Enterprise
Home About us Contact us Careers Online Resources Site Map Products Demo Center Support Customers Resources News Download Article in PDF Version Download Diagrams in PDF Version Microsoft Partner Conference
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Advanced Service Design
vcloud Automation Center 6.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions
How To Set Up An Intellicus Cluster And Load Balancing On Ubuntu 8.1.2.2 (Windows) With A Cluster And Report Server (Windows And Ubuntu) On A Server (Amd64) On An Ubuntu Server
Intellicus Cluster and Load Balancing (Windows) Intellicus Enterprise Reporting and BI Platform Intellicus Technologies [email protected] www.intellicus.com Copyright 2014 Intellicus Technologies This
SelectSurvey.NET Developers Manual
Developers Manual (Last updated: 6/24/2012) SelectSurvey.NET Developers Manual Table of Contents: SelectSurvey.NET Developers Manual... 1 Overview... 2 General Design... 2 Debugging Source Code with Visual
Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN
Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN ABSTRACT For organizations that need to implement a robust data entry solution, options are somewhat limited
Course Name: Course in JSP Course Code: P5
Course Name: Course in JSP Course Code: P5 Address: Sh No BSH 1,2,3 Almedia residency, Xetia Waddo Duler Mapusa Goa E-mail Id: [email protected] Tel: (0832) 2465556 (0832) 6454066 Course Code: P5 3i
Sports Management Information Systems. Camilo Rostoker November 22, 2002
Sports Management Information Systems Camilo Rostoker November 22, 2002 Introduction We are in the information age The availability of technology has brought forth a new problem domain how do we manage
Design Approaches of Web Application with Efficient Performance in JAVA
IJCSNS International Journal of Computer Science and Network Security, VOL.11 No.7, July 2011 141 Design Approaches of Web Application with Efficient Performance in JAVA OhSoo Kwon and HyeJa Bang Dept
Web application development landscape: technologies and models
Web application development landscape: technologies and models by Andrea Nicchi Relatore: Prof. Antonio CISTERNINO Controrelatore: Prof. Giuseppe ATTARDI WEB APPLICATION an Information System providing
