Демо (html) Технология программирования
1.Массив названий предметов, по которым тестировались студенты курса.
2.Информация по каждому студенту курса:
a.Номер группы.
b.Фамилия.
c.Имя.
d.Отчество.
e.Оценки по предметам сессии (массив).
Структурный подход к разработке программного обеспечения. Создание спецификации на разработку программной системы
Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO - International Organization of Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.
Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:
·основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);
·вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем);
·организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).
Жизненный цикл программы (ЖЦП) — это весь период ее разработки и эксплуатации, начиная с момента возникновения замысла и заканчивая прекращением всех видов ее использования.
В классическом жизненном цикле выделяются следующие процессы:
1.Системный анализ.
2.Анализ требований.
3.Проектирование.
4.Кодирование.
5.Тестирование.
6.Сопровождение.
Результаты каждого этапа отображаются в документах, называемых спецификациями. Первые два этапа жизненного цикла программного обеспечения представляются в виде документа «Постановка задачи». Формы спецификаций могут различаться, но все они имеют несколько обязательных разделов.
0641.01.03;ЭПТ2.01;1
План
Теоретическая часть
Технологические подходы к разработке программного обеспечения
Жизненный цикл программы
Постановка задачи
Пример спецификации этапа «Постановка задачи».
Спецификация задачи
Описание задачи
Входные данные
Выходные данные
Ошибки
Контрольный пример
Цель: изучить на практическом примере процесс создания спецификации на разработку программного комплекса при структурном методе проектирования программ.
Результат обучения:
получить навыки выполнения этапа жизненного цикла программы «Постановка задачи».
Список рекомендуемой литературы:
Румянцев Д., Монастырский Л. Путь программиста: опыт создания личности программиста. — М.: «Издательский Дом ИНФРА-М», 2000.
Орлов С. А. Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
Мануйлов В.Г. Разработка программного обеспечения на Паскале. — М.: «Издательство ПРИОР», 1998.
Чернов Д., Еременко А. OpenOffice.org для профессионала. – М.: ДМК Пресс, 2008.
Используемые программы:
OpenOffice.org Write
Текстовый редактор OpenOffice.org Write – программа, предназначенная для ввода и форматирования текста.
Вариант
Разработать программный комплекс «Отдел кадров». Подсистема должна обслуживать следующие запросы: выводить список сотрудников, у которых в заданном месяце день рождения; выводить список сотрудников, проживающих на заданной улице; выводить список улиц, на которых проживают сотрудники, в алфавитном порядке; выводить список сотрудников, имеющих минимальную заработную плату.
1.Создайте спецификацию на разработку программного комплекса. Результаты разработки поместите в текстовый документ. Дайте файловому документу имя «Постановка задачи». Этот файл потребуется Вам для выполнения следующих лабораторных работ.
2.Составьте описание возможностей разрабатываемого комплекса. Результаты разработки поместите в текстовый документ «Постановка задачи».
3.Составьте описание входных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
4.Составьте описание выходных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
5.Составьте описание ошибок, которые могут возникнуть при работе с программой. Результаты поместите в текстовый документ «Постановка задачи».
6.Составьте контрольный пример для проверки правильности работы программы. Результаты разработки поместите в текстовый документ «Постановка задачи».
Вариант
Разработать программный комплекс для подведения итогов Олимпийских игр. В программу пользователь должен ввести количество медалей разного достоинства, завоеванное каждой командой–участницей. Программа подсчитывает общее число медалей и соответствующее число очков. Программа должна выдавать информацию по каждой команде–участнице, а также упорядоченный список в соответствии с набранным количеством очков. Количество очков определяется по следующему правилу: за золотую медаль команда получает 7 очков, за серебряную — 6, за бронзовую — 5.
1.Создайте спецификацию на разработку программного комплекса. Результаты разработки поместите в текстовый документ. Дайте файловому документу имя «Постановка задачи». Этот файл потребуется Вам для выполнения следующих лабораторных работ.
2.Составьте описание возможностей разрабатываемого комплекса. Результаты разработки поместите в текстовый документ «Постановка задачи».
3.Составьте описание входных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
4.Составьте описание выходных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
5.Составьте описание ошибок, которые могут возникнуть при работе с программой. Результаты поместите в текстовый документ «Постановка задачи».
6.Составьте контрольный пример для проверки правильности работы программы. Результаты разработки поместите в текстовый документ «Постановка задачи».
Вариант
Разработать программный комплекс по обслуживанию риэлтовской компании. Программа должна давать информацию по следующим параметрам: общая площадь, жилая площадь, количество комнат, наличие санузла и его характеристики, наличие лоджии, панельный или кирпичный дом, стоимость квартиры. Сформулируйте несколько критериев, по которым можно отобрать ту или иную квартиру для покупки и, основываясь на этих критериях, выберите сведения о ней. Если подходящих квартир несколько, то выведите сведения обо всех.
1.Создайте спецификацию на разработку программного комплекса. Результаты разработки поместите в текстовый документ. Дайте файловому документу имя «Постановка задачи». Этот файл потребуется Вам для выполнения следующих лабораторных работ.
2.Составьте описание возможностей разрабатываемого комплекса. Результаты разработки поместите в текстовый документ «Постановка задачи».
3.Составьте описание входных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
4.Составьте описание выходных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
5.Составьте описание ошибок, которые могут возникнуть при работе с программой. Результаты поместите в текстовый документ «Постановка задачи».
6.Составьте контрольный пример для проверки правильности работы программы. Результаты разработки поместите в текстовый документ «Постановка задачи».
Вариант
Разработать программный комплекс, который представляет собой подсистему, обслуживающую учебную часть Вуза. Программная подсистема позволяет получать информацию по проведению занятий на первом курсе факультета N: выдает названия предметов, которые ведет преподаватель с фамилией Fam; определяет количество занятий в неделю по каждому из предметов; выводит названия предметов, занятия по которым проводятся в заданный день (понедельник, вторник, среда, четверг, пятница, суббота).
1.Создайте спецификацию на разработку программного комплекса. Результаты разработки поместите в текстовый документ. Дайте файловому документу имя «Постановка задачи». Этот файл потребуется Вам для выполнения следующих лабораторных работ.
2.Составьте описание возможностей разрабатываемого комплекса. Результаты разработки поместите в текстовый документ «Постановка задачи».
3.Составьте описание входных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
4.Составьте описание выходных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
5.Составьте описание ошибок, которые могут возникнуть при работе с программой. Результаты поместите в текстовый документ «Постановка задачи».
6.Составьте контрольный пример для проверки правильности работы программы. Результаты разработки поместите в текстовый документ «Постановка задачи».
Вариант
Разработать программный модуль для обработки информации о подписных изданиях. Программный комплекс должен обслуживать следующие запросы:
А) По заданному номеру месяца и названию издания найти количество экземпляров, подлежащих доставке.
Б) По фамилии найти список подписных изданий данного подписчика.
В) По заданному названию издания и номеру месяца определите участок, получающий больше всего экземпляров.
Г) По заданному участку доставки и месяцу определите издание, на которое подписалось наибольшее число подписчиков.
1.Создайте спецификацию на разработку программного комплекса. Результаты разработки поместите в текстовый документ. Дайте файловому документу имя «Постановка задачи». Этот файл потребуется Вам для выполнения следующих лабораторных работ.
2.Составьте описание возможностей разрабатываемого комплекса. Результаты разработки поместите в текстовый документ «Постановка задачи».
3.Составьте описание входных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
4.Составьте описание выходных данных для разрабатываемого комплекса. Результаты поместите в текстовый документ «Постановка задачи».
5.Составьте описание ошибок, которые могут возникнуть при работе с программой. Результаты поместите в текстовый документ «Постановка задачи».
6.Составьте контрольный пример для проверки правильности работы программы. Результаты разработки поместите в текстовый документ «Постановка задачи».
Тестирование
Подробно излагается постановка задачи, описывается применяемая математическая модель для задач вычислительного характера в разделе «Постановка задачи», который называется (запишите прописными буквами)
- описание
0641.01.03;ЭПТ2.02;1
Пример разработки моделей для проектирования учебного комплекса «Деканат»
В первой лабораторной работе поставлена задача:
Разработать программный комплекс по обработке результатов сессии на курсе. Программный комплекс позволяет получать следующие сведения:
§фамилии студентов, имеющих задолжности хотя бы по одному предмету;
§название предмета, который был сдан лучше всех;
§процент студентов, сдавших все экзамены на 5 и 4;
§номера групп в порядке убывания средней успеваемости.
Необходимо создать функциональную модель разрабатываемого программного комплекса. Данный учебный комплекс получил имя «Деканат».
Результатом применения метода SADT является модель, которая состоит из диаграмм, фрагментов текста и глоссария, имеющих ссылки друг на друга.
Диаграммы — главные компоненты модели, на которых все функции и интерфейсы представлены как блоки и дуги соответственно. Управляющая информация входит в блок сверху. Входная информация, которая подвергается обработке, показана с левой стороны блока, а результаты (выход) показаны с правой стороны.
Одной из наиболее важных особенностей метода SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
Построение SADT-модели начинается с представления всей системы в виде простейшего компонента — одного блока и дуг, изображающих интерфейсы с функциями вне системы. Поскольку единственный блок отражает систему как единое целое, имя, указанное в блоке, является общим.
Функциональная диаграмма программного комплекса «Деканат».
Модель SADTпредставляет собой серию диаграмм с сопроводительной информацией, в которой расшифровывается назначение блоков диаграммы.
Сопроводительная информация для функциональной диаграммы программного комплекса «Деканат»:
А0 — управляющая программа. Эта программа выполняет функции диспетчера. Организует работу двух подчиненных ей модулей.
А1 — модуль ввода исходной информации. В модуле осуществляется проверка входной информации на допустимые значения. Информация записывается на диск.
А2 — модуль обработки исходной информации с целью получения запрашиваемых величин. Подлежит уточнению.
0641.01.03;ЭПТ2.02;1
План
Теоретическая часть
Сущность структурного подхода
Пример разработки моделей для проектирования учебного комплекса «Деканат»
Функциональная модель
Модель потока данных
Цель: изучить на практическом примере модели разработки ПО при структурном подходе к проектированию.
Результат обучения:
получить навыки разработки структурной схемы программы в виде функциональной модели и модели потока данных.
Список рекомендуемой литературы:
Румянцев Д., Монастырский Л. Путь программиста: опыт создания личности программиста. — М.: «Издательский Дом ИНФРА-М», 2000.
Орлов С. А. Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
Мануйлов В.Г. Разработка программного обеспечения на Паскале. — М.: «Издательство ПРИОР», 1998.
Чернов Д., Еременко А. OpenOffice.org для профессионала. – М.: ДМК Пресс, 2008.
Используемые программы:
1.OpenOffice.org Write
Текстовый редактор OpenOffice.org Write – программа, предназначенная для ввода и форматирования текста.
2.PascalABC
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. Содержит текстовый редактор для ввода программы, компилятор, набор управляющих компонентов, набор примеров с решением.
Вариант
Разработать программный комплекс «Отдел кадров». Подсистема должна обслуживать следующие запросы: выводить список сотрудников, у которых в заданном месяце день рождения; выводить список сотрудников, проживающих на заданной улице; выводить список улиц, на которых проживают сотрудники, в алфавитном порядке; выводить список сотрудников, имеющих минимальную заработную плату.
Составьте функциональную модель программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
Составьте сопроводительную информацию к функциональной модели. Результат оформите в текстовом редакторе OpenOffice.org Write.
Составьте модель потока данных программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
Составьте миниспецификацию для модели потока данных программного комплекса «Расписание». Результат оформите в текстовом редакторе OpenOffice.org Write.
Вариант
Разработать программный комплекс «Расписание», который представляет собой подсистему, обслуживающую учебную часть Вуза. Программная подсистема позволяет получать информацию по проведению занятий на первом курсе факультета N: выдает названия предметов, которые ведет преподаватель с фамилией Fam; определяет количество занятий в неделю по каждому из предметов; выводит названия предметов, занятия по которым проводятся в заданный день (понедельник, вторник, среда, четверг, пятница, суббота).
Составьте функциональную модель программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
Составьте сопроводительную информацию к функциональной модели. Результат оформите в текстовом редакторе OpenOffice.org Write.
Составьте модель потока данных программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
Составьте миниспецификацию для модели потока данных программного комплекса «Расписание». Результат оформите в текстовом редакторе OpenOffice.org Write.
Вариант
Разработать программный комплекс для подведения итогов Олимпийских игр. В программу пользователь должен ввести количество медалей разного достоинства, завоеванное каждой командой–участницей. Программа подсчитывает общее число медалей и соответствующее число очков. Программа должна выдавать информацию по каждой команде–участнице, а также упорядоченный список в соответствии с набранным количеством очков. Количество очков определяется по следующему правилу: за золотую медаль команда получает 7 очков, за серебряную — 6, за бронзовую — 5.
1.Составьте функциональную модель программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
2.Составьте сопроводительную информацию к функциональной модели. Результат оформите в текстовом редакторе OpenOffice.org Write.
3.Составьте модель потока данных программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
4.Составьте миниспецификацию для модели потока данных программного комплекса «Расписание». Результат оформите в текстовом редакторе OpenOffice.org Write
Вариант
Разработать программный комплекс по обслуживанию риэлтовской компании. Программа должна давать информацию по следующим параметрам: общая площадь, жилая площадь, количество комнат, наличие санузла и его характеристики, наличие лоджии, панельный или кирпичный дом, стоимость квартиры. Сформулируйте несколько критериев, по которым можно отобрать ту или иную квартиру для покупки и, основываясь на этих критериях, выберите сведения о ней. Если подходящих квартир несколько, то выведите сведения обо всех.
1.Составьте функциональную модель программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
2.Составьте сопроводительную информацию к функциональной модели. Результат оформите в текстовом редакторе OpenOffice.org Write.
3.Составьте модель потока данных программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
4.Составьте миниспецификацию для модели потока данных программного комплекса «Расписание». Результат оформите в текстовом редакторе OpenOffice.org Write
Вариант
Разработать программный модуль для обработки информации о подписных изданиях. Программный комплекс должен обслуживать следующие запросы:
А) По заданному номеру месяца и названию издания найти количество экземпляров, подлежащих доставке.
Б) По фамилии найти список подписных изданий данного подписчика.
В) По заданному названию издания и номеру месяца определите участок, получающий больше всего экземпляров.
Г) По заданному участку доставки и месяцу определите издание, на которое подписалось наибольшее число подписчиков.
1.Составьте функциональную модель программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
2.Составьте сопроводительную информацию к функциональной модели. Результат оформите в текстовом редакторе OpenOffice.org Write.
3.Составьте модель потока данных программного комплекса «Расписание». Рисунок выполните в текстовом редакторе OpenOffice.org Write.
4.Составьте миниспецификацию для модели потока данных программного комплекса «Расписание». Результат оформите в текстовом редакторе OpenOffice.org Write
Структурный подход к разработке программного обеспечения. Проектирование структуры программы
Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы "снизу-вверх" от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Все наиболее распространенные методологии структурного подхода базируются на ряде общих принципов. В качестве двух базовых принципов используются следующие:
·принцип "разделяй и властвуй" — принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
·принцип иерархического упорядочивания — принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.
Выделение двух базовых принципов не означает, что остальные принципы являются второстепенными, поскольку игнорирование любого из них может привести к непредсказуемым последствиям (в том числе и к провалу всего проекта). Основными принципами проектирования также являются:
·принцип абстрагирования — заключается в выделении существенных аспектов системы и отвлечения от несущественных;
·принцип формализации — заключается в необходимости строгого, методического подхода к решению проблемы;
·принцип непротиворечивости — заключается в обоснованности и согласованности элементов;
·принцип структурирования данных — заключается в том, что данные должны быть структурированы и иерархически организованы.
В структурном анализе используются в основном две группы средств, иллюстрирующих функции, выполняемые системой и отношения между данными. Каждой группе средств соответствуют определенные виды моделей (диаграмм), среди которых наиболее распространенными являются следующие:
·SADT (Structured Analysis and Design Technique) модели и соответствующие функциональные диаграммы;
Метод SADTпредставляет собой совокупность правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Модель SADTотображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями.
При моделировании потоков данных (DFD) модель системы определяется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю.
На стадии проектирования ИС модели расширяются, уточняются и дополняются диаграммами, отражающими структуру программного обеспечения: архитектуру ПО, структурные схемы программ и диаграммы экранных форм.
Тестирование
Дайте разъяснения принципам проектирования ПО.
- - - -
0641.01.03;ЭПТ2.03;1
Структурный подход к разработке программного обеспечения. Программная реализация при нисходящей разработке
Важнейшая технологическая задача, возникающая в процессе программирования, — соответствие единому стилю программирования. Под стилем программирования обычно понимают набор приемов или методов программирования, которые используют опытные программисты, чтобы получить правильные, эффективные, удобные для применения и легкочитаемые программы. Правила хорошего стиля — результат соглашения между опытными программистами. Обычно принципы хорошего стиля программирования являются результатом здравого смысла, исходящего из опыта. Код должен быть прост и понятен, т.е. обладать следующими свойствами:
§очевидная логика;
§естественные выражения;
§использование соглашений, принятых в языке разработки;
§осмысленные имена;
§аккуратное форматирование;
§развернутые комментарии;
§отсутствие хитрых трюков и необычных конструкций.
Правило стандартизации стиля заключается в том, что если существует более одного способа сделать что–либо и выбор произвольный, то следует остановиться на одном способе и всегда его придерживаться. Особое значение имеет единый стиль программирования в процессе работы над программным текстом в коллективных разработках. В большинстве крупных проектов существуют внутренние документы, определяющие стиль программирования команды разработчиков.
Хорошего программиста отличает способность писать удобочитаемые программы. Небольшие усилия, которые необходимо приложить для того, чтобы сделать программу удобочитаемой, обходятся дешевле, чем издержки по пересмотру, обнаружению ошибок или переделке плохо написанной программы.
Комментарии
Программа должна содержать комментарии. Их часто опускают с целью экономии времени. Программы с пояснительными комментариями значительно легче отлаживать, так как они содержат дополнительную информацию. Существует три вида комментариев: вводные, оглавления, пояснительные.
Вводные комментарии
Каждая программа, подпрограмма должна начинаться с комментариев, поясняющих, что она делает. Минимальная информация:
1.Назначение программы.
2.Указания по вызову программы и ее использованию.
3.Список и назначение основных переменных или массивов.
4.Указания по вводу/выводу. Список всех файлов.
5.Список используемых подпрограмм.
6.Название применяемых математических методов, а также ссылки на литературные источники.
7.Сведения о времени выполнения программы
8.Требуемый объем памяти.
9.Специальные указания оператору.
10.Сведения об авторе.
11.Дата создания.
Пояснительные комментарии
Пояснениями нужно сопровождать те части программы, которые трудно понять без комментариев. Комментировать следует каждый логически выделенный модуль программы.
Существенно содержание комментариев. Не нужно переводить с английского операторы языка — нужно указывать цель оператора.
Расположение комментариев
Комментарии, которые перемежаются с текстом программы, легче читать, когда они выделены пустыми строками. Комментарии можно заключить в прямоугольник из специальных символов. Можно заключить в прямоугольник группу команд, к которым относится комментарий. Располагать комментарии нужно так, чтобы улучшить наглядность программы, а не ухудшить.
Пропуск строк
Как в естественном языке мы пользуемся пропуском строк для отделения параграфов, так и в программе можно разделять ее отдельные фрагменты. Пропуском одной строки можно отделять каждую группу логически связанных операторов, пропуском двух строк — основные логические фрагменты программы.
Пробелы
В языках программирования пробелы довольно часто ставятся произвольно. Действительно, в изъятии пробелов из программы не больше смысла, чем в том, чтобы их убрать из текста.
Широкое использование пробелов существенно облегчает чтение программы. Пробелы следует ставить между элементами списка данных, а также до и после операций +, –, =. Иногда желательно отделять пробелами операции (*,/). Пробелы можно также использовать для указания приоритета операций. Например, запись вида
1 + А*В
предпочтительнее, чем вводящее в заблуждение выражение
1 + А * В
Выбор имен переменных
Имена должны давать представления о том, что за величины за ними скрываются. Например, лучше использовать
Const Price = 508.00;
вместо
Const X = 508.00;
Нужно избегать схожих по виду имен:
phone и fone
AX10 и AXI0
Различие имен должно быть всегда явно ощутимым.
В качестве имен переменных должны употребляться термины, используемые в данной области. Хорошим тоном считается использование разделителя. В Паскале это знак подчеркивания:
P___List, Name___One, Volume___Bottom
Такие имена облегчают чтение и уменьшают вероятность неправильной интерпретации.
Это относится и к именам файлов. Имена файлов должны отличаться уже первыми восьмью символами. Некоторые устаревшие, но, тем не менее, широко используемые операционные системы (MSDOS) накладывают ограничения на длину имени файла. Все файлы должны иметь различныеимена, даже если они находятся в разных каталогах.
Размещение операторов
Лучше размещать операторы по одному в строке. В таком случае легче локализовать ошибки.
Читаемость улучшается, если для записи операторов используется отступ. Операторы, связанные между собой, записываются с одинаковым отступом.
Отступы, не оказывая влияния на логику программы, существенно улучшают ее читаемость. Программа должна быть приятна для глаза.
0641.01.03;ЭПТ2.03;1
План
Теоретическая часть
Стиль программирования
Защитное программирование
Кодирование и тестирование сверху вниз
Учебный пример
Цель: Изучить на практическом примере процесс кодирования при нисходящей разработке ПО.
Результат обучения:
oзнание правил стандартизации стиля программирования;
oзнание методики кодирования и тестирования сверху вниз.
Список рекомендуемой литературы:
Румянцев Д., Монастырский Л. Путь программиста: опыт создания личности программиста. — М.: «Издательский Дом ИНФРА-М», 2000.
Орлов С. А. Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
Мануйлов В.Г. Разработка программного обеспечения на Паскале. — М.: «Издательство ПРИОР», 1998.
WWW.sunschool.math.rsu.ru
Используемые программы:
PascalABC
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. Содержит текстовый редактор для ввода программы, компилятор, набор управляющих компонентов, набор примеров с решением.
Учебный пример
При разработке программного комплекса «Деканат» получена функциональная диаграмма первого уровня детализации (см. лабораторную работу № 2). В полученной диаграмме подсистемы «Ввод» и «Запрос» не уточнены. На этом этапе имеется возможность перейти к кодированию.
Кодирование программного комплекса начинается с управляющего программного модуля. Для его тестирования и отладки необходимо иметь программные модули второго уровня «Ввод» и «Запрос», но, так как они еще не спроектированы и не закодированы, вместо них используются имитаторы этих программных модулей — «заглушки». Так как назначение «заглушек» только в том, чтобы программный модуль верхнего уровня был выполнен, они могут быть достаточно простыми. В приведенном примере имеется возможность определить структуры данных.
Ознакомьтесь с предлагаемой программой. Введите код и выполните программу в среде PascalABC.
{Тип — массив для описания наименований предметов}
Fio = Record{Структура для определения имени}
F, Name1, Name2: TStr;
End;
Sess = Record{Тип компоненты файла результатов сессии}
N___G: byte; {Номер группы}
Name: Fio; {Имя студента}
Rez: Array [1..6] OfByte; {Оценки}
End;
Var
Pred: TPred; {Наименования предметов}
FName: TStr; {Имя Файла}
Kol___Pr: Integer; {Количество предметов}
n___Zap: Integer; {Количество студентов}
Reg: Integer; {Для организации меню}
BEGIN
Repeat
{Цикл для организации обращения к блокам системы}
Writeln('Выберите режим работы');
Writeln(1,' ':10,'Ввод');
Writeln(2,' ':10,'Запрос');
Writeln(3,' ':10,'Конец работы');
Write(' ':10,'Режим?'); Readln(Reg);
Case reg Of
1: Begin Writeln('Блокввода'); Delay(2000); End; {Заглушка 1}
2: Begin Writeln('Блокзапросов'); Delay(2000); End; {Заглушка 2}
3: Begin Writeln('Конецработы'); Delay(2000); End;
End;
Until Reg = 3;
END.
Вариант
Разработать программный комплекс «Отдел кадров». Подсистема должна обслуживать следующие запросы: выводить список сотрудников, у которых в заданном месяце день рождения; выводить список сотрудников, проживающих на заданной улице; выводить список улиц, на которых проживают сотрудники, в алфавитном порядке; выводить список сотрудников, имеющих минимальную заработную плату. Результат запишите в рабочую директорию.
На основании составленной на прошлой лабораторной работе спецификации к разработке программного комплекса, функциональной диаграмме и диаграмме потока данных составьте описание структур данных и программу на PascalABC, реализующую обращение к подчиненном модулям.
В соответствии с принятым стилем в программах необходимо:
§использовать вводные и пояснительные комментарии;
§делать пропуск строк для разделения групп логически связанных операторов;
§делать пробелы для улучшения читаемости программы;
§для переменных задавать имена «со смыслом»;
при размещении делать одинаковые отступы в строке для связанных операторов.
Создайте код программы.
Введите текст программы в текстовый редактор системы PascalABC. Выполните программу.
Вариант
Разработать программный комплекс для подведения итогов Олимпийских игр. В программу пользователь должен ввести количество медалей разного достоинства, завоеванное каждой командой–участницей. Программа подсчитывает общее число медалей и соответствующее число очков. Программа должна выдавать информацию по каждой команде–участнице, а также упорядоченный список в соответствии с набранным количеством очков. Количество очков определяется по следующему правилу: за золотую медаль команда получает 7 очков, за серебряную — 6, за бронзовую — 5. Результат запишите в рабочую директорию.
На основании составленной на прошлой лабораторной работе спецификации к разработке программного комплекса, функциональной диаграмме и диаграмме потока данных составьте описание структур данных и программу на PascalABC, реализующую обращение к подчиненном модулям.
В соответствии с принятым стилем в программах необходимо:
§использовать вводные и пояснительные комментарии;
§делать пропуск строк для разделения групп логически связанных операторов;
§делать пробелы для улучшения читаемости программы;
§для переменных задавать имена «со смыслом»;
при размещении делать одинаковые отступы в строке для связанных операторов.
Создайте код программы.
Введите текст программы в текстовый редактор системы PascalABC. Выполните программу.
Вариант
Разработать программный комплекс по обслуживанию риэлтовской компании. Программа должна давать информацию по следующим параметрам: общая площадь, жилая площадь, количество комнат, наличие санузла и его характеристики, наличие лоджии, панельный или кирпичный дом, стоимость квартиры. Сформулируйте несколько критериев, по которым можно отобрать ту или иную квартиру для покупки и, основываясь на этих критериях, выберите сведения о ней. Если подходящих квартир несколько, то выведите сведения обо всех. Результат запишите в рабочую директорию.
На основании составленной на прошлой лабораторной работе спецификации к разработке программного комплекса, функциональной диаграмме и диаграмме потока данных составьте описание структур данных и программу на PascalABC, реализующую обращение к подчиненном модулям.
В соответствии с принятым стилем в программах необходимо:
§использовать вводные и пояснительные комментарии;
§делать пропуск строк для разделения групп логически связанных операторов;
§делать пробелы для улучшения читаемости программы;
§для переменных задавать имена «со смыслом»;
при размещении делать одинаковые отступы в строке для связанных операторов.
Создайте код программы.
Введите текст программы в текстовый редактор системы PascalABC. Выполните программу.
Вариант
Разработать программный комплекс, который представляет собой подсистему, обслуживающую учебную часть Вуза. Программная подсистема позволяет получать информацию по проведению занятий на первом курсе факультета N: выдает названия предметов, которые ведет преподаватель с фамилией Fam; определяет количество занятий в неделю по каждому из предметов; выводит названия предметов, занятия по которым проводятся в заданный день (понедельник, вторник, среда, четверг, пятница, суббота). Результат запишите в рабочую директорию.
На основании составленной на прошлой лабораторной работе спецификации к разработке программного комплекса, функциональной диаграмме и диаграмме потока данных составьте описание структур данных и программу на PascalABC, реализующую обращение к подчиненном модулям.
В соответствии с принятым стилем в программах необходимо:
§использовать вводные и пояснительные комментарии;
§делать пропуск строк для разделения групп логически связанных операторов;
§делать пробелы для улучшения читаемости программы;
§для переменных задавать имена «со смыслом»;
при размещении делать одинаковые отступы в строке для связанных операторов.
Создайте код программы.
Введите текст программы в текстовый редактор системы PascalABC. Выполните программу.
Вариант
Разработать программный модуль для обработки информации о подписных изданиях. Программный комплекс должен обслуживать следующие запросы:
А) По заданному номеру месяца и названию издания найти количество экземпляров, подлежащих доставке.
Б) По фамилии найти список подписных изданий данного подписчика.
В) По заданному названию издания и номеру месяца определите участок, получающий больше всего экземпляров.
Г) По заданному участку доставки и месяцу определите издание, на которое подписалось наибольшее число подписчиков. Результат запишите в рабочую директорию.
На основании составленной на прошлой лабораторной работе спецификации к разработке программного комплекса, функциональной диаграмме и диаграмме потока данных составьте описание структур данных и программу на PascalABC, реализующую обращение к подчиненном модулям.
В соответствии с принятым стилем в программах необходимо:
§использовать вводные и пояснительные комментарии;
§делать пропуск строк для разделения групп логически связанных операторов;
§делать пробелы для улучшения читаемости программы;
§для переменных задавать имена «со смыслом»;
при размещении делать одинаковые отступы в строке для связанных операторов.
Создайте код программы.
Введите текст программы в текстовый редактор системы PascalABC. Выполните программу.
Тестирование
«Заглушка» —
короткая последовательность команд, которая используется как замена, пока не будет создана фактическая программа.
0641.01.03;ЭПТ2.04;1
Учебный пример
На стадии проектирования ИС модели расширяются, уточняются и дополняются диаграммами, отражающими структуру программного обеспечения: архитектуру ПО, структурные схемы программ и диаграммы экранных форм.
Одной из наиболее важных особенностей метода SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
Построение SADT-модели начинается с представления всей системы в виде простейшего компонента — одного блока и дуг, изображающих интерфейсы с функциями вне системы. Поскольку единственный блок отражает систему как единое целое, имя, указанное в блоке, является общим.
Затем блок, который представляет систему в качестве единого модуля, детализируется на другой диаграмме с помощью нескольких блоков, соединенных интерфейсными дугами. Эти блоки определяют основные подфункции исходной функции. Данная декомпозиция выявляет полный набор подфункций, каждая из которых показана как блок, границы которого определены интерфейсными дугами. Каждая из этих подфункций может быть декомпозирована подобным образом в целях большей детализации. Каждая детальная диаграмма является декомпозицией блока из диаграммы предыдущего уровня.
В первой лабораторной работе проведена частичная декомпозиция поставленной задачи разработки программного комплекса «Деканат». Декомпозиция должна быть продолжена. Уточнению должен быть подвержен модуль «Запрос», так как этот модуль выполняет комплексную задачу.
Функциональная диаграмма модуля «Запрос» программного комплекса «Деканат».
Спецификация диаграммы:
А21 — выполнение 1-го запроса;
А22 — выполнение 2-го запроса;
А23 — выполнение 3-го запроса;
А24 — выполнение 4-го запроса.
Уточнению подлежит и диаграмма потоков данных. Диаграммы верхних уровней иерархии определяют основные процессы или подсистемы с внешними входами и выходами. Они детализируются при помощи диаграмм нижнего уровня. Такая декомпозиция продолжается, создавая иерархию диаграмм, до тех пор, пока не будет достигнут уровень декомпозиции, на котором процессы становятся элементарными и детализировать их далее невозможно.
Диаграмма потоков данных модуля «Запрос» программного комплекса «Деканат»
Поскольку учебный пример не имеет такой сложной структуры, как промышленная разработка, на данном этапе можно перейти к построению алгоритмов. Со схемами алгоритмов модулей программного комплекса «Деканат» можно познакомиться в документе «Схемы___Деканат.Htm»
В языках программирования, ориентированных на технологию нисходящего структурного программирования, одним из средств реализации модульной структуры являются процедуры и функции.
Структурный подход к разработке программного обеспечения. Модульный подход к проектированию и программированию ПО. Продолжение структурной декомпозиции учебной задачи.
Отдельные программные модули могут оформляться в виде модулей (Unit) или в виде процедур и функций. Существует несколько способов подключения процедур в программу на языке PascalABC.
§Исходный текст процедуры может подключаться непосредственно в текст разрабатываемой программы с помощью редактора, встроенного в систему программирования PascalABC или другого текстового редактора. Использование редактора позволяет внести изменения в текст процедуры.
§Текст одной или нескольких процедур оформляется в виде библиотечного программного модуля, файл которого имеет расширение PAS, и после указания его имени в разделе USES программа получает доступ к процедурам из этого модуля.
После отладки управляющего программного модуля «заглушки» программных модулей второго уровня кодируются и отлаживаются одновременно с управляющей программой. При этом программные модули третьего уровня заменены «заглушками».
0641.01.03;ЭПТ2.04;1
План
1.Теоретическая часть
a.Свойства программных модулей
b.Подключение модулей в программу
2.Учебный пример
a.Подключение модулей в учебном комплексе «Деканат»
b.Продолжение структурной декомпозиции учебной задачи
Цель: научиться применять модульный подход к проектированию и программированию ПО.
Результат обучения:
oзнать модульный подход к разработке программ;
oзнать методы подключения модулей к основной программе;
oуметь оформлять модули в языке PascalABC.
Список рекомендуемой литературы:
1.Румянцев Д., Монастырский Л. Путь программиста: опыт создания личности программиста. — М.: «Издательский Дом ИНФРА-М», 2000.
3.Орлов С. А. Технологии разработки программного обеспечения. — СПб.: Питер. 2002.
4.Мануйлов В.Г. Разработка программного обеспечения на Паскале. — М.: «Издательство ПРИОР», 1998.
5.WWW.sunschool.math.rsu.ru
Используемые программы:
1.OpenOffice.org Write
Текстовый редактор OpenOffice.org Write – программа, предназначенная для ввода и форматирования текста.
2.PascalABC
Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. Содержит текстовый редактор для ввода программы, компилятор, набор управляющих компонентов, набор примеров с решением.
3.kompl0.pas, Vvod.pas, Zapros.pas
Программы для демонстрации учебного примера.
4.Спецификация___модуля.htm
В файле представлены формы для заполнения раздела «Спецификация модуля».
5.Схемы___Деканат.htm
В файле представлены примеры составления схем алгоритмов.
Вариант
Разработать программный комплекс «Отдел кадров». Подсистема должна обслуживать следующие запросы: выводить список сотрудников, у которых в заданном месяце день рождения; выводить список сотрудников, проживающих на заданной улице; выводить список улиц, на которых проживают сотрудники, в алфавитном порядке; выводить список сотрудников, имеющих минимальную заработную плату.
1.Скорректируйте программу, созданную на предыдущей лабораторной работе. Замените заглушки (операторы типа: Writeln('Блок ввода'); , Writeln('Блок запросов');) на обращение к модулям ввода и вывода.
2.Создайте модуль ввода.
3.Создайте модуль вывода.
4.Выполните задачу и осуществите проверку правильности передачи информации из модуля ввода в модуль вывода. Сохраните программу.
5.Проведите второй этап декомпозиции Вашей задачи. Уточните функциональную модель разрабатываемого комплекса. Создайте схему с помощью средств Open Office.org Write.
6.Проведите второй этап декомпозиции Вашей задачи. Уточните модель потока данных разрабатываемого комплекса. Создайте схему с помощью средств OpenOffice.orgWrite.
Вариант
Разработать программный комплекс для подведения итогов Олимпийских игр. В программу пользователь должен ввести количество медалей разного достоинства, завоеванное каждой командой–участницей. Программа подсчитывает общее число медалей и соответствующее число очков. Программа должна выдавать информацию по каждой команде–участнице, а также упорядоченный список в соответствии с набранным количеством очков. Количество очков определяется по следующему правилу: за золотую медаль команда получает 7 очков, за серебряную — 6, за бронзовую — 5.
1.Скорректируйте программу, созданную на предыдущей лабораторной работе. Замените заглушки (операторы типа: Writeln('Блок ввода'); , Writeln('Блок запросов');) на обращение к модулям ввода и вывода.
2.Создайте модуль ввода.
3.Создайте модуль вывода.
4.Выполните задачу и осуществите проверку правильности передачи информации из модуля ввода в модуль вывода. Сохраните программу.
5.Проведите второй этап декомпозиции Вашей задачи. Уточните функциональную модель разрабатываемого комплекса. Создайте схему с помощью средств Open Office.org Write.
6.Проведите второй этап декомпозиции Вашей задачи. Уточните модель потока данных разрабатываемого комплекса. Создайте схему с помощью средств OpenOffice.orgWrite.
Вариант
Разработать программный комплекс по обслуживанию риэлтовской компании. Программа должна давать информацию по следующим параметрам: общая площадь, жилая площадь, количество комнат, наличие санузла и его характеристики, наличие лоджии, панельный или кирпичный дом, стоимость квартиры. Сформулируйте несколько критериев, по которым можно отобрать ту или иную квартиру для покупки и, основываясь на этих критериях, выберите сведения о ней. Если подходящих квартир несколько, то выведите сведения обо всех.
1.Скорректируйте программу, созданную на предыдущей лабораторной работе. Замените заглушки (операторы типа: Writeln('Блок ввода'); , Writeln('Блок запросов');) на обращение к модулям ввода и вывода.
2.Создайте модуль ввода.
3.Создайте модуль вывода.
4.Выполните задачу и осуществите проверку правильности передачи информации из модуля ввода в модуль вывода. Сохраните программу.
5.Проведите второй этап декомпозиции Вашей задачи. Уточните функциональную модель разрабатываемого комплекса. Создайте схему с помощью средств Open Office.org Write.
6.Проведите второй этап декомпозиции Вашей задачи. Уточните модель потока данных разрабатываемого комплекса. Создайте схему с помощью средств OpenOffice.orgWrite.
Вариант
Разработать программный комплекс, который представляет собой подсистему, обслуживающую учебную часть Вуза. Программная подсистема позволяет получать информацию по проведению занятий на первом курсе факультета N: выдает названия предметов, которые ведет преподаватель с фамилией Fam; определяет количество занятий в неделю по каждому из предметов; выводит названия предметов, занятия по которым проводятся в заданный день (понедельник, вторник, среда, четверг, пятница, суббота).
1.Скорректируйте программу, созданную на предыдущей лабораторной работе. Замените заглушки (операторы типа: Writeln('Блок ввода'); , Writeln('Блок запросов');) на обращение к модулям ввода и вывода.
2.Создайте модуль ввода.
3.Создайте модуль вывода.
4.Выполните задачу и осуществите проверку правильности передачи информации из модуля ввода в модуль вывода. Сохраните программу.
5.Проведите второй этап декомпозиции Вашей задачи. Уточните функциональную модель разрабатываемого комплекса. Создайте схему с помощью средств Open Office.org Write.
6.Проведите второй этап декомпозиции Вашей задачи. Уточните модель потока данных разрабатываемого комплекса. Создайте схему с помощью средств OpenOffice.orgWrite.
Вариант
Разработать программный модуль для обработки информации о подписных изданиях. Программный комплекс должен обслуживать следующие запросы:
А) По заданному номеру месяца и названию издания найти количество экземпляров, подлежащих доставке.
Б) По фамилии найти список подписных изданий данного подписчика.
В) По заданному названию издания и номеру месяца определите участок, получающий больше всего экземпляров.
Г) По заданному участку доставки и месяцу определите издание, на которое подписалось наибольшее число подписчиков..
1.Скорректируйте программу, созданную на предыдущей лабораторной работе. Замените заглушки (операторы типа: Writeln('Блок ввода'); , Writeln('Блок запросов');) на обращение к модулям ввода и вывода.
2.Создайте модуль ввода.
3.Создайте модуль вывода.
4.Выполните задачу и осуществите проверку правильности передачи информации из модуля ввода в модуль вывода. Сохраните программу.
5.Проведите второй этап декомпозиции Вашей задачи. Уточните функциональную модель разрабатываемого комплекса. Создайте схему с помощью средств Open Office.org Write.
6.Проведите второй этап декомпозиции Вашей задачи. Уточните модель потока данных разрабатываемого комплекса. Создайте схему с помощью средств OpenOffice.orgWrite.
Тестирование
Запишите (заглавными буквами) служебное слово, с помощью которого к основной программе подключаются модули.