В зависимости от специфических особенностей конкретной задачи (ее вычислительной и логической сложности, состава и структуры исходной, промежуточной и результатной информации и т.п.), профессионального уровня подготовки специалистов и ряда других факторов, этапы технологического процесса создания программ могут быть объединены в этапы (рис. 11).
Первый этап технологического процесса представляет собой постановку задачи. На этом этапе раскрывается сущность задачи:
1) формулируется ее цель;
2) определяется взаимосвязь с другими задачами;
3) указывается периодичность ее решения;
4) устанавливаются состав и формы представления входной, промежуточной и результатной информации;
5) характеризуются формы и методы контроля достоверности информации на ключевых этапах решения задачи;
6) специфицируются формы взаимодействия пользователя с ПК в ходе решения задачи и т.п.
Особое внимание в процессе постановки задачи уделяется детальному описанию входной, выходной и промежуточной информации.
Что такое технологический процесс? Введение.
Этап технологического процесса подготовки решения задач на ЭВМ представляет собой алгоритмизацию ее решения, т.е. разработку оригинального или адаптацию (уточнение и корректировку) уже известного алгоритма. Таким образом, алгоритм дает возможность чисто механически решать любую задачу из некоторого класса однотипных задач.
Рис. 11. Принципиальная схема разработки программных средств решения задач на ЭВМ
Алгоритм и программа. Управлять компьютером нужно по определенному алгоритму. Алгоритм — это точно определенное описание способа решения задачи в виде конечной (по времени) последовательности действий. Такое описание еще называется формальным. Для представления алгоритма в виде, понятном компьютеру, служат языки программирования.
Сначала всегда разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы — полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код, либо исполняется.
Формульно-словесный способ описания алгоритма основан на записи содержания выполняемых действий с использованием изобразительных возможностей языка математики, дополненного необходимыми пояснениями средствами естественного языка. Данный способ, обладая всеми достоинствами словесного способа, более лаконичен, а значит, и более нагляден.
Графический способ описания алгоритма представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки информации отображаются с помощью установленного набора геометрических фигур (блоков), имеющих строго определенную конфигурацию в соответствии с приписаннымим характером выполняемых действий (например, вычислением, вводом-выводом информации, проверкой логических условий и т.п).
Перечисленные способы описания алгоритмов имеют существенный недостаток, так как не обеспечивают наглядности представления многовариантных вычислительных процессов, что характерно для алгоритмов решения сложных задач с разветвленной логикой. Особенно остро эти недостатки проявляются, когда возникает потребность внесения изменений и дополнений в логическую схему решения задачи.
Как разработать технологический процесс изготовления детали. 9 основных этапов
Для разработки алгоритмов решения многовариантных расчетов с большим количеством проверок условий, определяющих выбор той или иной ветви процесса обработки информации, целесообразно использовать изобразительные средства в виде таблиц решений.
Составление программ (кодирование) является завершающим этапом технологического процесса разработки программных средств. Он предшествует началу непосредственно машинной реализации алгоритма решения задачи. Процесс кодирования заключается в переводе описания алгоритма на один из доступных для ПКязыков программирования. В процессе составления программы для ПК конкретизируются тип и структура используемых данных, а последовательность действий, реализующих алгоритм, отражается посредством конкретного языка программирования.
Этап тестирования и отладки. Оба эти процесса функционально связаны между собой, хотя их цели несколько отличаются друг от друга. Цель тестирования заключается в выявлении ошибок в разработанных программах на заранее подготовленном наборе контрольных примеров. Процессу тестирования сопутствует понятие «отладка», которое подразумевает совокупность действий, направленных на устранение ошибок в программах, начиная с момента обнаружения фактов ошибочной работы программы и завершая устранением причин их возникновения.
По своему характеру (причине возникновения) ошибки в программах делятся на синтаксические и логические. После выявления логических ошибок и устранения причин их возникновения в программу вносятся соответствующие исправления и ее отладка продолжается. Программа считается отлаженной, если она безошибочно выполняется на достаточно представительном наборе тестовых данных, обеспечивающих проверку всех ее участков (ветвей).
Процесс тестирования и отладки программ носит итерационный характер и считается одним из наиболее трудоемких этапов процесса разработки программ. По оценкам специалистов, он может составлять от 30 до 50% в общей структуре затрат времени на разработку проектов и зависит от объема и логической сложности разрабатываемых программных комплексов.
Источник: studopedia.su
Глава III. Технологический процесс разработки и отладки программы
Основные проблемы качества создаваемого программного продукта коренятся в неспособности эффективно управлять процессом разработки программного обеспечения. Даже самые оптимальные методы и инструменты не могут быть грамотно и рационально использованы в недисциплинированном и хаотическом проекте. Качество программного продукта непредсказуемо, так как нет объективной основы для его достижения. Сложившуюся ситуацию можно изменить лишь в результате создания инфраструктуры для поддержки процесса эффективной программной инженерии и сопровождения — технологического процесса разработки программного обеспечения.
Технологический процесс разработки ПО — это множество направлений деятельности, методов, практических приемов и процедур, используемых для разработки и сопровождения ПО и связанных с ним продуктов (планов проекта, проектных документов, кода, тестов и руководств пользователя).
Использование техпроцесса повышает качество разрабатываемого продукта. Технологический процесс разработки ПО позволяет экономить время и ресурсы.
Описание технологического процесса разработки и отладки программы
В общем виде процесс разработки программного обеспечения состоит из следующих основных этапов:
— Изучение предметной области;
— Определение трудоёмкости разработки;
— Проектирование алгоритмов программы;
— Выбор операционной системы и инструментария;
— Выбор вспомогательного программного обеспечения;
— Тестирование программы и её отладка;
— Написание программной документации;
— Эксплуатация и сопровождение.
Рассмотрим более подробно каждый из этапов.
Постановка задачи
В постановке задачи раскрывается организационно-экономическая сущность задачи:
— Формулируется цель ее решения;
— Определяется взаимосвязь с другими задачами;
— Указывается периодичность ее решения;
— Раскрывается состав и форма представления входной, промежуточной и выходной информации;
— Характеризуются формы и методы контроля достоверности информации;
— Описываются формы взаимодействия пользователя с ЭВМ.
Особое внимание уделяется детальному описанию входной, выходной и промежуточной информации. При этом определяется:
— Форма представления отдельных данных;
— Количество знаков, выделяемых для записи данных;
— Источник возникновения данных.
Изучение предметной области
Изучение предметной области поставленной задачи начинается с изучения определённого широкого направления в общих чертах — тестирование, программные уязвимости, UNIX-подобные операционные системы и т.д. Затем проводится обзор более узкоспециализированных областей — генерирование тестовых данных, парсинг опций приложений, мониторинг и логирование, автоматизация, специфика использования выбранного инструментария и т.п.
Определение трудоёмкости разработки
Расчет производится согласно методике, основанной на опытных статистических данных. В трудоемкость разработки программного обеспечения входит:
— общая трудоемкость темы;
— трудоемкость изучения задачи;
— трудоемкость разработки алгоритмов;
— трудоемкость написания программы;
— трудоемкость оформления документации.
Трудоёмкость каждого этапа, в свою очередь, определяется через условное число операторов в разрабатываемом программном обеспечении. В их число входят те операторы, которые необходимо написать программисту в процессе работы над задачей с учетом возможных уточнений в постановке задачи и совершенствования алгоритма.
Общая трудоёмкость разработки программы составляет 35 дней. Задача требует для решения стандартный рабочий компьютер. Трудоёмкость разработки более подробно рассмотрена в экономическом разделе.
Проектирование алгоритмов программы
На этапе разработки алгоритмов программы вырабатывается абстрактное решение поставленной задачи в виде конечной последовательности определённых действий. Алгоритмы оформляются в виде компактных, наглядных и формализованных блок-схем.
Сначала происходит определение задачи в общих чертах, а затем постепенное уточнение структуры, путем внесения более мелких деталей. На каждом шаге такого уточнения необходимо выявить основные функции, которые нужно выполнить. Таким образом, данная задача разбивается на ряд подзадач, пока эти подзадачи не станут настолько простыми, что каждой из них будет соответствовать один модуль. Действия каждого модуля должно быть описано одной фразой.
Выбор языка программирования, операционной системы и сопутствующего инструментария
На основе постановки задачи и разработанных алгоритмов определяется общая трудоёмкость, выбирается операционная система и проводиться анализ сред разработки. Определяется наиболее подходящий инструментарий.
Обоснование выбора языка программирования
Задача, поставленная в рамках данной диссертации, предполагает усовершенствование методологий процессов, связанных с тетстированием локальных приложений в UNIX, а также реализацию фаззера, которых отвечал бы всем современным тенденциям и обладал бы расширенным функционалом, в сравнении с уже имеющимися системами тестирования приложений.
Для написания фаззера локальных приложений UNIX-подобных систем потребуется выбрать определенный инструмент, то есть язык программирования.
Можно было бы написать фаззер на языке C, но общая трудоёмкость процесса немного отпугивает. В нашем случае наиболее подходящими будут такие скриптовые языки как Perl, Python и Ruby.
Эти языки достаточно популярны в мире UNIX — их интерпретаторы можно найти почти в любой UNIX-подобной операционной системе. Но самое главное их преимущество в том, что они обеспечивают высокую скорость разработки.
На данный момент наименее актуальным из этих языков является Perl. Сейчас Perl в основном используется для написания однострочных скриптов системными администраторами UNIX. Код, написанный на Perl, сложно поддерживать в процессе модификации.
Язык программирования Python является наиболее популярным из этих трёх языков. Свою популярность он приобрёл во многом благодаря Django — фреймворка для веб-приложений на базе Python. Python может использоваться для разработки веб-приложений, прикладных программ, а также для написания небольших скриптов. Недостатком языка Python является несовместимость между второй и третьей версиями языка, а также низкое быстродействие, во многом, из-за представления всех элементов языка в качестве объектов. Следует заметить, что низкое быстродействие является характерной особенностью всех интерпретируемых языков программирования.
Так же как и Python, в Ruby все элементы языка являются объектами. В общем можно сказать, что это языки-близнецы, аналог Django в Ruby — Ruby on Rails. На данный момент хоть Ruby и набирает популярность, можно отметить малое количество русскоязычной литературы по этому языку, что можно характеризовать как недостаток.
Принимая во внимание всё вышеперечисленное, для написания фаззера предполагается использовать язык Python.
Выбор вспомогательного программного обеспечения
Для написания решения, направленного на автоматизированное тестирование локальных приложений в UNIX-подобных ОС, достаточно возможностей стандартной библиотеки языка Python и инструментария и утилит, входящих в любую UNIX-подобную ОС.
Написание программы
Процесс написания программы состоит из непосредственного написания кода. Рекомендуется руководствоваться правилами хорошего стиля, то есть:
— Отсутствие безусловных переходов, использование базовых структур (следование, выбор и повторение);
— Наличие кратких и содержательных комментариев;
— Осмысленные и короткие имена переменных и функций;
— Наличие отступов и выравниваний в тексте программы;
— Разделение программы с помощью пустых строк на логически завершённые части.
Оптимизация программы
Оптимизация программы представляет собой процесс преобразования исходного кода в эквивалентный, обладающий меньшим временем исполнения и объёмом занимаемой памяти.
К оптимизации программы относиться:
— Сегментация, то есть разделение большой программы на подпрограммы;
— Чистка и перепрограммирование критических областей, то есть наиболее часто используемых участков кода;
— Структурное кодирование позволяет получать программы более удобные для тестирования, модификации и использования.
Выводы
Таким образом, был разработан технологический процесс разработки и отладки программы. Использование технологического процесса разработки ПО хоть и не охватывает всех проблем обеспечения успеха проекта, но значительно упрощает работу. Кроме того, благодаря технологическому процессу экономятся временные ресурсы.
Глава III. Технологический процесс разработки и отладки программы
Источник: lektsia.com
6.2. Стандарты технологии создания программных продуктов
Реальное применение любой технологии проектирования, разработки и сопровождения ПО в конкретной организации и конкретном проекте невозможно без выработки ряда стандартов (правил, соглашений), которые должны соблюдаться всеми участниками проекта. К ним относятся следующие:
- стандарт проектирования;
- стандарт оформления проектной документации;
- стандарт пользовательского интерфейса.
- набор необходимых моделей на каждой стадии проектирования и степень их детализации;
- правила фиксации проектных решений, в том числе правила именования объектов (включая соглашения по терминологии), набор атрибутов для всех объектов;
- требования к конфигурации рабочих мест разработчиков, включая настройки средств отладки, общие настройки проекта и т. д.;
- механизм обеспечения совместной работы над проектом, в том числе правила интеграции подсистем проекта, правила поддержания проекта в одинаковом для всех разработчиков состоянии (регламент обмена проектной информацией, механизм фиксации общих объектов и т. д.), правила проверки проектных решений на непротиворечивость и т. д.
- комплектность, состав и структуру документации на каждой стадии проектирования;
- требования к ее оформлению (включая требования к содержанию разделов, подразделов, пунктов, таблиц и т. д.);
- правила подготовки, рассмотрения, согласования и утверждения документации с указанием предельных сроков для каждой стадии;
- требования к настройке издательской системы, если используются встроенные автоматизированные средства подготовки документации.
- правила оформления элементов отображения данных;
- правила использования элементов управления (клавиатуры);
- правила оформления сообщений и их перечень;
- правила обработки реакции пользователя.
6.3. Основные этапы технологического процесса разработки программ
Источник: studfile.net