Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 2. История развития ООП и сред RAD

Средства тестирования программ

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

· Тестирование на отказ и восстановление.

· Функциональное тестирование.

· Тестирование безопасности.

· Тестирование взаимодействия.

· Тестирование процесса установки.

· Тестирование удобства пользования.

· Конфигурационное тестирование.

· Нагрузочное тестирование.

 

Объектно-ориентированное программирование (ООП) – относительно новый подход к построению программ. Этот подход впервые реализовался в языках программирования Ада, SmallTalk, C++, Borland Pаscal.

ООП является логическим развитием технологий и методик программирования. Развитие методик программирования осуществлялось примерно в следующем порядке.

1. программирование небольших программ на базе переключателей;

2. программирование на ассемблере;

3. машино-ориентированные языки;

4. проблемно-ориентированные языки;

5. программирование на языках высокого уровня (Фортран);

6. программирование на языках структурного программирования (Паскаль, Си);

7. объектно-ориентированное программирование (ООП).

 

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

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

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

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

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

За последние 10-15 лет, в связи с бурным ростом средств телекоммуникаций и соответствующих технологий, появилось так же большое количество языков, которые ориентированы, прежде всего, не на проблему, а на технологию передачи данных. Они часто являются развитием или упрощением использующихся базовых языков, заимствующих иногда часть известного синтаксиса. Примерами могут послужить языки разметки документов для web-страниц html, языки обработки данных в клиентских приложениях vbscript, java-script, языки серверов обработки данных java, perl и их различные версии для разных платформ.

Преимущества ООП

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

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

В 60-х годах была реализована методика структурного программирования, подразумевавшая использование переменных с осмысленными именами, существование глобальных и локальных переменных и процедурное проектирование приложений по принципу "сверху вниз". Благодаря внедрению в жизнь этих концепций тексты программ стали понятнее и читабельнее, в результате чего упростился процесс отладки программ. Стало проще сопровождать программы, так как появилась возможность контролировать выполнение не отдельных команд, а целых процедур. Примерами языков, ориентированных на подобный процедурный подход, могут быть Ada, С и Pascal.

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

Создателем ООП считают Бьярна Страуструпа (Bjarne Stroustrup). Концепция ООП была представлена им в языке C++, разработанном им в начале 80-х в компании BellLabs. ООП в C++ в значительной степени основано на концепциях и средствах структурного программирования языка С.

<== предыдущая лекция | следующая лекция ==>
Средства реализации программного кода | Отличия ООП от процедурных программ
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 675; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.