Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Глава III. Технологический процесс разработки и отладки программы
Глава 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. Технологический процесс разработки и отладки программы Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 3189; Нарушение авторского права страницы