Тема 8. Программное обеспечение и технологии программирования.

 

Системное ПО (System Software) – это программы и комплексы программ, являющиеся общими для всех, кто совместно использует технические средства компьютера, и применяемые как для автоматизации разработки (создания) новых программ, так и для организации выполнения программ существующих.

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

Инструментальное программное обеспечение входит в состав системного ПО, к нему относят среды и системы программирования.

Система программирования — это система для разработки новых программ на конкретном языке программирования.

Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:

· компилятор или интерпретатор;

· интегрированная среда разработки;

· средства создания и редактирования текстов программ;

· обширные библиотеки стандартных программ и функций;

· отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;

· "дружественная" к пользователю диалоговая среда;

· многооконный режим работы;

· мощные графические библиотеки; утилиты для работы с библиотеками

· встроенный ассемблер;

· встроенная справочная служба;

· другие специфические особенности.

Популярные системы программирования — Turbo Basic, Quick Basic, Turbo Pascal, Turbo C.

Структурное программирование — методология разработки программного обеспечения, предложенная в 70-х года XX века Дейкстрой и разработанная и дополненная Виртом.

В соответствии с данной методологией любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

· последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

· ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

· цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).

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

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

Алгоритм и программа должны составляться поэтапно (то есть по шагам).

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

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

Базисная структура типа "следование". Имеет следующий смысл: "Выполнить S"

Базисная структура типа "ветвление". Имеет следующий смысл: "Если P то выполнить S1 иначе выполнить S2"

Базисная структура типа "цикл с предусловием". Имеет следующий смысл: "Пока P выполнять S"

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

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

Объекты моделируют характеристики и поведение элементов мира, в котором мы живем. Они являются окончательной абстракцией данных.Не менее важным является и тот факт, что объекты могут наследовать характеристики и поведение того, что мы называем порождающие, родительские объекты (или предки). Класс. Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта. Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:1. Инкапсуляция.2. Наследование.

3. Полиморфизм.

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

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

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

Визуальное программирование.Технологии объектного, событийного и структурного программирования объединяются в RAD-системах, которые содержат много готовых классов, представленных в виде визуальных компонентов, которые добавляются в программу одним щелчком. Программисту необходимо спроектировать внешний вид окон приложений и определить обработку событий, весь вспомогательный код программа сгенерирует сама.

Программирование (programming) - теоретическая и практическая деятельность, связанная с созданием программ. Решение задач на компьютере включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.

1. Постановка задачи:

• сбор информации о задаче;

• формулировка условия задачи;

• определение конечных целей решения задачи;

• определение формы выдачи результатов;

• описание данных (их типов, диапазонов величин, структуры и т. п.).

2. Анализ и исследование задачи, модели:

• анализ существующих аналогов;

• анализ технических и программных средств;

• разработка математической модели;

• разработка структур данных.

3. Разработка алгоритма:

• выбор метода проектирования алгоритма;

• выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

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

• проектирование алгоритма.

4. Программирование:

• выбор языка программирования;

• уточнение способов организации данных;

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

программирования.

5. Тестирование и отладка:

• синтаксическая отладка;

• отладка семантики и логической структуры;

• тестовые расчеты и анализ результатов тестирования;

• совершенствование программы.

6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7. Сопровождение программы:

• доработка программы для решения конкретных задач;

• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

Литература: [1], с. 150-209.