Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прога уманский.doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
122.88 Кб
Скачать

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

Механизмы позволяют сконструировать новые сложные объекты из уже существующих сравнительно простых.

Основным достатком ООП является необходимость переклмпиляции всей программы в целом при изменении реализации одного или нескольких объектов.

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

Выделяют две базовые компонентные технологии:

1)технология СОМ (component object model) определяющая общую идею взаимодействия программ любых типов : библиотек,приложений,ОС,тоесть позволяет одной части программного обеспечения использовать функции другой части,независимо от того функционируют ли эти части в пределах одного процесса,в разных процессах на одном компьютере(сом) или на разных компьютерах.

Объект всегда функционирует в составе сервера - динамической библиотеки,или исполняемого файла,которые обеспечивают функционирование объектов.

Выделяют 3 типа серверов.

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

2)локальный сервер. Создается отдельным процессом(выполняемым файлом с расширением ехе) который работает на одном компьютере с клиентом.

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

При использовании локальных и удаленных серверов в адресном пространстве клиентов создается прокси объект,который заменяет настоящий объект сом. А в адресном сервера сом создается заглушка ,получив задание от клиента заместитель упаковывает его параметры и используя службы ОС передает вызов заглушке. Заглушка распаковывает задание и передает его реальному объекту сом.

Технология CORBA.

Общая архитектура с последующим расшифровкой объекта. Однако программное ядро corba реализовано для всех основных аппаратных и программных платформ. И поэтому данная технология целесообразна к использованию в разнородной вычислительной среде. Организация взаимодействия между клиентом и сервером в этом случае осуществляется с помощью специального программного посредника.называется этот посредник visibroker.

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

Основные современные технологии разработки сложных программных систем.

Возрастание сложности современных программ обусловлено рядом причин. Главной из которых является возросшая логическая сложность.

1)проблемы разработки сложных программных систем.

Факторы повышающие сложность разработки:

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

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

3)коллективная разработка - изза значительных объемов проектов,разработка ПО ведется коллективами специалистов. Для этого необходима организация взаимодействия направленного на обеспечение целостности продукта. Однако в связи с отсутствием удовлетворительных средств описания(см. Пункт 2) организация взаимодействия сложных систем является трудоемкой работой. Существует аксиома,чем больше коллектив разработчиков,тем сложнее организовать взаимодействие между ними.

4)необходимость увеличения степени повторяемости кода. Компании стремятся использовать наработки из своих библиотек. Но в этом случае библиотечные элементы приходится делать универсальными,что увеличивает их сложность и стоимость разработки.

Блочно иерархический подход к созданию сложных систем.

В настоящее время применяется два типа иерархии.

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

2)иерархия,простое-сложное. Построена на принципах эволюции и используя механизм наследования позволяет создавать более сложные элементы из простых уже имеющихся.

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

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

Базовыми принципами БИП являются :

  1. непротиворечивость,контроль согласованности элементов между собой

  2. Полнота,контроль на использование лишних элементов.

  3. Формализация,строгость математической модели и полнота ее описания.

  4. Повторяемость,необходимость выделения одинаковых блоков уже разработанных ранее для удешевления и ускорения разработки.

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

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

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

Достоинства БИП :

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

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

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

1)при структурном подходе возможна реализация иерархии как целой части.

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

Жизненный цикл и этапы разработки по.

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

Структура жизненного цикла ПО регламентирована международным стандартом ISO/iec12207 данный стандарт описывает структуру жизненного цикла и его процессы. Процесс жизненного цикла - представляет собой совокупность взомосвязанных действий некоторые входные данные в выходные.

Выделяют 3 основных группы процессов:

I Основные

  1. Приобретение. Покупка программы

  1. Поставка.

  1. Разработка.

  1. Эксплуатация.

  1. Сопровождение.

Ii Вспомогательные

1)документирование

2)управление конфигурацией.

3)управление качеством.

4)верификация.

5)аттестация

6)совместная оценка

7)аудит

8)решение проблем

III организационные процессы.

  1. управление процессом разработки.

  1. Усовершенствование.

  1. Создание инфраструктуры.

  1. Обучение.

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

По стандарты процесс разработки включает следующие действия.

1)Подготовительную работу - выбор модели жизненного цикла,стандартов,методов и средств разработки;разработку плана работы.

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

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

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

5)проектирование архитектуры ПО. Определение структуры ПО,документирование его интерфейсов,разработку предварительной версий пользовательской документации,определение требований к тестовым программам и разработка плана интеграции.

6)детальное проектирование ПО - подробное описание элементов ПО и интерфейсов между ними;обновление пользовательской документации,разработка и документирование требований к тестам и создание плана тестирования;обновление плана интеграции.

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

8)интеграция ПО - сборка программных элементов в соответствии с планом интеграции;тестирование ПО на соответствие квалификационным требованиям.

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

10)интеграция системы - сборка всех компонентов системы,включая ПО И оборудование.

11) квалификационное тестирование системы совместно с заказчиком на оборудовании разработчика и проверка соответствия заданным требованиям;проверка оформления и полноты документации.

12)установка ПО на оборудование заказчика,проверка его работоспособности.

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

В отечественной технологии разработки ПО данные действия условно сгруппированы в 4 группы,которые регламентируются соответствующими гостами. ГОСТ 19201 1977 года регламентирует разработку ПО, а ГОСТ 19102 1977 года регламентирует разработку элементов АСУ.

ГОСТ:

1)этап постановки задачи (для АСУ - стадия "техническое задание")

В процессе постановки задачи ведущая роль отводится заказчику,должны быть четко сформулированы назначения ПО и задачи им решаемые,определены основные требования к ПО. Требования принято делить на 2 группы:

-функциональные - определяют функции которые должно выполнять разрабатываемое ПО.

-эксплуатационные -определяют особенности эксплуатации,в том числе с учетом аппаратных платформ.

Требование к ПО имеющими прототипы задаются по аналогии. С указанием определенным характеристик и направлением их изменений. В случае если аналоги отсутствуют обычно проводятся специальные исследования называемые предпроектными. А их ходе определяют принципиальную разрешимость задачи. Осуществляют выбор и обосновании модели,подбирают методы ее реализации,определяют основные критерии и характеристики. Стоимость предпоектных исследований определяется дополнительным соглашением и в стоимость основной разработки не входит. В любом члучае это заканчивается составлением документа("техническое задание"),которое подписывают представители заказчика и разработчика.

2)этап анализа требований и разработки спецификаци(для АСУ "стадия,эскизный проект"). Спецификациями называют точно и промализованное описание функции и ограничений разрабатываемого ПО. Спецификации разрабатываются на основе требований различают функциональные и эксплуатационные спецификации. Спецификации позволяют сформулировать содержательную постановку задач. Выюрать математический аппарат формализации и построить и модель предметной области. ,определить ход задачи и выбрать методы их решений. Совокупность спецификаций представляет собой общую логическую модель разрабатываемого ПО. На этом же этапе формируют тесты для поика ошибок.

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

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

3)проектирование.

Основной задачей этапа является подробная спецификация разрабатываемых программ.

Процесс проектирования включает :

- проектирование общей структуры. Определение основных элементов и их связей.

- декомпозиция элементов. И построение структурной иерархии.

- Проектирование компонентов.

Различают 2 аспекта проектирования.

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

- физическое проектирование. Привязка к конкретным физическим и программным средствам среды функционирования.

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