Saturday, May 2, 2020

Software Engineering Group Project Individual Report free essay sample

In around the middle period of the development process, I made a prototype that could achieve basic but the most important functionality of the system based on the initial design idea. The prototype is a single web page with a slippy map which can display a polyline on the map as a route and a route information table when given the start place and destination. Though the graphical user interface was really simple and ugly, it at least provided the possibility that the design of the system was feasible. In fact, the final routing system of the project was just built on the rationale of the prototype but with the extension of multi-functionalities. In the final routing system, I made it possible for user to click on the map and get the place instead of to type in the literal name. In addition, the routing system can identify the postcode as an input. The routing system also provides three types of routes which gives more choices for user. Apart from improving of the functionalities of the routing system, I also took part in the designing and programming of the wiki system which is another functionality of the project. The wiki system relies on the utility of the MYSQL database. We reached the concept of the â€Å"big society† in the problem specification by allowing users to update the information in the database. When added into the system, latest information will be reflected immediately on the map. For instance, a user adds a new supermarket which was newly constructed in one area. A shopping cart marker will appear on the map as long as the user refreshes the page. As the coder in the group, it was natural for me to take responsibility for integrating the whole system. It was decided that a web-based application would be the most feasible method of implementation, which had the advantages of easier accessibility and maintenance. After getting the GUI design from my teammates, I integrated the java scripts which contain the functionalities of the system to the web pages and launched them to the UNIX machine so as to make it available to the public. As the website was setup under my UNIX account, I also took the obligation of system maintenance. Whenever the system came across problems, I should detect them and then amend the system. In addition to coding, I also made contribution to our group documentations. In the interim report and final report, I wrote the contents that related to code aspects as the programmer always knew what the code did. Reflection on the Project Throughout the project, our group has managed to achieve a number of successes. The most successful aspect is that the main functionality described in the problem specification has been achieved and the system has been complete in use. The route-planner is able to compute a route for the user when given a starting point and destination and through the use of the map it is able to provide extra information, such as the location of nearby bicycle-park facilities. Besides, the wiki system allows users to add and update the data used by the route planner, which has been successful to build on the community-based aspect of existing systems. From the perspective of project management, our group experienced a good-working relationship and has held regular meetings with the supervisor. Every member devoted into the project warmly and actively. We divided the whole project into two sub-groups. Two of us took responsibility for design and documentation while the other two were to programming and testing. Though we had clear roles, discussion and comments were frequently put forward among the team. We have shared a message board in order to keep in good contact with each other and stay up-to-date with the progress of other group-members. A public repository was also share by the group so as to ensure that everyone got the latest version of codes and documentations in ime. As with every system development process, we encountered a number of difficulties throughout the project, most of which have been overcome. At the early stage, we were extremely confused about what we were expected for this system. According to our research on the existing systems, there are mature systems and technology for cycle routes planning. Whether to create our own independent cycle-route planner or to integrate with an existing system was a considerable issue. After learning the documentations of released systems, we found it complicated and time-consuming. Meanwhile, our supervisor suggested that integrated system might be a relatively feasible direction for this project since some open source systems and websites are available for free use. Finally, we made up our mind to design an integrated routing system with the scope of our University and its surroundings based on other open source system. Secondly, as we were going to build our system on the basis of CycleStreets’s routing engine, an API key from them is necessary to have access to their routing engine. We can send a query string directly from the URL as a standard GET request to access route information using this API key. However, obtaining a CycleStreets API was not a simple a process for us as two members of the group had applied and neither had received a response. Fortunately, with the help of our supervisor our application was eventually accepted. We suspect that CycleStreets are reluctant to allow students to use their API. The third issue is about the wiki system which we did not find a perfect solution for in the initial design. According to our requirements specification, users are able to update information held on the system once they are logged in. However, our initial design does not implement this wiki part of the system. There are three main reasons behind this; firstly, we have a problem in obtaining whether or not the user is valid i. e. whether or not they attend the University of Nottingham. Secondly, since the base layer of our map uses the OpenStreetMap API, it means that no changes can be made to the map from our side of the system – users must instead edit data on the OpenStreetMap webpage. Finally, we created a database backend to solve this problem and allowed users to edit data which can be shown on the map. Another technical problem was geo-coding. In order to use the CycleStreets API, the system is required to ive as parameters to the query call the longitude and latitude of the starting point and destination of the route to calculate. This posed a problem because it is required for users to be able to enter place names using natural language and not geographical co-ordinates. After some research by the group, it was found that a process known as geo-coding could be used in order to translate a place name into its corresponding co-ordinates. Initially it was intended for the system to use the Yahoo PlaceFinder API, which is something an API key was applied for. The group were successful in obtaining an API key, however on using the system it was discovered that it does not provide geographical co-ordinates to a high enough accuracy for use within the system. This high accuracy is required since the system is only providing routing for a relatively small area. It was then decided to look at the Google Geocoding API, and it was found that this provides geographical co-ordinates to a much higher-degree of accuracy and so it was decided that this is what will be used to do the geo-coding for the system. During the project development process, we suffered the loss of a group member. This came as a huge shock to the whole group. With our project team decreasing from five to four members, it has meant that remaining members have had to take on greater responsibility and an increased work load. In dealing with this problem, we have had to scrap the original assignment of tasks within the group and redistribute them to ensure that all areas of the project are covered. This has meant that we have all had to take on tasks that had been partially done by people who have now left the group. Because of the time limitation, there were a number of design requirements that we did not cover in the project. We did not integrate the useful information of the university to the system as mentioned in the requirement. For example, mark the examination room on the map. Meanwhile, we omitted the log in system which should be connected to the school log in database which can be the future extension of the system. Learning from Project From running the project throughout the year, I have gained a number of experiences on the perspectives of both social relationships and computer science skills. It is of great difficulties for an individual person to complete a group project. Team working, therefore, is the core and highest requirement for everyone in the group. â€Å"Divide and Conquer† strategy was successfully applied to our group work. For example, the project was divided into different parts which then were assigned to members according to their specialized area. With respect to our system, it was divided into three parts: the website GUI, routing system and wiki system. As I thought I was interested in the routing system and also prepared for using JavaScript, I picked the second task. After each task was finished, we carried out the conquer stage. Three parts were integrated together by some interfaces and finally worked as one system. During the project development processes, communication was of considerable importance. Since team members come from different countries with different culture background, we definitely differ in the thoughts. Communication brought all ideas together and made the system consistent. As a non-native speaker, I cannot express myself as smoothly as my teammates. The group project gave the opportunity for me to improve my spoken English and melt into the western thoughts. As a computer science project, a lot of computer technologies were involved in the development process. After running the project, I have read a large quantity of software documentations, some of which have been applied to our project. For example, the Google map API provides highly customized map which can be embedded into the website. Since our system need to display the routes to the user, a map is necessary. When reading the documentation of Google map API, I found it quite suitable for our project. Not only can it draw lines and markers on the map, but also can be covered by other map layers. With respect to our system, we need a cycle map layer especially for the use of cycle routes. Another lesson that I learned from the system development is different system integration. According to our problem specification and time limitation for the project, it was decided that we should develop an integrated system oriented to the students in the University of Nottingham. Our design strategy then was to use existing routing system and bespoke it. In order to integrate the routing system with the map, I coded a JavaScript that can translate information from routing system into array data and then hese data can be used to draw the routes on the map. Conclusion After participating in the one-year group project, I have retained large quantities of experiences on conducting a complex software project which is a firm foundation for the final year personal project. Meanwhile, during the project, my knowledge of computer science has been enriched since I have learned hundreds of documentations of different software and techniques. Finally, my communication skill has been improved as well as the ability of socializing with strange people. Form Complete one copy of this form for each member of your G52GRP group except yourself. Enclose all completed form as an appendix with your Individual Report. Rate the group member in question by ticking or marking with an â€Å"x† exactly one box for each evaluation aspect in the table below. Give a brief written justification for each assigned rating in the space provided below the table.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.