Поколения языков программирования.


Если проследить историю развития языков программирования можно выделить две основные концепции. 1)Перемещение акцентов от программирования отдельных деталей к программированию более крупных компонент. 2)Развитие и совершенствование языков программирования высокого уровня.

Компоненты объектного подхода.


Концептуальная основа ОО стиля состоит в объектном подходе. Этому подходу соответствуют четыре главных элемента: 1) абстрагирование; 2) ограничение доступа; 3) модульность; 4) иерархия.

Модульность. Иерархия.


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

Задача. Билеты на экзамен (практика)


Задача Создайте класс box, конструктору которого передаются три значения типа double, представляющие собой длины сторон параллепипе-да. Класс box должен подсчитывать его объем и хранить результат также в виде значения типа double. Включите в класс функцию-член vol(). которая будет выводить на экран объем любого объекта типа box.

Кафедра ВКСС. Вопросы по дисциплине «Технология программирования».


1. Определение понятий технология и методология программирова- ния. Цель курса. Характеристики качества ПО. 2. Сложность ПО и ее причины. Признаки сложной системы. Каноническая форма сложной системы. Декомпозиция как способ снижения сложности.

Программа как формализованное описание процесса обработки данных. Программное средство


Целью программирования является описание процессов обработки данных (в дальнейшем ? просто процессов). Дадим ряд определений: Данные (data) ? это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе, а Информация (information) ? это смысл, который придается данным при их представлении. Обработка данных (data processing) ? это выполнение систематической последовательности Читать далее

Понятие правильной и надежной программы


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

Технология программирования как технология разработки надежных ПС


В соответствии с обычным значением слова «технология» под технологией программирования (programming technology) будем понимать совокупность производственных процессов, приводящую к созданию требуемого ПС, а также описание этой совокупности процессов.

Специфика разработки программных средств


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

Жизненный цикл программного средства


Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process).

Понятие качества программного средства


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

Обеспечение надежности


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

Интеллектуальные возможности человека


Дейкстра выделяет три интеллектуальные возможности человека, используемые при разработке ПС: • способность к перебору, • способность к абстракции, • способность к математической индукции.

Неправильный перевод как причина ошибок в ПС


При разработке и использовании ПС мы многократно имеем дело с преобразованием (переводом) информации из одной формы в другую (см. рис.3.1). Заказчик формулирует свои потребности в ПС в виде некоторых требований.

Основные пути борьбы с ошибками


Учитывая рассмотренные особенности действий человека при переводе можно указать следующие пути борьбы с ошибками: • сужение пространства перебора (упрощение создаваемых систем),

Назначение внешнего описания программного средства


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

Определение требований к ПС


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

Спецификация качества ПС


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

Функциональная спецификация ПС


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

Методы контроля внешнего описания ПС


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

Понятие архитектуры программного средства


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

Цель модульного программирования


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

Основные характеристики программного модуля


Выделить хороший с этой точки зрения модуль является серьезной творческой задачей. Для оценки приемлемости выделенного модуля используются некоторые критерии. Майерс предложил для оценки приемлемости программного модуля использовать более конструктивные его характеристики: 

Методы разработки структуры программы


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

Метод восходящей разработки


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

Метод нисходящей разработки


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

Метод нисходящей разработки


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