ПоповА.И. 2014–2016 - dsplab.narfu.rudsplab.narfu.ru/popov/files/edu/is/pis-lab.pdf ·...

32
Проектирование информационных систем Попов А.И. 2014 – 2016

Upload: nguyenbao

Post on 06-Aug-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Проектирование информационных систем

Попов А.И.

2014 – 2016

Оглавление

Введение 2

Классификация систем вообще и классификация информационных систем 3

MindMapping 5

Разработка идеи и планирование проекта 6

Сбор и анализ первичных требований к ИС 8

IDEF0. Ramus 10

DFD. Ramus 12

ERM 13

Графическое описание бизнес-процессов 14

Система контроля версий Mercurial 19

Введение в Python 3 22

Python 3 и средства разработки документации. 24

Python Unit Testing 25

TDD 26

База данных, MVC, тестирование. Проект 27

Контрольная работа (база данных) 29

Контрольная работа (FP-метрики) 30

Расчетно-графическая работа (бизнес-процессы) 31

1

Введение• При проведении лабораторных работ по данной дисциплине используется метод учебныхпроектов. Для совместной работы над проектом по созданию информационной системыстуденты объедяняются в группы по 2-3 человека.

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

• По результатам каждого этапа необходимо представить письменный отчет.

2

Классификация систем вообще и классификацияинформационных систем

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

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Офисный пакет

Источники1. Спицнадель В.Н. Основы системного анализа: учебное пособие.

2. Черняк Ю.И. Системный анализ в управлении экономикой.

3. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационныхсистем.

Что нужно сдать?• Текстовый отчет. Готовый отчет следует отправить на электронную почтупреподавателю [email protected]. Из содержания письма должно быть понятно,кто именно является исполнителем (фамилия, имя), чтобы возможно было вести учетвыполненных работ. В заголовке письма укажите также номер группы – студентыдругих групп тоже присылают преподавателю письма, возникает путаница.

Задания1. Классифицируйте следующие системы (по классификациям В.Н. Спицнадель, Г.Н.

Поварова, С. Вира., Ю. Черняка):

• система линейных уравнений

• файловая система

• пищеварительная система

• система образования

• информационная система

• государственная система стандартизации

• GRID-система

• Интернет

• кибернетическая система

3

• молекула воды (в школьной химии)

• биогеоценоз

2. Классифицируйте (по степени автоматизации, по сфере применения, по уровнюорганизационного управления, по характеру обработки данных, архитектуре и т.д.)следующие ИС:

• Система электронного документооборота небольшой организации

• Информационно-измерительная система для проведения кардиографическихизмерений (состав: компьютер, установленное на нем программное обеспечение,внешний модуль аналого-цифрового преобразования, датчики)

• Медицинская информационная система

• Система учета оплаты коммунальных услуг ТСЖ

• Правовая информационная система «Консультант+»

• Доменная система имен

• Система кадрового учета с базой данных на MS Access, доступ к которой возможенс различных компьютеров локальной сети организации

• Система кадрового учета с базой данных на MySQL, доступ к которой возможен сразличных компьютеров локальной сети организации

4

MindMapping

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Средство для создания ментальных карт, например, XMind

3. Проектор, экран

Полезные ссылки1. Тони Бьюзен. Научите себя думать

2. Most Popular Mind Mapping Tool http://www.xmind.net

3. The Most Popular Mind Mapping Tool http://www.xmind.net/

4. XMind Portable http://www.xmind.net/blog/en/tag/portable/

5. Море аналитической информации http://citforum.ru/

6. Habrahabr http://habrahabr.ru/

Этапы работы1. Изучите основные принципы техники MindMapping, о них Вам кратко расскажет

преподаватель. В разделе «Полезные ссылки» указана книга Тони Бьюзена – создателяэтой техники. Позже почитайте её дома. То, что Вы узнаете, может очень пригодитьсяв учебе и работе.

2. Скачайте, установите и запустите XMind Portable.1

3. Откройте любую статью по компьютерной тематике на Habrahabr или Citforum, илиеще где-нибудь. Единственное требование – статья должна быть скорее большой, чеммаленькой. В этом случае можно лучше понять силу MindMapping.

4. Выберите центральное понятие и составьте ментальную карту статьи.

Что нужно сдать?• Метальную карту, экспортированную в графический файл. Т.е. сдать надо графическийфайл, а не файл программы, которую Вы выберете. Отправьте файл на электроннуюпочту преподавателю.

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

5

Разработка идеи и планирование проекта

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Средство для создания ментальных карт, например, XMind

3. Система управления проектами, например, Planner

4. Офисный пакет

5. Проектор, экран

Полезные ссылки1. Тони Бьюзен. Научите себя думать

2. Most Popular Mind Mapping Tool http://www.xmind.net

3. Клиффорд Ф. Грей, Эрик У. Ларсон. Управление проектами: практическое руководство

4. Мартин Т., Тейт К. Управление проектами

5. Портни, Стенли И. Управление проектами «для чайников»

6. GanttProject Home. http://www.ganttproject.biz/

7. OpenProj | Serena Open Source and Hosted Project Management Software. http://openproj.org/openproj

8. Planner - GNOME Live!. http://live.gnome.org/Planner

9. Planner on Windows. http://winplanner.sourceforge.net/

Этапы работы1. Знакомство с теоретическим материалом (сначала достаточно просто осмотреться).

2. Формирование групп по 2-3 человека для дальнейшей работы над проектом.

3. Обсуждение идеи проекта по созданию информационной системы2

4. Формулирование идеи проекта. Описание идеи включает заголовок с названием проектаи 1 абзац текста. Требования: краткость и полнота.

5. Формулирование цели проекта. Требование: формулировка должна отражатьконкретный результат, продукт.

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

6

6. Формулирование задач проекта. Требование: полнота, т.е. решения представленныхзадач должно быть достаточно для достижения цели.

7. Разработка структурной схемы работ. Это удобно делать, используя техникументальных карт и соответствующие инструменты, например, XMind.

8. Определение ресурсов, работ и разработка диаграммы Гантта в системе управленияпроектами.

Что нужно сдать?1. Текстовый документ «Идея, цель и задачи проекта».

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

7

Сбор и анализ первичных требований к ИС

ПояснениеДанная работа посвящена двум важным этапам разработки системы требований – сборуи анализу первичных требований к программной системе. Требования здесь пока ещевыражены на языке заказчика (на естественном языке), поэтому два этапа объединены водной лабораторной работе. Сначала необходимо собрать как можно больше первичныхтребований из как можно большего количества источников. Для каждого источникасуществуют свои способы сбора требований, но будет очень хорошо, если здесь Выпроявите изобретательность. После того, как требования собраны, нужно подвергнуть ихдекомпозиции и классификации в соответствии с признанными в мире характеристикамикачества (iso 9126). После классификации нужно устранить противоречия и расставитьприоритеты.

Эта работа текстовая, и если Вы просто будете использовать те средства для наборатекстов, которыми Вы уже владеете, и на том, уровне, на котором уже находитесь, тоочень скоро станет скучно. Поэтому Вам предлагается выбрать какой-нибудь новый дляВас инструмент разработки документации и заодно изучить его. Это может быть GoogleDrive, Docbook, Markdown, LATEXи т.д. Существует очень много удобных инструментов, сосвоими принципами и особенностями.

Если Вы все же будете использовать что-то вроде MS Word, изучите хотя бы стили :)

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Средства для работы с технической документацией

Полезные ссылки1. Гусятников В.Н., Безруков А.И. Стандартизация и разработка программных систем.

2. ГОСТ 34.601-90. Автоматизированные системы. Стадии создания.

3. ГОСТ Р 50.1.028-2001. Информационные технологии поддержки жизненного циклапродукции. Методология функционального моделирования.

4. ГОСТ Р ИСО/МЭК 15288-2005. Системная инженерия - процессы жизненного циклапрограммных средств.

5. ISO/IEC 12207:1995 «Information Technology - Software Life Cycle Processes».

6. ISO/IEC 15504. Information Technology — Software Process Assessment.ГОСТ РИСО/МЭК 12207-99.

Этапы работы1. Знакомство с теоретическим материалом.

8

2. Сбор первичных требований. В учебном проекте источниками могут быть, например:проектировщик (т.е. Вы сами), преподаватель, другие студенты, системы аналогичногоназначения, опыт близких проектов, стандарты, законы.

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

Что нужно сдать?• Список требований, классифицированных по источнику, по группе характеристиккачества (в соответствии с iso9126) и по приоритету.

Примеры «хороших» требований1. На одной экранной форме не должно быть более 10 элементов управления.

2. В базе данных должны быть представлены сведения о сотрудниках и структурныхподразделениях.

3. Сведения о сотрудниках включают фамилию, имя, отчество, дату рождения испециальность сотрудника.

4. Время обработки одного запроса не должно превышать 1 секунду.

5. Программа должна работать на Windows XP, Windows 7, Windows 8 и Ubuntu 12.04.

Примеры «плохих» требований1. Графический интерфейс должен быть удобным.

2. В базе данных должны содержаться все необходимые данные.

3. Программа должна работать быстро.

4. Программа должна быть кроссплатформенной.

9

IDEF0. Ramus

ПояснениеПрежде чем рисовать различные диаграммы для Вашей системы, предлагается изучитьболее детально сами графические нотации, а также принципы, по которым строятсясоответствующие CASE-средства. Данная работа посвящена IDEF0, в качестве CASE-средства используется бесплатная образовательная версия Ramus – Ramus Educational.Впрочем, не обязательно пользоваться именно Ramus – подойдет любая программа вродеDia или MS Visio и даже обыкновенный лист бумаги3.

Для построения IDEF0-моделей предлагаются два примера не из Вашего проекта,однако, составленные так, чтобы обратить Ваше внимание на некоторые важные моменты.

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Ramus Educational

Полезные ссылки1. Скачать Ramus http://ramussoftware.com/index.php?option=com_docman&Itemid=10

2. IDEF0 http://www.nsu.ru/smk/files/idef.pdf

Этапы работы1. Повторение принципов IDEF0, изученных на лекции

2. Изучение Ramus

• Установка и запуск Ramus Educational

• Общее знакомство с Ramus Educational

• Создание проекта, общие свойства проекта

• Построение диаграмм, декомпозиция, нумерация блоков

• Классификаторы: создание, применение

• Ветвления и слияния стрелок

3. Выполнение заданий (одно задание с преподавателем, другое – самостоятельно)

4. Ответы на колнтрольные вопросы3Возможно, это лучший вариант.

10

Задания1. Опишите на IDEF0 процесс решения школьником квадратного уравнения.

2. Представьте, что перед Вами возникла профессиональная задача автоматизироватьдокументооборот некоторой организации при помощи свободной системы Alfresco. Дляначала, Вы решили формализовать подход к автоматизации одного произвольногобизнес-процесса. Вы побеседовали с заказчиком, почитали документацию Alfresco,форумы и т.п. и сделали следующий конспект:

Переведите его на язык IDEF0.

Что нужно сдать• IDEF0-диаграммы в виде графических файлов.

Контрольные вопросы1. Сценарий следующий: запускаем Ramus, создаем новую IDEF0-модель, начинаем

рисовать диаграмму, добавляем один блок, пытаемся добавить второй. Второй блок недобавляется. В чем проблема?

2. Почему в Ramus при построении IDEF0-диаграммы не получается провести стрелку справой стороны в блок?

Быстрая проверка Вашей моделиЕсли выполняется хотя бы одно из следующих условий, задание считается невыполненным:

1. Имеются стрелки или блоки без названий

2. У блока нет стрелки снизу

3. На детализирующей диаграмме меньше трёх блоков

4. На диаграмме больше 8 блоков

5. Стрелка имеет имя «Данные» или «Информация»

6. В модели всего одна диаграмма

11

DFD. Ramus

Оборудование и программное обеспечение1. Компьютер под управлением Windows или GNU/Linux с выходом в Интернет

2. Ramus Educational

Полезные ссылки1. Скачать Ramus http://ramussoftware.com/index.php?option=com_docman&Itemid=10

2. Попов А.И. Свободные инструменты проектирования информационных систем

Этапы работы1. Повторение принципов DFD, изученных на лекции

2. Создание в Ramus проекта на основе DFD

3. Выполнение заданий (одно задание с преподавателем, другое – самостоятельно)

Задания1. Опишите на DFD систему «Автобус», компонентами которой являются: кондуктор,

водитель, билеты, касса, контроллер. Обратите внимание на то, что является внешнимисущностями по отношению к данной системе.

2. Опишите на DFD систему «Поликлиника», компонентами которой являются:регистратура, врач, медсестра (помогает врачу), лаборатория, аптека. Примерывнешних сущностей: пациент, больница, поставщик лекарств.

Что нужно сдать?• DFD в виде графических файлов.

Быстрая проверка Вашей моделиЕсли выполняется хотя бы одно из следующих условий, задание считается невыполненным:

1. На детализирующей диаграмме меньше трёх блоков

2. На диаграмме больше 8 блоков

3. Имеются стрелки или блоки без названий

4. Стрелка имеет имя «Данные» или «Информация»

5. В модели всего одна диаграмма

6. Внешние сущности находятся внутри системы

12

ERM

Оборудование и программное обеспечение1. Компьютер под управлением ОС семейства MS Windows или GNU/Linux с выходом в

Интернет

2. Виртуальная машина Virtual Box

3. MySQL Workbench

4. Инструмент для рисования диаграмм (Например, Dia или MS Visio)

Полезные ссылки1. MySQL Workbench http://www.mysql.com/products/workbench/

2. Dia Portable http://portableapps.com/apps/office/dia_portable

3. Попов А.И. Свободные инструменты проектирования информационных систем

Этапы работы1. Повторение концептов ERM. Повторение нотаций, применяемых при ER-моделировании

2. Установка MySQL Workbench и других необходимых программ

3. Выполнение заданий (одно задание с преподавателем, другое – самостоятельно)

Задания1. Постройте ER-модель «Интернет-магазин», описывающую следующие сущности:

«Группа товаров», «Товар», «Покупатель», «Заказ», – а также отношения между ними.

2. Задачка из лаборатории ИС и ЦОС. Пусть в некоторой лаборатории целюллозно-бумажного комбината имеется устройство, которое просвечивает образцы выпускаемойбумаги ярким светом и фотографирует их. На основе получаемого изображения можновычислять различные параметры – показатели качества бумаги. Каждый параметр как-то называется. Исследователи, работающие в области производства бумаги, все времяпридумывают новые параметры. Нужно разработать ER-модель, на основе которойможно было бы построить базу данных, в которой представлены изображения (вернее,их хэш-образы) и связанные с ними параметры. Напоминание: список параметровне фиксирован, параметры имеют разные типы (числа, строки), пользователи хотятиметь возможность добавлять новые параметры. ER-модель постройте в нотации Ченаи какой-нибудь другой нотации. Т.е. результатом выполнения задания являются 2рисунка.

Что нужно сдать?• ERM в виде графических файлов.

13

Графическое описание бизнес-процессов

Оборудование и программное обеспечение1. Компьютер под управлением MS Windows или GNU/Linux с выходом в Интернет

2. Виртуальная машина Virtual Box с установленной XUbuntu

3. Средства для описания бизнес-процессов в нотациях EPC и BPMN, например, ARISExpress, Bonita BPM

4. Инструмент для рисования диаграмм (например, Dia или MS Visio)

Полезные ссылки1. Bonita BPM http://www.bonitasoft.com/

2. ARIS Express http://www.ariscommunity.com/aris-express

3. Business Process Model and Notation (BPMN). version 1.2. http://www.omg.org/spec/BPMN/1.2/

4. Попов А.И. Свободные инструменты проектирования информационных систем

Этапы работы1. Установка программного обеспечения

2. Повторение EPC и BPMN

3. Выполнение заданий.

ЗаданиеНиже представлен фрагмент «Положения о служебных командировках» некоторойорганизации. Представьте описанный процесс в нотациях EPC и BPMN.

Что нужно сдать?• Графические файлы с диаграммами.

Контрольные вопросы1. В чем состоят основные отличия EPC и BPMN?

2. Каким образом на EPC и BPMN описывается параллелизм?

3. Что такое BPEL?

4. Почему BPMN поддерживается OMG?

14

П 69-07.3

9

5.4. Нормы возмещения расходов по найму жилого помещения в

период нахождения в командировке на территории иностранных государств

определяются приказом Министерства финансов Российской Федерации от

02.08.2004 № 64-н «Об установлении предельных норм возмещения расходов

по найму жилого помещения в иностранной валюте при служебных

командировках на территории иностранных государств работникам

организаций, финансируемых за счет средств федерального бюджета».

5.5. Фактический срок пребывания на территории иностранного

государства, за исключением государств-участников Содружества

Независимых Государств, определяется по отметкам в заграничном паспорте

о датах пересечения государственных границ (въезд и выезд).

5.5.1. При направлении в командировку в государства, являющиеся

участниками Содружества Независимых Государств, с которыми заключены

межправительственные соглашения, на основании которых в документах для

въезда и выезда пограничными органами не делаются отметки о пересечении

государственной границы, оформляется командировочное удостоверение с

целью определения фактического срока пребывания на территории

иностранного государства.

5.6. Работнику при направлении в командировку на территорию

иностранного государства дополнительно возмещаются следующие расходы,

подтвержденные документально:

– расходы на оформление визы или других выездных документов;

– обязательные консульские сборы;

– расходы на оформление обязательной медицинской страховки;

– иные обязательные платежи и сборы.

6. ДОКУМЕНТАЛЬНОЕ ОФОРМЛЕНИЕ

СЛУЖЕБНЫХ КОМАНДИРОВОК

6.1. При направлении работника в командировку руководитель

структурного подразделения определяет задание на командировку, в

соответствии с которым работник заполняет форму служебного задания.

В нем указывается цель, место, сроки, основание командировки, а также

ожидаемые результаты командировки и ожидаемые сроки достижения

конечного результата (Приложение № 1). К служебному заданию

прикладываются копии документов, являющихся основанием для

направления в командировку (приглашение, договор и т.п.). Служебное

задание подписывается руководителем структурного подразделения.

На оборотной стороне служебного задания работник производит расчет

командировочных расходов по форме (Приложение № 2, работник заполняет

только графу 2).

6.1.1. Работник или руководитель структурного подразделения

докладывает служебное задание работника ректору или проректору по

направлению деятельности в зависимости от целей командировки. Ректор

Фрагмент «Положения о служебных командировках»

15

П 69-07.3

10

или проректор по направлению деятельности принимает решение о

направлении работника в командировку.

6.1.2. При направлении в командировку на территории иностранных

государств работник или руководитель структурного подразделения

согласовывает служебное задание с проректором по международному

сотрудничеству.

6.1.3. При направлении на повышение квалификации,

профессиональную переподготовку или стажировку педагогический

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

института повышения квалификации и переподготовки кадров.

6.2. Для получения денежного аванса на оплату командировочных

расходов работник оформляет заявление (Приложение № 3).

6.3. При необходимости работник оформляет заявку на приобретение

отделом «Сервисный центр» организационного управления Университета

(далее – Сервисный центр) билетов и бронирование жилого помещения

(гостиницы) (Приложение № 4).

6.4. Не позднее, чем за пять рабочих дней до выезда в командировку

работник передает в Сервисный центр следующие документы:

– служебное задание с сопутствующими документами (приглашение,

договор и др.) и расчетом командировочных расходов;

– заявление на аванс (при необходимости);

– заявку на приобретение билетов и бронирование жилого помещения

(гостиницы) (при необходимости).

6.5. Работники Сервисного центра регистрируют поступившие

документы от работника, путем занесения в форму регистрации документов:

фамилия, имя, отчество работника; дата предоставления документов; состав

документов; дата начала командировки.

6.6. Сервисный центр в срок не более трех дней согласовывает

предварительный расчет командировочных расходов с финансово-

экономическим управлением; согласовывает служебное задание с

начальником управления кадров; передает заявление на аванс в управление

бухгалтерского учета.

6.7. На основании служебного задания управление кадров оформляет

приказ о направлении работника (работников) в командировку.

6.8. На основании приказа управление делопроизводства и контроля

оформляет командировочное удостоверение (Приложение № 5), за

исключением командировок на территории иностранных государств, при

направлении в которые командировочное удостоверение не требуется.

Командировочное удостоверение оформляется в одном экземпляре и

подписывается ректором Университета или проректором.

6.9. Сервисный центр осуществляет заказ и оплату билетов, а также

бронирование (оплату) жилого помещения через систему «он-лайн»

бронирования.

6.10. Не позднее, чем за сутки до выезда в командировку Сервисный

центр информирует работника о готовности командировочных документов.

16

П 69-07.3

11

Работник получает командировочное удостоверение в Сервисном

центре. Вместе с командировочным удостоверением работнику вручается

утвержденное служебное задание и билеты, также сообщается информация о

бронировании жилого помещения.

6.11. Учет работников, выбывающих в служебные командировки,

осуществляется в журнале учета работников, выбывающих в служебные

командировки.

Ответственным за ведение журнала является начальник отдела

делопроизводства управления делопроизводства и контроля.

6.12. По возвращении из командировки работник обязан в течение трех

рабочих дней:

6.12.1. Предоставить в управление бухгалтерского учета следующие

документы:

– авансовый отчет об израсходованных в связи с командировкой

суммах (Приложение № 6), согласованный с руководителем структурного

подразделения;

– командировочное удостоверение (с отметками о прибытии и убытии)

или копию страниц заграничного паспорта с отметками о пересечении

государственных границ;

– документы о найме жилого помещения;

– документы о фактических расходах по проезду;

– документы, подтверждающие иные расходы, связанные с

командировкой.

6.12.2. Сдать в кассу Университета неизрасходованный аванс,

полученный на оплату командировочных расходов.

6.12.3. Предоставить в управление кадров отчет о выполнении задания

на командировку (Приложение № 1), согласованный с руководителем

структурного подразделения, копии документов о повышении квалификации,

отчет о стажировке и др.

6.13. По возвращении из командировки на территории иностранных

государств работник предоставляет в управление бухгалтерского учета

дополнительно к указанным в п. 6.12.1. документам следующие документы:

– копию приглашения на английском языке и перевод приглашения на

русский язык, заверенный Сервисным центром;

– перевод проездных документов (билетов) на русский язык по форме,

представленной в Приложении № 7, заверенный Сервисным центром.

6.14. Для подтверждения фактически произведенных расходов на

приобретение электронного билета необходимо представить к авансовому

отчету сформированную автоматизированной информационной системой

оформления воздушных перевозок маршрут/квитанцию электронного

документа (билета) на бумажном носителе, в которой указана стоимость

перелета, и посадочный талон, подтверждающий перелет работника по

указанному в билете маршруту.

17

П 69-07.3

12

6.15. При утере проездных документов на железнодорожном

транспорте работник представляет справку об утерянном билете.

При утере проездных документов на авиатранспорте работник

предоставляет дубликат авиабилета.

При утере посадочных талонов работник представляет справку о

совершении авиаперелёта.

6.16. В случае командировки, полностью финансируемой за счет

средств принимающей стороны, работник по возвращении из командировки

предоставляет в управление кадров следующие документы:

– командировочное удостоверение (с отметками о прибытии и убытии)

или копию страниц заграничного паспорта с отметками о пересечении

государственных границ;

– отчет о выполнении задания на командировку (Приложение № 1),

копии документов о повышении квалификации, отчет о стажировке или др.

6.17. Авансовый отчет утверждается ректором (первым проректором)

Университета.

___________

18

Система контроля версий Mercurial

Оборудование и программное обеспечение1. Компьютер с операционной системой GNU/Linux или MS Windows и выходом в

Интернет.

2. mercurial

3. meld.

Полезные ссылки1. Mercurial http://mercurial.selenic.com/

2. Mercurial https://ru.wikipedia.org/wiki/Mercurial

3. hgrc http://www.selenic.com/mercurial/hgrc.5.html

Необходимые знания1. Принципы сравнения файлов.

2. Понятие и функции системы контроля версий.

3. Централизованные и децентрализованные системы контроля версий.

4. Основы mercurial, комнада hg. Получение справки о hg.

5. Настройки mercurial. Структура файла hgrc.

6. Ветви в mercurial.

Порядок работы1. Убедитесь в том, что у вас установлен mercurial. Если не установлен – установите.

2. Создайте у себя на компьютере пустой репозиторий test.

3. Добавьте в репозиторий test текстовый файл source.py.

4. Сделайте commit. Не забудьте добавить к нему комментарий.

5. Наполните файл source.py каким-нибудь сорежимым.

6. Сделайте commit.

7. Поменяйте содержимое файла source.py.

8. Сделайте commit.

9. Выведите информацию обо всех ревизиях.

10. Откатите репозиторий к одной из предыдущих ревизий.

19

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

12. Наполните файл source.py следующим содержимым:

c = 1 + 2

Сделайте commit. С этого момента сами решайте, когда делать следующие commit’ы.

13. Создайте папки common, user1 и user2. Переместите репозиторий в папку common.

14. Клонируйте репозиторий в папки user1 и user2 (hg clone). Изучите содержимое файла.hg/hgrc в этих папках.

15. Настройте hg так, чтобы все commit’ы в папке user1 происходили от имени User1, а впапке user2 – от имени User2.

16. В common создайте ветви functionality и interface. Теперь у вас 3 ветви, вместе сdefault.

17. Обновите репозитории User1 и User2.

18. Далее воспроизведите следующую ситуацию:

• User1 переходит в ветвь functionality.

• User2 переходит в ветвь interface.

• User1 приводит файл source.py к такому виду:

def sum( a , b ) :return a + b

a = 1b = 2c = sum( a , b )

• User2 приводит файл source.py к такому виду:

def sum( a , b ) :return 1

a = input ( ’ input ␣a : ␣ ’ )b = input ( ’ input ␣b : ␣ ’ )print ( ’ {0}+{1}={2} ’ . format ( a , b ,sum( a , b ) ) )

• User1 отправляет изменения в common.

• User2 отправляет изменения в common.

19. Убедитесь в том, что у вас установлен meld. Если нет – установите.

20. В common выполните слияние functionality → default.

21. В common выполните слияние interface → default. В результате файл source.pyдолжен стать таким:

20

def sum( a , b ) :return a + b

a = input ( ’ input ␣a : ␣ ’ )b = input ( ’ input ␣b : ␣ ’ )print ( ’ {0}+{1}={2} ’ . format ( a , b ,sum( a , b ) ) )

22. Обновите репозитории User1 и User2.

21

Введение в Python 3

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

3. Интерпретатор Python 3 (можно использовать онлайн-интерпретатор).

Полезные ссылки1. Python https://www.python.org/

2. Style Guide for Python Code http://legacy.python.org/dev/peps/pep-0008/

3. Execute Python Script Online (Python 3.2.3) http://www.compileonline.com/execute_python3_online.php

Необходимый теоретический материал1. Основные алгоритмические конструкции.

2. Общее представление об объектно-ориентированном программировании.

3. Синтаксис языка Python.

4. Соглашения по именованию в Python.

5. Структуры данных Python: списки, кортежи, словари.

Задания1. Напишите программу, которая просит ввести пользователя два числа, а затем выводит

из сумму.

2. Напишите программу, которая получает координаты трех точек на плоскости исообщает, лежат ли данные точки на одной прямой.

3. Напишите программу, которая генерирует список из 20 случайных целых чисел вдиапазоне от 1 до 100, выводит его, затем делит все четные числа списка на 2 и сновавыводит.

4. Напишите программу, которая читает из текстового файла in.txt 10 чисел, и выводитих среднее арифметическое в тектовый файл out.txt.

5. Реализуйте класс «Person» (человек). У каждого человека есть имя и фамилия.Реализуйте методы для доступа к имени и фамилии. Создайте наследников данногокласса: «Doctor» (врач) и «Patient» (пациент). У каждого врача есть специальность,у каждого пациента – номер страхового полиса. Свяжите классы «Doctor» и «Patient»через класс «Treatment» (лечение). Каждое лечение характеризуется диагнозом, а такжедатами начала и окончания.С использованием данных классов опишите следующую ситуацию:

22

• Терапевт Иванов Иван лечил Петрова Петра (номер полиса – 112233) от насморкас 10.10.2013 по 13.10.2013.

• Терапевт Иванов Иван лечил Ивана Сидорова (номер полиса – 223344) от ОРВИ с16.09.2014 по 22.09.2014.

• Хирург Петров Иван лечил Ивана Сидорова (номер полиса – 223344) от ушибапальца с 17.09.2014 по 21.09.2014.

В классе «Treatment» реализуйте метод для вывода полной информации о лечении (какв примерах выше). Продемонстрируйте работу данного метода.

23

Python 3 и средства разработки документации.

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

3. Интерпретатор Python 3.

Полезные ссылки1. Python https://www.python.org/

2. Python Docstrings http://www.pythonforbeginners.com/basics/python-docstrings

3. Doxygen http://doxygen.org

4. Python documentation generator http://sphinx-doc.org/

Входные требования1. Ассоциации между классами в объектно-ориентированном программировании.

2. Основы объектно-ориентированного программирования на Python 3.

Задания1. Определите следующие классы: «Фигура», «Точка», «Прямоугольник», «Эллипс».

«Прямоугольник» и «Эллипс» – наследники класса «Фигура». Положение на экранеи размеры прямоугольника и эллипса задаются двумя точками (верхний левый угол,нижний правый угол). У всех фигур есть атрибут «Цвет». Реализуйте метод вычисленияплощади к классе «Прямоугольник».

2. Напишите комментарии к каждому классу, методу, параметру и возвращаемомузначению. Обратите внимание на способы комментирования исходного кода в Python.

3. Сгенерируйте документацию в виде набора web-страниц к полученной библиотекеклассов при помощи doxygen. Настройте doxygen так, чтобы кроме текстовойдокументации генерировались диаграммы на UML. Сделайте так, чтобы в диаграммахбыли видны наследования и агрегации.

4. Сгенерируйте документацию к полученной библиотеке классов при помощи sphinx.

Что нужно сдать?Архив с исходным кодом и документацией.

24

Python Unit Testing

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

3. Интерпретатор Python 3 (можно использовать онлайн-интерпретатор).

Полезные ссылки1. unittest – Unit testing framework https://docs.python.org/3/library/unittest.html

2. Dive Into Python 3. Unit Testing http://www.diveintopython3.net/unit-testing.html

3. Программирование на Python. Часть 7: Специальные методы и атрибуты классов http://www.ibm.com/developerworks/ru/library/l-python_part_7/4

Входные требования1. Основы программирования на Python 3.

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

Задания1. Найдите в архиве pyunit.zip пример account. Изучите его. Найдите файл с

определением класса и файл с тестами для данного класса. Попробуйте запуститьоба файла. При запуске файла, имя которого начинается с test_ научитесь выводитьполную информацию о тестировании (см. опции командной строки).

2. Откройте пример cow в архиве pyunit.zip. Убедитесь в том, что один из тестовобнаруживает ошибку в классе Cow. Найдите и исправьте ее.

3. Почитайте о функторах в Python (см. «Полезные ссылки»). Напишите функтор,который позволяет посчитать, сколько раз встречается каждый элемент в спискеили кортеже. На выходе при этом образуется словарь, в котором каждому элементусопоставлено количество вхождений его значения. Например, при обработке списка[’alex’,’alex’,’ann’,’alex’,’kate’,’kate’] возникнет словарь {”alex”: 3, ”ann”: 1, ”kate”: 2}.Напишите не менее 10 различных unit-тестов для этого класса.

4Здесь можно прочитать о функторах

25

TDD

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

3. Интерпретатор Python 3 (можно использовать онлайн-интерпретатор).

Полезные ссылки1. unittest – Unit testing framework https://docs.python.org/3/library/unittest.html

2. Test-driven development – http://en.wikipedia.org/wiki/Test-driven_development

3. Beginning Test-Driven Development in Python – http://code.tutsplus.com/tutorials/beginning-test-driven-development-in-python--net-30137

Входные требования1. Основы программирования на Python 3.

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

3. Начальный опыт работы с Python Unit Testing.

ЗаданиеВ технике TDD (разработка через тестирование) необходимо разработать программу,принцип работы которой описан далее.

Программа обрабатывает некоторый набор данных, содержащих сведения опациентах. Сведения, кроме прочего, включают пол и дату рождения. Все пациенты делятсяна три возрастные группы: до 30 лет, от 31 до 60 лет, старше 60 лет. В общем случаеколичества пациентов обоего пола в каждой возрастной группе не совпадают. Программадолжна выдать количества мужчин и женщин, которые необходимо добавить в каждуювозрастную группу для, того чтобы группы были сбалансированы (т.е., чтоб в каждой группемужчин и женщин было поровну).

При написании программы следует использовать систему контроля версий. Послекаждого успешного этапа тестирования следует делать ревизию.

Что нужно сдать?Архив с репозиторием.

26

База данных, MVC, тестирование. Проект

Задания

Часть 0

1. Создать новый репозиторий в системе управления проектами. Можно локальный; необязательно где-то регистрироваться.5 Проект требуется вести в данном репозитории.

Часть 1

1. Сочинить и построить в одной из стандартных нотаций ER-диаграмму, описывающуюне менее 5 взаимосвязанных сущностей.

Обратить внимание на:

• первичные ключи,

• внешние ключи,

• идентифицирующие и неидентифицирующие связи,

• мощность отношений,

• ограничения целостности.

2. Написать SQL-запросы для создания таблиц базы данных, соответствующейразработанной модели. Написать SQL-запросы для заполнения таблиц тестовымиданными.

3. Сочинить не менее 15 запросов к базе данных, предположительно представляющихинтерес для пользователя базы данных. Записать их на естественном языке.

• Как минимум в 3-х запросах должна использоваться выборка из нескольких таблиц.

• Должен присутствовать как минимум один запрос типа «вывести информацию отом, чего нет», например, «вывести список товаров, которые никто никогда непокупал».

4. Реализовать все запросы на SQL. Проверить их на тестовых данных.

Часть 2

1. Написать приложение, которое позволит пользователю работать с полученной базойданных, в частности, вызывать выполнение разработанных запросов.

• Приложение должно иметь интерфейс командной строки.

• Взаимодействие с базой данных должна быть организована в соответствии спаттерном MVC.

5Хотя, можно зарегистрироваться на bitbucket.org

27

Часть 3

1. Оценить минимальный объем тестирования приложения. Указать используемую приэтом методику.

2. Разработать набор тестов для приложения.

• Каждый тест должен включать описание входных данных, условий запуска иожидаемых выходных данных.

• Каждый тест должен быть получен в соответствии с некоторой методикой,описанной в литературе. При описании тестов указание на используемые методикиобязательно. Порядок разработки тестов также следует описывать.

Часть 4

1. Реализовать часть разработанных тестов в виде Unit-тестов. После этого в репозиториидолжна появиться тестирующая подсистема.

2. Провести 5 итераций по развитию системы в соответствии с TDD. В итоге эти итерациии их части должны прослеживаться в истории проекта в системе контроля версий.

28

Контрольная работа (база данных)

ТемаПроектирование и прототипирование базы данных.

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

Задание1. Выбор предметной области, в которой выделяются не менее пяти взаимосвязанных

сущностей, построение ER-модели выбранной области в нотации Чена и в любой другойнотации

2. Словесное описание типовых запросов (тех, которые будут часто возникать впроектируемой информационной системе) к базе данных

3. Выбор СУБД для реализации базы данных

4. Написание SQL-запросов для создания таблиц и представлений

5. Написание SQL-запросов для заполнения таблиц тестовыми данными

6. Реализация типовых запросов

Что обязательно нужно включить в отчет1. Словесное описание предметной области

2. ER-диаграмма в нотации Чена

3. ER-диаграмма в любой другой нотации

4. Не менее 15 типовых запросов на естественном языке

5. Обоснование выбора СУБД из нескольких вариантов

6. SQL-запросы для создания таблиц и представлений

7. SQL-запросы для заполнения таблиц тестовыми данными

8. Типовые запросы на языке SQL и результаты работы этих запросов

29

Контрольная работа (FP-метрики)

ТемаОценка сложности программной системы.

Оборудование и программное обеспечение1. Компьютеры с выходом в Интернет.

2. Операционная система GNU/Linux или MS Windows.

Задание1. Повторите методы оценки сложности программных систем.

2. Возьмите описание системы из расчетно-графической работы.

3. Опишите интерфейс пользователя клиенсткой программы для работы с разработаннойвами базой данных.

4. Оцените сложность системы по методу FP. Посчитайте FP.

5. Ответьте на вопрос: сколько страниц документации нужно написать, чтобы вашеприложение было документировано не хуже, чем программа «Блокнот».

Что обязательно нужно включить в отчет1. Словесное описание системы

2. Графические модели системы, из которых можно извлечь необходимыеинформационные характеристики

3. Перечень информационных характеристик

4. Оценки сложности информационных характеристик. Здесь и далее возникновениевсякого числа должно быть объяснено

5. Значения уточняющих коэффициентов

6. Значение FP

7. Объем документации с выводом

30

Расчетно-графическая работа (бизнес-процессы)

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

Задания1. В Интернете найти официальный документ, в котором описывается порядок действий

людей при осуществлении того или иного процесса в некоторой предметной области.

Примеры поисковых запросов

• «Порядок направления работника в командировку»

• «Порядок приема на работу»

• «Порядок зачисления ребенка в детский сад»

• «Порядок госпитализации»

• «Порядок зачисления в вуз»

• «Порядок выплаты материальной помощи»

• «Порядок оформления декретного отпуска»

• «Порядок приватизации предприятия»

• «Порядок оформления загранпаспорта»

• «Порядок выезда из Российской Федерации»

• «Порядок заключения под стражу»

2. Написать краткий текст, который позволит получить общее представление об описанномв документе бизнес-процессе.

3. Разработать модель бизнес-процесса на языке BPMN.

4. Разработать модель бизнес-процесса на языке EPC.

Примечания1. В теоретической части работы следует раскрыть понятие бизнес-процесса, а также

привести краткое описание языков BPMN и EPC.

2. В практической части работы следует, кроме описания результатов выполнения заданий,дать характеристику используемого программного обеспечения.

31