Программная инженерия.Часть II. Учебное пособие
.pdf
Приложение
Инструменты и методы, используемые при разработке программных систем
Инструменты программной инженерии предназначены для поддержки процессов жизненного цикла программного обеспечения посредством автоматизации определенных повторяющихся действий, в результате чего уменьшается загруженность инженеров, что позволяет им акцентироваться на других аспектах процесса разработки.
Зачастую инструменты реализуют конкретные методы программной инженерии, при этом разработчик инструмента может являться и автором метода. Области применения как инструментов, так и методов могут варьироваться от поддержки отдельных задач до охвата всего жизненного цикла.
Среди разработчиков инструментов можно выделить следующие компании: IBM (продукт Rational Suite), Oracle (продукт CDM Advantage), Borland (продукт ALM), Computer Associates (ряд продуктов, каждый из которых предназначен для поддержки одного или нескольких этапов жизненного цикла). Среди перечисленных продуктов все поддерживают полный жизненный цикл разработки программного обеспечения в той или иной мере в соответствии со своей моделью разработки.
Инструменты работы с требованиями. Эти инструменты подразделяются на две категории: средства моделирования и средства трассировки.
Инструменты моделирования требований, иногда называемые инструментами управления требованиями, применяются для извлечения, анализа, специфицирования и проверки программных требований.
Инструменты трассировки требований используются главным образом, для анализа требований, особенно для анализа влияний требований и изменений. С повышением уровня сложности разрабатываемого продукта значимость этой категории инструментов возрастает.
Для работы с требованиями компаний IBM выпускаются следующие компоненты:
Rational Suite ANALYSTSTUDIO – используется для определения и управления полным набором требований к разрабатываемой системе.
Rational Requisite Pro – средство управления требованиями при совместной работе группы разработчиков; позволяет команде разработчиков создавать, структурировать, устанавливать приоритеты, а также отслеживать, контролировать изменения требований, возникающих на любом этапе разработки компонентов приложения.
II Часть | пособие Учебное
91
Также фирма Borland производит CALIBERRM – систему хранения требования в базе данных, которая поддерживает различные методы визуализации зависимостей между требованиями; в системе управления требованиями CALIBERRM имеется модуль, позволяющий на основе имеющихся требований оценить трудозатраты, риски и расходы, связанные с их реализацией.
Кроме того, при работе с требованиями используются следующие инструменты: Active Focus (Xapware Technologies), C.A.R.E (Sophist Group), RMTRAK (RBC, Inc), RTMWORKSHOP (Integrated Chipware, Inc), State (EDS), Vital Link (Compliance Automation, Inc), DOORS (Telelogic).
Инструменты проектирования. Данная группа инструментов включает в себя средства создания и проверки программного дизайна.
Можно выделить следующие инструменты проектирования: Rational Suite Development Studio (IBM) используется для проектиро-
вания и реализации программного обеспечения.
Rational Rose (IBM) – средство визуального моделирования (анализа и проектирования) на основе UML.
Rational XDE (IBM) – средство анализа и проектирования, интегрируемое с платформами MSVisual Studio, .NET, IBMWEBSPHERE Studio Application Developer. При работе с Rational XDE программный код генерируется автоматически, обеспечивая синхронизацию между кодом и моделью (и наоборот), возможно отображение элементов кода Java и C# в UML.
Oracle Designer (Oracle) – средство моделирования и генерации приложений, представляющее собой семейство методов и поддерживающих их программных продуктов. Приложения создаются на основе UML-моделей, которые хранятся в общем репозитории, что позволяет поддерживать работу больших коллективов разработчиков, реализуя многопользовательский режим работы и параллельное обновление. Физическая среда хранения – база данных Oracle. В состав Oracle Designer входят следующие компоненты:
– Repository Administrator – средства управления репозиторием (создание и удаление приложений, управление доступом к данным со сто-
ИНЖЕНЕРИЯ |
роны различных пользователей, экспорт и импорт данных. |
|
– Repository Object Navigator – средство доступа к репозиторию, обе- |
||
|
||
|
спечивающее многооконный объектно ориентированный интерфейс до- |
|
|
ступа ко всем элементам репозитория. |
|
ПРОГРАММНАЯ |
– Process Modeler – средство анализа и моделирования бизнес-про- |
|
цессов. |
||
|
||
|
– Systems Modeler – набор средств построения функциональных и |
|
|
информационных моделей проектируемой системы, включая средства |
|
|
для построения диаграммы «сущность – связь», диаграмм функциональ- |
|
|
|
|
|
|
92
ных иерархий, диаграмм потоков данных и средство анализа и модификации связей объектов репозитория различных типов.
–System Designer – набор средств проектирования программного обеспечения, включающий средство построения структуры реляционной базы данных, средства построения диаграмм, отображающих взаимодействие сданными, иерархию, структуру и логику приложений, реализуемую хранимыми процедурами на языке PL/SQL.
–Server Generator – генератор описаний объектов базы данных Oracle (таблиц, индексов, ключей, последовательностей и т. д.
–Forms Generator – генератор приложений для Oracle Forms, в числе которых – различные экранные формы, средства контроля данных, проверка ограничений целостности и автоматические подсказки.
–Repository Reports – генератор стандартных отчетов, интегрированный с Oracle Reports.
–Together Control Center (Borland) – средство анализа и проектирования приложений, в основе которого лежит один из вариантов подхода «Быстрой разработки программного обеспечения» Feature Driven Development (FDD). Среда поддерживает визуальное моделирование на UML, впоследствии код генерируется на Java, C, C#, C++, Visual Basic. Кроме того, поддерживаются платформы J2EE, .NET. Имеются варианты для поддержки работы небольшого коллектива разработчиков Together Solo, а также редакции для платформы IBM WEBSPHERE и среды разработки Jbuilder.
–ALLFUSION Modeling Suite (Computer Associates) – интегрированный комплекс CASE-средств, имеющий следующие инструменты проектирования:
–ALLFUSION Process Modeler (BPWIN) – средство функционального моделирования (моделирования бизнес-процессов), реализующее метод IDEF0, поддерживающее диаграммы потоков данных DFD и стандарт IDEF3;
–ALLFUSION ERWIN Data Modeler (ERWIN) – набор средств концептуального моделирования данных на основе метода IDEF1X, реализующее проектирование схемы базы данных и генерацию ее описания на языке целевой базы данных (Oracle, Sybase, DB2, Microsoft SQL Server и др.
–Model Mart – средство, обеспечивающее многопользовательский доступ к моделям, построенным с использованием BPWIN и ERWIN.
Инструменты конструирования. Инструменты конструирования
используются для производства и трансляции программного представления (например, исходного кода), достаточно детального и явного для машинного выполнения. Выделяют следующие виды ранее указанных инструментов.
II Часть | пособие Учебное
93
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
Редакторы. Используются для создания и модификации исходного кода программ и, возможно, ассоциированной с ними документации (например, javadoc). Это могут быть как редакторы «общего назначения» (что на протяжении многих лет наблюдается в UNIX и unix-подобных средах или специализированные редакторы с поддержкой специфики целевого языка программирования (что является в большинстве случаев прерогативой интегрированных сред разработки – IDE). Однако документирование все же является не только и не столько частью редактора, сколько самостоятельной функциональностью, пусть часто и тесно интегрированной с редактором
Компиляторы и генераторы кода. Традиционно компиляторы являлись неинтерактивными (командными) трансляторами исходного кода. Однако существует тенденция интеграции компиляторов и редакторов в интегрированные среды программирования. К этому классу также относятся препроцессоры, линковщики (загрузчики), а также генераторы кода (за исключением, может быть, объектно ориентированных средств проектирования, поддерживающих связь с исходным кодом и имеющих тенденцию быть тесно интегрированными с новым поколением IDE).
Интерпретаторы. Обеспечивают исполнение программ посредством эмуляции. Они могут поддерживать действия по конструированию программного обеспечения, предоставляя для исполнения программ окружение, более контролируемое и поддающееся наблюдению, чем это обычно способна сделать та или иная операционная система. Следует отметить определенную интеграцию компиляторов и интерпретаторов. Ярким тому свидетельством является использование так называемой just-in-time компиляции, компиляции «на лету», когда промежуточный программный код по мере исполнения или с опережением (например, в процессе запуска (загрузки) программы) преобразуется в набор инструкций, исполняемых средствами операционной системы в целях безопасности, но под контролем среды исполнения. Такого рода подход стал родоначальником ряда современных программных платформ, например, Java и .NET.
Отладчики. Выделены в самостоятельную категорию, так как они поддерживают процесс конструирования программного обеспечения, хотя функционально отличаются от редакторов и компиляторов. Любая современная среда имеет встроенный отладчик, основные задачи которого заключаются в трассировке (пошаговом выполнении) программы, отслеживании, установке или изменении значений переменных в процессе выполнения кода, установке или удалении контрольных точек или условий остановки, выполнения и т. д. Существуют также отладчики, не являющиеся частью среды разработки, наиболее популярные из них приведены ниже:
94
AQTIME – коммерческий отладчик для приложений, созданных для NET Framework версии 1.0, 1.1, 2.0, 3.0, 3.5 (включая ASP.NET приложения, а также для 32- и 64-битных приложений Windows);
DBX – стандартный отладчик уровня исходного кода для языков C, C++, Fortran и Java доступный для операционных систем Solaris, AIX, IRIX, Tru64 UNIX, GNU/LinuxиBSD;
DDD – графический фронтэнд к отладчикам DBX и GDB, использующий библиотеку виджетов Motif;
DTRACE – фреймворк динамической трассировки для Solaris, Open Solaris, FREBSD, MACOSX и QNX;
Electric Fence – отладчик памяти;
GNUDebugger – портабельный отладчик уровня исходного кода и дизассемблер из системы программирования GNU, работающий со многими языками программирования, операционными системами и системными архитектурами;
IDA – дизассемблер и отладчик уровня машинного кода для операционных систем семейств GNU/Linux и Windows;
MDB – универсальный модульный отладчик уровня исходного кода для Solaris, может использоваться как локальный отладчик ядра;
Microsoft Visual Studio – среда разработки программного обеспечения корпорации Microsoft, включающая средства отладки уровня исходного кода;
OLLYDBG – бесплатный отладчик уровня машинного кода для операционных систем семейства Windows;
SOFTICE – отладчик уровня машинного кода для операционных систем семейства Windows;
DR Watson – стандартный отладчик Windows, позволяющий создавать дампы памяти;
TOTALVIEW – коммерческий отладчик для Unix;
WINDBG – бесплатный отладчик от корпорации Microsoft; FLEXTRACER – коммерческий отладчик SQL-запросов для различных
СУБД.
Кроме того, на рынке давно присутствуют такие инструменты, как интегрированные средства разработки IDE – integrated developers environment), а также программные библиотеки (библиотеки компонент), без которых невозможно представить сегодняшний процесс разработки программных средств.
Инструменты тестирования. Все инструменты тестирования классифицируются.
– Генераторы тестов помогают в разработке сценариев тестирования;
II Часть | пособие Учебное
95
– Средства выполнения тестов обеспечивают среду исполнения тестовых сценариев в контролируемом окружении, позволяющем отслеживать поведение объекта, подвергаемого тестированию;
– Инструменты оценки тестов поддерживают оценку результатов выполнения тестов, помогая определить, в какой степени и где именно обнаруженное поведение тестируемого объекта соответствует ожидаемому поведению;
– Средства управления тестами обеспечивают поддержку всех аспектов процесса тестирования программного обеспечения;
– Инструменты анализа производительности используются для количественной оценки и анализа производительности программного обеспечения, являющегося специализированным видом тестирования, цель которого – оценка поведения программ с точки зрения производительности, в отличие от тестирования корректности функционального поведения.
Рассмотрим некоторые средства, поддерживающие тестирование. Один из вариантов Rational Suite (IBM) называется Rational Suite Test
Studio, представляет собой целый набор продуктов и предназначен для автоматического тестирования приложений.
Компания Rational поставляет на рынок следующие программные средства:
– Quantify собирает полную статистику о количестве вызовов функций в тестируемой программе, позволяя тем самым узнавать временные характеристики отдельных частей приложения;
– Pure Coverage позволяет быстро найти участки кода, пропущенные при тестировании;
– Purify отлавливает все ошибки, связанные с утечкой памяти, а также некоторые Run-time ошибки;
– Rational Test Manager – средство планирования функционального и нагрузочного тестирования;
– Rational Robot – средство записи и воспроизведения тестовых сценариев;
– Rational Test Factory – средство тестирования надежности;
ИНЖЕНЕРИЯ |
– Rational Quality Architect – средство генерации кода для тестиро- |
|
|
||
|
вания. |
|
|
Корпорация Borland выпустила следующие продукты: Optimizeit |
|
ПРОГРАММНАЯ |
Suite, Optimizeit Profiler for .NET позволяют выявить потенциальные про- |
|
блемы использования аппаратных ресурсов – памяти и процессорных |
||
|
||
|
мощностей на платформах J2EE и .Net соответственно. |
|
|
Optimizeit SERVERTRACE предназначена для управления произво- |
|
|
дительностью серверных J2EE-приложений с точки зрения достижения |
|
|
|
|
|
|
96
заданного уровня обслуживания и сбора контрольных данных по виртуальным Java-машинам.
Инструменты сопровождения. Рассмотрим две категории инструментов сопровождения:
1.Инструменты облегчения понимания помогают человеку в понимании программ. Примерами могут служить различные средства визуализации.
2.Инструменты реинжиниринга поддерживают деятельность по реинжинирингу.
Среди компаний, которые выпускают Case-средства, поддерживающие сопровождение, выделяют Gemini Consulting с методологией Construct и Andersen Consulting (продукт Eagle). Особенностью инструментов реинжиниринга является сочетание в одной среде инструментов для специалистов двух областей: 1) непосредственно реинжиниринга бизнес-процессов; 2) разработчиков программного обеспечения, поддерживающего модифицируемый бизнес-процесс.
Среда Clear Quest от компании Rational представляет собой средство управления запросами на изменение, используется для контроля изменений в рамках всего жизненного цикла программного обеспечения,
атакже для поддержки процесса реализации запроса на сопровождение, поскольку и устранение дефектов, и расширение функциональности связаны с изменением многих артефактов продукта.
В общем случае любой из рассмотренных ранее продуктов, поддерживающих процесс «понимания» программных систем и контроля изменений можно использовать как инструмент сопровождения.
Инструменты конфигурационного управления. В рамках системы
Together CONTROLCENTER (визуальная среда проектирования от Borland) реализована технология LIVESOURCE, которая обеспечивает синхронизацию между проектом приложения и изменениями. Контроль версий осуществляется благодаря функциональной интеграции Together и системы STARTEAM. Поддерживается также интеграция с системой управления конфигурацией Rational CLEARCASE. Выпускаются следующие версии STARTEAM:
STARTEAM Express Edition поддерживает работу небольших коллективов разработчиков – до десяти человек;
STARTEAM Enterprise Edition предназначен для команд разработчиков среднего размера;
STARTEAM Enterprise Advantage Edition поддерживает работу больших коллективов разработчиков, в том числе географически расположенных в различных местах.
II Часть | пособие Учебное
97
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
В процессе работы над проектом все артефакты программного продукта располагаются в едином репозитории, что обеспечивает доступ к ним всех участников проекта.
Компания IBM выпустила Rational CLEARCASE – инструмент, который упрощает ведение процесса управления версиями и конфигурациями. Можно выделить следующие его версии:
–Rational CLEARCASE LT – продукт, предназначенный для небольших рабочих групп, который отличается от полнофункционального CLEARCASE отсутствием динамических представлений, работой в однодоменном окружении и отсутствием поддержки CLEARCASE Multisite. Rational CLEARCASE LT предоставляет основные средства контроля версий компонентов разработки, идеально подходит для небольших и средних коллективов разработчиков, расположенных в одном месте, входит в состав платформы IBM Rational Team Unifying Platform и пакета WEBSPHERE Studio Application Developer;
–Rational CLEARCASE MULTISITE – дополнительная система для Rational CLEARCASE, предназначенная для управления географически распределенными программными ресурсами, задействованными в средних и крупных проектах; обеспечивает автоматическую безошибочную репликацию для географически удаленных помещений, легко масштабируется и способен обеспечить поддержку проектов любого размера; обеспечивает эффективное обновление информации, передавая разработчикам только инкрементные изменения, произошедшие в репозиториях проектов;
–Rational CLEARCASE представляет удобные средства автоматического резервного копирования и восстановления;
–Rational CLEARCASE интегрируется в следующие рабочие среды: Microsoft Visual Studio, IBM VISUALAGE for Java, IBM WEBSPHERE Studio, Sybase POWERBUILDER, Microsoft Word и др. Специальные настройки графического интерфейса позволяют разработчикам в большей степени концентрироваться на решении конкретных задач, не отвлекаясь на рутинные процедуры.
Инструменты управления инженерной деятельностью. Эти сред-
ства подразделяются на следующие категории:
–инструменты планирования и отслеживания проектов – используются для календарного планирования работ, количественной оценки усилий и стоимостных ожиданий, связанных с проектами;
–инструменты управления рисками – служат для идентификации, оценки ожиданий и мониторинга рисков;
–инструменты количественной оценки – используются при выполнении работ, связанных с программой количественной оценки, проводи-
мой в отношении проектов программного обеспечения;
98
–инструменты для упрощенного доступа к проектным данным;
–инструменты для организации коммуникаций;
–инструменты для интеграции с другими приложениями.
Можно привести следующих производителей перечисленных выше инструментов: Primavera Systems (продукт SURETRAK Project Manager), Microsoft (продукт MS Project), Project Management Technologies (продукт Spider).
Во всех перечисленных системах имеются возможности оптимизации хода выполнения работ по времени, бюджету и использованию ресурсов, в том числе трудовых, а также имеются возможности структурирования рисков.
Инструменты поддержки процессов. Существует несколько типов инструментов, имеющих особое значение в поддержке процессов программной инженерии:
–инструменты моделирования, позволяющие, в частности, описать и модель процессов, как таковую;
–инструменты управления проектами;
–инструменты конфигурационного управления, поддерживающие работу с актуальными версиями всего комплекса артефактов проекта и позволяющие задать поведенческие характеристики (в упрощенном понимании workflow) и атрибуты этих артефактов в форме элементов конфигураций;
–ролевые платформы разработки программного обеспечения, охватывающие все стадии жизненного цикла и являющиеся развитием интегрированных средств разработки и CASE-инструментов в направлении поддержки «смежной» функциональности – управления требованиями, работ по конфигурационному управлению с поддержкой управления изменениями тестирования и оценки качества.
Инструменты обеспечения качества. Средства обеспечения каче-
ства подразделяются на следующие категории: |
|
|
– инструменты инспектирования – используются для поддержки об- |
|
|
зора (review) и аудита; |
|
|
– инструменты (статического) анализа – используются для анализа |
|
|
программных артефактов, данных, потоков работ и зависимостей. Такие |
Учебное |
|
инструменты предназначены для проверки определенных свойств или |
||
артефактов в целом на соответствие заданным характеристикам. На- |
||
пример, можно использовать средство выявления непротестированных |
IIЧасть|пособие |
|
участков кода для оценки качества тестирования. |
||
|
99
Учебное издание
ПРОГРАММНАЯ
ИНЖЕНЕРИЯ
УЧЕБНОЕ ПОСОБИЕ
Часть II
Составитель
Киселева Татьяна Владимировна
Редактор, технический редактор Н. Б. Копнина
Компьютерная верстка Н. Неговора
_________________________________________________________
Подписано в печать 5.09.2017
Формат 60х84 1/16 |
Усл. п. л. 5,81 |
Уч.-изд. л. 5,43 |
Бумага офсетная |
Заказ 107 |
Тираж 20 экз. |
_________________________________________________________
Отпечатано в издательско-полиграфическом комплексе ФГАОУ ВО «Северо-Кавказский федеральный университет» 355029 г. Ставрополь, пр-т Кулакова, 2
