Проектирование информационных систем
Скачать 0.55 Mb.
|
Проектирование информационных систем Попов А.И. 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. Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем. Что нужно сдать? • Текстовый отчет. Готовый отчет следует отправить на электронную почту преподавателю aleneus@gmail.com . Из содержания письма должно быть понятно, кто именно является исполнителем (фамилия, имя), чтобы возможно было вести учет выполненных работ. В заголовке письма укажите также номер группы – студенты других групп тоже присылают преподавателю письма, возникает путаница. Задания 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). После классификации нужно устранить противоречия и расставить приоритеты. Эта работа текстовая, и если Вы просто будете использовать те средства для набора текстов, которыми Вы уже владеете, и на том, уровне, на котором уже находитесь, то очень скоро станет скучно. Поэтому Вам предлагается выбрать какой-нибудь новый для Вас инструмент разработки документации и заодно изучить его. Это может быть Google Drive, Docbook, Markdown, L A TEXи т.д. Существует очень много удобных инструментов, со своими принципами и особенностями. Если Вы все же будете использовать что-то вроде 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, например, ARIS Express, 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 = 1 b = 2 c = sum( a , b) • User2 приводит файл source.py к такому виду: def sum ( a , b ) : return 1 a = input ( ’ input ␣a : ␣ ’ ) b = input ( ’ input ␣b : ␣ ’ ) ( ’ {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 : ␣ ’ ) ( ’ {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 |