Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Кодирование программного изделия




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

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

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

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

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

5. Оформление начала и конца будущего модуля. Предусматривается оформление модуля в соответствии с требованиями принятого языка программирования.

6. Объявление всех данных, используемых в качестве па- Урометров. Записываются соответствующие операторы объявления.

7. Объявление оставшихся данных. Записываются операторы объявления всех оставшихся данных, которые должны быть использованы в модуле. Поскольку трудно предсказать все переменные, которые понадобятся, этот шаг часто перекры­вается следующим.

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

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

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

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

Отладка программы

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

- психологическая сложность;

- из всех видов деятельности при разработке ПО отладка требует наибольших интеллектуальных затрат;

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

- процесс отладки настолько неприятен, что в литературе практически не отражен и не исследован.

Наиболее общими при отладке ПО являются малоэффективные методы "грубой силы". Методы "грубой силы " можно разделить на 3 группы:

1-я группа основана на распечатке памяти. Недостатки этого метода очевидны:

- трудно установить соответствие между распечаткой памяти и переменной. Память предоставляет большой объем ненужной информации.

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

- распечатка памяти и ошибки не совпадают по времени - локализация сложна.

2-я группа - отладка с расстановкой распечатки операторов по всей программе.

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

- введение операторов нарушает критические времена, что может скрыть ошибку;

- можно внести новую ошибку Можно использовать не для всех программ.

3-я группа -отладка с использованием автоматических средств.

Подобна 2-ой группе, но отличается тем, что не вносятся изменения в программу.

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

Общий недостаток - все они игнорируют процесс обдумывания. Можно провести аналогии между нахождением ошибок и преступников.

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




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 570; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.