Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

otvety_118

.pdf
Скачиваний:
61
Добавлен:
01.04.2015
Размер:
1.71 Mб
Скачать

61

Паттерн Компоновщик (Composite) обеспечивает представление иерархий часть-целое, объединяя объекты в древовидные структуры.

Проблема. Очень часто возникает необходимость создавать маленькие компоненты (примитивы), объединять их в более крупные компоненты (контейнеры), более крупные компоненты соединять в большие компоненты, большие компоненты — в огромные и т. д. При этом клиентам приходится различать компоненты-примитивы и компоненты-контейнеры, работать с ними по-разному. Это усложняет приложение. Паттерн Компоновщик позволяет ликвидировать это различие, его можно применять в следующих случаях:

необходимо построить иерархию объектов вида часть-целое;

нужно унифицировать использование как составных, так и индивидуальных

объектов.

Решение. Ключевым элементом решения является абстрактный класс Компонент, который является одновременно и примитивом, и контейнером. В нем объявлены:

абстрактная операция примитива Работать( );

абстрактные операции контейнера — управления примитивами-

потомками Добавить(Компонент) иУдалить(Компонент), а также доступа к потомку ПолучитьПотомка().

Структурная составляющая паттерна Компоновщик представлена на рис. 12.51.

Рис. 12.51. Структурная составляющая паттерна Компоновщик

Из рисунка видно, что с помощью паттерна организуется рекурсивная композиция.

Класс Компонент служит простым элементом дерева, класс Компоновщик является рекурсивным элементом, а класс Лист — конечным элементом дерева.

Класс Компонент служит родителем классов Лист и Компоновщик. Отметим, что класс Компоновщик является агрегатом составных частей — экземпляров класса Компонент (таким образом задается рекурсия).

Клиенты используют интерфейс класса Компонент для взаимодействия с объектами дерева. Если получателем запроса клиента является объект-лист, то он и обрабатывает запрос. Если же получателем является составной объект-компоновщик, то он перенаправляет запрос своим потомкам, возможно выполняя дополнительные действия до или после перенаправления.

Результаты. Паттерн определяет иерархии, состоящие из классов-примитивов и классов-

62

контейнеров, облегчает добавление новых разновидностей компонентов. Он упрощает организацию клиентов (клиент не должен учитывать специфику адресуемого объекта). Недостаток применения паттерна — трудность в наложении ограничений на объекты, которые можно включать в композицию.

Обозначение паттерна Компоновщик приведено на рис. 12.52, где показано, что у него три параметра настройки — компонент, компоновщик и лист.

Настройку паттерна на графическое приложение иллюстрирует рис. 12.53.

Рис. 12.52. Обозначение паттерна Компоновщик

Рис. 12.53. Настройка паттерна Компоновщик

В этом случае основной операцией приложения становится операция Рисовать(). Подразумевается, что такая операция входит в состав каждого из подключаемых классов, то есть классов Рисунок, Прямоугольник и Графический элемент. Операции Рисовать() должны заместить операции Работать() в классах паттерна.

Паттерн Команда

Паттерн Команда (Command) выполняет преобразование запроса в объект, обеспечивая:

параметризацию клиентов с различными запросами;

постановку запросов в очередь и их регистрацию;

поддержку отмены операций.

Проблема. Достаточно часто нужно посылать запрос, не зная, выполнение какой конкретной операции запрошено и кто является получателем запроса. В этих случаях следует отделить объект, инициирующий запрос, от объекта, способного выполнить запрос. В результате обеспечивается высокая гибкость разработки пользовательского интерфейса — можно связывать различные пункты меню с определенной функцией, динамически подменять команды

ит. д. Паттерн Команда применяется в следующих случаях:

объекты параметризируются действием. В процедурных языках параметризация осуществляется при помощи функции обратного вызова, которая регистрируется для

63

последующего вызова. Паттерн Команда предлагает объектно-ориентированную замену функций обратного вызова;

необходимо обеспечить отмену операций. Это возможно благодаря хранению истории выполнения операций;

необходимо регистрировать изменения состояния для восстановления системы в случае аварийного отказа;

необходимо создание сложных операций, которые строятся на основе примитивных операций.

Решение. Основным элементом решения является абстрактный класс Команда, обеспечивающий одну абстрактную операцию Выполнять(). Конкретные

подклассы этого класса реализуют операцию Выполнять(). Они задают пару получательдействие. Получатель запоминается в экземплярной переменной подкласса. Запрос получателю посылается в ходе исполнения конкретной операции Выполнять().

Структурная составляющая паттерна Команда показана на рис. 12.54. Классы этой структуры имеют следующие обязанности:

Команда объявляет интерфейс для выполнения операции;

КонкрКоманда определяет связь между экземпляром класса Получатель и действием, реализует Выполнять(), вызывая нужную операцию получателя;

Клиент создает объект класса КонкрКоманда и устанавливает его получателя;

Инициатор просит команду выполнить запрос;

Получатель умеет выполнять запрашиваемые операции.

Рис. 12.54. Структурная составляющая паттерна Команда

В качестве конкретной команды могут выступать команда Открыть, команда Вставить. Инициатором может быть Пункт Меню, а получателем — Документ.

Объекты этого паттерна осуществляют следующие взаимодействия:

клиент создает объект класса КонкрКоманда и задает его получателя;

объект класса Инициатор сохраняет объект класса КонкрКоманда;

инициатор вызывает операцию Выполнять() объекта класса КонкрКоманда;

объект класса КонкрКоманда вызывает операцию своего получателя для исполнения запроса.

Результаты. Применение паттерна Команда приводит к следующему:

объект, запрашивающий операцию, отделяется от объекта, умеющего выполнять

запрос;

объекты-команды являются полноценными объектами. Их можно использовать и расширять обычным способом;

64

из простых команд легко компонуются составные команды;

легко добавляются новые команды (изменять существующие классы при этом не

требуется).

Обозначение паттерна Команда приведено на рис. 12.55, где показано, что у него четыре параметра настройки — клиент, команда, инициатор и получатель.

Рис. 12.55. Обозначение паттерна Команда

Настройку паттерна на приложение с графическим меню иллюстрирует рис. 12.56.

Рис. 12.56. Настройка паттерна Команда

Очевидно, что в получаемой кооперации конкретный класс Редактор играет роль клиента, классы КомандаОткрыть и КомандаВставить становятся классами Конкретных Команд (и подклассами абстрактного класса Команда), класс ПунктМеню замещает класс Инициатор паттерна, а конкретный класс Документ замещает класс Получатель паттерна.

48. Бизнес-модели. Полная бизнес-модель компании.

Бизнес-модели Достаточно часто перед тем, как решиться на заказ ПО, организация проводит бизнес-

моделирование. Цели бизнес-моделирования:

отобразить структуру и процессы деятельности организации;

обеспечить ясное, комплексное и, главное, одинаковое понимание нужд организации как сотрудниками, так и будущими разработчиками ПО;

сформировать реальные требования к программному обеспечению деятельности

организации.

Для достижения этих целей разрабатываются две модели: Q бизнес-модель UseCase; а бизнесобъектная модель.

Бизнес-модель UseCase задает внешнее представление бизнес-процессов организации (с точки зрения внешней среды — клиентов и партнеров).

65

Как показано на рис. 12.57, бизнес-модель UseCase строится с помощью бизнес-актеров и бизнес-элементов UseCase — простого расширения средств, используемых в обычных диаграммах UseCase.

Рис. 12.57. Фрагмент бизнес-моделиUseCase для аэропорта

Бизнес-актеры определяют внешние сущности и людей, с которыми взаимодействует бизнес. Бизнес-актер представляет собой человека, но информационная система, взаимодействующая с бизнесом, также может играть роль такого актера.

Бизнес-элементыUseCase изображают различные рабочие потоки бизнеса. Последовательности действий в бизнес-элементахUseCase обычно описываются диаграммами деятельности.

Бизнес-объектная модель отражает внутреннее представление бизнес-процессов организации (с точки зрения ее сотрудников).

Как показано на рис. 12.58, бизнес-объектная модель строится с помощью бизнес-работников и бизнес-сущностей — классов со специальными стереотипами. Эти классы имеют специальные графические обозначения.

Рис. 12.58. Фрагмент бизнес-объектной модели аэропорта

Бизнес-работник — абстракция человека, действующего в бизнесе. Бизнес-сущности являются «предметами», обрабатываемыми или используемыми бизнес-работниками по мере выполнения

66

бизнес-элемента UseCase. Например, бизнес-сущность представляет собой документ или существенную часть продукта. Фактически бизнес-объектная модель отображается с помощью диаграмм классов.

49. Информационная система. Типовые программные компоненты ИС.

ИС – система, призванная обеспечить пользователя удобным хранением и поиском информации. Автоматизированная ИС – система, в которой применяются технические средства. ИС – совокупность программно-аппаратных средств, задействованных для решения конкретной прикладной задачи. Большинство ИС включают в себя: диалоговый ввод-вывод, логику диалога, прикладную логику обработки данных, логику управления данными, операции манипулирования файлами и базами данных. Так же можно выделить следующие составляющие: база данных, СУБД, приложение, словарь данных (информация о типах данных и их связях в БД), администратор БД, вычислительная система и обслуживающий персонал.

Типовые функциональные компоненты. 1.Средства представления – обслуживает пользовательский ввод и отображает то, что ему предоставляет компонент логики представления с использованием соответствующей программной поддержки. 2.Компонент логики представления – управляет взаимодействием между пользователем и компьютером. 3.Компонент прикладной логики – набор правил для принятия решений, вычислений и операций, которые должно выполнить приложение. 4.Логика управления данными – операции с базой данных, которые нужно выполнить для реализации прикладной логики (SQL –запросы). 5.Операции с базой данных – действия СУБД, реализующие логику управления данными, фиксация транзакций на физическом уровне. 6.Файловые операции – дисковые операции чтения и записи данных.

Типовые программные компоненты ИС.

1)Сервер баз данных

2)Сервер электронной почты

3)Сетевая операционная система предназначенна для обеспечения основных сетевых сервисов, для организации совместного доступа к файлам и принтерам, для работы в качестве сервера приложений при реализации модели «клиент-сервер»;

4)Клиентское программное обеспечение

5)Сервер управления системой, дающий возможность централизованно решать задачи сетевого администрирования, предоставляя удобные средства удалѐнного управления и диагностирования системы, учѐта аппаратного и программного обеспечения;

6)Сервер удалѐнного доступа, предоставляющий сотрудникам удалѐнных филиалов

50.Корпоративные информационные системы.

Корпоративные информационные системы (КИС) - это интегрированные системы управления территориально распределенной корпорацией, основанные на углубленном анализе данных, широком использовании систем информационной поддержки принятия решений, электронных документообороте и делопроизводстве. КИС призваны объединить стратегию управления предприятием и передовые информационные технологии.

Корпоративная информационная система — это совокупность технических и программных средств предприятия, реализующих идеи и методы автоматизации.

Комплексная автоматизация бизнес процессов предприятия на базе современной аппаратной и программной поддержки может называться по-разному. В настоящее время наряду с названием Корпоративные информационные системы (КИС) употребляются, например, следующие названия:

1.Автоматизированные системы управления (АСУ);

2.Интегрированные системы управления (ИСУ);

3.Интегрированные информационные системы (ИИС);

4.Информационные системы управления предприятием (ИСУП).

Главная задача КИС - эффективное управление всеми ресурсами предприятия (материальнотехническими, финансовыми, технологическими и интеллектуальными) для получения максимальной прибыли и удовлетворения материальных и профессиональных потребностей всех сотрудников предприятия.

КИС по своему составу - это совокупность различных программно-аппаратных платформ, универсальных и специализированных приложений различных разработчиков,

67

интегрированных в единую информационно-однородную систему, которая наилучшим образом решает в некотором роде уникальную задачу каждого конкретного предприятия. То есть, КИС - человеко-машинная система и инструмент поддержки интеллектуальной деятельности человека, которая под его воздействием должна:

Накапливать определенный опыт и формализованные знания;

Постоянно совершенствоваться и развиваться;

Быстро адаптироваться к изменяющимся условиям внешней среды и новым потребностям предприятия.

51. Информационная система. Классификация информационных систем.

Информационная система — это взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации для достижения цели управления. В современных условиях основным техническим средством обработки информации является персональный компьютер. Большинство современных информационных систем преобразуют не информацию, а данные. Поэтому часто их называют системами обработки данных.

Информационная система - взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.

Структура информационной системы как совокупность обеспечивающих подсистем включает информационное, техническое, математическое, програмное, организационное и правовое обеспечение.

1.КЛАССИФИКАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ ПО ПРИЗНАКУ СТРУКТУРИРОВАННОСТИ ЗАДАЧ:

·Для структурированных задач;

·Для частично структурированных или неструктурированных задач: 1. Создающие управленческие отчеты; 2. Разрабатывающие альтернативные решения (модельные и экспертные).

2. КЛАССИФИКАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ ПО ФУНКЦИОНАЛЬНОМУ ПРИЗНАКУ И УРОВНЯМ УПРАВЛЕНИЯ:

производственные системы;

системы маркетинга;

финансовые и учетные системы;

системы кадров (человеческих ресурсов);

прочие типы, выполняющие вспомогательные функции в зависимости от специфики деятельности фирмы.

3.Классификация по степени автоматизации:

Ручные

Автоматические

автоматизированные

4.Классификация по характеру использования информации:

Информационно-поисковые системы

Информационно-решающие системы

Управляющие ИС

68

Советующие ИС

5.Классификация по сфере применения

Информационные системы организационного управления

ИС управления технологическими процессами (ТП)

ИС автоматизированного проектирования (САПР)

Интегрированные (корпоративные) ИС

52.Проект. Типы, классы проектов.

Проекты, реализуемые в различных областях, разными специалистами имеют значительные различия между собой. Поэтому для выбора того или иного подхода к управлению конкретным проектом предварительно необходимо разобраться с особенностями именно данного типа или вида проекта.

Классификация проектов может быть проведена по различным основаниям. Мы рассмотрим лишь наиболее распространенные ее варианты:

1.3.1. Типы проектов Различаются по сферам деятельности, в которых осуществляется проект:

1.Технический (строительство здания или сооружения, внедрение новой производственной линии, разработка программного обеспечения и т. д.);

2.Организационный (реформирование существующего или создание нового предприятия, внедрение новой системы управления, проведение международной конференции

ит. д.);

3.Экономический (приватизация предприятия, внедрение системы финансового планирования и бюджетирования, введение новой системы налогообложения и т. д.);

4.Социальный (реформирование системы социального обеспечения, социальная защита необеспеченных слоев населения, преодоление последствий природных и социальных потрясений);

5.Смешанный (проекты, реализуемые сразу в нескольких областях деятельности, – к примеру, проект реформирования предприятия, включающий внедрение системы финансового планирования и бюджетирования, разработку и внедрение специального программного обеспечения и т. д.).

1.3.2.Классы проектов Различаются по составу, структуре и предметной области проекта:

1.Монопроекты – отдельные проекты различного типа и назначения, имеющие определенную цель, четко очерченные рамки по финансам, ресурсам, времени, качеству и предполагающие создание единой проектной группы (инвестиционные, инновационные и другие проекты) ;

2.Мультипроект – комплексный проект, состоящий из ряда монопроектов и требующий применения многопроектного управления (реформирование существующих и создание новых предприятий, разработка и внедрение внутрифирменных систем многопроектного управления);

3.Мегапроект – целевые программы развития регионов, отраслей и др. образований, включающие в свой состав ряд моно – и мультипроектов («План Маршалла», создание Общеевропейского рынка, развитие Южной Кореи и т. д.).

1.3.3.Масштабы проектов В американской практике существует деление проектов по масштабности:

1.Малые проекты – капиталовложения до $10-15 млн.; трудозатраты 40-50 тыс. человеко-часов. Примеры: опытно – промышленные установки, небольшие промышленные предприятия, модернизация действующих производств.

2.Мегапроекты – целевые программы, содержащие множество взаимосвязанных проектов, объединенных общей целью, выделенными ресурсами и отпущенными на их выполнение временем. Отличительные черты: капиталовложения – от $ 1 млрд. и более, нетрадиционные формы финансирования (акционерные, смешанные) – обычно консорциум фирм, трудоемкость – 2 млн. человеко-часов – на проектирование, 1520 млн. человеко-часов – на строительство, 5 -7 и более лет – срок реализации.

1.3.4.Виды проектов

69

Различаются по характеру предметной области проекта:

1.Инвестиционный – главная цель – создание или реновация основных фондов организаций, требующие вложения инвестиций;

2.Инновационный – главная цель – разработка и применение новых технологий, ноу-хау

идругих нововведений, обеспечивающих развитие организаций;

3.Научно – исследовательский;

4.Учебно-образовательный;

5.Смешанный.

1.3.5. По длительности

1.Краткосрочный – до 3-х лет;

2.Среднесрочный – от 3-х до 5-ти лет;

3.Долгосрочный – свыше 5-ти лет.

53.Проект. Технико-экономические показатели проекта.

Технико-экономический анализ разработки проектов программных средств - это выбор и прогнозирование наиболее адекватных экономических и функциональных критериев для обобщенного описания эффективности, стоимости создания и использования проектов программных средств в зависимости от их назначения, области применения и прочих факторов.

Если разрабатываемое программное средство в дальнейшем будет представлено в качестве продукции на рынке, то технико-экономический анализ его разработки имеет еще большую актуальность.

Методы технико-экономического анализа в зависимости от дальнейшего применения программного средства можно разделить на две группы:

1)Программное средство ориентированно на массовое тиражирование и продажу на рынке. Конкретная область применения и заказчик неизвестны.

В данном случае методы технико-экономического анализа базируются на данных, полученных при исследовании рынка сбыта программного средства. Изучаются характеристики программных продуктов разработчиков-конкурентов: эффективность, стоимость, трудозатраты; большое внимание уделяется показателям конкурентоспособности продуктов программных средств. На основании полученной информации оптимизируются технико-экономические показатели разрабатываемого программного средства.

2)Программное средство предназначено для конкретного пользователя и ориентировано на заранее известную область применения.

При этом заказчик выбирает на рынке услуг конкурентоспособного разработчика, которого оценивает на возможность реализовать проект с необходимым качеством с учетом ограничения требуемых бюджета, сроков и других ресурсов. Заказчик заинтересован в получении программного средства высокого качества при минимальных затратах и в приемлемые сроки, а разработчик стремится к получению достаточных ресурсов на реализацию программного средства и максимальной оплаты за свою работу.

Перечень основных технико-экономических показателей 2.1 Эффективность

Эффективность – это характеристика системы с точки зрения соотношения затрат и результатов ее функционирования. К основным показателям экономической

эффективности относятся: экономический эффект, коэффициент экономической эффективности

капитальных вложений, срок окупаемости капитальных вложений и др.

Экономический эффект – результат внедрения какого-либо мероприятия, выраженный в стоимостной форме, в виде экономии от его осуществления.

2.2 Масштаб-размер Масштаб-размер программ может приводиться в различных единицах, что может

изменять их численные значения для одних и тех же программ в несколько раз. Размер исходных

текстов

70

программ, прежде всего, отражает трудоемкость и длительность их разработки и позволяет

оценивать относительные характеристики производительности труда специалистов разработчиков.

Единицы измерения масштаба-размера программных средств можно разделить на две группы:

1 Единицы измерения, которые разрабатываются и анализируются человеком (отражают

сложность и трудоемкость создания программных средств и их компонентов). 2 Единицы измерения, которые размещаются в реализующем компьютере (характеризуют объем памяти и производительность компьютера, необходимые для нормального

функционирования разрабатываемого программного средства)

2.3Затраты, связанные с проектом

Косновным затратам можно отнести:

допустимые трудозатраты на разработку программного средства с требуемым качеством

время (длительность полного цикла создания программного продукта)

необходимое и доступное число специалистов соответствующей квалификации Трудоемкость разработки программных средств наиболее сильно зависит от масштаба-

размера программ, выраженного числом операторов на ассемблере или строк на языке

программирования высокого уровня. Количество исполнителей,

2.4 Конкурентоспособность проекта Конкурентоспособность товара – это степень его соответствия выбранному рынку по

коммерческим, техническим и экономическим показателям, обеспечивающим возможность сбыта товара на этом рынке. Это те характеристики, которые выгодно отличают данный товар от товаров-конкурентов.

Функциональные возможности - способность программного средства обеспечивать решение задач, удовлетворяющих сформулированные потребности заказчиков и пользователей при применении комплекса программ в заданных условиях.

Функциональная пригодность - набор и описания субхарактеристики и ее атрибутов, определяющие назначение, номенклатуру, основные, необходимые и достаточные

функции программного средства, соответствующие техническому заданию и спецификациям требований заказчика или потенциального пользователя.

Правильность (корректность) - способность программного средства обеспечивать правильные или приемлемые для пользователя результаты и внешние эффекты.

Способность к взаимодействию - свойство программных средств и их компонентов взаимодействовать с одной или большим числом компонентов внутренней и внешней

среды.

Защищенность - способность компонентов программного средства защищать программы и информацию от любых негативных воздействий.

Надежность - обеспечение комплексом программ достаточно низкой вероятности отказа в процессе функционирования программного средства в реальном времени.

Эффективность - свойства программного средства, обеспечивающие требуемую производительность решения функциональных задач, с учетом количества

используемых вычислительных ресурсов в установленных условиях.

Практичность (применимость) - свойства программного средства, обусловливающие сложность его понимания, изучения и использования, а также привлекательность для квалифицированных пользователей при применении в указанных условиях.

Сопровождаемость - приспособленность программного средства к модификации и изменению конфигурации и функций.

Мобильность - подготовленность программного средства к переносу из одной аппаратно-операционной среды в другую.

54.Концептуальное моделирование структуры данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]