Problem Description (Refined version of Assignment 4):
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) automatically dial 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 proposed for 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 1 is a sketch (informal drawing) showing the top level view of the system. Each home contracted with the Monitoring company has a dynamic connection with the
monitoring system (i.e. the home system calls the company’s system when it needs to and vice versa).
Figure 2 shows 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 code on 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 security of a possible
break-in.
The current model of the Home Security Computer is a small off-the-shelf system with 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.
1. One component has subcomponents that implement Model-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.
2. 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.
3. 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 3 is 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 (0 points): 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 (10 points): 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.