КАТЕГОРИИ: Архитектура-(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; Просмотров: 669; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |