Технологии программирования (факультатив): различия между версиями

Материал из Поле цифровой дидактики
Строка 76: Строка 76:
* [[ГОСТ Р ИСО/МЭК 12207-2010]], [[Жизненный цикл программ]]
* [[ГОСТ Р ИСО/МЭК 12207-2010]], [[Жизненный цикл программ]]
* Объяснять и изображать при помощи диаграмм [[graphviz]], [[mermaid]] модели жизненного цикла программ.
* Объяснять и изображать при помощи диаграмм [[graphviz]], [[mermaid]] модели жизненного цикла программ.
https://ars.els-cdn.com/content/image/1-s2.0-S0360131518300812-gr1.jpg


=== Тема 4. Организация процесса разработки программного обеспечения ===
=== Тема 4. Организация процесса разработки программного обеспечения ===

Версия 16:11, 22 марта 2023



Планируемые результаты обучения (Знать, Уметь, Владеть) Целью освоения дисциплины является формирование у студентов понимания принципов разработки программного обеспечения. Результаты обучения: обучающийся понимает, как устроен процесс разработки программного обеспечения
Знать
  1. понятия технологии программирования
  2. показатели качества программных систем
  3. модели жизненного цикла программного обеспечения
  4. общие принципы и паттерны программирования
  5. стандарты разработки программного обеспечения (Гост, ISO 9001, TickIT)
Уметь
  1. Находить, описывать и классифицировать программные средства
  2. Использовать общепринятые и предлагать собственные основания для категоризации программных средств
  3. Сравнивать между собой программные средства, предназначенные для решения сходных задач.
  4. Формулировать требования к программному обеспечению.
  5. Объяснять и изображать при помощи диаграмм модели жизненного цикла программ.
  6. Использовать различные подходы к организации процесса разработки программного обеспечения.
  7. Переносить принципы разработки программного обеспечения на разработку учебных материалов и организацию учебного процесса.
  8. Использовать различные UML диаграмм для описания и проектирования программного обеспечения.
  9. Использовать цифровые средства и среды коллективной разработки программного обеспечения.
Владеть
  1. иерархией понятий технологии программирования
  2. классификацией языков программирования
Содержание разделов курса
  1. Классификация программных средств
  2. Определение требований к программе
  3. Жизненный цикл программы. Модели жизненного цикла
  4. Основные подходы к организации создания и использования программ. Структурное программирование. Экстремальное программирование.
  5. Модульное программирование
  6. Качество программ
  7. Стандарты ПО
  8. Проектирование ПО при помощи UML
Видео запись
Среды и средства, которые поддерживают учебный курс UML, Mermaid, Graphviz
Книги, на которых основывается учебный курс Head First. Паттерны проектирования, Мифический человеко-месяц или как создаются программные системы, СИСТЕМНАЯ ИНЖЕНЕРИЯ — 2022, Разработка компьютерных учебников и обучающих систем

Категория:ИНФ-191в

Содержание разделов дисциплины:

 Description
Технология программированияТехнология программирования (programming technology) - это совокупность методов и средств, используемых в процессе разработки программных продуктов, представляет собой набор технологических инструкций, включающих в себя:
  1. указание последовательности технологических операций;
  2. перечисление условий, при которых выполняется та или иная операция;
  3. описание операций, где для каждой операции выделены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т.п.

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

Классификация языков программирования
https://www.acm.org/publications/computing-classification-system/1998/d.3.2

3D exp.png

Тема 2. Требования к программному обеспечению

Полезное текстовое описание программы

  1. Назначение. Что является главной функцией программы и причиной её написания?
  2. Среда. На каких машинах, аппаратных конфигурациях и конфигурациях операционной системы будет она работать?
  3. Область определения и область значений. Каковы допустимые значения входных данных? Какие правильные значения выходных результатов можно ожидать?
  4. Реализованные функции и использованные алгоритмы. Что конкретно может делать программа?
  5. Форматы ввода (вывода, точные и полные.
  6. Инструкция по работе, в том числе описание вывода на консоль и устройство вывода при нормальном и аварийном завершении.
  7. Опции. Какой выбор предоставляется пользователю в отношении функций? Каким образом его нужно задавать?
  8. Время работы. Сколько времени занимает решение задачи заданного размера на заданной конфигурации?
  9. Точность и проверка. Какова ожидаемая точность результатов? Какие имеются средства проверки точности?

Категория:DigitalTool

Требования к программе в форме UML

и другие способы создания диаграмм с целью описания процессов управления:

{{#ask: [[Категория:Diagrams]] [[Field_of_knowledge::Управление]] [[Environment::Mermaid]] [[Description::+]] | ?Description }}

Тема 3. Жизненный цикл программы. Модели жизненного цикла

Тема 4. Организация процесса разработки программного обеспечения

  • Использовать различные подходы к организации процесса разработки программного обеспечения.

Tools made for.png

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


Chicago h.png

Тема 6. UML

  • Использовать различные виды UML диаграмм для описания и проектирования программного обеспечения.

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

Диаграмма Ганта

Тема 7. Среды коллективной разработки программного обеспечения

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

Stack OverFlow https://stackoverflow.com/users/5688176/yevgeny-patarakin
GitHub https://github.com/patarakin
Glitch
Modeling Commons (NetLogo) https://modelingcommons.org/?id=320
CoMSES https://www.comses.net/users/3182/
Snap! - website https://snap.berkeley.edu/user?username=patarakin

Критерии оценки по дисциплине

Образовательный результат Тема Задание Пример
Находить, описывать и классифицировать программные средства Классификация программных средств Принять участие в обсуждении классификации программных средств, привести собственные примеры программных средств см ACM_Digital_Library
Классификация программного обеспечения
https://www.acm.org/publications/computing-classification-system/1998
Категория:DigitalTool + Категория:Book
Использовать общепринятые и предлагать собственные основания для категоризации программных средств Классификация программных средств Используя WebGrid соберите поле своих собственных представлений о программных средствах 3D exp.png
Сравнивать между собой программные средства, предназначенные для решения сходных задач. Классификация программных средств На примере сравнения средств обучения программированию Категория:DigitalTool , обучающих играх Категория:DEG , средствах создания диаграмм Категория:Diagrams , средствах анализа библиометрических данных, средах анализа данных Категория:Dataset, средах выращивания данных. TheBrain, ShinyItemAnalysis, VUE, VOSviewer + ChatbotACM (dataset), NetLogo + StarLogo Nova
Формулировать требования к программному обеспечению. Учитывать требования Гост и СанПИН Требования к программному обеспечению Познакомиться с требованиями и понятиями внутри статей ГОСТ Р 59895-2021, ГОСТ 19.106-78, Классификация требований (диаграмма). Добавить релевантные учебному курсу стандарты и диаграммы. Диаграмма курса «Технологии программирования»
Объяснять и изображать при помощи диаграмм модели жизненного цикла программ. Жизненный цикл программ Материалы статей - Стандарты Категория:Standard + ГОСТ 19.701—90 ГОСТ Р ИСО/МЭК 12207-2010, Жизненный цикл программ, Использование статьи Гистограмма для сравнения материалов по компетенциям и стандартам Категория:Standard Диаграмма для статьи Эволюционная разработка, Гистограмма
Использовать различные подходы к организации процесса разработки программного обеспечения. Организация процесса разработки программного обеспечения ? ?
Переносить принципы разработки программного обеспечения на разработку учебных материалов и организацию учебного процесса. Общие принципы разработки программного обеспечения и разработки учебных материалов Использовать навыки создания диаграмм при описании учебного процесса IMS Global LD, IMS Global LD, Learning Design, VUE
Использовать различные виды UML диаграмм для описания и проектирования программного обеспечения UML диаграммы в проектировании программного обеспечения Создание и описание собственных UML диаграмм Категория:Diagrams
Использовать цифровые средства и среды коллективной разработки программного обеспечения. Среды коллективной разработки программного обеспечения. ? ?
? ? ?