
- •О. В. Шишов технология разработки программных продуктов
- •1. Программы и программирование
- •1.1 Основные определения
- •1.2. Классификация программ и различные виды программирования
- •1.3. Категории специалистов, занятых разработкой и эксплуатацией программ
- •2. Жизненный цикл программного обеспечения
- •2.1 Основные этапы жизненного цикла и их взаимосвязь
- •2.2 Стратегии и модели жизненного цикла
- •3. Качество по
- •3.1 Критерии оценки качества по
- •3.2 Методы оценки качества программного средства
- •4. Надежность программных продуктов
- •4.1 Надежность и виды отказов
- •4.2 Надежность и правильность программы
- •4.3. Вероятностный подход к оценке надежности
- •4.4 Факторы надежности
- •4.5 Приемы надежного программирования
- •6.2. Стандарты технологии создания программных продуктов
- •6.3. Основные этапы технологического процесса разработки программ
- •7. Структурное проектирование программных продуктов
- •7.1. Модули. Сцепление и связность модулей
- •7.2. Структура программных продуктов
- •7.3. Методы структурного программирования
- •8. Алгоритмическое представление задачи программирования
- •8.1. Свойства алгоритмов
- •8.2. Формы записи алгоритмов
- •8.3. Базовые алгоритмические структуры
- •9. Языки программирования
- •9.1. Основные понятия и элементы языков программирования
- •9.2. Классификация языков программирования
- •9.3. Развитие языков программирования
- •10. Пользовательский интерфейс
- •10.1. Типы интерфейсов
- •10.2. Этапы разработки пользовательского интерфейса
- •10.3. Критерии оценки интерфейса пользователем
- •11. Порядок работы эвм при выполнении программ. Трансляторы, интерпритаторы, компиляторы
- •12. Оптимизация программ
- •13. Отладка и тестирование программного обеспечения
- •13.1. Классификация неисправностей и ошибок в программе
- •13.2. Порядок и способы отладки и тестирования программ
- •13.3. Методы тестирования
- •13.4. Требования и рекомендации по тестированию программ
- •13.4. Программирование «с защитой от ошибок»
- •14. Аттестация программного средства
- •15. Сопровождение по
- •16. Защита программных продуктов
- •16.1. Обеспечение защищенности программных средств
- •16.3. Правовые методы защиты программных продуктов
- •17. Документорование программных продуктов
- •17.1. Виды программных документов
- •17.2. Содержание документации по еспд
- •17.3. Стиль оформления программы
- •Содержание
8.2. Формы записи алгоритмов
Существуют множество различных форм записи алгоритмов. Это связано с тем, что каждый исполнитель алгоритмов "понимает" лишь такой алгоритм, который записан на его "языке" и по его правилам. Условно выделяют четыре формы записи алгоритмов:
1. Словесно-пошаговая (текстовая).
2. Табличная.
3. Графическая форма записи (блок-схема).
4. Запись на алгоритмическом языке.
Словесная форма записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.
При использовании словесно-пошаговой (текстовой) формы записи алгоритм часто записывается в виде пронумерованных этапов его выполнения.
Например: Алгоритм сложения двух чисел ( a и b ).
1. Спросить, чему равно число a .
2. Спросить, чему равно число b .
3. Сложить a и b, результат присвоить с.
4. Сообщить результат с.
Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы, страдают многословностью записей, допускают неоднозначность толкования отдельных предписаний.
Табличная форма записи – это запись алгоритма в виде таблицы. Используемые таблицы могут быть различными. Для примера будем использовать упрощенную форму. Порядок составления табличных алгоритмов:
1. Переписать выражение так, как допустимо в информатике.
2. Определить порядок действий.
3. Ввести обозначения промежуточных результатов.
4. Занести полученные действия в таблицу.
Пример: Алгоритм вычисления R=2a +3b .
№ действия |
действие |
величина |
результат |
|
1 |
2 |
|||
1 |
* |
2 |
A |
k |
2 |
* |
3 |
B |
u |
3 |
+ |
k |
U |
R |
При использовании графической формы записи (блок-схемы) алгоритм записывается в виде схемы, состоящей из блоков (геометрических фигур) с размещенными в них действиями. Блоки соединяются стрелочками и показывают структуру всего алгоритма. Алгоритм в виде блок-схемы начинается блоком «начало» и заканчивается блоком «конец».
Таблица Основные блоки
При составлении блок-схемы алгоритма сначала выделяют исходные данные (все переменные величины после знака равенства и в условии) и результат (величины которые необходимо найти). Если в задании подразумеваются, но не указываются имена величин, то они обозначаются самостоятельно.
При отсутствии исходных данных блок ввода не пишется. В один блок можно поместить одно действие.
Например: Алгоритм вычисления значения выражения (ВЗВ) K=3b+6а.
Дано : b, a Результат: K K=3*b+6*a 1) R := 3*b 2) M := 6*a 3) K := R+M |
|
Существуют еще формы записи, которые можно отнести к графическим. Одной из таких форм является построение структурограмм.
Действия в структурограмме располагаются друг под другом. Это позволяет наглядно отслеживать обработку данных в алгоритмах. Все структуры имеют прямоугольную форму. Заполнение их сходно с аналогичными блоками в блок-схемах, но имеются и отличия. Рассмотрите блок-схему и структурограмму алгоритма.
|
Форма записи на алгоритмическом языке это запись алгоритма на специальном языке (в том числе и на том или языке программирования). Она осуществляется, строго следуя правилам выбранного языка.
Для единообразной записи алгоритмов в форме близкой к языковой, но не учитывающей особенностей конкретного языка программирования была придумана особая система обозначений и правил, получившая название псевдокод.
Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя.
Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.
Стандарта псевдокода нет, т.е. нет единого или формального его определения, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. "Основы информатики и вычислительной техники", 1991. Этот язык в дальнейшем мы будем называть просто "алгоритмический язык".
Т а б л и ц а Основные служебные слова
алг (алгоритм) |
сим (символьный) |
дано |
для |
да |
арг (аргумент) |
лит (литерный) |
надо |
от |
нет |
рез (результат) |
лог (логический) |
если |
до |
при |
нач (начало) |
таб (таблица) |
то |
знач |
выбор |
кон (конец) |
нц (начало цикла) |
иначе |
и |
ввод |
цел (целый) |
кц (конец цикла) |
все |
или |
вывод |
вещ (вещественный) |
длин (длина) |
пока |
не |
утв |
Рассмотрим основные команды школьного АЯ.
Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А := В, где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.
Например, a := (b+c) * sin(Pi/4); i := i+1.
Команды ввода и вывода:
-
ввод (далее перечисляются имена вводимых переменных);
-
вывод (далее перечисляются имена выводимых переменных, выражений, тексты).
Команды если и выбор. Применяют для организации ветвлений.
Команды для и пока. Применяют для организации циклов.
После команды может стоять знак "|", за которым записываются комментарии. Комментарии можно помещать в конце любой строки. Они не обрабатываются, но существенно облегчают понимание алгоритма.
Пример записи алгоритма на школьном АЯ.
алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + ... + n*n
нач цел i
ввод n; S:=0
нц для i от 1 до n
S:=S+i*i
кц
вывод "S = ", S
кон