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

Билеты вмип. Базовые этапы развития технологий программирования.

1. Первый этап. Краткая характеристика.

Первый этап – «стихийное» программирование(от момента появления первых ЭВМ до середины 60-х гг.). Технология программирования практически отсутствовала. Первые программы имел простейшую линейную структуру. Они состояли из собственно программы на машинном языке и обрабатываемых ею данных.

Сложность программ ограничивалась способность программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программирование (около 4500 строк).

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

Революционным было появление средств, позволяющих оперировать подпрограммами.

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

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

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

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

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

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

2. Второй этап краткая характеристика.

Второй этап – структурный подходк программированию (60-70-е гг.XXв.). Представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки ПО. В основе подхода лежит идеядекомпозиция (разбиение на части) сложных систем с целью последующей реализации в виде отдельных небольших (до 40-50 операторов) подпрограмм.

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

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

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

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

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

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

3. Третий этап. Краткая характеристика.

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

Основным плюсом ООПявляется «более естественная» декомпозиция области решения задачи на программные объекты. Это обеспечивает более полную локализацию данных и интеграцию их с программами обработки, что позволяет вести независимую разработку объектов программы. Подход внес новые способы организации программы, основанные на принципах:

  • Наследования (механизм, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом);

  • Полиморфизма (возможность объектов с одинаковой спецификацией иметь различную реализацию);

  • Композиции (методика создания новогоклассаиз уже существующих классов путём вложения);

  • Наполнения.

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

В силу обмена сообщениями скорость работы объектных программ невелика, поэтому для устранения этого минуса пришлось резко увеличить объем ОП (в 10-100 раз) и мощность ЦП ЭВМ.

4. Четвертый этап. Краткая характеристика.

Четвертый этап – компонентный подход и CASE-технологии(с середины 90-х гг. до нашего времени). Предполагает построение ПО из отдельных компонентов – физически отдельно существующих частей программы, которые взаимодействуют между собой через стандартизированные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамические библиотеки или исполняемые файлы, распространять в двоичном коде (без исходных текстов) и использовать в любом ЯП, поддерживающем данную технологию.

Компонентный подход лежит в основе двух основных технологий:

  1. COM (Component Object Model)– компонентная модель объектов (Microsoft) – является развитием технологииOLEI(Object.LinkingandEmbedding), предполагающей связывание и внедрение объектов в семействе ранних ОСWindow(95, 98, частично 2000) для создания составных документов (Word).

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

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

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

  • Внутренний – реализуется динамическими библиотеками, которые подключатся к приложению-клиенту и работаю в одном с ними адресном пространстве – наиболее эффективный сервер, он не требует специальных средств;

  • Локальный – создается отдельным процессом (модулем, exe), который работает на одном компьютере с клиентом;

  • Удаленный – создается процессом, который работает на другом компьютере.

  1. CORBA (компанияOMG) реализует подход, аналогичныйCOM, на базе собственных интерфейсов и объектов.

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

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

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