Документация, создаваемая на различных этапах жизненного цикла
Синхронизация всех этапов разработки происходит при помощи документов, которые создаются на каждом из этапов. Документация при этом создается и на прямом отрезке жизненного цикла - при разработке программной системы, и на обратном - при ее верификации. Попробуем на примере V-образного жизненного цикла проследить, какие типы документов создаются на каждом из отрезков и какие взаимосвязи между ними существуют (Рис 1.8).
Результатом этапа разработки требований к системе являются сформулированные требования к системе: документ, описывающие общие принципы работы системы, ее взаимодействие с "окружающей средой" - пользователями системы, а также, программными и аппаратными средствами, обеспечивающими ее работу. Обычно параллельно с требованиями к системе создается план верификации и определяется стратегия верификации. Эти документы определяют общий подход к тому, как будет выполняться тестирование, какие методики будут применяться, какие аспекты будущей системы должны быть подвергнуты тщательной проверке. Еще одна задача, решаемая при помощи определения стратегии верификации - определение места различных верификационных процессов и их связей с процессами разработки.
Верификационный процесс, работающий с системными требованиями - это процесс валидации требований, сопоставления их реальным ожиданиям заказчика. Забегая вперед, скажем, что процесс валидации отличается от приемо-сдаточных испытаний, выполняемых при передаче готовой системы заказчику, хотя может считаться частью таких испытаний. Валидация является средством доказать не только корректность реализации системы с точки зрения заказчика, но и корректность принципов, положенных в основу ее разработки.
Рис 1.8. Процессы и документы при разработке программных систем
Требования к системе являются основой для процесса разработки функциональных требований и архитектуры проекта. В ходе этого процесса разрабатываются общие требования к программному обеспечению системы, к функциям, которые она должна выполнять. Функциональные требования часто включают в себя определение моделей поведения системы в штатных и нештатных ситуациях, правила обработки данных и определения интерфейса пользователя. Текст требования, как правило, включает в себя слова "должна, должен" и имеет структуру вида "В случае, если значение температуры на датчике ABC достигает 30 и выше градусов Цельсия, система должна прекращать выдачу звукового сигнала". Функциональные требования являются основой для разработки архитектуры системы - описания ее структуры в терминах подсистем и структурных единиц языка, на котором производится реализация - областей, классов, модулей, функций и т.п.
На базе функциональных требований пишутся тест-требования - документы, содержащие определение ключевых точек, которые должны быть проверены для того, чтобы убедиться в корректности реализации функциональных требований. Часто тест-требования начинаются словами "Проверить, что" и содержат ссылки на соответствующие им функциональные требования. Примером тест-требований для приведенного выше функционального требования могут служить "Проверить, что в случае падения температуры на датчике ABC ниже 30 градусов Цельсия система выдает предупреждающий звуковой сигнал" и "Проверить, что в случае, когда значение температуры на датчике ABC выше 30 градусов Цельсия, система не выдает звуковой сигнал".
Одна из проблем, возникающих при написании тест-требований - принципиальная нетестируемость некоторых требований: например, требование "Интерфейс пользователя должен быть интуитивно понятным" невозможно проверить без четкого определения того, что является интуитивно понятным интерфейсом. Такие неконкретные функциональные требования обычно впоследствии видоизменяют.
Архитектурные особенности системы также могут служить источником для создания тест-требований, учитывающих особенности программной реализации системы. Примером такого требования является, например, "Проверить, что значение температуры на датчике ABC не выходит за 255".
На основе функциональных требований и архитектуры пишется программный код системы, для его проверки на основе тест-требований готовится тест-план - описание последовательности тестовых примеров, выполняющих проверку соответствия реализации системы требованиям. Каждый тестовый пример содержит конкретное описание значений, подаваемых на вход системы, значений, которые ожидаются на выходе, и описание сценария выполнения теста.
В зависимости от объекта тестирования тест-план может готовиться либо в виде программы на каком-либо языке программирования, либо в виде входного файла данных для инструментария, который выполняет тестируемую систему и передает ей значения, указанные в тест-плане, либо в виде инструкций для пользователя системы, описывающей необходимые действия, которые нужно выполнить для проверки различных функций системы.
В результате выполнения всех тестовых примеров собирается статистика об успешности прохождения тестирования - процент тестовых примеров, для которых реальные выходные значения совпали с ожидаемыми, так называемых пройденных тестов. Непройденные тесты являются исходными данными для анализа причин ошибок и последующего их исправления.
На этапе интеграции осуществляется сборка отдельных модулей системы в единое целое и выполнение тестовых примеров, проверяющих всю функциональность системы.
На последнем этапе осуществляется поставка готовой системы заказчику. Перед внедрением специалисты заказчика совместно с разработчиками проводят приемо-сдаточные испытания - выполняют проверку критичных для пользователя функций согласно заранее утвержденной программе испытаний. При успешном прохождении испытаний система передается заказчику, в противном случае отправляется на доработку.
Понятие верификации
Верификация - это процесс определения, выполняют ли программные средства и их компоненты требования, наложенные на них в последовательных этапах жизненного цикла разрабатываемой программной системы.
Основная цель верификации состоит в подтверждении того, что программное обеспечение соответствует требованиям. Дополнительной целью является выявление и регистрация дефектов и ошибок, которые внесены во время разработки или модификации программы.
Верификация является неотъемлемой частью работ при коллективной разработке программных систем. При этом в задачи верификации включается контроль результатов одних разработчиков при передаче их в качестве исходных данных другим разработчикам.
Для повышения эффективности использования человеческих ресурсов при разработке верификация должна быть тесно интегрирована с процессами проектирования, разработки и сопровождения программной системы.
Заранее разграничим понятия верификации и отладки. Оба этих процесса направлены на уменьшение ошибок в конечном программном продукте, однако отладка - процесс, направленный на локализацию и устранение ошибок в системе, а верификация - процесс, направленный на демонстрацию наличия ошибок и условий их возникновения.
Кроме того, верификация, в отличие от отладки - контролируемый и управляемый процесс. Верификация включает в себя анализ причин возникновения ошибок и последствий, которые вызовет их исправление, планирование процессов поиска ошибок и их исправления, оценку полученных результатов. Все это позволяет говорить о верификации как о процессе обеспечения заранее заданного уровня качества создаваемой программной системы.
Задачи и цели процесса верификации
Сначала рассмотрим цели верификации. Основная цель процесса - доказательство того, что результат разработки соответствует предъявленным к нему требованиям. Обычно процесс верификации проводится сверху вниз, начиная от общих требований, заданных в техническом задании и/или спецификации на всю информационную систему, и заканчивая детальными требованиями к программным модулям и их взаимодействию. В состав задач процесса входит последовательная проверка того, что в программной системе:
общие требования к информационной системе, предназначенные для программной реализации, корректно переработаны в спецификацию требований высокого уровня к комплексу программ, удовлетворяющих исходным системным требованиям;
требования высокого уровня правильно переработаны в архитектуру ПО и в спецификации требований к функциональным компонентам низкого уровня, которые удовлетворяют требованиям высокого уровня;
спецификации требований к функциональным компонентам ПО, расположенным между компонентами высокого и низкого уровня, удовлетворяют требованиям более высокого уровня;
архитектура ПО и требования к компонентам низкого уровня корректно переработаны в удовлетворяющие им исходные тексты программных и информационных модулей;
исходные тексты программ и соответствующий им исполняемый код не содержат ошибок.
Кроме того, верификации на соответствие спецификации требований на конкретный проект программного средства подлежат требования к технологическому обеспечению жизненного цикла ПО, а также требования к эксплуатационной и технологической документации.
Цели верификации ПО достигаются посредством последовательного выполнения комбинации из инспекций проектной документации и анализа их результатов, разработки тестовых планов тестирования и тест-требований, тестовых сценариев и процедур и последующего выполнения этих процедур. Тестовые сценарии предназначены для проверки внутренней непротиворечивости и полноты реализации требований. Выполнение тестовых процедур должно обеспечивать демонстрацию соответствия испытываемых программ исходным требованиям.
На выбор эффективных методов верификации и последовательность их применения в наибольшей степени влияют основные характеристики тестируемых объектов:
класс комплекса программ, определяющийся глубиной связи его функционирования с реальным временем и случайными воздействиями из внешней среды, а также требования к качеству обработки информации и надежности функционирования;
сложность или масштаб (объем, размеры) комплекса программ и его функциональных компонентов, являющихся конечными результатами разработки;
преобладающие элементы в программах: осуществляющие вычисления сложных выражений и преобразования измеряемых величин или обрабатывающие логические и символьные данные для подготовки и отображения решений.
Определим некоторые понятия и определения, связанные с процессом тестирования как составной части верификации. Майерс дает следующие определения основных терминов [2].
Тестирование - процесс выполнения программы с целью обнаружения ошибки.
Тестовые данные - входы, которые используются для проверки системы.
Тестовая ситуация (test case) - входы для проверки системы и предполагаемые выходы в зависимости от входов, если система работает в соответствии со спецификацией требований.
Хорошая тестовая ситуация - та ситуация, которая обладает большой вероятностью обнаружения пока еще необнаруженной ошибки.
Удачный тест - тест, который обнаруживает пока еще необнаруженную ошибку.
Ошибка - действие программиста на этапе разработки, приводящее к тому, что в программном обеспечении содержится внутренний дефект, который в процессе работы программы может привести к неправильному результату.
Отказ - непредсказуемое поведение системы, приводящее к неожидаемому результату, которое могло быть вызвано дефектами, содержащимся в ней.
Таким образом, в процессе тестирования программного обеспечения, как правило, проверяют следующее:
программное обеспечение соответствует требованиям на него;
в ситуациях, не отраженных в требованиях, программное обеспечение ведет себя адекватно, то есть не происходит отказ системы;
наличие типичных ошибок, которые делают программисты.
- Архитектура crm-систем
- 2. Архитектура кис []
- 3. Архитектура кис []
- 4. Архитектура кис []
- Готовый ответ. (Гриша) scm ( система управления сетями поставок ) -
- Scm надо рассматривать вне erp, а как отдельную систему с ней взаимодействующую.
- Функции scm
- Архитектура scm
- 5. Архитектура кис []
- Информационная система как производственная система
- 6. Архитектура кис []
- Классификация по архитектуре
- Классификация по степени автоматизации
- Классификация по характеру обработки данных
- Классификация по сфере применения
- 7. Архитектура кис []
- 8. Архитектура кис []
- 1С:Зарплата и Управление Персоналом
- 9. Архитектура кис []
- 2. Программно-аппаратная платформа
- 3. Системы документооборота
- 4. Информационные системы
- 10. Архитектура кис []
- § Iso/iec 12207:1995 – стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного по. Стандарт не содержит описания фаз, стадий и этапов.
- Каскадная модель
- Итеративная
- 8.2.3. Типы резервного копирования
- 8.2.3.1. Полные копии
- 8.2.3.2. Добавочные копии
- 8.2.3.3. Разностные копии
- 8.2.5. Хранение резервных копий
- Модели разработки ис
- Методы проектирования снизу-вверх и сверху-вниз
- Подходы к проектированию ис
- 1. Структурный (функциональный) подход
- 2. Объектно-ориентированный подход
- Диаграммы потоков данных dfd (Data Flow Diagrams)
- 1 Область применения
- 2 Определения
- Методология функционального моделирования работ sadt
- Диаграммы потоков данных dfd (Data Flow Diagrams)
- Особенности методологии uml
- Основные виды диаграмм, классификации
- Другая классификация (более поздняя, более полная)
- Детальное описание диаграмм
- 6) Диаграмма кооперации
- Особенности применения
- Способы применения uml при разработке по
- Методология объектного проектирования на языке uml (uml-диаграммы)
- Модель rup. Основные диаграммы модели rup.
- 3. Архитектура Системных Паттернов
- 3.1.1 Репозиторий
- 3.1.2 Клиент/сервер
- 3.1.3 Обьектно - ориентированный, Модель предметной области (Domain Model), модуль таблицы (Data Mapper)
- 3.1.4 Многоуровневая система (Layers) или абстрактная машина
- 3.1.5 Потоки данных (конвейер или фильтр)
- 4.1 Структурные паттерны интеграции
- 4.1.1 Взаимодействие "точка - точка"
- 4.1.2 Взаимодействие "звезда" (интегрирующая среда)
- 4.1.3 Смешанный способ взаимодействия
- 4.2 Паттерны по методу интеграции
- 4.2.1 Интеграция систем по данным (data-centric).
- 4.2.2 Функционально-центрический (function-centric) подход.
- 4.2.3 Объектно-центрический (object-centric).
- 4.2.4 Интеграция на основе единой понятийной модели предметной области (concept-centric).
- 4.3 Паттерны интеграции по типу обмена данными
- 4.3.1 Файловый обмен
- 4.3.2 Общая база данных
- 4.3.3 Удаленный вызов процедур
- 4.3.4 Обмен сообщениями
- Образец (паттерн) проектирования.
- Модель sadt. Основные диаграммы модели sadt.
- Все указанные требования должны быть трассируемыми.
- Документация, создаваемая на различных этапах жизненного цикла
- 1.7. Тестирование, верификация и валидация - различия в понятиях
- 1) Требования документации охватывают весь жизненный цикл программного обеспечения.
- 2) Документирование должно быть управляемым.
- 5) Должны быть определены и использованы стандарты по документированию.
- 6) Должны быть определены средства поддержки.
- 1) Требования документации охватывают весь жизненный цикл программного обеспечения.
- 2) Документирование должно быть управляемым.
- 5) Должны быть определены и использованы стандарты по документированию.
- 6) Должны быть определены средства поддержки.
- 1. Информация для управления
- 2. Связь между задачами
- 3. Этапы разработки системы бюджетирования
- 4. Главные этапы бюджетирования: формирование финансовой структуры, создание структуры бюджетов
- 5. Типичные причины, ведущие к снижению эффективности бизнес-процесса бюджетирования
- Что такое затраты
- Непосредственная классификация затрат
- Описание видов затрат
- 1) Входящие и истекшие
- 2) Прямые и косвенные затраты.
- 3) Основные и накладные.
- 4) Производственные и внепроизводственные.
- 5) Одноэлементные и комплексные затраты.
- 6) Постоянные, переменные и полупеременные.
- 7) Затраты, принимаемые и не принимаемые в расчет при оценках.
- 8) Безвозвратные затраты.
- 9) Вмененные (воображаемые) затраты.
- 10) Приростные и предельные затраты.
- 11) Планируемые и непланируемые затраты.
- Ещё одна классификация затрат
- Ещё одна классификация затрат в уу
- 1) Процесс принятия управленческих решений
- 2) Процесс прогнозирования
- 3) Процесс планирования
- 4) Процесс нормирования
- 5) Процесс организации
- 6) Процесс учета
- 7) Процесс контроля
- 8) Процесс регулирования
- 9) Процесс стимулирования
- 10) Процесс анализа
- Классификация затрат в отечественном управленческом учете.
- 2. Определение затрат. Как классифицировать затраты
- Методы учета затрат и калькулирования
- 1.Понятие себестоимости и калькулирования себестоимости
- 2. Попроцессный и позаказный методы калькулирования себестоимости
- 3.Методы калькулирования по полноте затрат
- Метод полных затрат
- Директ-костинг
- Ещё один метод - abc-костинг (дифференцированный метод учета себестоимости)
- Методы калькулирования себестоимости продукции.
- 1. Нормативный метод калькулирования
- 2. Метод (способ) прямого счета
- 3. Параметрический метод
- 4. Коэффициентный метод
- 5. Комбинированный и позаказный методы
- 6. Попередельный метод калькулирования
- 7. Позаказный и попроцессное калькулирования
- 9. «Директ-костинг» (direct costing)
- Что такое управленческий учет (уу)
- Цель и задачи уу
- Другое описание задач уу
- 1. Учет ресурсов организации
- 2. Контроль и анализ финансово-хозяйственной деятельности
- 3. Планирование
- 4. Прогнозирование и оценки прогноза
- Ещё одно описание задач уу
- Объекты
- Задачи управленческого учета
- 1. Учет ресурсов организации
- 2. Контроль и анализ финансово-хозяйственной деятельности
- 3. Планирование
- 4. Прогнозирование и оценки прогноза
- 1. Система учета и управления затратами
- 2. Система показателей деятельности
- 3. Система долгосрочных и текущих бюджетов
- 4. Система управленческих отчетов
- 1. Идентификация, измерение и накопление данных
- 2. Анализ, подготовка и интерпретация информации
- 3. Разработка и технологическое внедрение информационной системы
- 4. Администрирование системы управленческого учета
- 8. Факторы, оказывающие влияние на организацию системы управленческого учета в организациях
- Определение
- Какие затраты включаются
- Как ведётся учёт затрат
- Где используется
- Ключевые понятия
- Сущность
- Пример:
- Достоинства метода
- Недостатки метода
- Система «директ-костинг» в современном управленческом учете.
- 9. «Директ-костинг» (direct costing)
- Сущность и методика нормативного метода учета затрат.
- 1. Нормативный метод калькулирования
- Определение
- Состав себестоимости
- Виды себестоимости
- Структура себестоимости
- Структура себестоимости по статьям калькуляции
- Структура себестоимости по элементам затрат
- Состав и структура себестоимости продукции
- Показатели себестоимости продукции
- Базовые показатели финансового менеджмента.
- I классификация
- II классификация
- Эффект финансового левереджа;
- Этапы оптимизации структуры капитала Анализ капитала
- Определяется
- Определяют систему коэффициентов
- Эффективность использования капитала
- Оценка факторов, определяющих структуру капитала
- (Применить) Методы оптимизации
- Глава 1. Условия осуществления безналичных расчетов
- Глава 2. Расчеты платежными поручениями
- Глава 3. Расчеты по аккредитивам
- Глава 4. Расчеты чеками
- Глава 5. Расчеты по инкассо
- Глава 6. Заключительные положения
- Учет дебиторской задолженности
- 1. Учет кредиторской задолженности
- 1.1. Учет расчетов займам
- 1.2. Учет расчетов с поставщиками и подрядчиками
- 1.3. Учет задолженности по налогам
- 1.4. Учет прочей кредиторской задолженности
- 2 Базовые денежные потоки экономической системы.
- Государственный кредит.
- Источники образования государственных доходов.
- 7. Коммерческий кредит (кк) и его особенности
- Обязательное и добровольное страхование и их взаимодействие.
- Коммерческий кредит и его особенности.
- 1 Понятие ликвидности активов и ее связь с доходностью.
- Финансовый рынок и его макроэкономическая задача.