Характеристика объектно-ориентированного программирования
ПРОГРАММИРОВАНИЕ.
Программное обеспечение. Основные этапы решения задач на ЭВМ. Жизненный цикл программного средства
Программа - упорядоченная последовательность команд компьютера для решения задачи. Программное обеспечение (sowtware) – совокупность программ обработки информации и документов, необходимых для их эксплуатации.
Программное обеспечение принято по назначению подразделять на базовое, системное, прикладное и инструментальное.
ПО распределяется на несколько уровней. Каждый вышележащий уровень повышает функциональность системы.
3. Служебное ПО |
4. Прикладное ПО |
2. Системное ПО |
1. Базовое ПО |
1) Базовое ПО отвечает за взаимодействие с базовыми аппаратными средствами и, как правило, программные средства входят непосредственно в состав базового оборудования и хранятся в специальных микросхемах ПЗУ. Программы записываются в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации (хотя возможна перепрошивка такого ПО при помощи программатора).
2) Системное ПО – переходный. Программы обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением (драйверы). Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера.
3) Служебное ПО (сервисы, утилиты) – автоматизация работ по проверке, наладке и настройке компьютерной системы. Для расширения и улучшения функций системного ПО.
4) Прикладное ПО – комплекс прикладных программ, с помощью которых на рабочем месте обеспечивается выполнение конкретных задач.
Инструментальное программное обеспечение — программное обеспечение, предназначенное для проектирования, разработки и сопровождения программ. В данную группу ПО можно отнести отладчики, компиляторы, редакторы кода, компоновщики и др.
Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера. Состав этапов зависит от задачи.
1) Постановка задачи:
§ сбор информации о задаче;
§ формулировка условия задачи;
§ определение конечных целей решения задачи;
§ определение формы выдачи результатов;
§ описание данных (их типов, диапазонов величин, структуры и т. п.).
2) Анализ и исследование задачи, модели:
§ анализ существующих аналогов;
§ анализ технических и программных средств;
§ разработка математической модели;
§ разработка структур данных.
3) Разработка алгоритма:
§ выбор метода проектирования алгоритма;
§ выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
§ выбор тестов и метода тестирования;
§ проектирование алгоритма.
4) Программирование:
§ выбор языка программирования;
§ уточнение способов организации данных;
§ запись алгоритма на выбранном языке
§ программирования.
5) Тестирование и отладка:
§ синтаксическая отладка;
§ отладка семантики и логической структуры;
§ тестовые расчеты и анализ результатов тестирования;
§ совершенствование программы.
6) Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
7) Сопровождение программы:
§ доработка программы для решения конкретных задач;
§ составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО
1) каскадная модель (70-85 г.г.);
2) спиральная модель (86-90 г.г.).
Каскадная модель.
Каскадная модель жизненного цикла предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Преимущества:
§ Полная и согласованная документация на каждом этапе;
§ Легко определить сроки и затраты на проект.
Недостатки:
§ Увеличение объема работ, связанных с возвратом на предыдущие этапы;
§ Заказчик не может внести изменения в техническое задание на проект, пока тот не будет полностью завершен.
Спиральная модель.
Цель – быстрее показать пользователю работоспособный продукт.
При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования (создания прототипов с целью проверки пригодности ПО, а также для предоставления программы заказчику на ранних стадиях разработки).
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации оцениваются:
§ риск превышения сроков и стоимости проекта;
§ необходимость выполнения ещё одной итерации;
§ степень полноты и точности понимания требований к системе;
§ целесообразность прекращения проекта.
Характеристика объектно-ориентированного программирования.
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого типа (класса), а классы образуют иерархию с наследованием свойств.
Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.
ООП позволяет вести практически независимую разработку отдельных частей (объектов) программы. Кроме этого, объектный подход предлагает новые технологические средства разработки, такие как наследование, полиморфизм, композиция, наполнение, позволяющие конструировать сложные объекты из более простых. В результате существенно увеличивается показатель повторного использования кодов, появляется возможность создания библиотек объектов для различных применений, и разработчикам предоставляются дополнительные возможности создания систем повышенной сложности.
Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы.
Класс — это тип, описывающий устройство объектов. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Четыре кита ООП.
1. Абстрагирование – это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция – это набор всех таких характеристик.
2. Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
3. Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым или родительским. Новый класс – потомком, наследником или производным классом.
4. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.