Examination CD5360 Software Engineering Course, 10P (Examination 4 Points) Datum: 2001-06-12, 8:30-13:30 Responsible: Ivica Crnkovic Max points: 40 Approved: Minimum 20 points Final Course Marks will be combined from the examination and the project: (40 points from examination + 40 points from the project) /2 5 34 40 4 28-33 3 20-27 Literature, own notes allowed Observe, please: Write your name and personal number on every sheet Write on one side of sheet only. The Swedish translation of the assignments is placed after the English text. Good luck! Software Engineering CD5360 1
Assignment 1 12 Points PROJECT MANAGEMENT A company has decided to upgrade their software product. The functionality to be added has been described in 5 use cases. The project management has estimated the required effort as follows: Design of one use case requires six man-days. Implementation of one use case requires six man-days. Preparing tests for one use case requires one man-day. In order to prepare tests, a complete design of the use case must exist. Testing one use case requires one man-day. Integration of one use case into the existing system takes one man-day, including integration testing. Project management will require one man-day each week throughout the project. The project group consists of the following 7 members: One project manager One designer Two coders (can do design if needed) One tester (to prepare and run tests) One integrator Plan the project, and present the activities in a Gantt diagram, for the two different process models specified below. Aim at minimizing the total calendar time by identifying activities that may overlap. Determine the total calendar time of the project in each case. a) Assuming the project uses the waterfall process model, i.e. all use cases are handled together in each phase. b) Assuming the project uses an incremental process model, i.e. the use cases are added to the system one at a time. Software Engineering CD5360 2
Assignment 2 10 Points REQUIREMENT ENGINEERING The department wants a system for dealing with laborations. It should allow students to sign up in lab groups, read the instructions and send messages to the lab assistant. They should be able to upload their solutions, and to see which assignments that they have sent in, which have been approved and which they have to complete, and if deadlines have been missed. a) Construct an UML use case diagram that describes the part of the system that the students use (no administration or lab assistant functionality). b) Describe briefly each use case in the diagram, as a list of interaction steps between the system and the participating actors. c) Suggest at least ten requirements for this system. You do not have to cover every aspect of it, but rather focus on formulating concrete and precise requirements. Of these ten requirements, at least 4 should be non-functional, and at least 4 should be functional. Software Engineering CD5360 3
Assignment 3 12 Points ARCHITECTURES For each of the following systems, suggest an appropriate architecture style. Give a brief description of what the system architecture would look like (name the components of the architecture and any connections between them). a) A java source code optimizer. The program reads a set of java source files, performs a number of optimizing transformations on them, and finally generates new optimized source files. b) The whole lab report system from the requirement engineering question (including administration and lab assistant parts). c) A program for translation that is intended to be a part of by many different applications (such as a web-browser, text editor or mail tool). d) A software agent to control an intelligent monster in a violent computer game. The game provides functionality for primitive actions like moving and looking in different direction. The monster should have a complex behavior that simulates for example curiosity and fear. Software Engineering CD5360 4
Assignment 4 6 Points UML For each of the following UML diagrams, explain which aspects of a system it describes. Also, give an example of how it can be used in a software development project (during what phase, and what purpose does it have). a) Class diagrams b) Sequence diagrams c) Statechart diagrams d) Use case diagrams Software Engineering CD5360 5
Uppgift 1 12 Poäng PROJEKTLEDNING Ett företag har beslutat att uppgradera sin mjukvaruprodukt. Den nya funktionaliteten har fångats i fem användningsfall. Projektledningen har uppskattat den nödvändiga arbetsinsatsen enligt följande: Design av ett användarfall tar sex man-dagar. Implementering av ett användarfall tar sex man-dagar. Att förbereda testning av ett användarfall tar en man-dag. För att kunna förbereda testning krävs att designen av användarfallet är färdig. Att testa ett användarfall tar en man-dag. Att integrera ett användarfall med det existerande systemet tar en man-dag, integrationstestning inkluderat. För projektledning krävs en man-dag för varje vecka under hela projektet. Projektgruppen består av sju personer, med följande rollfördelning: En projektledare En designer Två kodare (kan hjälpa till med design om det behövs) En testare (för att förbereda och genomföra tester) En integrerare Planera projektet och presentera alla aktiviteter i Gantt-diagram, för de två olika processmodeller som beskrivs nedan. Försök minimera den totala kalendertiden genom att identifiera aktiviteter som kan överlappa varandra. Ange den totala kalendertiden för projektet i båda fallen. a) Använd vattenfallsmodellen, d.v.s. alla användarfall hanteras tillsammans under varje aktivitet. b) Använd en inkrementell processmodell, d.v.s. användarfallen läggs till systemet ett i taget. Software Engineering CD5360 6
Uppgift 2 10 Poäng KRAVHANTERING Institutionen anser sig behöva ett system för att hantera laborationer. Studenterna ska kunna anmäla sig i labgrupper, läsa instruktioner och skicka meddelanden till sin labassistent. De ska även kunna ladda upp sina lösningar, och se vilka uppgifter de har skickat in, vilka som är godkända, vilka som måste kompletteras, och om de missat någon deadline. a) Konstruera ett användningsfallsdiagram (use case diagram) i UML, som beskriver den del av systemet som studenterna kommer att använda (ingen funktionalitet för administration eller för labassistenterna). b) Beskriv översiktligt varje användarfall i diagrammet, som en sekvens av interaktionssteg mellan systemet och de medverkande aktörerna. c) Föreslå minst tio krav för systemet. Du behöver inte täcka alla delar av systemet, utan snarare fokusera på att formulera konkreta och precisa krav. Av de tio kraven ska minst fyra vara icke-funktionella, och minst fyra vara funktionella. Software Engineering CD5360 7
Uppgift 3 12 Poäng ARKITEKTUR Föreslå en lämplig arkitekturstil för varje system nedan. Ge en kortfattad beskrivning av hur systemarkitekturen skulle se ut (namnge komponenterna i arkitekturen och eventuella bindningar mellan dem). a) En optimerare av java-källkod. Programmet läser in en mängd källkodsfiler, applicerar ett antal optimeringstransformationer på dessa, och genererar slutligen nya optimerade källkodsfiler. b) Hela laborationssystemet från uppgift 2 (inklusive administration och labassistentens delar). c) Ett program för översättning, som är tänk att ingå som en del av många olika applikationer (t.ex. webbläsare, texthanterare och mail-program). d) En mjukvaruagent som kontrollerar ett intelligent monster i ett våldsamt dataspel. I spelet finns redan funktioner för enkla handlingar, som förflyttning och att titta åt olika håll. Monstret ska ha ett komplext beteende som simulerar till exempel nyfikenhet eller rädsla. Software Engineering CD5360 8
Uppgift 4 6 Poäng UML Beskriv, för följande UML-diagram, vilka aspekter av ett system det beskriver. Ge även ett exempel på hur det kan användas i ett mjukvaruprojekt (under vilken fas och vilket syfte det fyller). a) Klassdiagram b) Sekvensdiagram c) Tillståndsdiagram (statechart diagrams) d) Diagram över användningsfall (use case diagrams) Software Engineering CD5360 9