Wednesday, August 21, 2019
Software Development Methodologies Analysis Information Technology Essay
Software Development Methodologies Analysis Information Technology Essay The report will be divided into sections, which describe the different stages of the project life cycle and provide information about the project scope, purpose and defines project objectives. Furthermore this report investigates the different software development methodologies and examines which one would be the best to use for the purpose of the final year project. Moreover the Summary and Critical Review of the project is provided with conclusions on, possible, future changes and improvements to the project. Finally the reports Appendix section includes all relevant diagrams, testing and coding and other information related to the project. Acknowledgments I would like to thank both of my project supervisors; Jon Bennett and Matthew Wake for their help and encouragement throughout this project. Furthermore I would like to thank Karren Burrows for her help on improving my database design and Mary Spence for guidance in the complicated world of VBA. In addition I would like to express my gratitude to Kevin Potterton, a friend and co-worker at Investmaster Group ltd. for providing helpful input, recommendations and moral support in difficulties with project management. Finally my boyfriend Andrew Steer for his patience, support and proof reading. Table of content Introduction The main aim of this project was to document and develop an Order Processing Scenario for a car rental company. The system stores customer and car details, car availability, calculates rental costs and fines, prints bills, and highlights unpaid transactions. This information will be available through a user friendly interface; with clear error messages. To accomplish this, knowledge acquired throughout the years at university was used to analyse and solve problems encountered during the project. Furthermore, the information required for the project was gathered and synthesised to provide a practical and high-quality end product that could actually be used in a real world situation. Additionally, research into different software development methodologies was completed and an appropriate development methodology selected. By using techniques and tools covered during the course the requirements for an order processing system were captured, including; different users and views of customers and clerks. What is more, using the research, self-learning and additional Visual Basic tutorials enabled the use of more sophisticated and advanced coding techniques. Finally, the system was tested by users with different levels of IT knowledge and was accepted for covering the relevant HCI criteria. (Appendix14) To develop and implement a fully functioning GUI front end for the above system. Problem definition. Currently, Aleks Car Rental is a small car renting company and all record maintenance within the company is carried out manually, on paper. Customer and reservation details are written down in log books and transactions are not backed up anywhere in case of any data loss and sensitive data is quite easily accessible; making the company susceptible to data theft. This way of working is not particularly effective because the paperwork is frequently lost or misplaced, which leads to the customers being unhappy with the service provided and complaints concerning the standard of data security. The aim of this project is to produce a cheap, automated solution that will enable safe storage of sensitive customer data. It should allow permitted users to check on; the availability of cars, customer accounts and to produce relevant reports. In addition to this, the system should be easy to use with clear instructions and messages as the users (clerks) have only basic IT knowledge. Objectives To select and follow an appropriate development methodology. To capture requirements for an order processing system including different users and views of customers and clerks. Investigate different software options. Design the order processing system. To include a variety of subsystems including the maintenance of customer information, car details, clerk details and the payment of fines. To identify a variety of users for system testing against relevant HCI criteria(Appendix15). Produce a prototype with basic functionality. Conduct an evaluation of the prototype. To develop and implement a fully functioning GUI front end for the above system. Basic Project Requirements 1) Acquire and analyse user requirements. 2) Develop a working system prototype with basic functionality specified by the user. 3) Design and implement a database for the system prototype. Possible Further Enhancements 1) Add administration section to the system. 2) Develop a fully functional order processing system 3) Investigate possible security problems Deliverables 1) Report 2) Working order processing system Project Schedule The duration of each task was controlled through the production of a Gantt chart; an outline of each key task was highlighted therein. This chart can be seen in Appendix B. Nevertheless it is not always possible to stick to the produced schedule, so the second, reviewed Gantt chart was created. This chart can be seen in Appendix B. It shows the actual start and completion tasks dates presented week by week, the tasks that were completed in the different time than expected are presented in blue. Appendix C Project Development Diary and Error: Reference source not found, highlights the problems encountered during the development and times when project was feeling behind the original schedule. The main reason for running behind the schedule was that the planed amount of time to learn VBA language was an optimistic prediction and the task was much more difficult than predicted. Another factor that had a big influence on delaying the project was sudden unavailability ot the project supervisor during to his health issues. This had place in January, and caused significant suspension of the database development as the supervisor was a project client and a main source of help in using VBA code. Furthermore, accommodating for deadlines in other modules, and obligations at work lead to further delays. However by working extensively during the weekends and bank holidays all of the project objectives were fulfilled on time. Project Management Scheduling the project stages had a massive influence on the development of time management skills. Successful time management helps to increase the person productivity and overall efficiency. Setting goals, prioritising them and monitoring its execution help to gain conscious control over the project and its separate stages. Developing these skill can seriously influence the person future ability to manage the projects in the work environment. One of the techniques useful when managing the project is the MoSCoW analysis (see Error: Reference source not found). It divides the tasks into different categories to enable the decision on which of them are the most and the least important. Tasks paced high in the hierarchy are the ones that had to be completed first, when the completion of tasks placed lower in the hierarchy of importance was optional. In cases where completion of the most important tasks was taking longer than expected the less important functions were completed earlier, to ensure that there are as many working functions as possible. Furthermore to ensure that all of the good project management practices are conducted during the final year project development, weekly meetings with Jon Bennett, supervisor, were carried out. During these meetings supervisor pointed out parts of the project that might take longer to complete and highlighted the areas requiring the biggest effort concentration. Unfortunately, because of the supervisors health problems meeting in the last few month of the project development were suspended but they were resumed with the new project supervisor although not with the same frequency. 2.Software Development Methodology Software Development Methodologies Analysis When developing a system it is crucial to choose a methodology that will fulfil all of the project requirements within the allocated timescale. A successful methodology is one that enables the developer to manage, evaluate and control the system throughout its life cycle. There is a wide range of different models, which differ in; the number of iterations of the project lifecycle, the intensity of user involvement in the project and the level of evaluation. Therefore, the decision on which methodology to use for a final year project might be a very difficult one and to succeed, the complete spectrum of requirements has to be taken into account and many techniques and tools have to be considered. Agile vs. Heavyweight Methodology Project development methodologies can be divided into two main types; agile and heavyweight. Both of these methodology types possess aspects useful for the purpose of the final year project but none of them could be fully used as a separate technique. In order to find the methodology that is most suitable for the project it would be recommended to combine some of their individual aspects together. Agile Methodology Using some of the agile methodology features can significantly limit the amount of documentation produced for the purpose of the project and assure that the project will be finished in the given amount of time. Furthermore, the agile approach concentrates on good design, technical excellence and simplicity, which are the main goals whilst working on the final year project. Another argument for using an agile methodology is that it can also be used for the purpose of small, self-organised teams or individuals, helping them to adapt to changing circumstances, which is often the case in projects such as these. Heavyweight Methodology Nevertheless, using some of the aspects of a heavyweight methodology should also be considered when developing an order processing system like Aleks Car Rental. Although heavyweight methods are mainly used by large teams for the purpose of developing large projects, some of the methodology tools and techniques could be also useful when developing student project. Following a heavyweight methodology helps to identify the different stages of the project and what lifecycle would be the best to follow for the purpose of the final year project. RAD (Rapid Application Development) One of the examples of an agile methodology is Rapid Application Development (RAD). Its main advantage is that the working systems are created within a short time period, which is very useful as the time frame for the student final year project is quite restricted. Furthermore, according to the RAD methodology the project needs to be frequently reviewed by the user as new functionalities are added during the development process. This is called iterative prototyping and should be applied to the students final year project development. User participation is very important in this process as it ensures that the developed system satisfies the end users requirements. Another aim of the RAD method is to reuse existing software components. Unfortunately as Aleks Car Rental order processing system needs to be created from scratch this aspect of RAD is not suitable for the purpose of this project. Another feature of RAD is the use of Computer Assisted Software Engineering (CASE) tools and techniques, which could be extremely useful to the developer in the project planning stages and all stages that follow the development of the system. These techniques should also be used in the development of the final year project. RAD questions the use of high-level documentation, like this report, as it is very time consuming, and, instead, concentrates on the low ceremony level such as system testing, training and implementation plans. For a diagram see Appendix D. Extreme programming Another example of the agile methodology is the Extreme Programming Method. Its success depends upon the level of customer satisfaction with the system. For customer satisfaction to be optimal, this method engages the client in constant communication so that user requirements can be catered for during the development lifecycle. This could be easily applied to the final year project as contact with the client (supervisor) should be persistent throughout the whole development process. By delivering the product in modules, over short timeframes, the Extreme Programming method concentrates on short term goals instead of delivering the full product over a much longer period. The complexity is added to the project sequentially, which means that individuals will be working on something new periodically. This would be the perfect path to follow when developing the final year project as short term goals could be delivered to the project supervisor on a weekly basis. What is more, Extreme Programming allows the developer to quickly respond to changes in customer requirements, which would be highly desirable for the unstable requirements of the final year project. Another feature of the Extreme Programming method is that it is mainly used for small to medium sized projects; such as a final year project. System Development Life Cycle Methodology (SDLC) A good example of a heavyweight methodology is the System Development Life Cycle Methodology (SDLC). This methodology is mainly modelled around the Waterfall Life Cycle which breaks the project structure into stages consisting distinct goals. It is good for projects with clearly specified requirements and a large time frame. A key feature of this model is that the process needs to stay free from any overlapping or duplication. To achieve that undertaken goals always have to be accomplished before proceeding from the one phase to the next one. There is very little possibility for the designers to go back and change any of the finished stages as this would dramatically slow down the whole development process. This methodology doesnt seem to be suitable for the purpose of developing the final year project. . For a diagram see Appendix D. Structured Systems Analysis and Design Method (SSADM) Another heavy weight methodology example is Structured Systems Analysis and Design Method. It is the waterfall life cycle method which breaks the project structure into stages and rejects overlapping theses stages. Three major tools used by SSADM are Logical Data Modelling (Entity Relationship Diagram), Data Flow Modelling and Entity Event Modelling. The method combines all three techniques to enable the complete view of the developed system. Furthermore SSADM is structured from 5 complex hierarchies of stages: feasibility study, requirements analysis, requirement specification, logical system specification and physical design. As this methodology is a high ceremony method and it involves extensive planning and wide documentation, its elements should be used in a final year project to document the development process. Nevertheless SSADM doesnt really address the issue of changing requirement specifications and it doesnt allow any iteration after the project phase completion, so following this methodology rigorously might be really time consuming and not appropriate for the purpose of developing the final year project. User Centred Design methodology UCS could be described as a methodology that attempts to optimize the product around the user specifications. The main aim is to create a product that user can, want, or needs to use, rather than creating something that user will have to accommodate their behaviour around. To achieve that client has to be regularly updated with the project progress and consulted regards any changes. According to the methodology specifications there are several ways to gather required information from the users: focus groups, questionnaires, interviews, usability testing, card sorting and participatory design. Furthermore, although USC mainly replicates the waterfall life cycle method it is also focusing on its four key stages: Use Specification, Requirements Specification, Design and Evaluation. The stages are repeated until the projects usability scope is achieved. USC methodology uses many techniques that could be useful in the development of the final year project like use cases, scenarios and persona (customer for the purpose of Aleks car rental). Methodology used for this Project Time spent on the planning, documentation development and testing is often dependent on the chosen methodology and can increase or decrease accordingly to the used method. That is why, to meet the project objectives successfully the common practice is to combine different aspects of the different methodology types in the way they will suit the purpose of the students final year project. As the user (project supervisor) was consulted about the project requirements and progress on many occasions during the project development, it would indicate that aspects of Extreme Programming, UCD and RAD methodologies were used to full the project requirements. Also, using use cases, project scenario (Aleks car rental) and persona (client) taken from the UCD method made project goals easier to understand and fulfill. Furthermore, to design the order of the different stages in the project the waterfall life cycle technique was used, but as many iterations to the project throughout the different stages were made, and object oriented techniques and tools were used, this would indicate the aspects of SSADM and User Centered Design method were used in the final year project. Moreover Diagrams such as the Logical Data Model (Entity Relationship Diagram) and the Data Flow Model taken from SSADM were also used to establish the data flow in the system and what tables should be created in order for system to work as specified by the client. Additionally to confirm that all of the client requirement were covered the testing of the system was undertaken as it have place in RAD and UCD methodologies. To conclude, there is no one appropriate methodology for this project but many aspects of different methodologies combined together enabled to fulfil the requirements set by the project stakeholder. 3. Gathering Requirements 3.1 User Requirements For the purpose of this project the assumption was made that the person called system user will be the project proposer and initial project supervisor, Jon Bennett. To enable gathering of the most accurate requirements, two different data gathering methods were undertaken. Firstly, frequent consultations with the system user enable assembling essential system requirements and allows in depth research into user needs . Secondly investigation into current car hire solutions on the Internet was undertaken and features of the car renting company systems identified and reused if appropriate. 3.2Research Methods Two main research method types can be identified, quantitative and qualitative. Quantitative method is often used when the question is how many or how often. http://www.orau.gov/cdcynergy/demo/Content/activeinformation/tools/toolscontent/quantiativemethods.htm The most commonly used techniques are usually structured questionnaires and surveys. Further to that statistical data is produced and, in order to analyse and interpret the collected data, converted into charts and graphs. This method can be very time consuming and requires gathering large samples of data. As the final year project has a strict time frame and it is an individual task, quantitative method doesnt seem to be the right one to use. Second type of research methods is a text based qualitative method. In order to obtain the most accurate information, methods such as focus groups, interviews, observations, and case studies are used. The main data gathering method is to take a description of a problem from someone experiencing it or by observing the individual user. By using this method more in depth information is provided which will allow better understanding of user needs. The success of this method depends mostly on the researchers skills and should only be used if there are only a few cases to investigate. As the amount of stakeholders in the project is limited to one and it is possible to observe or interview the user, using qualitative method seems to be more suited for this project. 3.3Interviews Interview is a formal meeting and discussion with someone. http://www.thefreedictionary.com/interview Gathering information through an interview means evaluating the situation through the conversation with user. There are different kinds of interviews: structured, semi-structured, unstructured, group interviews and focus groups. In order to gather all necessary information about the required system functionalities regular weekly meetings with the user were taking place during a four month period. This is documented in appendix X. During these meetings functional and usability requirements were recognised and different methods on how to fulfil them were discussed. 3.4Functional Requirements Functional requirements indicates what actions should the system be able to do and what functions it should perform. Login Only permitted users should be able to login in to the system. Make Loan- Permitted users should be able to rent a car, and loan information should be stored in the system Add Customer- Permitted users (clerk) should be able to add new customer details. Edit Customer Permitted users (clerk) should be able to update/edit customer details. Find Customer Permitted users (clerk) should be able to find existing customer details. Delete Customer Permitted users (clerk) should be able to delete existing customer details. Add Car Permitted users (clerk) should be able to add new car details. Edit Car Permitted users (clerk) should be able to edit existing car details. Find Car Permitted users (clerk) should be able to find existing car details. Delete Car Permitted users (clerk) should be able to delete existing car details. Register car damages Permitted users (clerk) should be able to add any car damage details. Add Clerk Permitted users (manager) should be able to add new clerk details into the system. Edit Clerk details Permitted users (manager) should be able to edit clerk details in the system. Find Clerk Permitted users (manager) should be able to find clerk details in the system. Delete Clerk Permitted users (manager) should be able to delete clerk details from the system. Produce Reports Permitted users (manager) should be able to produce monthly and yearly income reports. Produce Loan Receipt Permitted users (clerk) should be able to produce client receipt with the loan details. Calculate Payment System should calculate the total payment for the loan. Calculate Fine System should automaticaly calculate fine for late returns. Notifying about overdue loans Permitted users (clerk) should be able to view details of the overdue loans. Close Option Use should be able to close all the forms. Cancel Option User should be able to cancel undertaken activity. Logout Option User should be able to logout from the system. 3.5 Usability Requirements Usability requirements measures how the software is suitable for its users, considering how easy it is to learn, how effective it is, how efficient it is, and user satisfaction. When designing a system there are ten usability principles that should be taken into consideration . Jakob Neilsenal. (2001). These 10 rules are outlined below with relevance to the order processing scenario Aleks car rental. Visibility of system status The user should be informed about any system status changes through the use of appropriate feedback e.g. When information in the system is updated a message box should be displayed informing the user whether this procedure has been successful or not. Appendix 16 Match between system and the real world Language used in the system should be appropriate and easy to understand by the user, egz meaningful error messages. Appendix17 User control and freedom -All possible activities undertaken by the user should be supported by the system (navigation). Consistency and standards To prevent any confusion the system the consistency of the interface should be kept throughout the whole system. It is reassured by using the same colours, fonts and format. Error prevention Any errors should be avoided when possible, where errors do occur, user should be clearly informed what has happened. Recognition rather than recall The interface should be informative enough for the user to understand how to navigate around the system in order to fulfil the undertaken action, egz. placing order. It should be clear to the user what they are required to do without recalling any information. Flexibility and efficiency of use The system should be designed for both experienced and inexperienced. Although the Aleks car rental system is easy and straight forward to use all of the users will be provided with user guide. Aesthetic and minimalist design Using only the basic graphics and presenting only the necessary information prevents user from getting distracted from the system. Help users recognize, diagnose, and recover from errors When an error occures, the meaningful information should be displayed to indicate what coused the error and suggest how to resolve the problem. Appendix 17. Help and documentation -A user guide, listing clear steps on how to complete the tasks should be available. Appendix 18 3.6 Requirements gathered from available solutions This section of the report studies existing booking systems, available on-line or sold to car renting companies. See Appendix 18 for screen shots of these solutions. An investigation throuought existing booking systems was carried out in order to identify any reusable features that can be used for Aleks car rental System. Furthermore, undertaken research helped to recognise problems that should to be avoided. These are discussed below: General Usability: Usability is about design focused on helping customers perform tasks, with little effort and making the experience enjoyable. It is important from both the customers perspective as it is the means by which the user interacts; it should not lead to frustration. A well designed website interface is user friendly, simple, efficient, the functionality easy to learn and use in addition to providing effective interaction. Use of Multimedia: A range of high quality multimedia through color, sound, and graphics collaborated creates a powerful impression and generates interest, making the experience enjoyable. This sets a positive expectation for the rest of the website ultimately the customers choice of place to hire a vehicle. Use of multimedia should be kept to a minimal, with lot of white space and contrasting text. The average customers computer specification and bandwidth should be kept in mind thus it affects load up and response time. Search for Information: A customer likes a booking experience that enables them to find, select and pay for the service with ease. The solution to this is efficient navigation and search facilitation. A search function by keyword can help retrieve specific information; reducing frustration. Grouping meaningful data in a structured list should be applied as it minimizes confusion. Further subcategory help narrow down relevant information making it easier for customers to find what they are looking for. Online Order: The website should support secure online payment transactions, customers should be made aware of this, also other methods of payment options should be acceptable as customers are vulnerable to carrying out online payments. Status of reservation: It is important that the customer is updated with the status of the service once the reservation has been completed i.e. confirmation of the booking. 3.7 Safety Requirements There is a wide range of safety requirements to consider when designing a system, but as specifying them is outside the final year project scope only the basic ones will be covered. Backup when additional copies of the data are make. This could be done either by the user or automatically by the system. Backed data should not be stored anywhere within close proximity of the original system in case of a natural disaster such as fire or flood was to take place where the system is located. It is highly recommended that Aleks car rental company use a backup option to secured informations stored in the system. System stability testing to minimise system failure and possible data loss the thorough testing should be always performed on any new system. 3.8 Security Requirements Personal information stored in the system should only be accessible by authorised person. Password to prevent unauthorised individuals from accessing the data, system should always be protected with the password. Encryption protects information by making it unreadable to anyone except authorised person. This is use to protect the password when login in to the Aleks car rental. 4.Software and Hardware solutions 5.Car rental Company System Prototype In order to develop a fully working system student had to design and develop a working prototype of the booking system as a part of the project development lifecycle. See Appendix G for screen shots of the prototype system. Use Case Diagrams To gain an overall view of the system to be developed a diagram was drawn using UML (Unified Modelling Language). UML is used to show the interaction between the reservation system and the several actors/users. See Appendix H for a UML diagram. User Authentication As the system is designed to stored potentially sensitive data the user identification must be in place.<
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.