Привет, Хабр! Часто приходится разрабатывать информационные системы разной сложности и в один момент решил написать порядок действий (инструкцию) для данного действа . Я прекрасно понимаю, что она неполная и написана c точки зрения системного аналитика, но надеюсь ,что конструктивная критика поможет её расширить, добавить мнения специалистов других областей и привести к конечному виду.
P.S. Заранее спасибо и прошу сильно не пинать, но буду очень рад дополнениям или правкам :)
P.P.S. для удобного чтения так же прикладываю ссылку на Docs
Определение бизнес-требований:
Общение и внимательное прослушивание на этом этапе критически важны, так как именно здесь формируется база для всех последующих решений по разработке информационной системы. Понимание и учёт реальных потребностей заказчика помогут создать систему, которая эффективно решит поставленные задачи.
-
Проведение встреч с заказчиком и заинтересованными сторонами:
На этом этапе системный аналитик устанавливает контакт с заказчиком, а также с другими заинтересованными сторонами, такими как конечные пользователи, менеджеры бизнеса и другие специалисты, чьи потребности и цели необходимо учесть. В ходе встреч происходит обсуждение общих целей и ожиданий от новой информационной системы.
-
Понимание целей и потребностей системы:
Системный аналитик активно слушает и задает вопросы для полного понимания, какие задачи должна решать разрабатываемая система. Важно выяснить, каким образом система будет использоваться в бизнес-процессах, какие данные будут обрабатываться, кто будет взаимодействовать с системой и в каком контексте.
-
Формулирование бизнес-требований:
На основе полученной информации системный аналитик приступает к формулированию бизнес-требований. Эти требования должны быть сформулированы четко, понятно и структурированно. Их цель - описать функциональные и нефункциональные характеристики системы таким образом, чтобы разработчики могли понять, что им нужно реализовать.
-
Структурирование бизнес-требований:
-
Бизнес требования описывают пожелания пользователей с точки зрения задач бизнеса. Примеры бизнес требований:.
Ускорение обработки заказов на 30 %.
Снижение издержек ведения бухгалтерии на 200 тыс. рублей в год. .
Бизнес-требования подразделяются на основные "категории", такие как функциональные характеристики (что система должна делать) и нефункциональные характеристики (каким образом система должна работать). Каждый пункт должен быть четко описан, пронумерован и иметь указание на приоритетность.
-
-
Документирование бизнес-требований:
Полученные требования фиксируются в виде документа. Этот документ становится основой для всех последующих этапов проекта, включая разработку, тестирование и внедрение системы.
-
Инструменты
Встречи и интервью с заказчиком и заинтересованными сторонами.
Протоколирование встреч.
Методы анализа бизнес-процессов (например, BPMN, UML).
Документирование бизнес-требований в текстовой и/или диаграммной форме.
Анализ текущих процессов:
Этот этап позволяет понять, какие изменения и улучшения необходимо внести в бизнес-процессы с использованием новой информационной системы
-
Изучение существующих бизнес-процессов:
На этом этапе системный аналитик анализирует существующие в организации процессы, которые подлежат автоматизации или оптимизации.
-
Это может включать в себя:
Идентификацию ключевых шагов, действий и ресурсов, участвующих в процессе.
Определение последовательности этапов процесса и связей между ними.
Оценка времени, затрачиваемого на выполнение каждого этапа.
Выявление потенциальных проблем и узких мест в существующих процессах.
-
Выявление узких мест:
Узкие места в бизнес-процессах - это места, где возможно наибольшее замедление или проблемы с эффективностью. Системный аналитик анализирует информацию, полученную в результате изучения процессов, и выделяет такие участки. Это могут быть, например, этапы, где часто возникают ошибки, или этапы, требующие длительных ручных операций.
-
Потенциальные улучшения:
После выявления узких мест системный аналитик предлагает варианты улучшений. Это могут быть автоматизация определенных этапов, оптимизация последовательности действий, уменьшение времени выполнения процесса и так далее. Улучшения могут быть направлены на повышение эффективности, снижение затрат или улучшение качества работы процесса.
-
Документирование результатов анализа:
Все полученные данные, анализы, выявленные узкие места и предложенные улучшения фиксируются в документации. Эта документация может быть использована в дальнейшем при разработке технического задания, чтобы обосновать необходимость внесения изменений.
-
Взаимодействие с заказчиком:
Важно обсудить с заказчиком результаты анализа. Это позволяет уточнить приоритеты и согласовать дальнейшие шаги в процессе разработки.
-
Определение требований к новой системе:
На основе анализа текущих процессов и выявленных узких мест, системный аналитик формулирует требования к новой информационной системе, которая должна решать обнаруженные проблемы и оптимизировать процессы.
-
Инструменты
Инструменты для моделирования бизнес-процессов (например, Bizagi, Lucidchart).
Инструменты для анализа данных (например, Microsoft Excel, Google Sheets).
Определение функциональных требований:
На этом этапе системный аналитик анализирует результаты предыдущих этапов и понимает, какие функции должна выполнять создаваемая информационная система. Этот этап помогает четко сформулировать, какие задачи и функции должна выполнять создаваемая информационная система, а также разбить этот функционал на логические блоки для более удобной и структурированной разработки
-
Описание основных функций:
-
Примеры основных функций могут включать в себя:
Управление данными и их обработка.
Взаимодействие с пользователями и другими системами.
Поддержка бизнес-процессов и автоматизация операций.
-
-
Разделение функционала на блоки и подсистемы:
-
Для более наглядного и управляемого процесса разработки, функционал информационной системы разделяется на логические блоки и подсистемы.
-
Примеры блоков функционала могут включать в себя:
Модуль управления пользователями.
Модуль аналитики данных.
Модуль отчетности и др.
-
-
Каждый блок должен иметь четкую и определенную функциональность, позволяющую системе работать эффективно и решать задачи бизнеса.
-
Определение взаимодействий между блоками:
Важно также понимать, какие блоки будут взаимодействовать между собой и какая информация будет передаваться от одного блока к другому. Это включает в себя определение интерфейсов между блоками и форматов обмена данными.
-
Документирование функциональных требований:
Результаты анализа и разделения функционала описываются в виде документа с функциональными требованиями. Каждая функция и блок должны быть четко описаны, включая входные и выходные данные, условия выполнения, требования к производительности и так далее.
-
Приоритизация функциональных требований:
Важно определить приоритеты для каждой функции или блока. Некоторые функции могут быть критически важными, в то время как другие могут быть второстепенными.
-
Взаимодействие с заказчиком:
После документирования функциональных требований, важно обсудить их с заказчиком для уточнения и подтверждения, а также для выявления возможных изменений или дополнений.
-
Инструменты
Диаграммы вариантов использования (Use Case Diagrams).
Описание требований в текстовой форме (например, в таблицах, в формате User Stories).
Схемы данных (например, Entity-Relationship Diagrams).
Формирование структуры данных:
Этот этап позволяет определить, какие данные будут храниться и как они будут связаны между собой в информационной системе
-
Проектирование баз данных, включая сущности, их атрибуты и связи между ними:
-
В этом этапе системный аналитик определяет структуру базы данных, которая будет использоваться информационной системой.
Сущности: Это представления о конкретных объектах или событиях, которые будут храниться в базе данных. Например, для системы управления заказами, сущности могут включать "Клиенты", "Заказы", "Товары" и т.д.
Атрибуты: Каждая сущность имеет характеристики или атрибуты, которые описывают эту сущность. Например, у сущности "Клиенты" атрибутами могут быть "Имя", "Фамилия", "Электронная почта" и т.д.
Связи: Связи определяют, как сущности взаимодействуют друг с другом. Например, связь между "Клиентами" и "Заказами" может указывать на то, что один клиент может сделать несколько заказов.
-
-
Определение необходимых хранилищ данных:
-
На этом этапе системный аналитик решает, какие типы хранилищ данных будут использоваться в системе. Это может включать в себя:
Реляционные базы данных: Которые используются для хранения данных в виде таблиц с установленными связями между ними.
Документ-ориентированные базы данных: Которые подходят для хранения документов, имеющих сложную структуру.
NoSQL базы данных: Которые позволяют хранить и обрабатывать неструктурированные данные.
Хранилища данных для аналитики: Оптимизированные для выполнения аналитических запросов.
Важно выбрать тип хранилища данных, который наилучшим образом соответствует требованиям и особенностям информационной системы
-
-
Проектирование схемы данных:
На основе определенных сущностей, атрибутов и связей, системный аналитик разрабатывает схему базы данных, которая определяет, как данные будут организованы и связаны между собой.
-
Нормализация и оптимизация баз данных:
После создания схемы, системный аналитик проводит процесс нормализации данных, что позволяет избежать избыточности и повышает эффективность работы базы данных. Также проводятся оптимизации для улучшения производительности.
-
Документирование структуры данных:
Все полученные результаты, включая сущности, атрибуты, связи и схему данных, документируются в виде спецификации базы данных.
-
Взаимодействие с разработчиками:
Системный аналитик сотрудничает с командой разработчиков, предоставляя им необходимую информацию для создания и настройки базы данных в соответствии с требованиями.
-
Инструменты
Инструменты проектирования баз данных (например, MySQL Workbench, Microsoft Visio).
Разработка архитектуры системы:
На этом этапе системный аналитик в сотрудничестве с архитекторами и разработчиками определяет набор технологий, который будет использоваться для реализации информационной системы. Этот этап позволяет определить технологический стек и архитектуру системы, что является основой для дальнейшей разработки
-
Выбор технологических платформ и инструментов:
-
Это включает в себя:
Языки программирования: Определение языков, на которых будет разрабатываться система.
Базы данных и хранилища данных: Выбор технологии для хранения и управления данными.
Фреймворки и библиотеки: Использование готовых инструментов для разработки определенных функций.
Инструменты разработки и среды разработки: Определение средств, которые будут использоваться для написания, тестирования и отладки кода.
-
-
Проектирование архитектуры, включая модели данных, компоненты и интерфейсы:
Модели данных: На этом этапе системный аналитик и архитекторы разрабатывают детальные модели данных, которые включают в себя структуру и типы данных, а также связи между различными элементами данных. Примеры включают ER-диаграммы (сущность-связь) и UML-диаграммы классов.
Компоненты: Разработка архитектуры системы включает в себя разбиение ее на логические компоненты. Эти компоненты представляют собой модули или части системы, которые выполняют определенные функции. Например, это может быть компонент управления пользователями, компонент обработки данных и т.д.
Интерфейсы: Определение способов взаимодействия между компонентами системы, а также внешними системами и пользователями. Это включает в себя разработку API (Application Programming Interface) для взаимодействия между различными частями системы.
-
Учет архитектурных паттернов:
Системный аналитик учитывает применение архитектурных паттернов, таких как MVC (Model-View-Controller), MVVM (Model-View-ViewModel) и других, для обеспечения лучшей организации кода и разделения ответственности между компонентами системы.
-
Уточнение технических деталей:
На этом этапе происходит уточнение технических деталей реализации, включая выбор специфичных технологий, библиотек и инструментов, а также определение архитектурных решений для обеспечения высокой производительности, масштабируемости и надежности.
-
Документирование архитектуры:
Вся полученная информация о выбранных технологиях, моделях данных, компонентах и интерфейсах документируется в виде технической спецификации или архитектурного документа.
-
Обсуждение с заказчиком:
Важно обсудить предварительные архитектурные решения с заказчиком для уточнения и подтверждения соответствия их ожиданиям.
-
Инструменты
Инструменты для создания архитектурных диаграмм (например, draw.io, Visual Paradigm).
-
Инструменты для выбора технологических платформ и инструментов
StackShare: Платформа, позволяющая сравнивать и анализировать технологические стеки различных компаний.
AlternativeTo: Позволяет искать альтернативные программы, инструменты и платформы.
Определение требований к безопасности:
Этот этап обеспечивает высокий уровень безопасности системы и данных, предотвращая несанкционированный доступ и обеспечивая целостность и доступность информации
-
Разработка мер по обеспечению конфиденциальности, целостности и доступности данных:
Конфиденциальность данных: Этот аспект требует предотвращения несанкционированного доступа к чувствительным данным. Для этого могут использоваться шифрование данных, контроль доступа и другие методы.
Целостность данных: Это обеспечение того, что данные не подверглись несанкционированным изменениям. Для этого используются методы проверки с помощью хэш-функций, цифровых подписей и т.д.
Доступность данных: Гарантирование того, что данные доступны для пользователей в нужное время. Это включает в себя меры по предотвращению отказов в работе системы, создание резервных копий и т.д.
Аудит и мониторинг: Важно вести наблюдение за событиями в системе, анализировать их и вовремя реагировать на потенциальные угрозы безопасности.
Обработка и хранение паролей: Разработка политики управления паролями, хранение их в зашифрованном виде, а также применение современных методов хеширования.
Защита от злонамеренных программ и вирусов: Использование антивирусных программ, фильтрации трафика и других технических средств.
Защита от атак: Включает в себя меры для предотвращения атак, таких как SQL-инъекции, кросс-сайт скрипты, атаки на сетевой уровень и др.
-
Установление правил доступа и аутентификации пользователей:
Аутентификация: Определение процедуры проверки подлинности пользователей перед предоставлением им доступа к системе. Это может включать в себя пароли, двухфакторную аутентификацию, биометрические данные и т.д.
Авторизация: Установление прав доступа для пользователей на основе их ролей и обязанностей. Это включает в себя определение того, к каким данным и функциям у каждого пользователя есть доступ.
Управление правами и ролями: Установление системы ролей и прав, которая определяет, какие действия могут совершать пользователи в зависимости от своей роли в системе.
Обработка ошибочных или неудачных попыток аутентификации: Необходимо определить, как система реагирует на неудачные попытки входа в систему и какие меры предпринимаются для предотвращения атак.
Сессионное управление: Гарантирование безопасности пользовательских сессий, включая меры против перехвата сессий и механизмы выхода из системы.
Журналирование событий безопасности: Ведение журнала событий для регистрации всех действий пользователей и администраторов в системе с целью выявления несанкционированных действий.
Шифрование данных в пути и в покое: Защита данных во время передачи и хранения с использованием криптографических методов.
-
Инструменты
Инструменты для анализа угроз и рисков (например, Threat Modeling Tools , OWASP и т.д.).
Средства для разработки политик безопасности и контроль доступа (например, Active Directory, LDAP и т.д.).
Разработка пользовательского интерфейса:
Этот этап помогает создать интуитивно понятный и удобный для пользователей интерфейс системы, который соответствует их потребностям и ожиданиям. Создание прототипов и макетов позволяет заказчику и разработчикам предварительно визуализировать функционал системы и согласовать детали дизайна
-
Проектирование интерфейсов для взаимодействия пользователей с системой:
Анализ потребностей пользователей: Первым шагом является анализ ожиданий и потребностей пользователей. Системный аналитик в тесном взаимодействии с заказчиком выявляет, какие функции и информацию пользователи ожидают получить от системы.
Определение типов пользовательских интерфейсов: В зависимости от специфики системы, это может быть веб-интерфейс, мобильное приложение, десктопное приложение и т.д.
Определение основных элементов интерфейса: Это включает в себя кнопки, поля для ввода, меню, списки, таблицы, формы и другие элементы, которые позволяют пользователям взаимодействовать с системой.
Учет дизайн-принципов и пользовательского опыта (UI/UX): Разработчики интерфейса учитывают принципы удобства использования и эстетики, чтобы создать приятный и интуитивно понятный пользовательский опыт.
Определение навигации: Это включает в себя проектирование структуры меню, путей переходов между различными разделами и страницами системы.
Работа с мультимедийными элементами (при необходимости): Если система включает в себя элементы, такие как изображения, видео, графика и т.д., то разработчики интерфейса учитывают их в дизайне.
-
Создание прототипов и макетов:
Прототипирование: Этот этап включает в себя создание прототипов интерфейса. Прототипы - это наборы черновых скетчей или интерактивных макетов, которые позволяют заказчику и разработчикам предварительно оценить функционал и внешний вид системы.
Использование инструментов дизайна и прототипирования: Разработчики могут использовать специальные программы и инструменты, такие как Figma, Adobe XD, Sketch и др., для создания прототипов.
Тестирование прототипов: Созданные прототипы подвергаются тестированию, чтобы убедиться, что они соответствуют требованиям заказчика и удовлетворяют потребности пользователей.
Уточнение и доработка: На основе обратной связи от заказчика и тестирования прототипов, они могут быть уточнены и доработаны.
Создание детализированных макетов: После уточнения прототипов, разработчики могут создавать детализированные макеты, которые включают в себя точные размеры, цвета, шрифты и другие детали интерфейса.
Документирование интерфейсных решений: Все принятые решения по дизайну и функционалу фиксируются в специальной документации.
-
Инструменты
Инструменты для прототипирования и дизайна интерфейса (например, Sketch, Figma).
Графические редакторы (например, Adobe XD, Photoshop).
Формирование требований к надежности и масштабируемости:
Этот этап позволяет создать систему, которая обладает высокой надежностью и способностью к масштабированию для обеспечения эффективной работы даже при росте нагрузки
-
Определение требований к надежности работы системы:
-
Механизмы резервного копирования и восстановления:
Это включает в себя разработку стратегии регулярного создания резервных копий данных системы.
Определение частоты и методов резервирования (полные, инкрементальные, дифференциальные).
План восстановления в случае сбоя или потери данных.
Определение места хранения резервных копий (локальное хранилище, облачные сервисы).
-
Мониторинг и оповещение о сбоях:
Разработка системы мониторинга, которая будет следить за работоспособностью всех компонентов системы.
Определение критических показателей, требующих немедленного вмешательства.
Разработка механизмов оповещения администраторов в случае сбоев или неполадок.
-
Управление отказоустойчивостью:
Включает в себя определение архитектурных решений и мер, направленных на минимизацию воздействия отказов в работе системы.
Это может включать в себя создание резервных копий, репликацию данных, использование кластеризации и т.д.
-
Обновления и патчи:
Определение процедур и методов для внедрения обновлений, патчей и исправлений без прерывания работы системы.
-
-
Учёт возможности расширения системы при необходимости:
-
Горизонтальное и вертикальное масштабирование:
Горизонтальное масштабирование - это увеличение количества физических серверов или узлов для распределения нагрузки.
Вертикальное масштабирование - это увеличение ресурсов (памяти, процессора) на одном сервере или узле.
-
Архитектурные решения для расширения:
Разработка архитектуры системы, которая позволяет легко добавлять новые компоненты или узлы при необходимости. Это может включать в себя использование микросервисной архитектуры, контейнеризацию и т.д.
-
Управление нагрузкой:
Разработка механизмов автоматического масштабирования, которые могут динамически адаптировать ресурсы системы к изменяющейся нагрузке.
-
Планирование роста и масштабируемость:
Разработка стратегии поэтапного масштабирования системы в зависимости от ожидаемого роста бизнеса и нагрузки.
-
Тестирование на масштабируемость:
Проведение тестирования, которое позволяет оценить, как система работает при высоких нагрузках и как она масштабируется.
-
Мониторинг масштабируемости:
Разработка системы мониторинга, которая позволяет отслеживать производительность системы при разных нагрузках и анализировать, когда необходимо провести масштабирование.
-
-
Инструменты
Инструменты для резервного копирования и восстановления (например, Veeam Backup & Replication,Acronis Backup,Commvault,Ansible,Jenkins,Nagios,Zabbix и т.д.).
Средства для оценки производительности и масштабируемости(Locust,Apache JMeter(с учетом Distributed Testing),Profiler,LoadRunner (Micro Focus),Gatling,Prometheus,Grafana,New Relic и т.д.).
Составление технического задания:
Составление технического задания (ТЗ) - это финальный этап перед началом непосредственной разработки информационной системы. Таким образом, техническое задание представляет собой детальное описание всех аспектов проектирования и требований к информационной системе, а также служит основой для всех последующих этапов разработки
-
Формализация всех требований и аспектов проектирования:
Все предыдущие этапы анализа и проектирования собираются в единый документ - техническое задание (ТЗ). Этот документ представляет собой детальное описание всех функциональных, технических и проектных аспектов системы.
-
Структура технического задания:
-
Введение:
Краткое описание проекта, его цели и основные характеристики.
-
Общее описание системы:
Обзор функционала и особенностей системы с точки зрения конечного пользователя.
-
Требования к функционалу:
Подробное описание всех функций и возможностей системы, включая входящие в них подсистемы и компоненты.
-
Требования к интерфейсам:
Описание пользовательского интерфейса, его элементов и способов взаимодействия с пользователем.
-
Требования к надежности и масштабируемости:
Включает в себя все требования, связанные с обеспечением надежной и масштабируемой работы системы.
-
Требования к безопасности:
Описывает меры по обеспечению безопасности данных и пользователей системы.
-
Требования к производительности:
Задают ожидаемые характеристики производительности системы, такие как скорость обработки запросов, время отклика и др.
-
Требования к тестированию и качеству:
Определяют процедуры тестирования, критерии приемки, а также требования к качеству кода и документации.
-
Требования к документированию:
Описывают необходимость и форматы документации, которая должна быть создана в процессе разработки и поддержки системы.
-
Требования к сопровождению:
Указывают требования к поддержке и обновлению системы после ее внедрения.
-
Архитектура системы:
Подробное описание архитектуры, включая компоненты, связи между ними, используемые технологии и платформы.
-
Методы тестирования:
Описываются методы и средства, которые будут использованы для тестирования различных аспектов системы.
-
Утверждение и согласование технического задания:
После составления технического задания, оно подлежит утверждению и согласованию со всеми заинтересованными сторонами, включая заказчика, менеджеров проекта, разработчиков и других участников команды.
-
Использование технического задания в процессе разработки:
Полученное техническое задание служит основным руководством для команды разработчиков на всех этапах создания системы. Оно определяет все требования и ожидания относительно функционала и качества системы.
-
Документация и отчетность:
Техническое задание, как основной документ, предназначено для дальнейшего использования в ходе разработки, тестирования и сопровождения системы. Также оно служит основой для контроля выполнения работ и отчетности перед заказчиком.
-
-
Инструменты
Системы управления документацией (например, Microsoft Word, Google Docs).
Инструменты для создания структурированных документов (например, LaTeX).
Проверка и утверждение технического задания:
Этот этап является критическим, поскольку он представляет собой формальное утверждение технического задания (ТЗ) со стороны заказчика и других заинтересованных сторон. Этот этап обеспечивает четкое понимание всех сторон проекта по поводу того, что требуется реализовать, и предотвращает недоразумения и несоответствия в ходе разработки
-
Предоставление технического задания заказчику и заинтересованным сторонам:
После завершения составления технического задания (ТЗ), это документ предоставляется заказчику и другим ключевым участникам проекта. Это может включать представителей бизнес-подразделений, руководителей проекта, архитекторов и других членов команды.
-
Рецензия технического задания:
Заказчик и заинтересованные стороны тщательно изучают содержание ТЗ. Они анализируют предложенные требования, архитектуру, описания функционала и другие аспекты системы. В процессе рецензии могут возникнуть вопросы, уточнения или предложения по улучшению формулировок, дополнительным требованиям или изменениям в архитектуре.
-
Внесение коррективов:
По результатам рецензии заказчик и заинтересованные стороны могут предложить внести изменения в ТЗ. Эти изменения могут касаться как деталей, так и более крупных аспектов проекта. Важно внимательно анализировать предложенные коррективы и оценить их влияние на проект, включая сроки и бюджет.
-
Утверждение технического задания:
После обсуждения и внесения необходимых корректировок, заказчик и заинтересованные стороны принимают окончательное решение об утверждении технического задания. Утверждение означает, что все стороны согласны с предложенными требованиями, архитектурой и планом разработки, и готовы перейти к следующим этапам проекта.
-
Формализация утверждения:
Решение о утверждении технического задания оформляется в виде соответствующего документа, который может быть подписан всеми участвующими сторонами. Это документирует конечное согласие и обязательства по проекту.
-
Сохранение утвержденного технического задания:
Утвержденное ТЗ становится базой для дальнейшей разработки. Оно используется как основа для создания и тестирования информационной системы.
-
Инструменты
Электронные системы управления документами и версиями (например, Git, SVN).
Контроль реализации:
Контроль реализации - это этап, на котором осуществляется непрерывный мониторинг процесса разработки информационной системы, чтобы убедиться, что все требования из технического задания (ТЗ) учтены и правильно воплощаются. Контроль реализации помогает обеспечить соответствие разрабатываемой системы заявленным требованиям, а также своевременно выявлять и устранять возможные проблемы. Это важный этап в обеспечении успешной разработки информационной системы.
-
Следить за учетом всех требований из технического задания:
Важно внимательно следить за ходом разработки и удостовериться, что каждое требование, описанное в техническом задании, учитывается в процессе создания информационной системы. Это включает в себя контроль за реализацией функций, архитектурных аспектов, требований к безопасности, производительности и других параметров, описанных в ТЗ.
-
Проведение регулярных проверок согласно этапам разработки:
Разработка системы обычно происходит в несколько этапов, например, анализ, проектирование, программирование, тестирование и внедрение. На каждом из этих этапов важно проводить проверки для удостоверения в правильности реализации. Эти проверки могут включать в себя демонстрации промежуточных результатов заказчику, тестирование функционала, анализ кода и архитектуры, аудит безопасности и т.д. Важно отслеживать прогресс и качество работ на каждом этапе, чтобы внести необходимые коррективы в случае несоответствия требованиям.
-
Обратная связь и корректировки:
В ходе контроля реализации могут выявляться несоответствия или недоразумения. Важно уметь эффективно коммуницировать с разработчиками, архитекторами и другими членами команды для устранения этих проблем. Исправления и улучшения могут затронуть как код, так и архитектурные решения, в зависимости от выявленных проблем.
-
Документирование результатов контроля:
Важно фиксировать результаты каждой проверки и внесенные изменения. Это может включать в себя отчеты о тестировании, протоколы демонстраций, анализы архитектуры и т.д. Эта документация служит основой для дальнейшей работы и может быть использована для обоснования принятых решений.
-
Управление изменениями:
Если в ходе контроля реализации выявляются изменения в требованиях или архитектуре, важно правильно управлять этими изменениями. Это включает в себя оценку влияния изменений на проект, анализ сроков и бюджета, и принятие обоснованных решений.
Тестирование и валидация:
В этом этапе система подвергается всестороннему тестированию с целью убедиться, что она соответствует всем требованиям, описанным в техническом задании. Тестирование и валидация - это этап, на котором осуществляется проверка работоспособности и соответствия созданной информационной системы заявленным требованиям. Тестирование и валидация являются критическими этапами в разработке информационной системы, поскольку они гарантируют, что разработанная система полностью соответствует потребностям и требованиям заказчика.
-
Проверка работы системы на соответствие заявленным требованиям:
Тестирование включает в себя проверку функциональности, архитектурных аспектов, безопасности, производительности, надежности и других характеристик системы. В зависимости от характера проекта, тестирование может быть автоматизированным или проводиться вручную.
-
Выявление несоответствий и ошибок:
В ходе тестирования могут быть выявлены различные несоответствия между реальной работой системы и ожидаемым поведением. Это может включать в себя ошибки программирования, пропуски требований, проблемы с производительностью и другие аспекты. Важно документировать все найденные несоответствия и ошибки, чтобы разработчики могли их исправить.
-
Внесение необходимых корректировок и доработок:
После завершения тестирования и анализа результатов, разработчики приступают к исправлению выявленных ошибок и несоответствий. В некоторых случаях это может также потребовать пересмотра архитектуры или других ключевых решений. Корректировки и доработки производятся с учетом обсужденных и утвержденных изменений.
-
Повторное тестирование и валидация:
После внесения корректировок система повторно подвергается тестированию, чтобы удостовериться, что все ошибки были устранены и система соответствует заявленным требованиям. Этот процесс может повторяться несколько раз до полного соответствия системы требованиям.
-
Утверждение готовности к внедрению:
После завершения тестирования и успешного прохождения валидации, система готова к внедрению в реальную эксплуатацию. Этот этап включает в себя подготовку к выкатке, установку на рабочих серверах, настройку окружения и др. Тестирование и валидация являются критическими этапами в разработке информационной системы, поскольку они гарантируют, что разработанная система полностью соответствует потребностям и требованиям заказчика.
Документирование:
Этот этап включает в себя разработку различных документов, которые описывают структуру, компоненты и функциональность системы. Документирование - это важный этап, который включает создание различных документов, необходимых для полноценной эксплуатации и поддержки информационной системы. Корректно составленная техническая документация облегчает внедрение, поддержку и развитие системы, а также помогает в решении проблем и вопросов, которые могут возникнуть в процессе эксплуатации
-
Создание технической документации:
-
Примеры таких документов включают:
Описание архитектуры системы: В этом документе описываются основные компоненты системы, их взаимодействие и структура в целом. Это может включать в себя блок-схемы, диаграммы и другие визуальные средства.
Описание баз данных: Здесь описываются основные сущности, их атрибуты, связи и структура базы данных.
Технические спецификации: Эти документы содержат технические детали, такие как используемые технологии, программные библиотеки, алгоритмы и прочее.
Документация по коду: Комментарии в коде, описывающие его работу, логику и особенности.
Документация по интерфейсу: Описание элементов пользовательского интерфейса, их функции и принципы взаимодействия с пользователем.
-
-
Инструкции по эксплуатации и администрированию системы:
-
Эти документы предназначены для того, чтобы пользователи и администраторы системы могли эффективно взаимодействовать с ней.
Инструкции по установке и запуску: Описываются шаги по установке системы, включая необходимые предустановки и конфигурации.
Инструкции по использованию: Разъясняются основные функции и возможности системы. Это может включать в себя работу с интерфейсом, создание, редактирование и удаление данных, выполнение операций и т.д.
Инструкции по администрированию: Данный раздел описывает действия, которые администраторы могут совершать для управления системой, включая управление пользователями, обслуживание базы данных, резервное копирование и восстановление, мониторинг и др.
Инструкции по обслуживанию и поддержке: Здесь описываются действия, необходимые для поддержания и обновления системы, включая внедрение патчей, обновлений, решение проблем и т.д.
-
-
Актуализация и поддержание документации:
Важно обновлять документацию в соответствии с изменениями в системе. Новые функции, изменения архитектуры, улучшения и т.д. должны быть отражены в документах.
Регулярное обновление документации обеспечивает актуальность и ее полезность для всех участников проекта.
Внедрение и поддержка:
Внедрение и поддержка - последний, но критически важный этап в разработке информационной системы. На этом этапе система готовится к работе в реальных условиях, пользователи обучаются ее использованию, и обеспечивается ее непрерывная работоспособность. Внедрение и поддержка являются ключевыми этапами для успешной работы информационной системы в реальных условиях. Они обеспечивают эффективное использование и поддержание системы в актуальном и рабочем состоянии.
-
Помощь в развертывании системы и обучение пользователей:
Развертывание (внедрение) системы включает в себя установку, настройку и запуск на рабочих серверах или платформах.
На этом этапе команда разработчиков может оказать содействие технической поддержкой при установке и конфигурации.
Обучение пользователей - важная часть внедрения. Пользователи должны быть ознакомлены с интерфейсом, функциональностью и методами взаимодействия с системой. Может проводиться обучение как в формате обучающих сессий, так и с использованием документации.
-
Постоянная поддержка и мониторинг работы системы:
-
После внедрения системы начинается период постоянной поддержки и мониторинга:
Поддержка включает в себя решение возникающих вопросов, помощь пользователям в работе с системой, а также исправление ошибок и проблем, которые могут возникнуть в процессе эксплуатации.
Мониторинг включает в себя регулярное отслеживание работы системы с целью выявления проблем и аномалий. Это может включать в себя мониторинг производительности, доступности, использования ресурсов и др.
-
-
Анализ и улучшение системы:
В процессе эксплуатации системы могут выявиться области, требующие улучшения. Это может быть связано с производительностью, безопасностью, пользовательским интерфейсом и т.д. На основе анализа и обратной связи от пользователей и администраторов системы могут быть предприняты действия по улучшению ее работы.
-
Регулярные обновления и патчи:
В процессе эксплуатации системы могут появляться новые версии платформ, библиотек и т.д. Регулярные обновления помогают обеспечить безопасность и актуальность системы. Патчи могут быть необходимы для решения конкретных проблем или устранения уязвимостей.
-
Обучение и поддержка новых сотрудников:
При появлении новых сотрудников или переводе существующих на работу с системой необходимо организовать обучение и поддержку.
Комментарии (15)
sshmakov
24.10.2023 07:08+1Все это круто, здорово и замечательно, если у заказчика есть время, а для вас деньги. Куда чаще надо сделать что-то, быстро и дешево.
Я прекрасно понимаю, что она неполная и написана c точки зрения системного аналитика,
Я бы сказал, что написана она с точки зрения единственного аналитика на проекте, совмещающего роли бизнес-аналитика, системного аналитика, а также проектировщика интерфейсов, архитектора, тестировщика, техписа и сопровожденца. И РП.
xngel Автор
24.10.2023 07:08+1Да согласен по поводу времени и денег, заказчику всегда нужно еще вчера и бесплатно, но никто нам не мешает пропускать этапы, объединять их или на худой конец ТЗ записать на салфетке со слов заказчика и использовать его как конечный "посыл".
Я описываю свой опыт и в итоге этот план может выполнять не один человек, а команда)
a_nick
24.10.2023 07:08+3По п. 9 "Составление технического задания": зачем изобретать свой собственный велосипед, когда есть ГОСТ 34.602-2020, в котором приведены состав и содержание документа. Необязательно целиком следовать ГОСТу, можно адаптировать под себя.
То же самое относится и к п.13 - есть ГОСТ Р 59795-2021, в котором приведены состав и содержание самых разных документов, разрабатываемых для ИС - берите, адаптируйте под себя и пользуйтесь.
Еще странность - тестирование системы есть, а сдачи/приемки - нет. Сдача/приемка, по опыту, отдельная песня, особенно в случаях, когда у заказчика собственная служба эксплуатации.
ИБ - не включает требования и этапы работ по аттестации ИС.
Можно и еще накидать, но, в общем и целом, получилась этакая смесь 34-ого ГОСТа (ныне ГОСТ Р 59793-2021) и 676-ого ПП. Работать конечно будет, но далеко не для всех систем и не для всех заказчиков.
xngel Автор
24.10.2023 07:08Замечания в целом оправданы, но я писал исходя из своего опыта.
По поводу ГОСТов подумаю ,что можно еще включить.
Этапы Сдачи и Приёмки реально отдельная песня и как-то унифицировать сложно , но я попробую дописать.
Аттестацию ИС хотел включить , но это в первую очередь для ГОС систем.
igorts
24.10.2023 07:08ГОСТ 34 это все же автоматизированные системы, что чуть шире, куда включается и организационное обеспечение, и техническое, и метрологическое и т.д.
Когда мы ведем речь об информационных системах, тут я бы еще посмотрел в сторону ЕСПД - ГОСТ 19
mishamota
24.10.2023 07:08+1Любой статье, где задумываются о требованиях и их формализации сразу плюс.
А так да, есть же 34 ГОСТ, как тут уже написали, он подойдёт в большинстве случаев как основа, которую можно адаптировать.
Начинайте требки с 3х пунктов:
Цели
Назначение
Ограничения
и дальше само пойдет ))
0pauc0
24.10.2023 07:08+1Тоже пару слов вставлю.
1. Техническое задание задание всегда пишет заказчик. А потом открыто публикует или распространяет между ограниченным составом проектировщиков. Затем проектировщик проектирует, с учетом ГОСТов, регламентов, с применением кусков/узлов уже ранее кем-то разработанных и опробованных в реальном деле, на выходе - проект информационной системы/автоматизации/и т.п., именно проект, в том числе со сметой, в том числе календарным планом и самое главное - с доказательствами надежности, повторяемости/отсутствия эвристики, устойчивости, (по аналогии с проектом строительства - конструктивные и архитектурные решения обеспечивающие все разделы безопасности, соответствие требованиям энергоэффективности, малобильных граждан и прочее).
Заказчик может заказать проект одному или нескольким проектировщикам.
Затем выбранный проект заказчик передает в работу нанятому на открытом конкурсе или взятому по знакомству изготовителю-разработчику, который и делает работы (кодит в вашем случае). Авторский надзор осуществляет вышеупомянутый проектировщик - решает возникающие вопросы проекта (если облажался на стадии проектирования - сам и вносит корректировки) и не дает разработчику испортить/завалить проект, подтверждает на каждом крупном этапе результаты работ и подписывается на приемке работ.
Вот как это работает. То что написали вы, работать эффективно не может априори.
Бывают случаи, когда описанные два этапа сливают в один и поручают одному исполнителю, но это как правило исполнитель который уже делал для заказчика что-то серьезное и уже практически все знает и о техпроцессах на производстве/чиновничьем деле и о процессах управления им.
0pauc0
24.10.2023 07:08+2Вторая пара слов.
2. Прямо первый заголовок - "Определение бизнес-требований". Эти мусорные слова везде - и к месту и не к месту (запретить их надо). Бизнес - это использование добавленной стоимости (нанял землекопов, берут больше кидают дальше - хорошо, лопата плохая сил нет - плохо). Бизнес-требования - это требования К бизнесу или требования самого бизнеса? И то и другое - в рассматриваемом случае нонсенс.
У вас по месту правильнее было бы - "требования к конечному продукту" (изделию, дому, информационной системе).
Но - такие требования выставляются для людей, которые хорошо понимают, что от них требуется.
У вас же этот первый раздел - обучение пришедшего и увидевшего первый раз токарный цех парня, хотя бы и классного программиста. Ни к чему хорошему это не приведет и не приводит.
0pauc0
24.10.2023 07:08+1Ну и напоследок.
3. Кто (сторонний, независимый и профессиональный) подтвердит заказчику, что подготовленное вами техническое задание исполнимо и адекватно по деньгам и силам?
Vorchun
24.10.2023 07:08Вот объясните простыми словами в 2 предложениях - чем отличаются между собой бизнес аналитик и системный аналитик? Дочитал до момента, когда системный аналитик должен что-то там сделать с интерфейсом и запутался окончательно.
ErshoffPeter
Дочитал до момента 'бизнес-требования = функциональные требования' и задумался - стоит ли читать дальше? ????
xngel Автор
Правда косяк , неправильно сформулировал мысль. сейчас перепишу