Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Разработка программного продуктаСодержание книги
Поиск на нашем сайте
Процесс разработки программного продукта полностью определяется рабочим проектом, в котором записаны этапы и сроки разработки, а также отчетность, которую должен предоставить каждый разработчик на каждом этапе. Менеджер проекта полностью контролирует процесс разработки, просматривая отчеты и корректируя при необходимости выполнение текущего этапа. Помимо запланированных отчетов менеджер может запрашивать у разработчиков краткие еженедельные, и даже ежедневные отчеты. Разработка программного продукта часто начинается с создания его работающего прототипа, содержащего минимальную функциональность и строгое оформление пользовательского интерфейса. Прототип демонстрируется заказчику. Заказчик одобряет его или вносит свои замечания, изменения и дополнения. Рабочий проект корректируется в соответствии с этими замечаниями и процесс разработки продолжается. Каждый этап разработки завершается показом результатов заказчику. В рабочем проекте определяется набор приемо-сдаточных испытаний продукта на каждом этапе. Этот набор выполняется в присутствии заказчика. Просмотрев результаты приемо-сдаточных испытаний, заказчик, как правило, вносит свои замечания в проект. Рабочий проект корректируется и разработка продолжается. Качество и своевременность разработки во многом определяются качеством ее планирования. Тщательно написанный рабочий проект дает возможность программистам сосредоточиться на выполнении проекта, равномерно распределить свои усилия, не отвлекаться на переделки и доработки. Проект, полностью согласованный с заказчиком, почти не меняется. Это позволяет строго следовать этапам разработки, переходить от одного этапа к другому, не возвращаясь к уже законченному и полузабытому коду, написанному на предыдущих этапах. Как ни печально, в нашем мире нет ничего идеального, и разработка программного продукта не исключение. На практике рабочий проект в ходе разработки меняется, причем меняется чаще и сильнее, чем хотелось бы команде разработчиков. Грамотно составленный проект должен учитывать возможные изменения и дополнения и выделять какое-то время на их выполнение. Однако очень трудно предугадать момент, в который потребуется переделка, поэтому даже опытные разработчики проектов попадают в цейтнот, из которого приходится выходить напряженными усилиями всей команды. Это приводит к спешке и создает нервную обстановку, а в такой обстановке увеличивается вероятность появления ошибок. На исправление ошибок требуется дополнительное время, которого не хватает. Трудности нарастают как снежный ком, в результате страдает качество программного продукта, и срываются сроки выполнения проекта. Остается еще раз напомнить о важности этапа проектирования программного продукта. Отладка Практически невозможно написать программу без ошибок. Справедливость банальной фразы: "Человеку свойственно ошибаться" начинаешь остро чувствовать, уже написав всего 2—3 программы. Не стоит удивляться тому, что в написанной вами программе есть ошибки. Напротив, отсутствие ошибок вызывает удивление. Поэтому, приступая к разработке, следует сразу же предположить, что придется регулярно исправлять сделанные в ней ошибки, и выделить время на их обнаружение и устранение. Процесс нахождения и ликвидации ошибок называется отладкой (debugging). Интересно происхождение английского термина, который буквально переводится как "устранение жуков". Он возник на заре развития компьютеров, когда никак не могли найти ошибку в одной программе. После долгих поисков оказалось, что в аппаратуру заполз жучок и замкнул электрические проводники таким хитрым образом, что это вызывало ошибку. С тех пор ошибки в программе на жаргоне называются "багами". Отладка отнимает довольно много времени. По разным оценкам на нее уходит от трети до половины всего времени реализации проекта, поэтому следует серьезно отнестись к этому процессу. Чтобы уменьшить время отладки, следует уже во время проектирования программного продукта предусмотреть средства, облегчающие и ускоряющие отладку. Прежде всего, надо выбрать как можно более простой и понятный алгоритм решения задачи, чтобы можно было правильно его запрограммировать, а в случае ошибки проследить его выполнение и найти ошибку. Следует серьезно отнестись к выбору языка программирования. Низкоуровневые языки, такие как язык ассемблера или языки вроде C/C++, дают программисту очень много возможностей, но неразумное использование этих возможностей приводит к очень большому количеству ошибок. Эти ошибки, к тому же, трудно обнаружить и устранить. Языки высокого уровня, такие как Java, С# и другие, напротив, ограничивают действия программиста, но предотвращают появление ошибок. Очень важно выбрать правильный стиль программирования, единый для всей команды разработчиков. Применение проверенных стандартных конструкций языка резко уменьшает возможность ошибиться. Кроме того, программный код, написанный в едином стиле, легко может прочитать каждый разработчик, а известно, что чужие ошибки легче выявить, чем свои. Наконец, надо выбрать программный инструмент разработчика, помогающий предотвратить ошибки и легко обнаружить их появление. К таким продуктам относятся отладочные компиляторы, интегрированные с отладчиками среды разработки, специальные программы-верификаторы исходного кода и программы-отладчики машинного кода. Правильный выбор программного средства значительно облегчит последующую отладку. Ввиду особой важности отладки программного продукта мы рассмотрим этот процесс подробнее в следующей главе. Тестирование Некоторые ошибки нелегко выявить, поэтому на каком-то этапе разработки необходимо остановиться и провести тщательное и всеобъемлющее тестирование (testing) программного продукта. Тестирование заключается в том, что работа программы проверяется на ряде задач, решение которых известно заранее. Результаты работы программы сравниваются с эталонными результатами, и на основании их совпадения делается вывод о применимости программы к этому классу задач. Кроме того, в процессе тестирования часто проверяется исходный текст программы, что позволяет найти ошибки в алгоритме решения задачи. Разумеется, тестирование не может доказать отсутствие ошибок, оно только выявляет их наличие. Нельзя сказать, что программа, успешно прошедшая тестирование, свободна от ошибок. Тем не менее, после серьезного тестирования можно запускать программу в промышленную эксплуатацию с большой долей уверенности. Практика показывает, что полностью протестированный программный продукт успешно справляется со своей задачей. Тестирование не следует путать с отладкой. Задача тестирования — выявить наличие дефектов в программе, а задача отладки — отыскать их местоположение и устранить. Набор тестов следует подготовить еще до проектирования программного продукта, на этапе определения требований к нему. Именно требования к программе и составляют круг тех задач, которые должны быть выражены в тестовых заданиях. Кроме того, спроектировав систему, уже трудно беспристрастно оценивать ее. Направление мысли волей-неволей будет идти в русле готового проекта, а это помешает всесторонней оценке проделанной работы. Поэтому подготовку тестов и последующее тестирование следует поручить не разработчикам проекта, а профессионально подготовленной команде специалистов-тестировщиков. Не следует думать, что тестирование завершает разработку, напротив, этот процесс надо начинать на самых ранних стадиях работы. Одна из методик тестирования объектно-ориентированных программных продуктов, называемая unit-тестированием, предписывает разрабатывать тестовые программы даже раньше программных модулей самого проекта. Другие методики тоже рекомендуют включать в рабочий проект тестирование программного продукта на каждом этапе его разработки. Процесс автоматизации коснулся и тестирования. Созданы программные продукты, облегчающие и направляющие этот процесс. Более того, созданы программные продукты, создающие наборы тестов для применения их в тестирующих программах. Необходимость и важность тестирования сейчас осознана в полной мере. Специальность тестировщика становится все более востребованной и уважаемой. Она усложняется и уже сейчас требует специальной подготовки. Более подробно о методах тестирования мы поговорим в следующей главе. Сопровождение продукта Работа с программным продуктом не заканчивается после того, как он передан заказчику и начал работать. Просто наступает следующий этап разработки — этап сопровождения продукта. На этом этапе выявляются и устраняются ошибки, не замеченные при отладке и тестировании программы, вносятся мелкие изменения и дополнения. Часто эти изменения связаны с изменившимися условиями эксплуатации программного продукта: закупкой нового оборудования, установкой новой версии операционной системы или новых драйверов устройств. Иногда в процессе эксплуатации выявляются искажения или упущения, сделанные в проекте по вине фирмы- разработчика или заказчика. Довольно часто требуется обучение персонала, обслуживающего программный продукт. В этих случаях фирма-разработчик консультирует потребителя программного продукта по телефону или по электронной почте, обучает обслуживающий персонал на своей территории или непосредственно на рабочих местах потребителя. Иногда приходится выезжать к потребителю и на месте решать проблемы, возникшие в процессе эксплуатации. При обнаружении ошибок в программном продукте приходится исправлять программный код, отлаживать и тестировать соответствующие модули и заново устанавливать продукт у потребителя. Если продукт уже пошел в серию и установлен во многих местах, то приходится писать программу, устанавливающую "заплатку" (patch), именуемую на жаргоне "патчем", на программном продукте и рассылать ее всем потребителям вместе с извинениями и инструкцией по установке. Процесс сопровождения продукта следует оговорить с заказчиком на этапе определения требований. Запланированное сопровождение протекает легко и естественно, расходы на него определены заранее и включены во все планы фирмы-разработчика. Тем не менее, точный объем работ по сопровождению вычислить заранее невозможно. Поэтому чаще всего сопровождение программного продукта оговаривается отдельным договором или входит в лицензионное соглашение, распространяемое вместе с продуктом. В процессе эксплуатации договор о сопровождении может меняться, а по истечении некоторого времени его можно прекратить. Модификация продукта Программный продукт не может долго существовать в первоначальном виде. Информационные технологии активно развиваются, и очень быстро наступает время, когда продукт надо привести в соответствие с изменившимися условиями. Меняются и требования потребителей программного продукта. Им нужны новые, более совершенные программы. Наступает время модификации программного продукта. Модификация программного продукта предполагает его переделку, зачастую довольно значительную. Поэтому всю работу по созданию продукта приходится пройти заново. Модификация начинается с определения новых требований к продукту. Затем проектируется новая версия продукта. При этом устанавливается, какие модули останутся без изменений, а какие подвергнутся изменению, удалению или полной замене. Тут же оценивается объем изменений и время, необходимое для этого. Кроме того, определяется, какие новые модули надо добавить к программному продукту. После утверждения проекта команда разработчиков приступает к модификации продукта. Снова проходит разработка, отладка и тестирование. После этого новая версия передается в эксплуатацию, сопровождается, а через некоторое время снова модифицируется. Многие фирмы-разработчики различают новую версию продукта и его незначительную модификацию. Они отмечают каждый новый выпуск продукта двумя числами, записанными через точку, например, OurProduct v.1.1, CoolPro- duct 2.3. Первое число означает номер версии продукта, второе — число модификаций данной версии. Какие изменения приводят к выпуску новой версии, а какие считаются только модификацией, решает сама фирма. Некоторые фирмы считают своим долгом выпускать новую версию каждый год, даже если в нее внесены только косметические изменения графического интерфейса с пользователем. Конкурирующие фирмы стараются увеличить номер версии своего продукта, чтобы создать впечатление его зрелости и солидности. Иногда оба числа означают номер версии, говорят: "Версия 3.2 нашего продукта". В такой нумерации первым числом отмечается "выпуск" (release) программного продукта. Его увеличение означает сильное изменение продукта и происходит не так часто, как появление новой версии. Некоторые программные продукты отмечаются тремя числами. К номеру версии и модификации добавляется число заплаток, наложенных на данную модификацию. Так, например, нумеруется ядро Linux. Запись "Linux 2.6.5" означает "ядро версии 2.6, на которое наложено 5 патчей".
|
||||
Последнее изменение этой страницы: 2016-12-11; просмотров: 356; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.75.6 (0.011 с.) |