Инструменты
Программные инструменты предназначены для обеспечения процессов жизненного цикла программного обеспечения. В свою очередь, методы программной инженерии представляют соответствующие нотации, словари, процедуры и рекомендации по оценке проверки процесса и получаемого в его результате продукта.
Инструменты подразделяются на:
1) Инструменты для работы с требованиями:
- Инструменты, применяемые для извлечения, анализа, специфицирования и проверки программных требований;
- Инструменты трессировки требования, применяемые для предоставления отношений между требованиями различного уровня в системе.
2) Инструменты проектирования и конструирования, к ним относят инструменты, используемые для создания и проверки программного дизайна.
К инструментам конструирования относят инструменты, используемые для производства и трансляции программного представления, необходимого для машинного выполнения. К таким инструментам относятся:
- Редакторы, применяемые для создания модификации исходного кода;
- Компиляторы и генераторы кода, выполняющие покомандную трансляцию исходного кода;
- Интерпретаторы, обеспечивающие выполнение программ посредством эмуляции;
- Отладчики, предоставляющие средства для отладки исходного кода.
Дополнительно в не данной классификации следует выделить следующие инструменты:
- Интегрирующие средства разработки;
- Программные библиотеки и библиотеки компонент;
- Программные платформы (java, Microsoft Net);
- Платформа облачных вычислений;
3) Инструменты тестирования:
- Генераторы тестов, поддерживающие функцию разработки сценариев тестирования;
- Средства выполнения тестов, позволяющие оценивать поведение тестируемого объекта;
- Средства оценки тестов, служащие для определения соответствия наблюдаемого поведения объекта ожидаемому;
- Менеджеры тестов, обеспечивающие управление тестами;
- Инструменты анализа производительности, используемые для оценки производительности.
4) Инструменты сопровождения ПО можно поделить на 2 категории:
- Инструменты дл облегчения понимания человеком программ (средства визуализации);
- Инструменты реинжиниринга, обеспечивающие функции по реорганизации процессов жизненного цикла для повышения их эффективности, управляемости или безопасности.
5) Инструменты конфигурационного управления:
- Инструменты отслеживания дефектов и проблемы;
- Инструменты управления версиями;
- Инструменты сборки и выпуска, предназначенные для управления задачами сборки и выпуска программных продуктов и средствами инсталляции.
6) Инструменты управления инженерной деятельностью:
- Инструменты планирования и отслеживания проектов;
- Инструменты управления риском;
- Инструменты количественной оценки, связанной оценкой качества проектов по созданию ПО.
7) Инструменты поддержки процессов:
- Инструменты моделирования;
- Инструменты для управления проектами, обеспечивающими возможность управления процессами;
- Инструменты конфигурационного управления, задающие основные параметры;
- Ролевые платформы разработки ПО, позволяющие распределять роли в проекте.
8) Инструменты обеспечения качеств:
- Инструменты экспертирования;
- Инструменты анализа.
Методы программной инженерии.
Эвристические методы – это последовательность предписаний или процедур обработки информации, выполняемая с целью поиска более рациональных и новых конструктивных решений.
Эвристические методы обычно противопоставляют формально математизированным. К их числу относят, как правило, методы, связанные с сокращением разнообразия, индуктивные методы и т.д.
В программной инженерии эвристические методы делят на следующие классы:
- Структурные методы, предполагающие построение модели, начиная с самого высокого уровня абстракции, с постепенным уточнением деталей на более низких уровнях;
- Методы, ориентированные на данные, связанные с разработкой структур данных, которыми манипулирует программное средство;
- Объектно-ориентированные методы, моделирующие программную среду при помощи абстракции (объектов);
- Методы, ориентированные на область применения и связанные с решением конкретных предметных задач. Например, система защиты информации.
Формальные методы – подразумевают операции по созданию формального (математического) описания системы, его анализ и доказательство. Реализация системы на основе преобразования формального описания, программный код, верификация этого кода.
Формальные методы всегда имеют свое системное описание, в котором есть свой язык, словарь, синтаксис и семантика, которые определены формально. Как правило, под формальными методами подразумевают методы, основанные на дискретной математике, алгебре логики, теории множеств, теории алгоритмов.
Формальные методы можно классифицировать на следующие категории:
- Языки и нотации, ориентированные на модель, свойство и поведение, такие как формальные методы и описание требований;
- Методы трансформации, основанные на преобразовании описания в программный код;
- Методы подтверждения, основываются на строгом математическом доказательстве исходных гипотез относительно получаемого продукта с использованием методов оценки точности моделей.
Методы прототипирования – связаны с созданием моделей разрабатываемой системы на основе уже существующих систем-прототипов.
Делятся на 3 категории:
- Стили прототипирования, которые подразумевают создание временно используемых прототипов и их преобразование в готовую программу;
- Цели прототипирования, такие как требования, архитектурный дизайн или пользовательский интерфейс;
- Техники оценки или исследования результатов прототипирования, касающиеся того как будут использованы результаты создания прототипа.