Software Engineering Midterm Exam PDF - 2023/2024
Document Details
Uploaded by AdorableRomanArt
German International University
2024
GIU
John FW Zaki
Tags
Summary
This is a software engineering midterm exam from German International University, Fall 2023/2024. The exam covers various software engineering topics, including SDLC, requirements specifications, agile methodologies, URL anatomy, and practical application-based questions. The exam paper is suitable for undergraduate courses.
Full Transcript
FACULTY OF INFORMATICS SOFTWARE ENGINEERING Dr. John FW ZAKI Winter Semester 2023/2024 Saturday, 28.10.2023 Midterm Exam Bar Code Instructions: Read Carefully...
FACULTY OF INFORMATICS SOFTWARE ENGINEERING Dr. John FW ZAKI Winter Semester 2023/2024 Saturday, 28.10.2023 Midterm Exam Bar Code Instructions: Read Carefully Before Proceeding. 1. No programmable calculators, book or other aids are permitted for this test. 2. Write your solutions in the space provided. If you need more space, write on the back of the sheet containing the problem. 3. Attempt as many of the problems as you can within the time limits. The more you solve the higher your score is expected to be. 4. Read all the problems carefully before starting, and start with the easiest question you find. 5. This exam booklet contains 7 pages, including this one. Extra sheets of scratch paper is attached and have to be kept attached. 6. When you are told that time is up, stop working on the test. 7. Total time allowed for this exam is 2 hours. Good Luck! Please, do not write anything on this page Question Number 1 2 3 4 5 6 Total Obtained Score Maximum Score 6 14 10 10 10 10 60 Page 1 of 7 Q1: Plot the SDLC and state (in one to two lines) one main function of each phase. Answer: Page 2 of 7 Q2: Choose the correct answer. A. Which of the following best describes the primary responsibilities of a software engineer? 1. Designing, building, and maintaining software systems 2. Designing the user experience 3. Writing test cases based on requirements. 4. Writing documentation B. Which statement best describes the User Requirements Specification (URS)? 1. It contains functional, external interface, and non-functional requirements. 2. It can be combined with the Software Requirements Specification to form the System Requirements Specification (SysRS). 3. It contains policy and regulation requirements. 4. It primarily contains use cases. C. Which of the following is not a core principle of the agile manifesto? 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Following a plan over responding to challenges D. In an agile project methodology, the team should do the following on a daily basis a. Standup meetings b. Project retrospective c. Sprint retrospective d. Product backlog E. In the following URL anatomy, connect the left column to the right column by writing the correct number in column named “#” http://www.abc.def.nlm.xyz.com/docs/results?search_query=software+engineering Description # URL anatomy The protocol 1. Results?search_query=software+engineering The TLD 2. Xyz The root domain 3. www 1st sub-level domain 4. com 2nd sub-level domain 5. def 3rd sub-level domain 6. abc 4th sub-level domain 7. nlm The separator 8. http The path to resources 9. :// parameters 10. /docs Page 3 of 7 Q3: A. Based on your own knowledge of some of the application types discussed in lectures, explain, with examples, why different application types may require specialized/different software engineering techniques to support their design and development. Answer: B. Giving reasons for your answer based on the type of system being developed, suggest the most appropriate software process model that might be used as a basis for managing the development of the following systems: a. A mobile application for an entrepreneur who have just started. b. A customs clearance platform for the Egyptian Government. c. A system to control a NASA UAV going to Mars. d. A virtual reality game development. Answer: a. b. c. d. Reasons: a. b. c. d. Page 4 of 7 Q4: A. Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system. The ATM must check the card validity after entering the pin. Customer uses a bank ATM to check balances of his/her bank accounts, deposit funds, withdraw cash and/or transfer funds. Answer: Page 5 of 7 Q5: Write a function called updateElements which takes an array as input and return a new array as output. If an element inside a list is not divisible by two then multiply element by itself, otherwise append element to the new array. You are not allowed to use while or for loop. Hint: x is divisible by y if x % y == 0 Page 6 of 7 Q6: Given the following array of arrays. students = [ ["1001812","Farid Twafik"], ["1007968" , "Amir Zeyad" ], ["1005669" , "Adham Karim" ] ] Write a function called produceStudentsObjectArray that accepts one argument. 1. studentsArray : array of arrays The function should return an array of objects where each object contains an id and name properties. For instance, the below is an example similar to the required output produceStudentsObjectArray(studentsArray) return array of objects as [ {id : "1001812", name : "Farid Twafik"}, {id : "1007968", name : "Amir Mostafa"}, {id : "1005669", name : "Adham Karim" } ] Page 7 of 7