COMSATS University, Islamabad Department of Computer Science Terminal Examination Semester: Fall 2020 Class/Section: - BS(SE) IV, VII Date: January 07, 2021 Subject: - CSE304 Object-Oriented Software Engineering Time: - 2 hours Instructors: - Dr. Iftikhar Azim Niaz, Lailma Javed, Shahela Saif Marks: - 30 _______________________________________________________________________________ =============== (Question 01 and 02 are mapped with CLO-2) =================== Question 01 - (5 x 5 marks) Case Study – Placement Company Elixir hiring company is a temporary staffing agency catering to the needs of the firms that want to hire temporary or contractual staff that have some specialized skill or technical ability. This may be done for a special project or due to need of some technical expertise. Elixir’s role is to negotiate contracts with its client companies, to whom it provides the temporary staff for a specified skill at some agreed upon payment. The professionals registered with Elixir are from varied backgrounds – managerial and technical as well, computer programmers to astrophysicists. Many companies are also registered with it that may need such staff. In order to request the services of any professional, a client company issues a staffing request. This is based on a contract already signed between Elixir and the client company. This staffing request is received and processed by the contract manager – he assigns it a reference number and adds it to database. This information can be later retrieved from database to review terms and conditions of the contract and to check validity of the staffing request. The staffing request is valid if the contract has not expired, the type of professional or scientific employee requested is listed on the original contract, and the requested fee falls within the negotiated fee range. If the staffing request is not valid, the contract manager sends the staffing request back to the client with a letter stating why the staffing request cannot be filled, and a copy of the letter is filed. If the staffing request is valid, the contract manager enters the staffing request into the staffing request database as an outstanding staffing request. The staffing request is then sent to the Elixir services department. Once a (staffing) request has been made, the Services Department checks the database to confirm the type of staff member, experience, and qualifications requested. If any person with needed qualifications is found he is marked ‘reserved’ in database. In case a person with needed qualifications is not found, the department creates a report explaining the unavailability and attaches this report to the staffing request. All staffing requests are then sent to the Stationing Department. Stationing department contacts the prospective employee and checks is he or she agrees to the placement. If an agreement has been reached, the staff member is considered ‘’placed’ and his status is updated in database. The client company is sent a bill for the placement fee along with a copy of staffing request. These details are also sent to the contract manager. In case the position does not get filled the contract manager gets a ‘unable to fill’ report as well. If the position was filled, the contract manager will now close the staffing request, if it was not filled the client is notified. a. Create an activity diagram for the business process described above. b. Create a use case diagram for the system described above Question 02 - (5 marks) Consider a website that allows customers to order a product over the Web (e.g., Amazon.com). Create a structural model (Class diagram) that the site must need to support its business process. a. Be sure to include the attributes and operations to represent the type of information they use and create. b. Draw relationships, making assumptions about how the classes are related. =================== (Question 3 is mapped with CLO-3) ==================== Question 03 - (5 x 5 x 5 marks) Case Study - Hotel Chain You are contracting with a client who runs a small hotel chain. This client wants you to design a piece of software to handle the day-to-day operations of the business. You have asked for information about how the business is run and receive the following description. We own several hotels and need to keep track of pricing, availability, and reservations in each building. Customers may call ahead to place reservations; they may also simply walk in to get a room (which is pretty much like making a reservation that starts immediately). The customer’s reservation will specify how long the room is reserved. Once the customer finishes the stay, we charge payment for the room. We need to make sure that appointments never overlap, of course. We also provide services during the customer’s stay: pay-per-view movies, delivery service, and so on. When we make a bill for the customer, we must keep track of the cost of the stay, the duration of the stay (as customers may leave before or after their reservation is complete), and any services that the customer consumed. Different hotels offer different services, so we need to keep track of the offerings at each hotel. Note that prices may change over time, so we need some way of keeping track of what the customer paid during their stay regardless of what prices are now. We also charge for overstaying a reservation. If a customer is still staying in a room past the end of a reservation, we charge the regular rate for the room plus a ten percent fee. Customers are allowed to extend their reservations, though, so this fee only applies if the customer overstays the reservation without asking us to extend it. In rare cases, we will also charge fees for missing or damaged items – some customers seem to have a fondness for our towels – and we bill these fees in the same way that we bill services. We also have a customer rewards program to encourage customer loyalty. Customers may have a rewards account which allows them to accumulate rewards points. One point is earned for each dollar the customer spends. Customers may pay their bills using either points or money but not both. Rooms and services have prices in terms of points as well as in terms of money. Points do not last forever; they expire two years after they are earned if they have not been spent. This means that we need to know not only how many points each customer has but also when they were earned. Remember that different amounts of points can be earned at different times. Understanding the scope and nature of the software, answer the following questions: a. How would you split the software construction process into smaller activities? Build a WorkBreakdown- Structure for it. b. Create a change management strategy, anticipating the nature and frequency of changes that the customers/developers/testers could make. Justify your answer. c. Devise a integration testing plan considering that the customer needs an early delivery of the software. Also list down which testing techniques shall be used for this software and why. Justify your answer. Students are required to draw all the UML diagrams in any UML diagrams drawing tool preferably Microsoft Visio. Please submit the paper written in MS word file including all the UML diagrams and submit it in Microsoft Teams within the stipulated deadline. The filenames for the submitted Papers (in MS Word Format) must be in the following format. Student-Registration-No_Term.docx (e.g. FA17-BSE-100_Term.docx)