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

Материал из Поле цифровой дидактики
Строка 63: Строка 63:
* [[Классификация требований (диаграмма)]] ([[graphviz]])
* [[Классификация требований (диаграмма)]] ([[graphviz]])
* [[Диаграмма прецедентов]] (use cases)
* [[Диаграмма прецедентов]] (use cases)
*  
* Диаграмма пути пользователя (User Journey)


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

Версия 15:39, 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в

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

Тема 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

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

 Description
Activity diagramПростые и очень понятные диаграммы алгоритмов - последовательность совершаемых действий. Возможно с проверкой результатов.
BN diagramДиаграмма использования Байесовских сетей в оценивании Diagrams_4b50e882c30a91e044f20865df094a76.png
Diagram of EcosystemОбобщенная диаграмма экосистемы Diagrams_36d5947239f7d55ebccce58b75e7bf9d.png
ForkДиаграммы ветвления (Fork)
ForumSchemeДиаграмма Сообщества "Classroom 2.0"
Git diagramsДиаграмма Сообщества "LiderID"
PDCA cycleThe PDCA cycle is a continuous improvement model that stands for Plan-Do-Check-Act. It is also known as the Deming cycle or the Shewhart cycle. The PDCA cycle is a problem-solving approach that helps organizations to improve their processes and products.

The four stages of the PDCA cycle are as follows:

1. Plan: This stage involves identifying the problem, setting goals, and developing a plan to achieve those goals. The plan should be specific, measurable, achievable, relevant, and time-bound (SMART).

2. Do: This stage involves implementing the plan. The plan should be executed according to the defined steps, and the results should be monitored.

3. Check: This stage involves evaluating the results of the implementation. The results should be compared to the goals set in the planning stage. If the results are not satisfactory, the plan should be revised.

4. Act: This stage involves taking action based on the results of the evaluation. If the results are satisfactory, the plan should be standardized and implemented. If the results are not satisfactory, the plan should be revised, and the cycle should start again.

The PDCA cycle is a continuous process, and it can be applied to any process or product. It helps organizations to identify and solve problems, improve processes, and achieve their goals.
Roblox (диаграмма)Диаграммы, описывающие сообщество Roblox
Use Case DiagramUML — диаграмма, отражающая отношения между акторами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне. Прецедент — возможность моделируемой системы (часть её функциональности), благодаря которой пользователь может получить конкретный, измеримый и нужный ему результат. Диаграмма вариантов использования - это визуальное представление, используемое в программной инженерии для отображения взаимодействий между участниками системы и самой системой. Она отражает динамическое поведение системы, иллюстрируя ее сценарии использования и роли, которые с ними взаимодействуют. Эти диаграммы необходимы для уточнения функциональных требований к системе и понимания того, как пользователи будут взаимодействовать с системой.
Диаграмма ГантаДиагра́мма Га́нта (англ. Gantt chart, также ленточная диаграмма, график Ганта, календарный график) — это популярный тип столбчатых диаграмм (гистограмм), который используется для иллюстрации плана, графика работ по какому-либо проекту. Является одним из методов планирования проектов. Используется в приложениях по управлению проектами.
Диаграмма Хазарского СловаряПример flowchart диаграммы - описание use case
Диаграмма деятельностиДиагра́мма де́ятельности (Activity Diagram)  — диаграмма, на которой показаны действия, состояния которых описаны на диаграммах состояний. Под деятельностью понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий, соединённых между собой потоками, которые идут от выходов одного узла ко входам другого.
Диаграмма класса профессиональный стандартПример использования диаграммы классов classDiagram для понятия профессиональный стандарт. Профессиональный стандарт описывается как Профессия, для который необходим набор трудовых функций. Каждая функция предполагает действия, знания, умения и другие характеристики
Диаграмма классовДиаграмма классов (англ. class diagram) — структурная диаграмма языка моделирования UML, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей (отношений) между ними. Целью создания диаграммы классов является графическое представление статической структуры декларативных элементов системы (классов, типов и т. п.). Целью создания диаграммы классов является графическое представление статической структуры декларативных элементов системы (классов, типов и т. п.)
Диаграмма курса «Технологии программирования»План изучения курса «Технологии программирования». Февраль.
Диаграмма последовательностиДиаграмма последовательности (англ. sequence diagram) — UML-диаграмма, на которой для некоторого набора объектов на единой временной оси показан жизненный цикл объекта (создание-деятельность-уничтожение некой сущности) и взаимодействие акторов (действующих лиц) информационной системы в рамках прецедента. Основными элементами диаграммы последовательности являются обозначения объектов (прямоугольники с названиями объектов), вертикальные «линии жизни» (англ. lifeline), отображающие течение времени, прямоугольники, отражающие деятельность объекта или исполнение им определенной функции (прямоугольники на пунктирной «линии жизни» — фокусы контроля, англ. focus of control), и стрелки, показывающие обмен сигналами или сообщениями между объектами.
Диаграмма прецедентовДиаграмма прецедентов или диаграмма вариантов использования (англ. use case diagram) в UML — диаграмма, отражающая отношения между акторами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.
Пример flowchart диаграммы - описание use case
Диаграмма профиля компетенцийПредставление профиля компетенций в виде диаграммы - 2 диаграммы, чтобы показать, как меняются компетенции в ходе обучения Diagrams_bf18b4a95f053cd684da5ae5bdc0d799.png
Диаграмма пути пользователя120px-Journay_d1.jpg
  • Это визуализированное путешествие пользователя по продукту. User Journey Map — это больше про пользователя: она описывает его чувства, мысли, действия при взаимодействии с продуктом.
Диаграмма связи школы и технологийСвязи школы и технологий из внешнего источника: 1-s2.0-S0360131518300812-gr1.jpg
Диаграмма состояний120px-State_dg.png
  • Диаграмма состояний - один из доступных видов диаграмм. Она показывает, как объект переходит из одного состояния в другое. Диаграммы состояний служат для моделирования динамических аспектов системы. Данная диаграмма полезна при моделировании жизненного цикла объекта. От других диаграмм диаграмма состояний отличается тем, что описывает процесс изменения состояний только одного экземпляра определенного класса - одного объекта, причем объекта реактивного, то есть объекта, поведение которого характеризуется его реакцией на внешние события.
Диаграмма формирования компетентного профиляПоследовательность формирования - что делает участник и что он осваивает в ходе этой деятельности.
Классификация требований (диаграмма)Диаграмма классификации требований к программному обеспечению представляет отношения функциональный и нефункциональных требования
  • Функциональные требования functional requirements состоят из характеристик и функций, которые реализует программное обеспечение
  • Нефункциональные требования non functional requirements представляют из себя показатели(атрибуты) качества ПО, которым должно отвечать желаемое ПО
  • Diagrams_ad0512b6ddd750a6ddc7678b2327bd68.png
    Медицинский центр (диаграмма)Как работает врач с пациентом
    МероприятиеМероприятие — Совокупность действий, объединённых одной общественно значимой задачей.
    Модульное программирование (диаграмма)Диаграмма, в которой демонстрируются основные принципы модульного программирования
    Продвижение участникаДиаграмма продвижения участника на поле Вики (Mermaid) - вариант описания взаимодействия пользователя с системой
    Языки (диаграмма класса)Пример - classDiagram - для всех сущностей внутри можно и нужно создавать подобные графы

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

    • Объяснять и изображать при помощи диаграмм graphviz, mermaid модели жизненного цикла программ.

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

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


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

    Тема 6. UML

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

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

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

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

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

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

    Образовательный результат Тема Задание Пример
    Находить, описывать и классифицировать программные средства Классификация программных средств Принять участие в обсуждении классификации программных средств, привести собственные примеры программных средств см ACM_Digital_Library
    Классификация программного обеспечения
    https://www.acm.org/publications/computing-classification-system/1998
    Категория:DigitalTool + Категория:Book
    Использовать общепринятые и предлагать собственные основания для категоризации программных средств Классификация программных средств Используя WebGrid соберите поле своих собственных представлений о программных средствах
    Сравнивать между собой программные средства, предназначенные для решения сходных задач. Классификация программных средств На примере сравнения средств обучения программированию Категория:DigitalTool , обучающих играх Категория:DEG , средствах создания диаграмм Категория:Diagrams , средствах анализа библиометрических данных, средах анализа данных Категория:Dataset, средах выращивания данных. TheBrain, ShinyItemAnalysis, VUE, VOSviewer + ChatbotACM (dataset), NetLogo + StarLogo Nova
    Формулировать требования к программному обеспечению. Требования к программному обеспечению ? Примеры требований
    Объяснять и изображать при помощи диаграмм модели жизненного цикла программ. Жизненный цикл программ ? ?
    Использовать различные подходы к организации процесса разработки программного обеспечения. Организация процесса разработки программного обеспечения ? ?
    Переносить принципы разработки программного обеспечения на разработку учебных материалов и организацию учебного процесса. Общие принципы разработки программного обеспечения и разработки учебных материалов ? ?
    Использовать различные виды UML диаграмм для описания и проектирования программного обеспечения UML диаграммы в проектировании программного обеспечения Создание и описание собственных UML диаграмм Категория:Diagrams
    Использовать цифровые средства и среды коллективной разработки программного обеспечения. Среды коллективной разработки программного обеспечения. ? ?
    ? ? ?