EXAM FOR INFOTECH SOFTWARE ENGINEERING FOR REAL-TIME SYSTEMS Suggested Solution WS 13/14 - Without Engagement - Task Theme Points Time required in min. 1 Analysis and Design 15 30 2 Basics and Test 10 25 3 Project Management 15 35 4 Questions 20 30 Remark Sum 60.0 120 1
Task 1: Analysis and Design (15 Points) Question 1.1 Figure.1 Context Diagram Question 1.2 DFD0 SkyParking Figure.2 DFD0 Diagram 2
Question 1.3 Figure.3 Data Dictionary Question 1.4 Modular Diagram 3
Task 2: Basics and Test (10 Points) Question 2.1: ER Diagram 4
Question 2.2: Control Flow Diagram 5
Question 2.3: Test Cases We need 6 test cases: Paper ID: 3612 Presentation date: 23. Sept Starting time: 10:30 End time: 11:00 Paper ID: 2584 Presentation date: 24. Sept Starting time: 10:30 End time: 11:00 Paper ID: 1764 Presentation date: 24. Sept Starting time: 09:30 End time: 10:00 Paper ID: 4983 Presentation date: 24. Sept Starting time: 11:30 End time: 12:00 Paper ID: 6525 Presentation date: 24. Sept Starting time: 10:10 End time: 10:40 Press exit button 6
Task 3: Project Management (15 Points) Question 3.1: Effort Estimation Phase Inception Elaboration Construction Transition Activity 15% 10% 45% 30% Analysing 65% 10% 10% 15% Designing 20% 55% 10% 10% Programming 5% 15% 60% 35% Testing 10% 20% 20% 40% Total Effort = 3.6 * (85 KLOC) 1.2 = 744 PM The effort for Inception = 0.15 * 744 = 111.6 PM The effort for Elaboration = 0.10 * 744 = 74.4 PM The effort for Construction = 0.45 * 744 = 334.8 PM The effort for Transition = 0.30 * 744 = 223.2 PM 7
Software Engineering for Real-Time Systems Institute of Industrial Automation and Software Engineering Question 3.2: Gantt Diagram 8
Question 3.3: Net Plan Question 3.4: Project Delay The project will not be delayed. 9
Task4: Questions 1) Briefly explain the quality requirements efficiency and security following the ISO 9126. How are these quality requirements of efficiency and security related to each other? Describe a concrete scenario from industry where they can negatively impact each other. Solution: - Efficiency: The sum of all attributes of a system which contribute towards performance of the software and the amount of resources used, under stated conditions. Examples include time behaviors, resource utilization, and efficiency compliance in real-time systems - Security: The sum of all attributes of a system which contribute towards ensuring that it can neither be accidentally nor deliberately be attacked or manipulated. Information security implies that the product will not do anything with the processed or managed information which is not explicitly intended by its specification. - Efficiency and security are related. For instance efficiency (performance) might be decreased when security dominates. Reliability positively impacts safety and security. - Example: A real-time system with many transactions in a distributed sensor network can have reduced efficiency, if these transactions are individually encrypted on a too low level. 2) Explain test driven development (TDD)? Where is it used and with which benefits? Solution: TDD is used in design of code. The unit test case is constructed before the respective code is written. This assures that the code would later run against these test cases which can be used as regression test with incremental add-ons, etc. 3) What is an assertion in software engineering? Why is it used? Solution: An assertion is a predicate (a true false statement) placed in a program to indicate that the developer thinks that the predicate is always true at that place. If an assertion evaluates to false at run-time, an assertion failure results, which typically causes execution to abort. This draws attention to the location at which the logical inconsistency is detected and can be preferable to the behavior that would otherwise result. 4) Why is it necessary to periodically improve software development and management processes? Explain the need for process improvement by using the case of not keeping schedule commitments what companies can do to get better. Solution: 10
Process improvement assures competitiveness in a fast changing market with rather low entry barriers. Generally companies invest if there is a return. Companies invest in process excellence because it pays off. There is a positive business case! Example: If projects routinely miss their schedule commitments, this is an indicator of poor planning and bad project management. Typically it comes along withz insufficient requirements engineering, change management or quality control. They identify root causes for being late, such as insufficient planning or defecting defects too late or having too many requirements changing. Then they take action to improve these root causes, such as establishing better estimation and WBS or implementing early defect removal and strong quality gates, or requirements change control board and traceability. 5) What is model in the loop and how is it used? Why is it used and what are its advantages? Solution: Model in the Loop (MIL) is the simulation of an embedded system in an early development phase, the modeling in model-based software development. Embedded systems interact with their environment and often expect plausible sensor signals as input and then stimulate the physical system. To function properly, the environment of the embedded system has to be simulated. Now, if the embedded system (model) simulated in a loop together with the environment model, one speaks of a Model in the Loop Simulation. MIL is an inexpensive way to test embedded systems. Development and simulation environment for model-based development, for example, MATLAB / Simulink. 6) What are ethical conflicts in engineering? Mention three potential conflicts and what could be constructively done on the engineering level. Solution: - An engineer observes a colleague downloading protected code and including pieces to his work. Recommendation: speak with him and explain copyright and intellectual property issues. - A product manager agrees a schedule with the client without having finished the analysis. Recommendation: explain the manager that with this approach he will miss deadlines and thus create extra cost for the company. Also clients won t like yes-sayers which later fail. - A project manager wants to keep schedule and declares several test cases as resolved. Recommendation: Explain to that project manager or to the quality responsible that you consider the software insufficiently tested and show why. Suggest doing few critical tests and check the amount of defects found. Delivering insufficient quality typically means that customers are annoyed and penalties have to be paid. On top the cost of non-quality is much higher than doing it right first. - For performance reasons in a real-time embedded system a critical watch-dog function is switched off. The project manager is unaware. 11
Recommendation: talk with the responsible engineering manager that here is a short-term patch which will sooner or later mean failure with expensive rework. 12