Информационные сети

ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 
 
 
 
 
 

Факультет «Электромеханика и технологические  машины» 
 
 
 
 

     Студент                 Васильев Степан Анатольевич        

     Адрес                     г. Ростов-на-Дону ул. Ленина д.107 кв. 14

     Группа                   ЭЗИ3-1

     ШИФР                   309731 
 
 
 
 

КУРСОВАЯ  РАБОТА № 1 
 

По дисциплине:  «Проектирование информационных сетей» 
 

Проверил: ассистент  Галушка В.В за 3 курс 

Вариант № 22 
 
 
 

Дата отправления                                                                 Дата поступления

в академию                                                                           в академию

«26» октября 2011 г.                                                          «26» октября 2011 г.

  
 

2011\2012 г 

Содержание

Введение ……………………………………………………………………………………………….. 3

1. Задание  …………. ………………………………………………………………………………….. 4

2. Описание предметной  области ……………………………………………………………………. 5

3. Проектирование  ……………………………………………………………………………………. 6

3.1. Диаграмма  вариантов использования ………….……………………………………………….. 6

3.2. Диаграмма  классов ………………………………………………………………………………. 7

3.3. Диаграммы последовательностей и активностей ...……………………………………………. 8

3.4. Диаграммы  состояний ………………………………………………………………………….. 11

4. Заключение  ………………………………………………………………………………………... 13

Приложение А  ……………………………………………………………………………………….. 14 
 

Введение

В рамках учебной программы специальности  «Информационные системы и технологии» студент обязан выполнить курсовой проект по предмету «Проектирование информационных систем». Целью данной работы является погружение студента в обстановку близкую к реальной. Предлагаются темы курсовых, одну из которых студент обязан выбрать и в последствии реализовать с помощью полученных навыков и знаний в области проектирования информационных систем.

1. Задание

 

Требуется разработать модель программного обеспечения  встроенного микропроцессора домофона.

Домофон регулирует доступ в подъезд многоквартирного дома. В подъезде имеется дверь с замком. С наружной стороны двери установлена панель с кнопками на каждую квартиру, микрофон и динамик. В каждой квартире имеется кнопка «СВЯЗЬ», «БЛОКИРОВКА» и «ОТКРЫТЬ». Кроме того, в квартире имеется микрофон и динамик.

Жильцы  могут открывать дверь ключом. Посетитель может нажать кнопку квартиры на внешней панели. При этом в квартире раздается звонок (если подача звонка в квартиру не заблокирована). Услышав звонок, жилец квартиры нажимает на кнопку «СВЯЗЬ» внутренней панели домофона, после чего домофон устанавливает звуковое сообщение между жильцом и посетителем. Звуки, произносимые посетителем в микрофон, установленный на внешней панели, воспроизводятся в динамике, установленном в квартире. Звуки из микрофона в квартире, передаются в динамик на внешней панели. После сеанса связи жилец может нажать на кнопку «ОТКРЫТЬ», чтобы замок на двери в подъезд открылся, и посетитель смог войти. По истечении минуты замок должен снова заблокировать вход в подъезд. Жилец, который желает, чтобы его не беспокоили, может отключить подачу звонка в свою квартиру, нажав на кнопку «БЛОКИРОВКА». Повторное нажатие на эту кнопку вновь включает подачу звонка.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Описание предметной области

 Так  как домофон напрямую управляется  людьми это немного усложняет решение ряда организационных и управленческих решений. Такие люди как: «Передумал звонить», «Попросил открыть дверь средствами мобильного телефона» или «Дверь была открыта» - могут не интересовать или интересовать частично, что нужно учитывать при проектировании ИС. Функциональный набор постоянен, так как вносить изменения в него не требуется, исходя из поставленной задачи. В остальном особенности предметной области ясны из задания.

3. Проектирование

3.1 Диаграмма вариантов использования

 

Диаграмма вариантов использования является основной в плане описания аспектов. Это интуитивно понятный способ разобраться в особенностях системы. Верность выполнения данной части модели, диктует ее качество и соответствие требованиям. На этапе реализации этой диаграммы выявляется множество непониманий между заказчиком и исполнителем.

Можно выделить такие цели создания диаграмм прецедентов:

  • определение границы и контекста моделируемой предметной области на ранних этапах проектирования;
  • формирование общих требований к поведению проектируемой системы;
  • разработка концептуальной модели системы для ее последующей детализации;
  • подготовка документации для взаимодействия с заказчиками и пользователями системы.

На рисунке 1 изображена диаграмма вариантов использования, на который выделено 3 сущности: домофон, посетитель и жилец. А с помощью вариантов использования статически описаны функционалы каждой из них с привязкой к исполнителю.

Рис. 1. Диаграмма  вариантов использования

3.2 Диаграмма классов

Если  вспомнить классовый подход в объектно-ориентированных языках программирования, то можно легко предугадать функциональность этой диаграммы. В отличие от диаграммы прецедентов она информирует нас не только о составе действий, но более детально и четко возлагает каждую из функций на объект класса. Ко всему прочему наследование станет очень удобным инструментом для отражения аспектов проектируемой системы, выявит зависимости. Описание возможностей класса в виде операций класса – присвоит каждому из объектов ряд индивидуальных функций.

На рисунке 2 изображена диаграмма классов информационной системы «домофон». В добавление к диаграмме прецедентов она  описывает каждый из объектов системы, выделяя их функционал в виде операций классов. Наследование полезно для  упрощения понимания и представления модели в целом, так как проследить унаследованные правила и возможности просто. На диаграмме изображены все субъекты системы, необходимы для полноценной реализации заявленных требований.

Рис.2. Диаграмма классов

3.3 Диаграммы последовательностей и активностей

 
 

Несмотря  на то, что предыдущие два вида диаграмм очень важны и обладают большой  информативностью, они никаким образом  не описывают проектируемую систему  в плоскости времени. Для этого  предназначен ряд диаграмм и одна из них – последовательностей. Каждая из таких диаграмм описывает тот или иной процесс во времени, при этом позволяет более детально разобраться в сути прецедента.

Рис 3. Диаграмма последовательности для прецедента «Открыть дверь из квартиры» 
 
 

Рис 4. Диаграмма  последовательности для прецедента «Заблокировать звонки» 
 

Попытка описать разговор  жильца с посетителем  с помощью диаграмм последовательностей  привела к очень сомнительному  результату. Она не позволяет описать  параллельные действия, хотя на уровне пользователя система реализует разговор в режиме реального времени, что означает следующее: для описания этого прецедента лучше использовать диаграмму активности.

Рис. 5. Диаграмма активности для прецедента «Разговаривать через домофон» 

Как видно, диаграмма активности позволяет описать параллельно происходящие процессы.

Таким же образом понадобилась диаграмма  активности для прецедента «Позвонить в квартиру». Так как система  имеет условности при использовании  функции звонка, а именно: жилец  может заблокировать возможность  звонков, некому будет ответить на звонок.

Рис. 6. Диаграмма последовательности для прецедента «Позвонить в квартиру» 

Диаграмма последовательностей «Позвонить в  квартиру» не удовлетворяет по причине  отсутствия возможности описать  прецедент, который имеет несколько  вариантов выполнения в зависимости  от состояния кнопки «Заблокировать» и присутствия жильца в квартире.

 

Рис. 7. Диаграмма активности для прецедента «Позвонить в квартиру» 

Рис. 8. Диаграмма последовательности для прецедента «Связь с посетителем» 

Диаграмма описывает  последовательный процесс ответа жильца на звонок в квартиру.

3.4 Диаграммы состояний

 

Рис. 9. Диаграмма состояний для класса «домофон» 

Диаграмма состояний для класса «домофон»  детально описывает состояние самого контроллера домофона. Ни на одной  из диаграмм ранее не описывалась ситуация, когда жилец отклоняет входящий звонок. Состояние «взаимодействие с замком» показывает,  как микроконтроллер управляет замком двери.

 

Рис. 10. Диаграмма состояний для класса «жилец» 

Диаграмма состояний для класса «жилец»  описывает все возможные состояния жильца важные с точки зрения описания системы. Как видно, существует 4 возможных исхода взаимодействия домофона и жильца.

Рис 11. Диаграмма  состояний для класса «посетитель» 

На этой диаграмме есть небольшое сознательное допущение проникновения состояния класса-родителя. Это состояние «человек». Сделано это с целью более точного описания поведения такого сложного объекта как «посетитель».

    4. Заключение

 

Case-средство Rational Rose в полной мере позволило воспользоваться широкими возможностями UML для проектирования. Данная модель отражает весь функционал и схематически отражает все требования, предъявляемые к реальному программному обеспечению микроконтроллера домофона. 
 
 
 
 
 
 

Приложение  A

Дверь в подъезд.h

#ifndef ДВЕРЬ_В_ПОДЪЕЗД_H_HEADER_INCLUDED_B1593A0E

#define ДВЕРЬ_В_ПОДЪЕЗД_H_HEADER_INCLUDED_B1593A0E

//##ModelId=4EA659EB013C

class Дверь  в подъезд

{

  public:

    //##ModelId=4EA65A53038E

    Открыть();

    //##ModelId=4EA65A5D02C3

    Закрыть();

};

#endif /* ДВЕРЬ_В_ПОДЪЕЗД_H_HEADER_INCLUDED_B1593A0E */ 

Дверь в подъезд.cpp

#include "Дверь в подъезд.h"

//##ModelId=4EA65A53038E

Дверь в подъезд::Открыть()

{

}

//##ModelId=4EA65A5D02C3

Дверь в подъезд::Закрыть()

{

}

Диалог  из квартиры.h

#ifndef ДИАЛОГ_ИЗ_КВАРТИРЫ_H_HEADER_INCLUDED_B1596E68

#define ДИАЛОГ_ИЗ_КВАРТИРЫ_H_HEADER_INCLUDED_B1596E68

//##ModelId=4EA65DA0036F

class Диалог  из квартиры

{

  public:

    //##ModelId=4EA65DEC03CD

    Говорить();

    //##ModelId=4EA65DF801F8

    Слушать();

};

#endif /* ДИАЛОГ_ИЗ_КВАРТИРЫ_H_HEADER_INCLUDED_B1596E68 */ 

Диалог из квартиры.cpp

#include "Диалог из квартиры.h"

//##ModelId=4EA65DEC03CD

Диалог  из квартиры::Говорить()

{

}

//##ModelId=4EA65DF801F8

Диалог  из квартиры::Слушать()

{

} 

Диалог  с улицы.h

#ifndef ДИАЛОГ_С_УЛИЦЫ_H_HEADER_INCLUDED_B1595E1D

#define ДИАЛОГ_С_УЛИЦЫ_H_HEADER_INCLUDED_B1595E1D

//##ModelId=4EA65E0D0004

class Диалог с улицы

{

  public:

    //##ModelId=4EA65E2A017B

    Посыл вызова();

    //##ModelId=4EA65E360246

    Говорить();

    //##ModelId=4EA65E4100A0

    Слушать();

};

#endif /* ДИАЛОГ_С_УЛИЦЫ_H_HEADER_INCLUDED_B1595E1D */ 

Диалог  с улицы.cpp

#include "Диалог с улицы.h"

//##ModelId=4EA65E2A017B

Диалог  с улицы::Посыл вызова()

{

}

//##ModelId=4EA65E360246

Диалог  с улицы::Говорить()

{

}

//##ModelId=4EA65E4100A0

Диалог  с улицы::Слушать()

{

} 

Кнопка.h

#ifndef КНОПКА_H_HEADER_INCLUDED_B15939D2

#define КНОПКА_H_HEADER_INCLUDED_B15939D2

//##ModelId=4EA652E2018A

class Кнопка

{

  public:

    //##ModelId=4EA653310071

    Номер кнопки;

};

#endif /* КНОПКА_H_HEADER_INCLUDED_B15939D2 */ 

Кнопка.cpp

#include "Кнопка.h" 

Контролирующая  панель.h

#ifndef КОНТРОЛИРУЮЩАЯ_ПАНЕЛЬ_H_HEADER_INCLUDED_B15940E7

#define КОНТРОЛИРУЮЩАЯ_ПАНЕЛЬ_H_HEADER_INCLUDED_B15940E7

//##ModelId=4EA65E82036E

class Контролирующая панель

{

  public:

    //##ModelId=4EA65EBA01B8

    Открыть дверь(); 

    //##ModelId=4EA65ECE0080

    Связь(); 

    //##ModelId=4EA65EDD016A

    Блокирование проигрывния звукового  сигнала();

};

#endif /* КОНТРОЛИРУЮЩАЯ_ПАНЕЛЬ_H_HEADER_INCLUDED_B15940E7 */ 

Контролирующая  панель.cpp

#include "Контролирующая панель.h"

//##ModelId=4EA65EBA01B8

Контролирующая  панель::Открыть дверь()

{

}

//##ModelId=4EA65ECE0080

Контролирующая  панель::Связь()

{

}

//##ModelId=4EA65EDD016A

Контролирующая  панель::Блокирование проигрывния звукового  сигнала()

{

} 

Обработка сигнала вызова.h

#ifndef ОБРАБОТКА_СИГНАЛА_ВЫЗОВА_H_HEADER_INCLUDED_B1594ADB

#define ОБРАБОТКА_СИГНАЛА_ВЫЗОВА_H_HEADER_INCLUDED_B1594ADB

//##ModelId=4EA653F503BD

class Обработка  сигнала вызова

{

  public:

    //##ModelId=4EA65476010D

    Ввод номера квартиры();

    //##ModelId=4EA6549001F8

    Обработка сигнала();

    //##ModelId=4EA654A000CF

    Сброс();

    //##ModelId=4EA6541A011D

    Квартира;

};

#endif /* ОБРАБОТКА_СИГНАЛА_ВЫЗОВА_H_HEADER_INCLUDED_B1594ADB */ 
 

Обработка сигнала вызова.cpp

#include "Обработка сигнала вызова.h"

//##ModelId=4EA65476010D

Обработка сигнала вызова::Ввод номера квартиры()

{

}

//##ModelId=4EA6549001F8

Обработка сигнала вызова::Обработка сигнала()

{

}

//##ModelId=4EA654A000CF

Обработка сигнала вызова::Сброс()

{

} 

Открыть дверь с помощью ключа.h

#ifndef ОТКРЫТЬ_ДВЕРЬ_С_ПОМОЩЬЮ_КЛЮЧА_H_HEADER_INCLUDED_B1596A47

#define ОТКРЫТЬ_ДВЕРЬ_С_ПОМОЩЬЮ_КЛЮЧА_H_HEADER_INCLUDED_B1596A47

//##ModelId=4EA657220301

class Открыть дверь с помощью ключа

{

  public:

    //##ModelId=4EA6575D0227

    Открыть ключом();

    //##ModelId=4EA6576300EE

    Boolean Enable;

};

#endif /* ОТКРЫТЬ_ДВЕРЬ_С_ПОМОЩЬЮ_КЛЮЧА_H_HEADER_INCLUDED_B1596A47 */ 
 

Открыть дверь с помощью  ключа.cpp

#include "Открыть дверь с помощью ключа.h"

//##ModelId=4EA6575D0227

Открыть дверь с помощью ключа::Открыть ключом()

{

} 

Отображение всех действий.h 

#ifndef ОТОБРАЖЕНИЕ_ВСЕХ_ДЕЙСТВИЙ_H_HEADER_INCLUDED_B1595534

#define ОТОБРАЖЕНИЕ_ВСЕХ_ДЕЙСТВИЙ_H_HEADER_INCLUDED_B1595534

//##ModelId=4EA655C000DF

class Отображение всех действий

{

  public:

    //##ModelId=4EA656090330

    Дисплей;

};

#endif /* ОТОБРАЖЕНИЕ_ВСЕХ_ДЕЙСТВИЙ_H_HEADER_INCLUDED_B1595534 */

Отображение всех действий.cpp

#include "Отображение  всех действий.h"

Таймер  открытия.h

#ifndef ТАЙМЕР_ОТКРЫТИЯ_H_HEADER_INCLUDED_B159758C

#define ТАЙМЕР_ОТКРЫТИЯ_H_HEADER_INCLUDED_B159758C

//##ModelId=4EA6586B0227

class Таймер  открытия

{

  public:

    //##ModelId=4EA6592300B0

    Старт();

    //##ModelId=4EA6593B0217

    Окончание();

};

#endif /* ТАЙМЕР_ОТКРЫТИЯ_H_HEADER_INCLUDED_B159758C */

Таймер  открытия.cpp

#include "Таймер  открытия.h"

//##ModelId=4EA6592300B0

Таймер  открытия::Старт()

{

}

//##ModelId=4EA6593B0217

Таймер открытия::Окончание()

{

}

Информационные сети