Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы нв вопросы по ТРПП 2_1.docx
Скачиваний:
10
Добавлен:
22.04.2019
Размер:
252.27 Кб
Скачать

12. Основные этапы развития программирования как науки.

I этап. Стихийное программирование (от начала появления ЭВМ до середины 60-х гг ХХ века).

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

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

II этап. Структурное (модульное) программирование

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

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

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

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

III этап. Объектный подход к программированию (середина 70-х гг – конец 90-х гг).

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

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

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

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

IV этап. Компонентный подход и case-технологии (середина 90-х гг – настоящее время).

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

13. Понятие case – технологии и ее фундаментальные принципы. Основные составляющие case-технологии.

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

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

Преимущества CASE-технологии по сравнению с традиционной технологией оригинального проектирования сводятся к сле­дующему:

• улучшение качества разрабатываемого программного при­ложения за счет средств автоматического контроля и гене­рации;

• возможность повторного использования компонентов разра­ботки;

• поддержание адаптивности и сопровождения ЭИС;

• снижение времени создания системы, что позволяет на ран­них стадиях проектирования получить прототип будущей си­стемы и оценить его;

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

• возможность коллективной разработки ЭИС в режиме реаль­ного времени.

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

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

• мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности; 

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

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

Интегрированное CASE-средство (или комплекс средств, поддерживающих полный жизненный цикл ПО) содержит следующие компоненты:

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

  • графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм (DFD, ERD и др.), образующих модели информационной системы;

  • средства разработки приложений, включая языки 4GL (4GL – четвёртого поколения) и генераторы кодов;

  • средства конфигурационного управления;

  • средства документирования;

  • средства тестирования;

  • средства управления проектом;

  • средства реинжиниринга.