15.01.2019
ПОУРОЧНЫЙ ПЛАН №2
Адресная категория |
| 1.1. Наименование специальности и квалификации | 1304000 – «Вычислительная техника и программное обеспечение (по видам)» 130404 3 – «Техник-программист» |
| 1.2. Курс, группа | 3 осн. Курс ВТ-2 (16 VT-IX-2) |
| 1.3. Наименование учебного модуля/дисциплины, изучаемого раздела | Проектирование и технология разработки программного обеспечения |
| 1.4. Тема занятия | Принципы разработки программного обеспечения |
| 1.5. Организационная форма занятия | групповая |
| 1.6. Знания и умения студентов, необходимые для выполнения деятельности по модулю/теме | - знать классификация программного обеспечения -знать классификация ОС |
| 1.7. Возможности учебного занятия интеграция профессиональных умений и умений трудоустройства | - навыки общения; - умение воспринимать информацию; - умение применять информацию на практике. |
| 2. Цель занятия |
| 2.1. Способствовать развитию следующих умений трудоустройства и поиска работы, которым обучатся студенты на данном занятии | - умение слушать; - умение общаться с партнерами; - прислушиваться к мнению других. |
| 2.2. Обучение профессиональным умениям, которыми овладеют обучающиеся в процессе учебного занятия | - умение правильно организовать рабочее место; - умение работать с литературой; - умение работать в коллективе; - мыслить логически. |
| 3. Описание результата занятия |
| 3.1. К концу занятия обучающиеся должны: знать и уметь | - знать приципы ПО |
| 3.2. Критерии качества | - знать приципы ПО |
| 4. Фаза планирования |
| 4.1. Учебно-методическое оснащение, справочная литература | Яворский В.В., Томилова Н.И. «Технология раработки программного обеспечения», 18 стр |
| 4.2. Техническое оснащение, материалы | ПК |
| 4.3. Описание последовательности действий студентов | - освоить принципы ПО |
| 4.4. Роль преподавателя | - сообщение основных понятий по теме; - пояснение терминов и порядка их применения. |
| 5. Реализация плана |
| 5.1. Описание плана занятий, содержание действий преподавателя и студентов (таблица) | Таблица «Содержание и организация взаимодействия преподавателя и студентов» |
| 6. Оценка |
| 6.1. Оценка качества выполненных заданий | Определение степени усвоения новых понятий и терминов. |
Преподаватель ______________ Мырзагужинов Н.К.
подпись Ф.И.О.
Содержание и организация взаимодействия преподавателя и студентов
| № | Основные этапы занятия | Виды и последовательность действий | Деятельность студентов | Совместная деятельность преподавателя и студентов | Деятельность преподавателя |
| | | | индивидуальная | групповая | межгрупповая | консультация | инструктирование | контроль |
| 1. | Этап ориентирования и планирования | Тема и цель урока | | Х | | Х | Х | | |
| 2. | Этап выполнения работы | Подготовка рабочего места | | Х | | | Х | | |
| Подготовка материалов | | Х | | | Х | | |
| Технологический процесс: конспектирование, работа с конспектом, работа на интерактивной доске | Х Х | | | | Х Х | | Х Х |
| 3. | Этап оценки и анализа конечных и промежуточных результатов | Оценка работы по критериям качества: Определить термин | Х | | | | Х | | |
Тема курса: Технология разработки программных продуктов: основные понятия и определения, классификация программ, особенности создания программного продукта, жизненный цикл программы
Тема урока 2: Принципы разработки программного обеспечения.
Принципы ПО
Общие принципы разработки программных средств
Специфика разработки программных средств. Жизненный цикл программного средства. Понятие качества программного средства. Обеспечение надежности - основной мотив разработки программного средства. Методы борьбы со сложностью. Обеспечение точности перевода. Преодоление барьера между пользователем и разработчиком. Обеспечение контроля правильности принимаемых решений.
Специфика разработки программных средств
Разработка программных средств имеет ряд специфических особенностей.
Прежде всего, следует отметить некоторое противостояние: неформальный характер требований к ПС (постановки задачи) и понятия ошибки в нем, но формализованный основной объект разработки - программы ПС. Тем самым разработка ПС содержит определенные этапы формализации, а переход от неформального к формальному существенно неформален.
Разработка ПС носит творческий характер (на каждом шаге приходится делать какой-либо выбор, принимать какое-либо решение), а не сводится к выполнению какой-либо последовательности регламентированных действий. Тем самым эта разработка ближе к процессу проектирования каких-либо сложных устройств, но никак не к их массовому производству. Этот творческий характер разработки ПС сохраняется до самого ее конца.
Следует отметить также особенность продукта разработки. Он представляет собой некоторую совокупность текстов (т.е. статических объектов), смысл же (семантика) этих текстов выражается процессами обработки данных и действиями пользователей, запускающих эти процессы (т.е. является динамическим). Это предопределяет выбор разработчиком ряда специфичных приемов, методов и средств.
Продукт разработки имеет и другую специфическую особенность: ПС при своем использовании (эксплуатации) не расходуется и не расходует используемых ресурсов.
Жизненный цикл программного средства
Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process). Этот процесс может быть организован по-разному для разных классов ПС и в зависимости от особенностей коллектива разработчиков.
В настоящее время можно выделить 5 основных подходов к организации процесса создания и использования ПС.
Водопадный подход. При таком подходе разработка ПС состоит из цепочки этапов. На каждом этапе создаются документы, используемые на последующем этапе. В исходном документе фиксируются требования к ПС. В конце этой цепочки создаются программы, включаемые в ПС.
Исследовательское программирование. Этот подход предполагает быструю (насколько это возможно) реализацию рабочих версий программ ПС, выполняющих лишь в первом приближении требуемые функции. После экспериментального применения реализованных программ производится их модификация с целью сделать их более полезными для пользователей. Этот процесс повторяется до тех пор, пока ПС не будет достаточно приемлемо для пользователей. Такой подход применялся на ранних этапах развития программирования, когда технологии программирования не придавали большого значения (использовалась интуитивная технология). В настоящее время этот подход применяется для разработки таких ПС, для которых пользователи не могут точно сформулировать требования (например, для разработки систем искусственного интеллекта).
Прототипирование. Этот подход моделирует начальную фазу исследовательского программирования вплоть до создания рабочих версий программ, предназначенных для проведения экспериментов с целью установить требования к ПС. В дальнейшем должна последовать разработка ПС по установленным требованиям в рамках какого-либо другого подхода (например, водопадного).
Формальные преобразования. Этот подход включает разработку формальных спецификаций ПС и превращение их в программы путем корректных преобразований. На этом подходе базируется компьютерная технология (CASE-технология) разработки ПС.
Сборочное программирование. Этот подход предполагает, что ПС конструируется, главным образом, из компонент, которые уже существуют. Должно быть некоторое хранилище (библиотека) таких компонент, каждая из которых может многократно использоваться в разных ПС. Такие компоненты называются повторно используемыми (reusable). Процесс разработки ПС при данном подходе состоит скорее из сборки программ из компонент, чем из их программирования .
Принципы разработки ПО — это набор определенных правил и рекомендаций, которым нужно следовать при написании исходного кода программы, если хочешь написать красивый, понятный и легко редактируемый код. То есть, не существует волшебной палочки, с помощью которой можно было бы превратить мешанину из переменных, классов и методов в идеальный листинг, но существуют некоторые подсказки, которые помогают программисту определить, все ли правильно он делает. Давайте рассмотрим эти основные рекомендации.
Этапы разработки программного обеспечения
В зависимости от вида, масштабов и потребностей проекта определяется порядок разработки. Он будет несколько отличаться для разработки мобильных приложений, встроенного ПО, решений для автоматизации и БД, но общая последовательность действий для создания ПО универсальна:
Подробно про первый и второй этапы (подготовительный и проектирование программного обеспечения) можно перечитать.
Перейдём к созиданию:
Дизайн — вторая по важности составляющая продукта после технических характеристик, влияющая на эффективность и скорость взаимодействия пользователя с ним. Требования к дизайну определяются ТЗ — как правило, важны простота, интуитивность и минимальные затраты на совершения действия (достижение результата), а также красота и соответствие стилю компании и (или) продукта.
Код — та часть работы, которая обычно ассоциируется с разработкой ПО как таковой. Важно, чтобы код был в достаточной мере оптимизированным, лаконичным и понятным. Назначаем на подобранные под специфику задания в ТЗ языки специализирующихся на их использовании программистов.
Тестирование. Тестирование в EDISON проводится на каждом этапе разработки ПО, включает множество тестов по плану тестирования, кастомизируемому с учётом специфики проекта на этапе составления технического задания. Результаты тестирования документируются и доступны клиенту в режиме реального времени. Оплата за продукт производится только после прохождения всех видов тестов, в том числе клиентских.
Документирование — процедура, фиксирующая план, процесс и результат разработки программного обеспечения. Включает в себя всю исходную информацию (ТЗ, макеты), планы работ, затрат, тестирования, список задач исполнителей в каждый момент времени, отчеты о работе и так далее. Документация необходима для быстрого и точного выявления ошибок, прозрачности совместной работы, как обязательная юридическая часть договора.
ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1. Первый этап – постановка задачи
2. Второй этап - выбор метода решения
3. Третий этап - разработка алгоритма решения задачи
4. Четвертый этап – кодирование алгоритма
5. Пятый этап – трансляция и компиляция программы
6. Шестой этап – тестирование программы
7. Седьмой этап – создание документации
8. Восьмой этап - сопровождение и эксплуатация
Программное обеспечение состоит из нескольких совместно работающих программ (программных модулей), объединенных в программный комплекс, и документов, необходимых для разработки, сопровождения и эксплуатации программного комплекса.
В простейшем случае программный комплекс может включать только одну программу, но второй компонент программного обеспечения – документация – должен присутствовать всегда.
Процесс разработки программного обеспечения можно разбить на этапы (фазы). Рассмотрим каждый этап подробнее.
1. Первый этап – постановка задачи
Работа над программным обеспечением начинается с составления документа, называемого "Задание на разработку программного обеспечения (техническое задание)".
В нем указывается следующее.
а) НАЗВАНИЕ ЗАДАЧИ
Дается краткое определение решаемой задачи, название программного комплекса, указывается система программирования для ее реализации и требования к аппаратному обеспечению.
б) ОПИСАНИЕ
Подробно излагается постановка задачи, описывается применяемая математическая модель для задач вычислительного характера, метод обработки входных данных для задач не вычислительного характера и т д.
в) УПРАВЛЕНИЕ РЕЖИМАМИ РАБОТЫ ПРОГРАММЫ
Формулируются основные требования к способу взаимодействия пользователя с программой (интерфейс пользователь-компьютер).
г) ВХОДНЫЕ ДАННЫЕ
Описываются входные данные, указываются пределы, в которых они могут изменяться, значения, которые они не могут принимать, и т. д., а также источник данных т.е. устройство, с помощью которого они должны быть переданы в программу.
д) ВЫХОДНЫЕ ДАННЫЕ
Описываются выходные данные, указывается, в каком виде они должны быть представлены — в числовом, графическом или текстовом, а также указывается устройство отображения этих данных.
е) ОШИБКИ
Перечисляются возможные ошибки пользователя при работе с программой (например, ошибки при вводе данных и др.). Указываются способы диагностики (в данном случае под диагностикой понимается обнаружение ошибок при работе программного комплекса) и защиты от этих ошибок на этапе проектирования, а также возможная реакция пользователя при совершении им ошибочных действий и реакция программного комплекса (компьютера) на эти действия.
ж) ПРИМЕР РАБОТЫ ПРОГРАММНОГО КОМПЛЕКСА
Приводится один или несколько примеров работы программного комплекса, на которых в простейших случаях проводится его отладка и тестирование.
2. Второй этап - выбор метода решения
На этом этапе создается математическая или логическая модель исследуемого явления реального мира.
Если программируемая задача носит вычислительный характер, то приводится вывод всех используемых формул с подробными комментариями.
Если же задача не вычислительная, то приводится словесное описание логической модели, например, в виде плана действий.
3. Третий этап - разработка алгоритма решения задачи
На этом этапе формируется общая структура программного комплекса. В соответствии с рассматриваемой далее технологией нисходящего структурного программирования программный комплекс разбивается на небольшие части — программные модули (блоки). Для каждого программного модуля формулируются требования по реализуемым функциям и разрабатывается алгоритм, реализующий эти функции.
Алгоритм представляет собой точное предписание, последовательность действий, приводящих к решению вычислительной или логической задачи.
Определяется схема взаимодействия программных модулей, т.е. схема потоков данных программного комплекса. Результатом выполнения этого этапа является блок-схема алгоритма решения поставленной задачи.
4. Четвертый этап – кодирование алгоритма
Этап кодирования (программирования) алгоритмов заключается в переводе алгоритмов, разработанных для каждого программного модуля, в программы на конкретном языке программирования. Результатом выполнения этого этапа являются файлы с исходными текстами программ. Эти файлы по своей природе текстовые, только они содержат тексты, написанные на языке программирования.
Как и другие текстовые файлы, они могут быть созданы, просмотрены и отредактированы с помощью любых текстовых редакторов.
5. Пятый этап – трансляция и компиляция программы
После того как закончено кодирование (написание программы на языке программирования) и исходный текст программы введен в память компьютера, производят транслирование и компилирование программы.
Сначала специальная программа (транслятор) проверяет исходный текст программы на наличие так называемых синтаксических ошибок, т.е. соответствие написанных операторов правилам, предусмотренным в данном языке программирования.
Причем трансляция производится до первой встретившейся ошибки. При обнаружении ошибки процесс трансляции прекращается, транслятор выдает сообщение о характере и месте ошибки.
Необходимо исправить ошибку и повторить трансляцию. Так продолжается до тех пор, пока все ошибки трансляции не будут устранены.
Затем происходит сборка программы (компиляция), т.е. к программе подключаются все заказанные ей библиотеки, процедуры, функции и т.д. Если какой-либо компонент не обнаружен, выдается соответствующее сообщение и процесс прекращается. Необходимо убедиться в наличии не найденного компонента, в правильности указанного имени его или пути к нему. Затем снова повторить компиляцию.
При успешном завершении процесса образуется исполняемый файл программы (файл с расширением EXE). С помощью этого файла запускают программу на выполнение.
6. Шестой этап – тестирование программы
Различается два вида тестирования: автономное и комплексное. При автономном тестированию подвергаются отдельные программные модули, из которых состоит программный комплекс. Комплексное тестирование заключается в проверке всего программного комплекса.
Для тестирования подбираются такие исходные данные, для которых результат выполнения программы заранее известен.
После того как при тестировании обнаружена ошибка, начинается процесс отладки тестируемого программного модуля или программного комплекса. Тестирование и отладка чередуются и завершаются после того, как будет принято решение об отсутствии в программном комплексе ошибок.
7. Седьмой этап – создание документации
Документация классифицируется по своему назначению и может быть разбита на несколько групп:
- описание применения,
- руководство пользователя,
-руководство программиста.
Описание применения – общая характеристика программного продукта и сферы его применения, требований к базовому программному обеспечению, комплексу технических средств обработки.
Руководство пользователя – детальное описание функциональных возможностей и технологии работы с программным продуктом для конечного пользователя.
Документы данного вида могут оформляться в печатном виде и (или) "встраиваться" в программный комплекс (в последнем случае помощь в виде подсказки вызывается самим пользователем в процессе работы программного комплекса).
Руководство программиста предназначено для разработчиков программного обеспечения и специалистов, которые будут его сопровождать.
Это руководство в качестве основных документов включает:
1) задание на разработку программного обеспечения (техническое задание);
2) спецификацию;
3) прокомментированные исходные тексты (листинги) модулей программы и управляющего модуля;
4) схему разбиения программного комплекса на программные модули;
5) схему потоков данных программного комплекса;
6) схему взаимодействия программных модулей;
7) планы и данные для тестирования программного комплекса;
8) другие материалы, иллюстрирующие проект, например: блок-схемы программного комплекса и программных модулей.
Отметим, что стоимость разработки хорошей документации достаточно высока и оценивается в 1 человеко-месяц на 1000 команд исходного текста программы.
8. Восьмой этап - сопровождение и эксплуатация
После завершения тестирования программного комплекса программное обеспечение сдается в эксплуатацию.
В процессе эксплуатации может возникнуть необходимость добавления в программный комплекс новых функций, устранение ошибок, обнаруженных в процессе эксплуатации, и т. д.
Данный тип работ с программным комплексом в период его эксплуатации называется сопровождением.
Только при решении простейших задач указанные этапы выполняются друг за другом в той последовательности, в которой они были описаны.
В общем же случае процесс разработки программного обеспечения требует постоянного возврата к предыдущим этапам и внесения изменений.