
02.Методология разработки приложений.ppt
- Количество слайдов: 38
Методологии разработки приложений Лекция по дисциплине «Разработка приложений» Автор - к. п. н. , доц. И. В. Попова Магнитогорск, 2008
Методология. Общий взгляд n совокупность методов, применяемых в определенных науках ¡ n метод – способ достижения какой-либо цели, решения конкретной задачи учение о структуре, логической организации, методах и средствах деятельности 2
Г. Буч. Методология метод n «…методология - это совокупность методов, применяемых в жизненном цикле разработки программного обеспечения и объединенных одним общим философским подходом» . n «Метод - это последовательный процесс создания моделей, которые описывают вполне определенными средствами различные стороны разрабатываемой программной системы. . . Методы упорядочивают процесс создания сложных программных систем и позволяют в процессе разработки оценить степень продвижения и риск» . 3
В. Б. Позин. Нормативнометодическое обеспечение ИС n n модель жизненного цикла ИС методы проектирования ИС; выразительные средства; комплекс согласованных инструментальных средств. 4
А. Коуберн. Методология – это название того, как организация многократно производит и поставляет программные системы: кого в ней нанимают на работу и зачем, чего ожидают люди от своих коллег, какие условности они соблюдают, начиная от размещения рабочих мест в офисе и до используемых рабочих продуктов… 5
Критерии выделения методологии n n n n размер команды разработчиков; критичность системы; рассматриваемые вопросы; роли; виды деятельности; поставляемые артефакты и стандарты; убеждения; люди и их культурные характеристики… 6
Составляющие методологии (по А. Коуберну) 7
Характеристики методологии n n Размер = число элементов управления(поставляемые артефакты, стандарты, виды деятельности, меры качества и т. д). Плотность = уровень детализации и связности, необходимых для ее осуществления. Более высокая плотность соответствует жесткому контролю или сильному формализму. n n Вес = размера * плотность. Объем = протяженность жизненного цикла проекта, разнообразие ролей и видов их деятельности, которые пытается покрыть собой методология. 8
Степень формализма методологии 1) количество документов; 2) степень аккуратности их оформления и формальность процедур рецензирования, одобрения и передачи. Слабая < СТЕПЕНЬ ФОРМАЛИЗМА > Сильная - несогласованность решений - к непродуктивные затраты ресурсов на переработку кода повторное решение типовых проблем - может существенно увеличиваться стоимость последующего сопровождения продукта Большие временные и трудовые затраты на разработку документации 9
Принципы разработки методологии
Принцип 1 Большая по размерам методология нужна тогда, когда в проекте занято большое число разработчиков. 11
Принцип 2 Большая плотность методологии нужна в тех случаях, когда скрытые ошибки в программном продукте могут повлечь за собой значительный ущерб. Типы ущерба: • Потеря комфорта в работе (помеха в коммуникации). • Потеря несущественной суммы (неправильная выплата зарплаты). • Потеря невосполнимой суммы (программные системы национальных банков). • Потеря жизни (предприятия, работающие на атомной энергии, проекты, связанные с космосом, системы управления полетами 12 самолетов и т. д. ).
Принцип 3 Незначительное увеличение "размеров" или "плотности" методологии ведет к существенному увеличению стоимости проекта в самом начале проекта невозможно точно определить объемы задачи минимальное число людей (квалификация) 13
Принцип 4. Наиболее эффективная форма коммуникации (для передачи идей) – непосредственное взаимодействие, лицом к лицу, как при рисовании у доски. 14
Сколько должно быть коммуникантов ? 15
Оптимальный уровень формализации. Факторы n n n Масштаб проекта. Распределение участников. Критичность проекта. Новизна проекта. Требования заказчика. Ожидаемая долговечность проекта. 16
Структурная методология разработки приложений
Структурная методология n n создание программ небольшого размера. уменьшение стоимости, сложности и повышение надежности программы. основной элемент структурирования – подпрограммы (иногда - модули) 18
Типы базовых конструкций n n n последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы; ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия; цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла). 19
Модульное программирование n Программный модуль – это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса n МП – воплощение методов борьбы со сложностью программ: ¡ ¡ обеспечение независимости компонент системы = выявление основных характеристик «хорошего» программного модуля. использование иерархических структур = использование древовидных модульных структур программ (включая деревья 20 со сросшимися ветвями).
Методы разработки структуры программы(1) Методы разработки структуры программ Нисходящие Восходящие Подходы Виды Классический Конструктивный Классический Архитектурный Разработка Классическая нисходящая разработка Конструктивная разработка Классическая восходящая разработка Архитектурная разработка Классическая нисходящая реализация Конструктивная реализация/ целенаправленная конструктивная реализация Классическая восходящая реализация Архитектурная реализация Реализация 21
Методы разработки структуры программы(2) n Восходящее n Нисходящее Программа Модуль 1 Модуль 2 Модуль 3 Модуль 1. 1 Модуль 1. 2 Модуль 3. 1 22
Методы разработки структуры программы(3) Восходящее Нисходящее + + ¡ ¡ каждый модуль при программировании выражается через уже существующие модули при тестировании использует уже отлаженные модули. ¡ ¡ ¡ для создания модуля достаточно, чтобы каждый используемый им модуль был лишь специфицирован, а для тестирования можно использовать «заглушки» уточнение обеспечивающей целостность информации приводит к перепрограммированию модуля большой объем «отладочного» программирования каждый модуль тестируется при «естественных» состояниях информационной среды большой объем «отладочного» программирования заменяется программированием достаточно простых имитаторов используемых в программе модулей. ¡ необходимость абстрагироваться от базовых возможностей используемого языка программирования 23
Подходы к разработке структуры программы n n Классический : модульная структура программы должна быть разработана до начала программирования (кодирования) модулей Конструктивный ↓ , архитектурный ↑: модульная древовидная структура программы формируется в процессе программирования модулей 24
Этапы разработки модуля n n n изучение и проверка спецификации модуля, выбор языка программирования; выбор алгоритма и структуры данных; программирование (кодирование) модуля; шлифовка текста модуля; проверка модуля; компиляция модуля. 25
Объектная методология разработки приложений Лекция по дисциплине «Разработка приложений» Автор - к. п. н. , доцент И. В. Попова Магнитогорск, 2008
Объектная методология n Объектный подход ¡ ¡ ¡ n n Древняя Греция: мир можно рассматривать в терминах, как объектов, так и событий. XVII век, Р. Декарт : люди обычно имеют объектноориентированный взгляд на мир. XX век, М. Мински : разум человека = общность различно мыслящих агентов, совместное действие которых приводит к осмысленному поведению человека. Цель: получение механизма создания больших и сверхбольших программных комплексов Основные понятия: объекты и атрибуты, целое и часть, класс и экземпляр. 27
Объект… n Состояние Поведение Идентичность n n …моделирует часть окружающей действительности и таким образом существует во времени и пространстве … представляет собой конкретный опознаваемый предмет, единицу или сущность (реальную или абстрактную), имеющую четко определенное функциональное назначение в данной предметной области (Смит и Токи) … нечто, имеющее четко очерченные границы. 28
Элементы объектной модели n Абстрагирование Абстракция фокусируется на существенных с точки зрения наблюдателя характеристиках объекта. 29
Элементы объектной модели n Инкапсуляция скрывает детали реализации объекта 30
Элементы объектной модели n Модульность позволяет хранить абстракции раздельно 31
Элементы объектной модели n Иерархия Абстракции образуют иерархию 32
Дополнительные элементы n Типизация Строгая типизация предотвращает смешивание абстракций n Параллелизм n Сохраняемость Параллелизм позволяет различным объектам действовать одновременно Сохраняемость поддерживает состояние и класс объекта в пространстве и во времени 33
Объектная методология n Достоинства : ¡ ¡ ¡ n сокращение числа возможных ошибок при проектировании ИС; повторное использование компонентов модели; ориентация на человеческое восприятие мира. Один из наиболее существенных недостатков : ¡ сложность, как самой методологии, так и её реализации 34
Роли Роль архитектор проекта ответственные за подсистемы прикладные программисты Деятельность отвечает за эволюцию и сопровождение архитектуры системы отвечают за проектирование категорий классов или подсистем отвечают за … ¡ реализацию категории или подсистемы под руководством ее ведущего. , ¡ написание классов, спроектированных архитектором и ответственными за подсистемы, реализуя тем самым функциональные точки системы. 35
Виды инструментов для объектноориентированной разработки n n n n система с графическим интерфейсом, поддерживающая объектно-ориентированную систему обозначений броузер, который показывает структуру классов инкрементный компилятор отладчики, которые могут работать с семантикой классов и объектов. инструменты управления конфигурацией и контроля версий библиотекарь классов генератор графического интерфейса пользователя 36
Объектно-ориентированная разработка: плюсы и минусы n n Большая конкурентоспособность благодаря предсказуемости, сокращению времени на разработку и большой гибкости продукта. Разрабатываемые задачи могут быть настолько сложными, что не остается альтернативных решений. n n Производительность (накладные расходы на пересылку сообщения от одного объекта другому, многослойные системы абстракций , большое количество наследуемого кода) Большие начальные затраты 37
Успешного изучения!
02.Методология разработки приложений.ppt