Этапы развития программирования.
1. Стихийное программирование (до сер. 60-х годов):
– программирование в 2-х кодах;
– появление ассемблеров;
– появление ЯВУ (Fortran, Algol);
– появление подпрограмм, работающих с глобальными данными);
– локализация данных в подпрограммах;
– стихийное использование подхода «снизу-вверх», сложные интерфейсы функций.
2. Структурное программирование (сер. 60 – сер. 80):
В основе СП лежит декомпозиция сложных систем. Процедурная декомпозиция – разбиение на подпрограммы (несколько десятков операторов).
– проектирование «сверху вниз»;
– использование 3 базовых алгоритмических конструкций (следование, ветвление, цикл);
– структурирование данных, пользовательские типы;
– модульное программирование – выделение группы подпрограмм, использующих одни данные, в отдельно компилируемые модули.
Языки: PL/1, Algol-68, Pascal, C.
3. Объектный подход (сер. 80 – конец 90).
– представление программы в виде совокупности объектов, которые являются экземплярами определённого класса;
– классы образуют иерархию с наследованием свойств;
– система сообщений;
– ООП обеспечивает более естественную декомпозицию ПО, что реализует наиболее полную локализацию данных и позволяет вести независимую разработку классов;
– визуальное программирование.
Примеры языков: Simula, Smalltalk, C++, Modula, Java, Object Pascal.
4. Компонентный подход и CASE-технологии.
– построение программного обеспечения из отдельных компонентов – отдельно существующих частей ПО, взаимодействующих между собой через стандартизованные двоичные интерфейсы;
– компоненты собираются в двоичные библиотеки или исполняемые файлы;
Примеры:
COM (Component Object Model) – определяет общую парадигму взаимодействия программ любых типов, позволяя одному программному обеспечению использовать функции (службы), предоставляемые другой.
Объекты COM функционируют в составе сервера: внутреннего, локального, удалённого.
На его основе построены OLE-Automation и ActiveX.
CORBA (Common Object Request Broker Architecture).
CASE-технологии (Computer-Aided Software/System Engineering) – автоматизированные технологии разработки и сопровождения ПО.
Проблемы разработки сложных программных систем:
1. Сложность формального определения требований к ПС.
2. Отсутствие удовлетворительных средств описания дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий.
3. Коллективная разработка.
4. Необходимость увеличения степени повторяемости кода.
Дата добавления: 2015-11-04; просмотров: 622;