Eastern Mediterranean University - Computer Engineering Department Software Engineering Program CMSE-201 Fundamentals of Software Engineering - Midterm Exam Instructor: Assoc. Prof. Dr. Alexander G. Chefranov Duration: 75 Minutes Open book, open notes November 21, 2015 Q1) (22 points) Write two functional requirements for the EMU Online Dormitory Management System. For one of them, describe a test case to verify correctness of its working (state before start, input, output, state after the end) 1. A student can view information about the dormitory 2. A manager can enter information about the dormitory: plan of the dormitory, room locations, room status (free, occupied) Test case for Req. 1: State before: EMU ODMS is populated with information about the dormitory, and room1 is free Input: The student requests information about room1 Output: Room1 information is provided, its status is free State after the end: Nothing changed in the EMU ODMD database Q2) (22 points). Write two requirements, non-functional or domain, for the EMU Online Dormitory Management System and specify their types (non-functional, domain). For one of the requirements describe a verification procedure (inputs, outputs, how decision is made). NF 1. The EMU ODMS allows accessing any option in less than 10 mouse clicks Domain 2. Boys and girls are not allowed living on the same floor of the dormitory Verification procedure: Input: number-of-checks>=10; i=1; Action: Loop while i<=number-of-checks times User specifies Option-I; Number-i=number of mouse clicks to reach Option-I; Output: Number-I, i=1,..,number-of-checks Decision: if (for any i=1,.., number-of-checks)(number-i<=10), then NF1 is verified; Else NF1 is not verified Q3) (22 points) For the following requirement to the EMU Online Dormitory Management System “Only registered in the Dormitory students can enter it after 23.00” give structured natural language main scenario description (each statement shall be numbered together with indication of who is doing this action; if it is a message transfer, then the sender and receiver shall be indicated as S=>R). Timer->S 1. Time is 23.00 S->Lock 2. Close lock 1 Student comes after 23.00 St->S 1. Knock-knock S->St 2. “Time is >=23.00. Only registered students are allowed entering. Please, your ID card, PIN?” St->S 3. ID card, PIN S->DB 4. Check_registered(ID card, PIN) DB->S 5. Result of checking ID card & PIN Alt result is “not registered” S->St 6. “Sorry, you are not registered. Please, contact Dormitory Officer” Alt Result is “registered” S->Lock 8. Unlock lock S->St 9. “Please, you are welcome” End Alt Actors: System (S), Student (St), Timer, Database (DB), Lock Q4) (34 points) What generic software process models do you know? What are their main features? What generic process model fits best to the development of the EMU Online Dormitory Management System? Give necessary explanations Generic models: waterfall, evolutionary, component-based software engineering Features: 1. Waterfall is for large long-life projects, team work. Requirements are well-defined, fairly rare modified, next step is made after full completion of the previous one, and each step is documented. The steps are requirements specification and analysis, design, development, testing, operation 2. Evolutionary is for medium-size short-life projects. Requirements may be poorly defined and understood, often changing, highly interactive systems 3. Component-based is for projects with well-defined requirements and existing components fitting the requirement in large extent. The components are analyzed and requirements may be changed fitting them or components modified. EMU ODMS project seems well-defined long-life project needing maintenance in operation, so waterfall model providing full documentation looks most suitable for it 2