<table style="width: 100%;">
  <tr>
    <td style="text-align: center; border: none;"> 
        Министерство образования и науки РФ <br/>
        ГБПОУ РМЭ "Йошкар-Олинский Технологический колледж 
    </td>
  </tr>
  <tr>
    <td style="text-align: center; border: none; height: 45em;">
        <h2>
            Курс лекций по предмету <br/>
            "Проектирование и разработка информационных систем"
        </h2>
    </td>
  </tr>
  <tr>
    <td style="text-align: right; border: none; height: 20em;">
        <div style="float: right;" align="left">
            <b>Разработал</b>: <br/>
            Колесников Евгений Иванович
        </div>
    </td>
  </tr>
  <tr>
    <td style="text-align: center; border: none; height: 1em;">
        г.Йошкар-Ола, 2021
    </td>
  </tr>
</table>

<div style="page-break-after: always;"></div>

# https://github.com/kolei/PiRIS

# Содержание

<!-- 

TODO

https://dev.mysql.com/downloads/windows/installer/8.0.html

- ERD
- SQL: основы, триггеры, представления
- импорт данных
- сервер АПИ на PHP
- сетевые запросы C#, Kotlin (встроенными средствами)

- Паттерны для новичков: MVC vs MVP vs MVVM https://habr.com/ru/post/215605/

- что-то про интеграционное тестирование https://pozitivmag.ru/aksessuary/vidy-testirovaniya-i-podhody-k-ih-primeneniyu-integracionnoe/


https://docs.microsoft.com/ru-ru/visualstudio/test/isolating-code-under-test-with-microsoft-fakes?view=vs-2019

https://habr.com/ru/post/151185/

http://sergeyteplyakov.blogspot.com/2014/01/microsoft-fakes-state-verification.html

 -->

* [МДК. 05.01 Проектирование и дизайн информационных систем](#МДК-0501-Проектирование-и-дизайн-информационных-систем)

* [МДК. 05.02 Разработка кода ИС](#МДК-0502-Разработка-кода-ИС)

* [МДК. 05.03 Тестирование информационных систем](#МДК-0503-Тестирование-информационных-систем)

# МДК. 05.01 Проектирование и дизайн информационных систем

## Тема 5.1.1. Основы проектирования информационных систем

<!-- https://sites.google.com/site/anisimovkhv/learning/pris/lecture -->

### Лекции

1. [Основные понятия и определения ИС.](articles/5_1_1_1_intro2.md)
    
1. [Анализ предметной области. Основные понятия системного и структурного анализа.](articles/5_1_1_4_analiz.md)

1. [UML](./articles/uml.md)

1. [Диаграмма вариантов использования (прецедентов, use case)](articles/5_1_1_10_uml_use_case.md)

2. [Спецификация вариантов использования (прецедентов)](articles/5_1_1_10_uml_uc_spec.md)

3. [Диаграмма состояний](./articles/uml_state.md)

4. [Прототипы экранов и окон пользовательского интерфейса (wireframe)](./articles/wireframe.md)

<!-- 4. [ДИАГРАММЫ КЛАССОВ АНАЛИЗА] дальше используются обозначения из этой диаграммы -->

5. [Диаграммы взаимодействия (последовательности и коммуникации)](./articles/uml_sequence.md)

<!-- 5. [Диаграмма деятельности](./articles/uml_activity.md) недописана  -->


1. [Диаграмма классов](./articles/uml_class_alt.md)

1. [НЕ ДОПИСАНО! Модель проектирования (диаграммы классов, диаграммы деятельности)](articles/uml_mp_dc_dd.md)


### Контрольные вопросы

* назовите основные элементы диаграммы прецедентов
* Что такое **данные**?
* Что такое **информационная система**?

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

### Лекции

<!-- диаграмма сущностей и связей, нормализация, словарь данных -->

1. [Основы проектирования баз данных.](articles/5_1_1_1_erd2.md)

2. [Словарь данных](articles/5_1_1_1_data_dictionary.md)

3. [Создание ER-диаграммы в среде MySQL Workbench](articles/5_1_1_1_erd_workbench.md)

4. [Основы SQL](./articles/sql_for_beginner.md)

<!-- 
В "основы" добавить 
- count и функции работы со временем (between)  
- UPDATE, DELETE 
-->

5. [Представления (View)](./articles/sql_view.md)

6. [Создание базы данных. Импорт данных.](./articles/sql_import.md)

7. [Хранимые процедуры. Триггеры.](./articles/sql_trigger.md)

### Контрольные вопросы

* Что такое **домен**?
* Что входит в классическую ER-диаграмму?
* Какие виды **ключей** Вы знаете?
* Назовите этапы проектирования БД.

## Тема 5.1.3. C# и MySQL.

1. [Создание подключения к БД MySQL. Получение данных с сервера.](./articles/cs_mysql_connection2.md)

2. [Вывод данных согласно макету (ListView, Image). Вывод данных плиткой.](./articles/cs_layout.md)

<!-- сюда же добавить разметку "плиткой" -->

3. [Пагинация, сортировка, фильтрация, поиск](./articles/cs_pagination.md)

<!-- datepicker -->

4. [Подсветка элементов по условию. Дополнительные выборки. Массовая смена цены продукции.](./articles/cs_coloring.md)

5. [Создание, изменение продукции](./articles/cs_edit_product.md)

## Тема 5.1.4. Разработка мобильных приложений. Android Studio. Kotlin.

1. [Основы языка Kotlin](./articles/kotlin.md)

2. [Первый проект в Android Studio](./articles/android_studio.md)

3. [Стили и темы. Ресурсы. Фигуры. Обработчики событий.](./articles/themes.md)

4. [Проект погода (начало): геолокация, http(s)-запросы, разбор json, ImageView.](./articles/weather.md)

5. [Проект погода (продолжение): SplashScreen (заставка). Выбор города. Выбор и отображение массива значений (почасовая, ежедневная). Разбор XML.](./articles/weather2.md)

6. [Проект "база". Авторизация на сервере (Basic auth, token).](./articles/android_auth.md)

7. [Wear OS](./articles/wear_os.md)

8. [Разбор задания предыдущего чемпионата](./articles/wsrf6_1.md)

9. [Использование регулярных выражений для разбора данных в любом формате](./articles/regex.md)

10. [ViewPager, Fragments, Tabs](./articles/pager.md)

<!-- 

TODO

BottomNavigation + frames
figma
api (swagger)
http (получать контент при ошибке)
структурировать по экранам
темы DayNight
хранение состояния (preferences)
ViewPager
multipart/form-data - загрузка картинок на сервер
источник фото - камера/галерея
swype to delete
swype вниз (обновление списка)
tablayout

kerio

-->

## Тема 5.1.5. Разработка своего API.

1. [API. PHP-сервер. GET-запрос.](./articles/api_php.md)

<!-- переделать на asp.net -->

## Тема 5.1.6. C#, разбор задания.

<!-- 1. [Сессия 1. Создание БД. Импорт данных. Окно авторизации](./articles/wsr_1.md) -->
1. [HTTP запросы в C#. Получение списка материалов выбранного продукта](./articles/cs_http.md)

2. [C# Параллельное программирование и асинхронность](./articles/cs_async_await.md)

<!-- 

Создание базы данных
+ Импорт данных
Авторизация, главное окно
+ Форма ввода данных, список с фильтрацией, поиском и сортировкой
+ HTTP-запросы, разбор JSON, XML
+ Разработка АПИ (php-сервер)
+ Мобильное приложение
ER-диаграмма
Проектирование (Use-case, UML)
Формирование отчетов (PDF)
Формирование графиков
+ Тестирование
+ Библиотека классов

-->

<!-- 

1.1 ГИА, ПА, НОК 45,5 / 4ч
    бд          30мин / 5,5
    приложение  3ч    / 27
    тест        30мин / 6
    прочее            / 7
    итого       4ч    / 45,5

1.2 ГИА 60,5 / 5ч 30м
    проект          30м / 2,5
    создание базы   50м / 8
    импорт          30  / 7,5
    прил            3ч  / 27
    инсталл         10м / 2
    тест            30  / 6
    прочее      / 7

1.3 ПА
1.4 ГИА 62,5 / 5ч 50м
    проект          30м / 2,5
    создание базы   50м / 8
    импорт          30  / 7,5
    прил            3ч  / 27
    тест            30  / 6
    докум           30  / 4
    прочее      / 7

1.5 ПА
1.6 ПА
1.7 ГИА, ПА, дистант

ИЛ:

ssd 512
стол 180/80
wifi
windows server 2019
vmware vSphere

 -->

## Документация

1. [Руководство пользователя](./articles/user_manual.md)

<!-- 


кнопки с картинками (нижнее или боковое меню)(фрагменты)
поиск (фильтрация) - строка поиска и выпадающий список
операции с датой

- сохранение данных при повороте (попов вт)
- локальное хранилище (малинин ср)
- чтение/запись файлов (галерея) (смирнов чт)
- swype вниз (обновление списка) (бастраков)

чат
tablayout
часы
-->

<!--

https://office-menu.ru/uroki-sql Уроки SQL

2. [Жизненный цикл информационных систем.](articles/5_1_1_2_lifecycle.md)

[4+0 => 8+0]: _

3. [Организация и методы сбора информации.](articles/5_1_1_3_get_info.md)


[4+0 => 12+0]: _


[4+0 => 16+0]: _

5. [Постановка задачи обработки информации. Основные виды, алгоритмы и процедуры обработки информации, модели и методы решения задач обработки информации.](articles/5_1_1_5_obr_inf.md)

[6+0 => 22+0]: _

6. [Основные модели построения информационных систем, их структура, особенности и области применения.](articles/5_1_1_6_models.md)

[6+0 => 28+0]: _

7. [Сервисно - ориентированные архитектуры. Анализ интересов клиента. Выбор вариантов решений](articles/5_1_1_7_soa.md)

[4+0 => 32+0]: _

8. [Методы и средства проектирования информационных систем.](articles/5_1_1_8_methods.md)

[4+0 => 36+0]: _

9. [Case-средства для моделирования деловых процессов (бизнес-процессов).](articles/5_1_1_9_case.md)

[4+0 => 40+0]: _

[Инструментальная среда – структура, интерфейс, элементы управления.]: //TODO

[Принципы построения модели IDEF0: контекстная диаграмма, субъект моделирования, цель и точка зрения.]: ВМЕСТО_ЭТОГО_UML

[Диаграммы IDEF0: диаграммы декомпозиции, диаграммы дерева узлов, диаграммы только для экспозиции (FEO).]: ВМЕСТО_ЭТОГО_UML

[Работы (Activity). Стрелки (Arrow). Туннелирование стрелок. Нумерация работ и диаграмм. Каркас диаграммы.]: ВМЕСТО_ЭТОГО_UML

[Слияние и расщепление моделей.]: ВМЕСТО_ЭТОГО_UML

10. [Проектирование информационных систем на основе унифицированного языка моделирования UML](articles/5_1_1_10_uml.md)

[4+0 => 44+0]: ВМЕСТО_IDEF


[4+0 => 48+0]: ВМЕСТО_IDEF

11. UML. Диаграмма последовательности

[4+0 => 52+0]: ВМЕСТО_IDEF


[4+0 => 56+0]: ВМЕСТО_IDEF

11. [Особенности информационного, программного и технического обеспечения различных видов информационных систем. Экспертные системы. Системы реального времени](articles/5_1_1_11.md)

[6+0 => 62+0]: _

12. [Оценка экономической эффективности информационной системы. Стоимостная оценка проекта. Классификация типов оценок стоимости: оценка порядка величины, концептуальная оценка, предварительная оценка, окончательная оценка, контрольная оценка.](articles/5_1_1_12.md)

[8+0 => 70+0]: _

13. [Основные процессы управления проектом. Средства управления проектами](articles/5_1_1_13.md)

[4+0 => 74+0]: _

### Лабораторные

1. Практическая работа «Анализ предметной области различными методами: контент-анализ, вебометрический анализ, анализ ситуаций, моделирование и др.»
2. Практическая работа «Изучение устройств автоматизированного сбора информации»
3. Практическая работа «Оценка экономической эффективности информационной системы»
4. Практическая работа «Разработка модели архитектуры информационной системы»
Дополнительно для квалификаций " Специалист по информационным системам" и "Разработчик web и мультимедийных приложений":
5. Практическая работа «Обоснование выбора средств проектирования информационной системы»
Дополнительно для квалификаций " Специалист по информационным системам" и "Разработчик web и мультимедийных приложений": 
6. Практическая работа «Описание бизнес-процессов заданной предметной области»

## Тема 5.1.2. Система обеспечения качества информационных систем

### Лекции

1. [Основные понятия качества информационной системы. Национальный стандарт обеспечения качества автоматизированных информационных систем](articles/5_1_2_1.md)

[не дописано про госты]: _

[https://sites.google.com/site/anisimovkhv/learning/pris/lecture/tema1#p12]: _

[4+0 => 78+0]: _

2. Международная система стандартизации и сертификации качества продукции. Стандарты группы ISO.

[4+0 => 82+0]: _

3. Методы контроля качества в информационных системах. Особенности контроля в различных видах систем

[4+0 => 86+0]: _

4. Автоматизация систем управления качеством разработки.

[4+0 => 90+0]: _

5. [Обеспечение безопасности функционирования информационных систем](articles/5_1_2_5.md)

[4+0 => 94+0]: _

6. Стратегия развития бизнес-процессов. Критерии оценивания предметной области и методы определения стратегии развития бизнес-процессов. Модернизация в информационных системах

[6+0 => 100+0]: _

### Лабораторные
1. Практическая работа «Построение модели управления качеством процесса изучения модуля «Проектирование и разработка информационных систем»»
Дополнительно для квалификаций "Специалист по информационным системам" и "Разработчик web и мультимедийных приложений": 
2. Практическая работа «Реинжиниринг методом интеграции»
3. Практическая работа «Разработка требований безопасности информационной системы»
Дополнительно для квалификаций "Специалист по информационным системам" и "Разработчик web и мультимедийных приложений": 
4. Практическая работа «Реинжиниринг бизнес-процессов методом горизонтального и/или вертикального сжатия»


## Тема 5.1.3. Разработка документации информационных систем

### Лекции

1. Перечень и комплектность документов на информационные системы согласно ЕСПД и ЕСКД. Задачи документирования.

[4+0 => 104+0]: _

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

[4+0 => 108+0]: _

3. Построение и оптимизация сетевого графика.

[4+0 => 112+0]: _

4. Проектная документация. Техническая документация. Отчетная документация

[6+0 => 118+0]: _

5. [Пользовательская документация.](./articles/5_1_3_5.md) Маркетинговая документация. 

[4+0 => 122+0]: _

6. Самодокументирующиеся программы. 

[4+0 => 126+0]: _

7. Назначение, виды и оформление сертификатов.

[4+0 => 130+0]: _

### Лабораторные
1. Практическая работа «Проектирование спецификации информационной системы индивидуальному заданию» 
2. Практическая работа «Разработка общего функционального описания программного средства по индивидуальному заданию»
3. Практическая работа «Разработка руководства по инсталляции программного средства по индивидуальному заданию»
4. Практическая работа «Разработка руководства пользователя программного средства по индивидуальному заданию»
5. Лабораторная работа «Изучение средств автоматизированного документирования»

# МДК. 05.02 Разработка кода ИС

## Работа с БД

1. [Знакомство с SQL](https://github.com/kolei/yotc/blob/master/articles/sql_for_beginner.md)
-->

<!--  
ERD,
импорт данных 
дописать про update, delete -->

# МДК. 05.03 Тестирование информационных систем

[46+24]: ФГОС

## Тема 5.3.1 Отладка и тестирование информационных систем

### Лекции

1. [Тестирование и тестировщики](articles/5_3_1_1_intro.md)

[6+0]: тут_ещё_вспомнаем_про_библиотеку_классов

2. [Жизненный цикл тестирования](articles/5_3_1_2_lifecycle.md)

[6(12)+0]: большой_объем

3. [Виды и методы тестирования](articles/5_3_1_3_vidy.md) (в том числе автоматизированные)

4. [Тестовые сценарии, тестовые варианты. Оформление результатов тестирования.](articles/5_3_1_4_testcase.md)

<!-- [(+12)]: _ -->

5. Инструментарии анализа качества программных продуктов в среде разработки.

6. [Обработка исключительных ситуаций. Методы и способы идентификации сбоев и ошибок.](articles/5_3_1_6_exceptions.md)

[7. Выявление ошибок системных компонентов. - по ФГОС, но не представляю что давать]: _

8. [Реинжиниринг бизнес-процессов в информационных системах.](articles/5_3_1_8_reengeniring.md)

9. [Создание библиотеки классов](articles/5_3_1_9_classlib.md)

10. [Создание UNIT-тестов](./articles/5_3_1_10_unit_test.md)

11. [Fake data. Тестирование методов получающих внешние данные из удалённых источников](./articles/fake_unit_test.md)

### Лабораторнo-практические работы
1. [Создание проекта по индивидуальному заданию. Разработка Unit-тестов для проекта](./articles/5_3_1_10_unit_test_lab.md)
1. Лабораторная работа «Разработка тестового сценария проекта»
2. Лабораторная работа «Разработка тестовых пакетов»
3. Лабораторная работа «Использование инструментария анализа качества»
4. Лабораторная работа «Анализ и обеспечение обработки исключительных ситуаций»
5. Лабораторная работа «Функциональное тестирование»
6. Лабораторная работа «Тестирование безопасности»
7. Лабораторная работа «Нагрузочное тестирование, стрессовое тестирование»
8. Лабораторная работа «Тестирование интеграции»
9. Лабораторная работа «Конфигурационное тестирование»
10. Лабораторная работа «Тестирование установки»


## [Учебная практика](articles/praktika_I.md)

## [Курсовой проект](articles/kp2.md)

<!-- ПООП

Раздел 1. Технологии проектирования и дизайн информационных систем

Тема 5.1.1. Основы проектирования информационных систем

Содержание 

    1. Основные понятия и определения ИС. Жизненный цикл информационных систем

    2. Организация и методы сбора информации. Анализ предметной области. Основные понятия системного и структурного анализа.

    3. Постановка задачи обработки информации. Основные виды, алгоритмы и процедуры обработки информации, модели и методы решения задач обработки информации.

    4. Основные модели построения информационных систем, их структура, особенности и области применения.

    5. Сервисно - ориентированные архитектуры. Анализ интересов клиента. Выбор вариантов решений

    6. Методы и средства проектирования информационных систем. Case-средства для моделирования деловых процессов (бизнес-процессов). Инструментальная среда –структура, интерфейс, элементы управления.

    7. Принципы построения модели IDEF0: контекстная диаграмма, субъект моделирования, цель и точка зрения. 

    8. Диаграммы IDEF0: диаграммы декомпозиции, диаграммы дерева узлов, диаграммы только для экспозиции (FEO). 

    9. Работы (Activity). Стрелки (Arrow). Туннелирование стрелок. Нумерация работ и диаграмм. Каркас диаграммы.

    10. Слияние и расщепление моделей.

    11. Особенности информационного, программного и технического обеспечения различных видов информационных систем. Экспертные системы. Системы реального времени

    12. Оценка экономической эффективности информационной системы. Стоимостная оценка проекта. Классификация типов оценок стоимости: оценка порядка величины, концептуальная оценка, предварительная оценка, окончательная оценка, контрольная оценка.

    13. Основные процессы управления проектом. Средства управления проектами

В том числе практических занятий и лабораторных работ 

    1. Практическая работа «Анализ предметной области различными методами: контент-анализ, вебометрический анализ, анализ ситуаций, моделирование и др.»

    2. Практическая работа «Изучение устройств автоматизированного сбора информации»

    3. Практическая работа «Оценка экономической эффективности информационной системы»

    4. Практическая работа «Разработка модели архитектуры информационной системы»

    5. Практическая работа «Обоснование выбора средств проектирования информационной системы»

    6. Практическая работа «Описание бизнес-процессов заданной предметной области»

Тема 5.1.2. Система обеспечения качества информационных систем
Содержание 

    1. Основные понятия качества информационной системы. Национальный стандарт обеспечения качества автоматизированных информационных систем.

    2. Международная система стандартизации и сертификации качества продукции. Стандарты группы ISO.

    3. Методы контроля качества в информационных системах. Особенности контроля в различных видах систем

    4. Автоматизация систем управления качеством разработки.

    5. Обеспечение безопасности функционирования информационных систем

    6. Стратегия развития бизнес-процессов. Критерии оценивания предметной области и методы определения стратегии развития бизнес-процессов. Модернизация в информационных системах

В том числе практических занятий и лабораторных работ

    1. Практическая работа «Построение модели управления качеством процесса изучения модуля «Проектирование и разработка информационных систем»»

    2. Практическая работа «Реинжиниринг методом интеграции»

    3. Практическая работа «Разработка требований безопасности информационной системы»

    4. Практическая работа «Реинжиниринг бизнес-процессов методом горизонтального и/или вертикального сжатия»

Тема 5.1.3. Разработка документации информационных систем
Содержание

    1. Перечень и комплектность документов на информационные системы согласно ЕСПД и ЕСКД. Задачи документирования

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

    3. Построение и оптимизация сетевого графика.

    4. Проектная документация. Техническая документация. Отчетная документация

    5. Пользовательская документация. Маркетинговая документация

    6. Самодокументирующиеся программы. 

    7. Назначение, виды и оформление сертификатов.

В том числе практических занятий и лабораторных работ

    1. Практическая работа «Проектирование спецификации информационной системы индивидуальному заданию» 

    2. Практическая работа «Разработка общего функционального описания программного средства по индивидуальному заданию»

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

    4. Практическая работа «Разработка руководства пользователя программного средства по индивидуальному заданию»

    5. Лабораторная работа «Изучение средств автоматизированного документирования»


МДК. 05.03 Тестирование информационных систем
Тема 5.3.1. Отладка и тестирование информационных систем
Содержание 

    1. Организация тестирования в команде разработчиков

    2. Виды и методы тестирования (в том числе автоматизированные)

    3. Тестовые сценарии, тестовые варианты. Оформление результатов тестирования

    4. Инструментарии анализа качества программных продуктов в среде разработке. 

    5. Обработка исключительных ситуаций. Методы и способы идентификации сбоев и ошибок. 

    6. Выявление ошибок системных компонентов. 

    7. Реинжиниринг бизнес-процессов в информационных системах. 

В том числе практических занятий и лабораторных работ

    1. Лабораторная работа «Разработка тестового сценария проекта»

    2. Лабораторная работа «Разработка тестовых пакетов»

    3. Лабораторная работа «Использование инструментария анализа качества»

    4. Лабораторная работа «Анализ и обеспечение обработки исключительных ситуаций»

    5. Лабораторная работа «Функциональное тестирование»

    6. Лабораторная работа «Тестирование безопасности»

    7. Лабораторная работа «Нагрузочное тестирование, стрессовое тестирование»

    8. Лабораторная работа «Тестирование интеграции»

    9. Лабораторная работа «Конфигурационное тестирование»

    10. Лабораторная работа «Тестирование установки»

 -->

<!-- 
-- создание базы и пользователя для MSSQL
DECLARE @userName AS VARCHAR(50) = 'test'
DECLARE @password AS VARCHAR(50) = 'qzesc'
-- создаю базу
DECLARE @createDB AS VARCHAR(50) = 'CREATE DATABASE {userName}'
SET @createDB = REPLACE(@createDB, '{userName}', @userName)
EXECUTE (@createDB)
-- создаю логин
DECLARE @createLogin AS VARCHAR(150) = 'CREATE LOGIN {userName} WITH PASSWORD=''{password}'', CHECK_POLICY = OFF'
SET @createLogin = REPLACE(@createLogin, '{userName}', @userName)
SET @createLogin = REPLACE(@createLogin, '{password}', @password)
EXECUTE (@createLogin)
-- создаю пользователя
DECLARE @createUser AS VARCHAR(MAX) = '
USE {userName}
CREATE USER {userName} FOR LOGIN {userName};
EXEC sp_addrolemember ''db_owner'', ''{userName}'';
Grant Execute on Schema :: dbo TO [{userName}];
'
SET @createUser = REPLACE(@createUser, '{userName}', @userName)
EXECUTE (@createUser)
-->