ECE 3740 Systems Engineering Principles 1 Final Exam Fall 2013 9 December 2013, 9:00 AM – 12:00 Noon LAST NAME FIRST NAME STUDENT NUMBER ELEC. SIGNATURE PREAMBLE: This exam will measure student abilities in the CEAB attributes of Design, Problem Analysis, Investigation, and Tools. The exam performed entirely in the laboratory. Each student is allowed to bring their MX7cK microcontroller board and sensors to the exam, and use it to solve the given problem. Students must enter all answers in the electronic version of this document. A hard copy version of this document has been made available to all students for reading convenience. After completing the exam, students must ensure their names are on the electronic exam document. All of their work/answers must be saved on their USB drive. The USB drive and the Mx7cK board and sensors must be left on the desktop of their workstation. PROBLEM DESCRIPTION: • Design a temperature monitoring system for a wilderness area. • Objective is to determine if there are any “hotspots” in the area. • Given: • 1000 MX7cK boards are available • The protected area has dimensions 100x100 m2. • The temperature sensor PMOD used in other projects of this course is available for this application. • A GPS PMOD is available. The GPS device is to report the MX7cK board’s position in the protected area. The GPS device is battery operated, and it contains a power on/off switch that is connected to PORTB, BIT0. • Energy must be conserved by judicious use of the system. • The 1000 MX7cK boards will be randomly deployed in the area. • The GPS device software includes three functions: • Function void startGPSCapture() starts the GPS hardware device, and then stores the x,y coordinates in a buffer within the GPS device. Although the function returns immediately, it may take up to 1s before the coordinates are available. • Function Boolean isGPSDone() returns true if done and false otherwise. • Function void getCoords(char *myCoordsBuffer) gets 2 bytes from the GPS, and places those bytes in myCoordsBuffer. • • • The MX7cK boards with temperature sensor will also derive power from batteries. However, no energy saving subsystem is available for the board with temperature sensor. The board and temperature sensor must be “on” all the time. QUESTIONS (Place your answer outside of the box of the question). 1. Draw a component diagram, which shows the main components and their interconnections of 10% your design. Additionally, explain your design in words: in other words, state the role that is played by each component in your design; and state the inputs and outputs of each component (if any). For each component in your design, explain if it is a reusable component: i.e., reused from a previous application, a new reusable component, or not reusable. <Place answer here> 2. Give a detailed development plan. For each step in your development plan: 10% • Explain what the incremental step does. • How does the incremental step fit into the overall project? • Explain why it is beneficial to have this as an incremental step for this project. • Identify the folder where the code would be located for this step. (Use more pages if required). <Place answer here> 3. Write down the high level requirements of your system. Explain any controversial issues. (Use 5% more pages if required). <Place answer here> 4. Identify design alternatives: for each design alternative, give advantages/disadvantage of each 10% alternative; and provide reason(s) why you chose a particular design alternative. <Place answer here> 5. Give an artistic depiction (or actual image) of your user interface, and explain in words what 2.5% part each component of your user interface plays in the system. Also, explain the main functionality offered by your user interface design by using a UML Use Case diagram. <Place answer here> 6. Explain your energy conservation strategy of your design. 2.5% <Place answer here> 7. Give a list of all possible messages your user interface can send to the MX7cK board, and all 5% of the possible messages sent from the MX7cK board to the user interface. <Place answer here> 8. Explain how your design obtains GPS coordinates and adheres to the cooperative multitasking 5% requirement. Write C-code that shows how you implement getting GPS coordinates. Identify the location on the USB drive which stores your C-file. <Place answer here> 9. Incorporate the following OO design patterns into your design. • Java Interface Design Pattern • Model View Controller Design Pattern • Command Design Pattern • Observer Design Pattern 15% <Place answer here> 10. As per Question 9, your design should incorporate a Java Interface Design Pattern for the user 5% interface component. Given that your design has a Java interface for the user interface component, explain what would be required to change the user interface, e.g., from a command line user interface to a graphical user interface. <Place answer here> 11. Based on your answer to Question 9, draw a UML sequence diagram to show what the 5% software does when a user requests the average temperature reading of the entire 10km x 10km area. Show all objects that are involved in the process. In addition, explain in words the purpose or the role played by each component of your sequence diagram. <Place answer here> 12. The above system assumes there is only one area to monitor. Now assume that there are 5% potentially many different areas that can be monitored for temperature around the world, but their locations are unknown, or monitoring areas can be added or removed. Suggest another design that can facilitate this multi-service provider system, where the service provider locations can be determined and thus monitored. <Place answer here> 13. The above system assumes there is only one type of sensor (i.e., a temperature sensor) on an 10% MX7cK board. Now assume that each service provider (Mx7cK board) can have many different types of sensors or services that it can offer. Model this system using a UML inheritance hierarchy. • Explain why this inheritance hierarchy is a good OO design. • Are there any polymorphic methods that will be used in this hierarchy? If so, what are they and why would they be useful as polymorphic methods? <Place answer here> 14. This question will evaluate your Java code for the Abstract Client3. 10% • Identify the location on your USB drive that contains the source code for your Abstract Client software. • Explain how your design of the Abstract Client can be reused in other similar applications. • Explain why your design is called “Abstract.” <Place answer here>