- •2. Модель па
- •2.1.Бизнес - перспектива
- •2.2.Прикладная перспектива
- •2.3.Информационная перспектива
- •2.4.Технологическая перспектива
- •2.5 Основные опасности при разработке производственной архитектуры
- •2.6 Задачи модели производственной архитектуры msf
- •3. Создание производственной архитектуры
- •1. Общая характеристика модели приложения
- •1.1.Повторное использование компонентов
- •1.2.Размер приложения
- •1.3. Производительность приложения
- •1.4.Масштабируемость приложений
- •1.5.Виды архитектуры
- •2. Модель приложений
- •2.1. Бизнес-модель
- •2.2 Пользовательская модель
- •2.3 Логическая модель
- •2.4 Технологическая модель
- •2.5 Модель разработки
- •2.6 Физическая модель
- •1. Общие характеристики модели проектных групп
- •2. Обязанности членов группы
- •3. Модель проектой группы
- •3.1. Менеджер продукта
- •3.2Менеджер программы
- •3.3.Разработчик
- •3.4 Тестер
- •3.5.Инструктор
- •3.6 .Логистик
- •4.Размер групп и масштаб проекта
- •5. Создание группы
- •5.1.Поиск руководителей
- •5.2.Повышение эффективности коллективной работы
- •5.3. Координация работы с внешними группами
- •1. Модель разработки приложений
- •2.Модель процесса разработки msf
- •Основные этапы
- •Промежуточные этапы
- •Итеративность
- •3. Фазы разработки и их основные этапы.
- •3.1 Фаза Анализ
- •3.3.Фаза «Планирование»
- •3.3.Фаза «Разработка»
- •3.4. Фаза «Стабилизация»
- •4. Принципы модели процесса разработки
- •5.Роли членов группы в модели процесса разработки
- •Динамика фазы Анализ модели процесса разработки msf
- •1.Процесс исследования
- •1.1.Распределение обязанностей ролей
- •2. Модель управление рисками
- •2.1.Источники риска
- •2.2.Способы управления рисками
- •3.Этап «Одобрение концепции» и его результаты
- •3.1Концепция
- •3.2.Прототип
- •3.3. Структура проекта
- •3.4. Сводный документ оценки рисков
- •3.5. Согласование концепции
- •Динамика фазы планирования
- •1.Общая характеристика фазы планирования
- •Фаза «Планирование» и процесс проектирования
- •Распределение ролей при планировании
- •Обязанности ролей при планировании
- •12.Процесс проектирования
- •2.1. Стадии концептуального проектирования
- •2.2.Стадия логического проектирования
- •2.3.Стадия физического проектирования
- •2.1. Управление рисками на фазе планирования
- •4.Этап «Одобрение плана проекта» и его результаты
- •4.1.Функциональные спецификации
- •4.2.Основной план проекта
- •4.2.Основной график проекта
- •4.3.Пересмотренный документ оценки рисков
- •Динамика фазы разработки и ее основные результаты.
- •1. Общая характеристика фазы разработки
- •2. Основные этапы разработки
- •2.1.Распределение обязанностей на стадии разработки
- •2.3.Первый этап: анализ и рационализация
- •2.4.Второй этап: реализация
- •2.5.Третий этап: аттестация
- •2.6.Управление рисками
- •3.Этап «Завершение разработки» и его результаты
- •3.1. Код и исполняемые модули
- •3.2.Средства повышения эффективности работы пользователей и сопроводительные материалы
- •3.3. Тестовые материалы
- •Динамика фазы стабилизации
- •Распределение обязанностей в группе
- •Промежуточные этапы
- •Управление рисками на фазе Стабилизации
- •1)Организованные риски;
- •Этап «Выпуск продукта» и его результаты
1.1.Повторное использование компонентов
Представив себе размер производственных приложений, вы поймете, почему их архитектура должна повторно использовать как можно больше компонентов. Повторное использование лежит в основе большинства приложений, поэтому не стоит считать его новой технологией или техническим прорывом, Оно применялось с самого возникновения программирования. Повторно применяемые объекты разделяют на следующие категории:
• сегменты исходного кода;
• библиотеки кода;
• библиотеки ресурсов;
• интерфейсы объектов;
• объекты, расширяемые объекты и т. д.
Принцип повторного использования не стоит ограничивать только исходным кодом. Он пригодится при стандартном процессе разработки сразу нескольких проектов или применении структур одного проекта в другом.
1.2.Размер приложения
Размер современных производственных приложений, которые в массе своей очень велики, необходимо контролировать. Самый эффективный способ уменьшить размеры приложения — сократить объем кода. При этом важно различать объем кода, написанного человеком,
и общий объем кода. Применение современных средств разработки часто увеличивает число строк кода, а следовательно, и время выполнения. Однако современные компонентные модели разработки способны значительно уменьшить объем кода, который должны писать программисты, благодаря повторному использованию объектов и кода и применению высокоуровневых языков, объектно-ориентированных средств и механизмов автоматической генерации кода. По мере распространения языков программирования высокого уровня число строк кода, написанных человеком, сокращается.
сравнил объем кода, необходимый для реализации одной и той же программы на разных языках:«Эти значения показывают относительную выразительность различных языков, коммерческих компонентов и автоматических генераторов кода».
Результаты этого сравнения представлены в табл. 2.1.
Количество строк кода при применении разных языков и средств программирования
Язык программирования Количество строк кода, созданного человеком
Ассемблер 1 000 000
С 400 000
Ada 83 220000
C++или Ada 95 175000
C++ 75 000
1.3. Производительность приложения
При создании архитектуры приложения нужно учитывать требования к его производительности и предпринять все возможное, чтобы эти требования соблюдались как в настоящем, так и в будущем. Для этого приложение следует протестировать, а в случае неудачи найти способы повышения производительности. Требования к производительности редко удается удовлетворить без дополнительной оптимизации приложения, поэтому их нужно принимать во внимание как до разработки приложения, так и в ее ходе, Для повышения производительности не нужно оптимизировать все компоненты системы — ведь пользователю важна эффективность
приложения, а не каждого компонента в отдельности. На производительность распределенных приложений влияет множество факторов: оборудование, соединения, конфигурация системы, топология приложения и т.д., не зависящих от методов кодирования компонентов и приложений, При этом всегда возможен компромисс между простотой разработки, развертывания, сопровождения и эффективностью приложения. Главное при повышении производительности — с минимальными затратами найти и устранить «узкие» места в работе
приложения. При анализе производительности, особенно на ранних стадиях разработки проекта, редко удается точно воссоздать условия, в которых он будет эксплуатироваться.
Поэтому часто единственная возможность оценить производительность в реальной среде — экстраполировать результаты тестирования. Чем точнее тестовая среда воспроизводит эксплуатационную, тем ниже вероятность ошибки экстраполяции, однако затраты на
адекватное моделирование реальной среды иногда превышают выгоды от снижения риска некорректности результатов тестирования. Для достижения требуемой производительности желательно выполнить только действительно необходимую работу. Таким образом, проверить эффективность приложения — значит уменьшить риск того, что приложение не сможет поддерживать требуемый уровень производительности, а не повышать этот уровень до предельных значений