Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Жизненный циклпрограммного обеспечения



Бурное развитие вычислительной техники привело к интенсивной математизации не только естественных и технических, но и гуманитарных наук. Все это заметно расширило круг задач, решаемых в настоящее время на ЭВМ. Реализация задач каждого класса имеет свою специфику; тем не менее можно выделить этапы, характерные для большинства задач.

1.Постановка задачи: сбор информации; формулировка условий; определение конечных целей решения задачи; определение формы выдачи результатов; описание данных (их типов, структуры, диапазонов изменения величин и т.д.).

2. Анализ и исследование задачи (модели): анализ существующих аналогов; анализ технических и программных средств; разработка математической модели; разработка структур данных.

3. Разработка алгоритма; выбор метода решения задачи; выбор формы записи алгоритма; проектирование алгоритма.

4. Программирование: выбор языка программирования; уточнение способов организации данных; записьалгоритма на выбранном языке.

5. Тестирование и отладка программы: синтаксическая отладка; отладка семантики и логической структуры; тестовые расчеты и анализ результатов тестирования; совершенствование программы.

6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7. Сопровождение программы: ее доработка для решения конкретных задач, а также составление технической документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

Рассмотрим более подробно каждый из перечисленных этапов.

1. Постановка задачи. На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, определяются условия, при которых она решается. Корректность постановки задачи пользовате­лем является важным моментом, так как от нее в значительной степени зависят все последующие действия. Ошибки, допущенные на этом этапе, даже при безупречном выполнении последующих, могут привести к то­му, что разработанный программный продукт не будет соответствовать требованиям конечного потребителя. Для создания конкурентоспособных продуктов в ходе выполнения этого этапа должны быть получены четкие ответы на следующие вопросы:

что должна делать программа?

в чем состоят реальные проблемы, разрешению которых она должна способствовать?

что представляют собой входные данные?

какими должны быть выходные данные?

какими ресурсами может располагать проектировщик?

2. На этапе формализации в результате анализа существа задачи определяется объем и специфика исходных данных, вводится система условных обозначений, устанавливается принадлежность решаемой задачи к одному из известных классов задач и выбирается соответствующий математический аппарат.

Знания о том, как ведет себя система в различных условиях, при раз­личных формах управленческих воздействий специалисты получают путем изучения ее поведения на моделях. Модели позволяют воспро­изводить поведение систем в очень широком диапазоне изменяющихся условий, включая такие, которые в реальной действительности трудно наблюдать, или связанных с большими затратами и риском. В результате «проигрывания» различных ситуаций оказывается возможным исследовать большое число вариантов развития системы и выбрать наилучший с точки зрения достижения поставленных целей.

Моделью называют представление основных элементов системы в ви­де совокупности физических или математических объектов. Математиче­ская модель позволяет свести реальную задачу к математической. С этой целью условие задачи описывается либо в виде системы уравнений, либо в виде последовательности формул, необходимых для получения нужного результата. Математическая модель отображает наиболее существенные свойства реального объекта или явления, но не тождественна ему; она является лишь приближенным его описанием. Степень ее адекватности проверяется экспериментально. Эксперимент дает возможность оценить построенную модель и в случае необходимости внести уточнения.

3. Разработка алгоритма начинается с выбора и обоснования численного метода решения задачи. Само по себе математическое описание в большинстве случаев трудно перевести на машинный язык. Поэтому необходимо найти способ решения этой задачи. Для некоторых классов математических задач существуют точные методы решения, которые можно представить в виде последовательности арифметических и логических действий. Но для многих задач (алгебраические уравнения и системы уравнений, вычисление интегралов, дифференциальные Уравнения и т.д.) точные методы решения или неизвестны или приводят

к очень громоздким формулам. Поэтому были разработаны специальные численные методы, которые позволяют получить приближенное решение с требуемой точностью. Такие методы имеются практически для любых задач, встречающихся на практике (в противном случае их разрабатывают самостоятельно). Если задача может быть решена с помощью различных численных методов, выбирают тот, который наилучшим образом удовлет­воряет поставленным требованиям (таким, как максимальная точность вычислений, минимальное время решения задачи на ЭВМ, ограниченный объем оперативной памяти и т.д.).

После того как численный метод решения выбран, приступают к проектированию алгоритма. Разработка алгоритма заключается в раз­ложении вычислительного процесса на составные части, установлении порядка их следования, в описании содержания каждой из частей в той или иной форме.

Необходимо также проверить, обеспечивает ли предложенный алго­ритм реализацию выбранного метода.

4. На этапе составления программы алгоритмзаписывают на каком-либо из известных языков программирования. Для решения прикладных задач чаще всего используют алгоритмические языки высокого уровня: Basic, Fortran, Pascal, PL\1 и другие.

При разработке программы всю задачу стараются разбить на более простые подзадачи, которые оформляются как самостоятельные проце­дуры (программные модули). Это облегчает процесс разработки, так как, во-первых, решение сложной задачи сводится к решению более простых подзадач; во-вторых, появляется возможность использовать уже готовые программные модули, если какую-то подзадачу удалось свести к уже решенной задаче; в-третьих, каждый участник группы разработчиков может сконцентрировать усилия на создании отдельного программного модуля.

Разработкой программы завершается часть реализации задачи, не связанная с применением ЭВМ. Все последующие этапы выполняются непосредственно на машине.

5. Тестирование и отладка программы. Отладка - это процесс поиска и устранения ошибок в программе, производимый по результатам ее вы­полнения на компьютере. Тестированием называется проверка правиль­ности работы программы в целом, либо ее составных частей.

Отладка и тестирование —это два четко различимых и непохожих друг на друга этапа: при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования; в процессе же тестирования проверяется работоспособность программы, не содержа­щей явных ошибок. Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину.

В современных системах программирования отладка осуществляется часто с использованием специальных программных средств, называемых отладчиками. Эти средства позволяют исследовать внутреннее поведе­ние программы. Программа-отладчик обычно обеспечивает следующие возможности:

пошаговое исполнение программы с остановкой после каждой ко­манды (оператора);

просмотр текущего значения любой переменной или нахождение значения любого выражения, в том числе с использованием стандартных функций; при необходимости можно установить новое значение пере­менной;

установку в программе контрольных точек, то есть точек, в которых программавременно прекращает свое выполнение, что позволяет оценить промежуточные результаты и т.д.

Как бы тщательно ни была отлажена программа, решающим этапом, устанавливающим ее пригодность для работы, является контроль по результатам выполнения ею системы тестов. Программу условно можно считать правильной, если ее выполнение для выбранной системы те­стовых исходных данных во всех случаях дает правильные результаты. Но, как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие. Нередки случаи, когда новые входные данныевызывают отказ или получение неверных результатов работы программы, которая считалась полностью отлаженной.

Тестовые данныедолжны обеспечить проверку всех возможных условий возникновения ошибок, в связи с чем:

должна быть испытана каждая ветвь алгоритма;

очередной тестовый прогон должен контролировать что-то, что еще не было проверено на предыдущих прогонах;

первый тест должен быть максимально прост, чтобы проверить, ра­ботает ли программавообще;

арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;

количество элементов в последовательностях, точность итерационных вычислений, количество проходов цикла в тестовых примерах должны быть ориентированы на сокращение объема вычислений;

минимизация вычислений не должна снижать надежности контро­ля;

тестирование должно быть целенаправленным и систематизирован­ным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных многие ситуации могут оказаться не проверенными;

усложнение тестовых данных должно происходить постепенно.

Процесс тестирования можно разделить на три этапа:

а) проверка в нормальных условиях предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы;

б) проверка в экстремальных условиях основана на использовании граничных значений входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа иотсутствие данных. Еще один тип экстремальных условий — граничные объемы данных (массивы в этом случае состоят из слишком малого или слишком большого числа элементов);

в) проверка в исключительных ситуациях проводится с использова­нием данных, значения которых лежат за пределами допустимой области изменений. Известно, что все программы разрабатываются в расчете на обработку какого-то ограниченного набора данных. Наихудшая ситуация складывается тогда, когда программавоспринимает неверные данныекак правильные и выдает неверный, но правдоподобный результат. Про­грамма должна сама отвергать любые данные, которые она не в состоянии обрабатывать правильно.

6. Анализ результатов решения задачи. Программа, прошедшая отладку и тестирование, готова для практического использования, то есть для решения реальной задачи на ЭВМ. На этапе решения составляются инструкции по использованию программы и подготавливаются исходные данные. С развитием ЭВМ и их программного обеспечения программы стали разрабатываться с учетом их длительного использования. На основе анализа результатов решения задачи делается заключение о практической значимости полученных результатов и необходимости корректировки исходных данных или модели.

7. Сопровождение программы - это работа, связанная с ее обслуживанием в процессе эксплуатации. Многократное использование разработанной программы для решения различных задач заданного класса требует проведения следующих дополнительных работ:

исправление обнаруженных ошибок;

модификация программы для удовлетворения изменяющихся экс­плуатационных требований;

доработка программы для решения задач с конкретными входными данными;

проведение дополнительных тестовых расчетов;

внесение исправлений в рабочую документацию;

усовершенствование программы и т.д.

Любая программа, предназначенная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по исполь­зованию. В большинстве случаев на работы по со­провождению приходится более половины всех за­трат, осуществляемых за весь период жизни про­граммы (начиная от вы­работки первоначальной концепции и кончая ее мо­ральным устареванием). Следует отметить, что деление процесса решения задачи на этапы является в некоторой степени условным. Решения, принимаемые на любом этапе, могут во многом

повлиять на последующие; с другой стороны, результаты, полученные на любом этапе, могут потребовать кардинального пересмотра уже про­деланной работы.





Дата публикования: 2014-11-18; Прочитано: 602 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...