- •230100.62 (09.03.01) «Информатика и вычислительная техника» профиля подготовки «Программное обеспечение вычислительной техники и
- •231000.62 (09.03.04) «Программная инженерия» профиля подготовки «Разработка программно-информационных систем»
- •1) 230100.62 (09.03.01) «Информатика и вычислительная техника»:
- •2) 231000.62 (09.03.04) «Программная инженерия»:
- •Лекция №1. Основные понятия и определения
- •Лекция №2. Прикладной системный анализ при разработке по. Принципы структурного анализа. Процедура требований.
- •2.1 Проблема сложности ис
- •2.2 Основные понятия структурного анализа
- •2.3 Принципы структурного анализа
- •2.4 Группы средств структурного анализа и их взаимоотношения
- •2.5 Краткий список структурных методологий по группам средств моделирования
- •Лекция №3. Моделирование функций по. Нотация idef0. Case-средство bpWin
- •3.1 Диаграммы idef0
- •3.2 Виды связей в idef0
- •3.3 Диаграмма дерева узлов
- •3.4 Case-средство bpWin
- •Лекция №4. Описание динамики системы. Нотация idef3
- •4.1 Основные символы idef3
- •4.2 Виды связей в idef3
- •4.3 Пример диаграммы idef3
- •Лекция №5. Постановка требований к данным. Словари данных. Моделирование данных в нотации idef1x. Case-средство erWin
- •5.1 Словарь данных
- •5.2 Определение структуры данных для информационных потоков
- •5.3 Моделирование данных в нотации idef1x
- •5.3.1 Базовые понятия erd
- •5.3.2 Виды сущностей в idef1x
- •5.3.3 Виды связей в idef1x
- •Лекция №6. Стандарт онтологического исследования idef5
- •6.1 Основные принципы онтологического анализа
- •6.2 Концепции idef5
- •6.3 Язык описания онтологий в idef5
- •6.4 Виды схем и диаграмм idef5
- •Лекция №7. Постановка требований к интерфейсу по. Понятие Usability.
- •7.1 Эргономические цели и показатели качества программного продукта
- •7.2 Проблемы, возникающие на этапе разработки прототипа gui и варианты их решения
- •7.3 Принципы реализации пользовательского интерфейса
- •Лекция №8. Управление требованиями к программному продукту. Case-средство Requisite Pro.
- •8.1 Нормативная основа
- •8.2 Основные положения
- •8.2.1 Цели управления требованиями
- •8.2.2 Участники управления требованиями
- •8.2.3 Политика в области управления требованиями
- •8.3 Обеспечение процессов управления требований
- •8.3.1 Распределение ответственности
- •8.4 Действия по управлению требованиями
- •8.4.1 Анализ требований
- •8.4.2 Разработка материалов проекта на основе требований
- •8.4.3 Контроль изменений требований
- •8.5 Измерения
- •8.6.2 Контроль со стороны руководителя проекта
- •8.6.3 Контроль со стороны гок
- •8.7 Стандарт оформления требований
- •8.7.1 Шаблон для разработки требований
- •8.7.2 Правила оформления требований
- •8.7.3 Структурирование требований
- •8.8 Показатели качества требований
- •8.9 Начало работы с RequisitePro
- •Лекция №9. Тестирование приложений. Функциональное тестирование, нагрузочное тестирование. Case-средства Rational Functional Tester, Rational Performance Tester.
- •9.1 Дестабилизирующие факторы и методы обеспечения высокого качества функционирования по
- •9.2 Использование среды автоматизированного тестирования Platinum testBytes
- •9.3 Методы обеспечения качества и надежности программных средств
- •9.4 Использование case для повышения качества по
- •9.5 Влияние стандартов открытых систем на качество по
- •9.6 Повышение качества по путем тестирования
- •9.6.1 Основные особенности процесса тестирования по
- •9.6.2 Организационные особенности тестирования
- •9.6.3 Сертификация по
- •9.6.4 Организация и планирование тестирования для обеспечения качества по
- •9.7 Важнейшие разделы iso 9003
- •Документирование системы качества
- •Корректирующие действия
- •Лекция №10. Стандарты, регламентирующие разработку по
- •10.1 Стандарт iso 12207:1995
- •10.3 Серия стандартов гост 34-ххх «Информационная технология»
- •Заключение
- •Библиографический список
- •Приложения Приложение а. Перечень ключевых слов
- •660049, Г. Красноярск, пр. Мира, 82
Лекция №2. Прикладной системный анализ при разработке по. Принципы структурного анализа. Процедура требований.
План лекции
Прикладной системный анализ при разработке ПО. Принципы структурного анализа. Процедура консалтинга при автоматизации.
Проблемы сложности информационных систем.
Структурный анализ
Введение
Анализ требований разрабатываемой системы является важнейшим среди всех этапов ЖЦ. Он оказывает существенное влияние на все последующие этапы, являясь в то же время наименее изученным и понятным процессом. На этом этапе, во-первых, необходимо понять, что предполагается сделать, а во-вторых, задокументировать это, т.к. если требования не зафиксированы и не сделаны доступными для участников проекта, то они вроде бы и не существуют. При этом язык, на котором формулируются требования, должен быть достаточно прост и понятен заказчику.
Современная наука предоставляет для задач изучения требований к программному обеспечению механизм системного анализа.
Системный анализ изучает структуру реальных объектов и дает способы их формализованного описания. Общая теория систем, изучающая разнообразные по характеру системы с единых позиций, является его частью.
Системный анализ выполняется в три основные стадии:
выделение составных частей проблемы и их формализация;
поиск пути решения проблемы (в том числе с использованием математических методов);
реализация полученных результатов на практике.
Иногда системный анализ определяют как «методику улучшающего вмешательства в проблемную ситуацию»
Во многих аспектах системный анализ является наиболее трудной частью разработки. Проблемы, с которыми сталкивается системный аналитик, взаимосвязаны (и это является одной из главных причин их трудноразрешимости):
аналитику сложно получить исчерпывающую информацию для оценки требований к системе с точки зрения заказчика;
заказчик, в свою очередь, не имеет достаточной информации о проблеме обработки данных, чтобы судить, что является выполнимым, а что - нет;
аналитик сталкивается с чрезмерным количеством подробных сведений о предметной области и о новой системе;
спецификация системы из-за объема и технических терминов часто непонятна для заказчика;
в случае понятности спецификации для заказчика, она будет являться недостаточной для проектировщиков и программистов, создающих систему.
Применение известных аналитических методов снимает некоторые из перечисленных проблем анализа, однако эти проблемы могут быть существенно облегчены за счет применения современных структурных методов, среди которых центральное место занимают методологии структурного анализа. Структурным анализом принято называть метод исследования системы, который начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно [21]:
разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7);
ограниченный контекст, включающий лишь существенные на каждом уровне детали;
двойственность данных и операций над ними;
использование строгих формальных правил записи;
последовательное приближение к конечному результату.
Все методологии структурного анализа базируются на ряде общих принципов, часть из которых регламентирует организацию работ на начальных этапах ЖЦ, а часть используется при выработке рекомендаций по организации работ. В качестве двух базовых принципов используются следующие [21]:
«Разделяй и властвуй», представляющий собой принцип решения трудных проблем путем разбиения их на множество меньших независимых задач, легких для понимания и решения.
Принцип иерархического упорядочивания, декларирующий, что устройство этих частей также существенно для понимания целого. Понимаемость проблемы резко повышается при организации ее частей в древовидные иерархические структуры, т.е. система может быть понята и построена по уровням, каждый из которых добавляет новые детали.
Выделение двух базовых принципов инженерии программного обеспечения не означает, что остальные принципы являются второстепенными, игнорирование любого из них может привести к непредсказуемым последствиям (в том числе и к неуспеху всего проекта). Отметим основные из таких принципов.
Принцип абстрагирования – заключается в выделении существенных с некоторых позиций аспектов системы и отвлечение от несущественных с целью представления проблемы в простом общем виде.
Принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы.
Принцип упрятывания – заключается в скрытии несущественной на конкретном этапе информации: каждая часть "знает" только необходимую ей информацию.
Принцип концептуальной общности – заключается в следовании единой философии на всех этапах ЖЦ (структурный анализ - структурное проектирование – структурное программирование – структурное тестирование).
Принцип полноты – заключается в контроле на присутствие лишних элементов.
Принцип непротиворечивости – заключается в обоснованности и согласованности элементов.
Принцип логической независимости – заключается в концентрации внимания на логическом проектировании для обеспечения независимости от физического проектирования.
Принцип независимости данных – заключается в том, что модели данных должны быть проанализированы и спроектированы независимо от процессов их логической обработки, а также от их физической структуры и распределения.
Принцип структурирования данных – заключается в том, что данные должны быть структурированы и иерархически организованы.
Принцип доступа конечного пользователя – заключается в том, что пользователь должен иметь средства доступа к базе данных, которые он может использовать непосредственно (без программирования).
Соблюдение указанных принципов необходимо при организации работ на начальных этапах ЖЦ независимо от типа разрабатываемого ПО и используемых при этом методологий. Руководствуясь всеми принципами в комплексе, можно на более ранних стадиях разработки понять, что будет представлять из себя создаваемая система, обнаружить промахи и недоработки, что, в свою очередь, облегчит работы на последующих этапах ЖЦ и понизит стоимость разработки.
