You’re developing the software for a company that monitors home alarm systems. There will be one sensor for each door or window in the home that detects when they are opened. If the home alarm system is activated, the home (sub)system must (1) turn on the alarm within 5 seconds of sensing the opening of any opening other than a door next to a control pad, which allow 30 for the user disarm code to be entered before the alarm is turned on, and (2) send an alarm to the Alarm Monitor Company’s central monitoring location within 15 seconds for an opening other than a door next to a control pad, and 45 seconds for a door next to a control pad. The system at the central monitoring location, (1) records the event, and (2) notifies a human operator what’s happening within 30 seconds of receipt of the alarm sent from the local home monitoring system, and (3) automaticallydial the home, within 45 seconds of receipt of the alarm sent from the local home monitoring system, and hands-off the call to the operator, who will to attempt to verify that there is a break-in. If no one answers, or someone answer but doesn’t give the agreed to safe-word or give the in-trouble word, then the operator will notify the police within 1 minute if no answer, or 2 minutes if call is answered. All actions taken are recorded.
After reviewing the draft architectures proposedfor the system (i.e. Assignment 4 submissions), the customer decided that they want the architecture to be based on the draft architecture described in the following paragraphs.
Figure 2shows the hardware in each home. The number of window and door sensors, as well as the number of control panels may be different in each house. Each window and door sensor is a simple sensor that conceptually has a value of “True” when the window or door is closed, and “False” when the door is open. This is all handled by the hardware (FYI, when the window or door is closed a complete circuit and there is power on the line; when the window is open there is circuit is broken and there is no power on the line. The hardware interface to the local CPU then sets a memory location to true/false depending on whether the power is on or off).All the local software has to do is read the memory location assigned to the sensor when the software needs to know if the window or door is open or closed.
Figure 1: Multi-Home Monitoring System Overview
The installer of the home security system can initialize the local in-home software with a list of names and each name associated name (e.g. front door, bedroom window), with each sensor so the local in-home software can display the sensor name with the status of the window or door on the control panel or can include the sensor name of the opened door or window when notifying the Security Monitoring Company of a break-in.
The home alarm is turned on by writing an “on” value (i.e. 1 or “true”) to a memory location. It is turned off by writing an “off” value (i.e. 0) to the same memory location.
While there a few different kind of the control panels, we will start with the simple pad that allows the home owner, (1) to activate (also called “arm”) the in-home alarm system by pressing an on button; or (2) deactivate (also called “disarm”) the system by entering their disarm codeon Control Panel’s number pad. Disarming the system will cause the system to turn off the local alarm and after the time periods described above to call the security company’s Central Monitoring System to notify it of a possible break-in. If the disarm code is entered before the call to security company is started, the in-home system not notify of the securityof a possible break-in.
The current model of the Home Security Computer is a small off-the-shelf systemwith a Dual-Core CPU with 16GB of shared static memory, no hard drive and a modem that is plugged into the home’s telephone system.
The Local Monitoring Software consists of 3 components.
- One component has subcomponents that implementModel-View-Controller pattern to displays information on the Control Panel, and reads the buttons and number pad of the Control Panel. It set a flag indicating monitoring is on/off, and a flag to turn off the alarm.
- The second component implements the Control-Loop style that periodically checks whether the monitor flag is on and if so(a) checks status of all the sensors, and (b) the sets the alarm flag to on.
- The last component also implements the Control-loop style periodically checks whether the alarm flag is on and the alarm is off, in which case it (a) turns on the actually alarm, (b) connects with the Central Security Monitoring Subsystem of the Monitoring Company and sends an alert message. If the alarm flag is off and the alarm is on, it turns off the alarm.
Figure 2: Local In-Home Monitoring Subsystem
Figure 3is a sketch of the Monitor Company’s Central Security Monitor Subsystem. It’s a combination of the Layered pattern (Stations, Servers, and Database Management System(s)), Client-Server (i.e. Stations & Servers) pattern,and event-driven real-time monitoring pattern. Each operator Station is used for routine activities (client data updates) until need to respond to a potential “break-in” occurs.
When an In-Home Alarm system calls in with an alert message. The Real-time Monitoring System (a) notifies the next available operator Station that there is a potential break-in so the operator can handle the event, (b) calls the home owner, (c) calls the police emergency system at the operator’s direction, and (d) records all information about the event. The Database
Management System(s) gives priority to the Real-Time Monitor and any requests from operator Stations that are working on potential break-ins.
Figure 3: Company’s Central Security Monitoring Subsystem
The Logical Bus is an abstraction of any communication support mechanism(s) (e.g. .Net, CORBA) that will be used.
The Real-Time Monitoring System, Server(s), and the Database Management System each have at least one computer. The number of computers for each of these subsystems will need to be determined later (i.e. you don’t need to determine a number) to achieve the important qualities (e.g. availability, reliability) of system.
Part 1(Download & install SysML modeling Tool)
I’m currently using Visual Paradigm, which offers a free version, www.visual-paradigm.com (you can use a different tool if you verify that you can create the relevant SysML model elements, and can export the diagrams to a format that you can paste into MS Word). You may wish to sign up the one month free trial of the full version. You may want to run their tutorial.
Part 2 : Use SysML-lite to create the following diagrams for the Alarm Monitoring System, based on the solution describe above.
1.A Package Diagram
2.A Requirements Diagram(s)
3.A Block Definition Diagram(s)
4.1 or more Internal diagrams
Create a PDF file with your diagrams and any text explanation you feel appropriate. You may want to split a diagram into 2 or more partial views, if a single diagram is hard to read in the PDF even when using the zoom capabilities of the PDF tool.
Note: the goal of this exercise is to give you some experience representing a system & its architecture design using a standard Architecture Description Language, i.e. SysML. The architecture design of this system is informally specified in the above diagrams and descriptive text. With the exception of the internals of the 1st component of the Local Monitoring Software, the diagrams show the components & their connections using an informal notation. So you will be graded on your use of SysML, to specify the architecture. I left the internals of the 1st component for you to diagram based on the textual description. Diagrams that are not based on a standard Architecture Description Language are often called “Cartoon Diagrams” because the formal semantic definition and each person may interrupt the diagram in a different way than someone else.