Методы обеспечивают проектирование, реализацию и выполнение ПО. Они
накладывают некоторые ограничения на инженерию ПО в связи с
особенностями применения их нотаций и процедур, а также
обеспечивают оценку и проверку процессов и продуктов. Инструменты
являются программной поддержкой отдельных методов инженерии ПО и
обеспечивают автоматизированное выполнение задач процессов ЖЦ.
Область знаний "Методы и инструменты инженерии ПО (Software
Engineering Tools and Methods)" состоит из разделов:
· инструменты инженерии ПО (Software Engineering Tools),
· методы инженерии ПО (Software Engineering Methods).
Методы инженерии ПО - это эвристические методы (heuristic methods),
формальные методы (formal methods) и методы прототипирования
(prototyping methods),.
Эвристические методы включают: структурные методы, основанные на
функциональной парадигме; методы, ориентированные на структуры
данных, которыми манипулирует ПО; объектно-ориентированные методы,
которые рассматривают предметную область как коллекцию объектов, а
не функций; методы, ориентированные на конкретную область
применения, например, на системы реального времени, безопасности и
др.
Формальные методы основаны на формальных спецификациях, анализе,
доказательстве и верификации программ. Формальная спецификация
записывается на языке, синтаксис и семантика которого определены
формально и основаны на математических концепциях (алгебре, теории
множеств, логике). Различаются следующие категории формальных
методов:
· языки и нотации спецификации (specification languages and
notations), ориентированные на модель, свойства и поведение;
· уточнение спецификации (refinement specification) путем
трансформации в конечный результат, близкий к конечному
исполняемому программному продукту;
· методы доказательства/верификации (verification/proving
properties), использующие утверждения (теоремы), пред- и
постусловия, которые формально описываются и применяются для
установления правильности спецификации программ.
Эти методы применялись в основном в теоретических экспериментах и
более 25 лет их практическое применение было ограничено из-за
трудоемкости и экономической невыгодности. В 2005 г. проблема
верификации приобрела вновь актуальность в связи c разработкой
нового международного проекта по верификационному ПО "Целостный
автоматизированный набор инструментов для проверки корректности ПС"
(идея Т. Хоара, "Открытые системы", 2006, № 6), ставящим
следующиеперспективные задачи:
· разработка единой теории построения и анализа программ;
· построение многостороннего интегрированного набора инструментов
верификации на всех производственных процессах - разработка
формальных спецификаций, их доказательство и проверка правильности,
генерация программ и тестовых примеров, уточнение, анализ и
оценка;
· создание репозитария формальных спецификаций, верифицированных
программных объектов разных типов и видов.
Предполагается, что формальные методы верификации будут охватывать
все аспекты создания и проверки правильности программ. Это приведет
к созданию мощной верификационной производственной основы и
значительному сокращению ошибок в ПО (доказательству и верификации
будет посвящена тема 7.)
Методы прототипирования (Prototyping Methods) основаны на
прототипировании ПО и подразделяются на:
· стили прототипирования, включающие в себя создание временно
используемых прототипов (throwaway), эволюционное прототипирование
- превращение прототипа в конечный продукт и разработка исполняемых
спецификаций;
· техники оценки/исследования (evaluation) результатов
прототипирования.
Инструменты инженерии ПОобеспечивают автоматизированную поддержку
процессов разработки ПО и включают множество разных инструментов,
охватывающих все процессы ЖЦ.
Инструменты работы с требованиями (Software Requirements Tools) -
это:
· инструменты разработки (Requirement Development) управления
требованиями (Requirement Management) для анализа, сбора,
специфицирования и проверки требований.
Например, в модели CMMI
Staged на 2-м уровне зрелости находится управлении требованиями, а
на 3-м уровне - разработка требований;
· инструменты трассировки требований (Requirement traceability
tools) являются неотъемлемой частью работы с требованиями, их
функциональное содержание зависит от сложности проектов и уровня
зрелости процессов.
Инструменты проектирования (Software Design Tools) - это
инструменты для создания ПО с применением базовых нотаций
(SADT/IDEF, UML, Microsoft DSL, Oracle и т.п.).
Инструменты конструирования ПО (Software Construction Tools) - это
инструменты для производства, трансляции программ и машинного
выполнения. К ним относятся:
· редакторы (program editors) для создания и модификации программ,
и редакторы "общего назначения" (UNIX и UNIX-подобные среды);
· компиляторы и генераторы кода (compilers and code generators) как
самостоятельные средства объединения в интегрированной среде
программных компонентов для получения выходного продукта с
использованием препроцессоров, сборщиков, загрузчиков и др.;
· интерпретаторы (interpreters) обеспечивают исполнение программ
путем эмуляции, предоставляя для исполнения программ контролируемое
и наблюдаемое окружение. Наметилась тенденотладчики (debuggers) для
проверки правильности описания исходных программ и устранения
ошибок;
· интегрированные среды разработки (IDE - integrated developers
environment), библиотеки компонент (libraries components), без
которых не может проводится процесс разработки ПС, программные
платформы (Java, J2EE и Microsoft .NET) и платформа распределенных
вычислений (CORBA и WebServices).
Инструменты тестирования (Software Testing Tools) это:
· генераторы тестов (test generators), помогающие в разработке
сценариев тестирования;
· средства выполнения тестов (test execution frameworks)
обеспечивают выполнение тестовых сценариев и отслеживают поведение
объектов тестирования;
· инструменты оценки тестов (test evaluation tools) поддерживают
оценку результатов выполнения тестов и степени соответствия
поведения тестируемого объекта ожидаемому поведению;
· средства управления тестами (test management tools) обеспечивают
инженерию процесса тестирования ПО;
· инструменты анализа производительности (performance analysis
tools), количественной ее оценки и оценки поведения программ в
процессе выполнения.
Инструменты сопровождения (Software Maintenance Tools) включают в
себя:
· инструменты облегчения понимания (comprehension tools) программ,
например, различные средства визуализации;
· инструменты реинжинерии (reengineering tools) поддерживают
деятельность по реинжинерии и обратной инженерии (reverse
engineering) для восстановления (артефактов, спецификация,
архитектуры) стареющего ПО и генерации нового продукта.
Инструменты конфигурационного управления (Software Configuration
Management Tools) - это:
· инструменты отслеживания (tracking) дефектов;
· инструменты управления версиями;
· инструменты управления сборкой, выпуском версии (конфигурации)
продукта его инсталляции.
Инструменты управления инженерной деятельностью (Software
Engineering Management Tools) состоят из:
· инструментов планирования и отслеживания проектов, количественной
оценки усилий и стоимости работ проекта (Microsoft Project
2003);
· инструментов управления рисками используются для идентификации,
мониторинга рисков и оценки нанесенного вреда;
· инструментов количественной оценки свойств ПО путем ведения
измерений и расчета окончательного значения надежности и
качества.
Инструменты поддержки процессов (Software Engineering Process
Tools) разделены на:
· инструменты моделирования и описания моделей ПО (например, UML и
его инструменты);
· инструменты управления программными проектами (Microsoft Project
2003);
· инструменты управления конфигурацией для поддержки версий и всех
артефактов проекта.
Инструменты обеспечения качества (Software Quality Tools) делятся
на две категории:
· инструменты инспектирования для поддержки просмотра (review) и
аудита;
· инструменты статического анализа программных артефактов, данных,
потоков работ и проверки свойств или артефактов на соответствие
заданным характеристикам.
Дополнительные аспекты инструментального обеспечения (Miscellaneous
Tool Issues) соответствуют таким аспектам:
· техники интеграции инструментов (платформ, представлений,
процессов, данных и управления) для естественного их сочетания в
интегрированной среде
· метаинструменты для генерации других инструментов;
· оценка инструментов при их эволюции.
Методы и инструменты инженерии ПО
197
0
5 минут
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!