Вопрос №1
Технология проектирования программ: структурное, модульное и объектно-ориентированное программирование. Классификация и сравнительный анализ языков программирования. Основные этапы разработки программы.
Технологии программирования
- структурное программирование – технология разработки программных комплексов, основанная на использовании трех алгоритмических структур (последовательное выполнение, ветвление и повторение) и нисходящем программировании «сверху вниз»;
- модульное программирование – технология разработки программ, предполагающая разбиение программы на независимые модули; считается, что разделение большой программы на модули облегчает ее разработку, отладку и сопровождение, а также делает возможным многократное использование модулей в разных программах;
Нисходящее программирование – методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся полностью разработанной программой.
Заглушка в структурном программировании – процедура, представленная точной спецификацией заголовка и пустым телом. Заглушка позволяет компилировать и выполнять основную программу в отладочном режиме.
Структурное и модульное программирование относятся к одной методологии – императивному программированию. Императивное программирование – методология программирования, характеризующаяся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.
- логическое программирование – программирование в терминах фактов и правил вывода, с использованием языка, основанного на формальной логике;
- функциональное программирование – технология программирования, в которой любая программа представляет собой функцию с одним или несколькими аргументами; сложные программы при таком подходе строятся посредством агрегирования (композиции) функций; циклы заменяются аппаратом рекурсивных функций;
Логическое и функциональное программирование относятся к методологии декларативного программирования. В декларативном программировании программа представляет собой не набор инструкций (что и в какой последовательности сделать), а набор описаний данных и целей (что дано и что надо получить). Как получить – решает сама программа (не всегда эффективно).
- объектно-ориентированное программирование – технология программирования, при которой программа рассматривается как набор дискретных объектов, объединенных в классы, имеющие общие свойства и методы; объекты могут взаимодействовать друг с другом и реагировать на происходящие в операционной среде события.
Преимуществом ООП является концептуальная близость к предметной области произвольной структуры и назначения. Механизм наследования атрибутов и методов позволяет строить производные понятия на основе базовых и таким образом создавать модель сколь угодно сложной предметной области с заданными свойствами. Перемещаясь по иерархии классов от более общих понятий предметной области к более конкретным (или от более сложных – к более простым) и наоборот, программист получает возможность изменять степень абстрактности или конкретности взгляда на моделируемый им реальный мир. Объекты и методы могут быть полиморфными, что делает реализованное программное обеспечение более гибким и универсальным.
Язык программирования — искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора.
Существуют различные классификации языков программирования. По наиболее распространенной классификации все языки программирования делят на языки низкого и высокого уровня.
В группу языков низкого уровня входят машинные языки и языки символического кодирования (Ассемблер). Операторы Ассемблера – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т. е. являются машинно-зависимыми.
Языки высокого уровня можно разделить на группы, соответствующие технологиям программирования:
- неструктурное программирование (Бейсик, Фортран);
- структурное и модульное программирование (Algol a Паскаль, APL a C);
- функциональное программирование (LISP – обработка символьных данных, символьная математика);
- логическое программирование (SML – доказательство теорем, PROLOG – системы искусственного интеллекта);
- объектно-ориентированное программирование (C++, Object Pascal, Oberon, Java);
- визуальное программирование (Visual C, Visual Basic, Delphi);
- языки параллельных вычислений (ADA, Modula 2);
- языки сценариев или скрипты (VB Script, Java Script).
Этапы разработки программы
Постановка задачи (системный аналитик) a СПЕЦИФИКАЦИЯ
Разработка алгоритма (алгоритмист) a АЛГОРИТМ
Кодирование (кодировщик) a ПРОГРАММА
Отладка («тестор») a ОШИБКИ
Сопровождение a РЕЗУЛЬТАТЫ ЭКСПЛУАТАЦИИ