ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.03.2025
Просмотров: 1257
Скачиваний: 1
СОДЕРЖАНИЕ
1.Основные понятия и подходы к тп
2. Приемы обеспечения технологичности программных продуктов
3. Определение требований к по и исходных данных для его проектирования
4. Анализ требований и определение спецификации по при структурном подходе
5. Проектирование программного обеспечения при структурном подходе
6. Анализ требований и определение спецификаций программного обеспечения при объектном подходе
7. Проектирование по при объектном подходе
8.1. Виды контроля качества разрабатываемого по.
8.2. Формирование тестовых наборов
8.4. Функциональное тестирование
8.5. Тестирования модулей и комплексное тестирование
9. Отладка программного обеспечения
9.2. Методы отладки программного обеспечения
begin
if x[k]>y1 then
s:=s+y[k]-x[k];
if (x[k]<=y1) and (y[k]<y1) then
s:=s+y1 –x[k];
end;
Здесь можно убрать лишние проверки.
2.7. Программирование защиты от ошибок.
Любая ошибка программирования, не обнаруженная на этапе компиляции и компоновки программы, в конечном счете может проявиться тремя способами:
получение неверных результатов;
выдача системного сообщения об ошибке;
зависание компьютера.
До того как результат работы программы становится фатальным, ошибки обычно много раз проявляются в виде неверных промежуточных результатов, неверных управляющих переменных, неверных типов данных, индексов структур данных, параметров циклов и т.д.. То есть часть ошибок можно обнаружить и исправить.
Рис.2.10. Способы проявления ошибок.
Целесообразно проверять правильность выполнения операция ввода-вывода и допустимость промежуточных результатов.
Проверки правильности выполнения операций ввода-вывода
Причинами неверного определения исходных данных могут быть внутренние ошибки и внешние (ошибки пользователя). Принято различать:
Ошибки передачи: аппаратные средства искажают данные
Ошибки преобразования: программа неправильно преобразует исходные данные из входного формата во внутренний
Ошибки перезаписи: пользователь ошибается при вводе данных
Ошибки данных: пользователь вводит неверные данные.
Ошибки передачи обычно контролируются аппаратно. Для защиты от ошибок преобразования данные после ввода обычно сразу демонстрируют пользователю («эхо»). Обнаружить и устранить ошибки перезаписи можно, если пользователь водит избыточные данные, например контрольные суммы. Если это нежелательно, то следует по возможности проверять вводимые данные, контролировать интервалы возможных значений (ТЗ). Неверные данные обычно можно обнаружить только пользователь.
Проверка допустимости промежуточных результатов
Она позволяет снизить вероятность позднего проявления не только ошибок неверного определения данных, но и некоторых ошибок кодирования и декодирования. Чтобы снизить погрешность результатов вычислений необходимо соблюдать следующие рекомендации:
избегать вычитания близких чисел,
избегать деления больших чисел на маленькие,
сложение длинной последовательности чисел начинать с меньших по абсолютной величине,
стремиться уменьшать количество операций,
использовать методы с известными оценками погрешности,
не использовать условия равенства вещественных чисел,
вычисления производить с двойной точностью, а результаты с одинарной.
Так как полный контроль данных на входе и в процессе вычислений обычно невозможен, то следует предусматривать перехват обработки аварийных ситуаций. Для этого в некоторых языках программирования предусмотрены средства обработки исключений.
2.8. Сквозной структурный контроль
Это совокупность технологических операций контроля, позволяющих обеспечить как можно более ранние обнаружения ошибок в процессе разработки. Термин сквозной отражает выполнение контроля на всех этапах разработки, а структурный означает наличие четких рекомендаций по выполнению контролирующих операций на каждом этапе. Сквозной структурный контроль должен выполняться на специальных контрольных сессиях. Одна из первых сессий должна быть организована на этапе определения спецификации (проверяют полноту и точность спецификации). На этапе проектирования вручную или по частям проверяют работу алгоритмов на конкретных наборах данных. Основная задача – убедиться в правильности понимания спецификации и проанализировать достоинства и недостатки концептуальных решений, закладываемых в проект. На этапе реализации проверяют план реализации модулей, набор текстов и тексты отдельных модулей. Для всех этапов целесообразно иметь списки наиболее часто встречающихся ошибок (из литературы или из опыта).
3. Определение требований к по и исходных данных для его проектирования
3.1. Классификация программных продуктов по функциональному признаку.
По назначению программные продукты делятся на 3 группы:
системные; 2) прикладные; 3) гибридные
К системным относятся:
операционные системы; 2)оболочки; 3) утилиты
Прикладные ориентированы на решение конкретных пользовательских задач. Различают пользователей:
разработчиков программ; 2) не программисты
Для разработчиков программ:
case-средства; 2) системы программирования; 3) среды разработки; 4) отладочные средства
Для не программистов:
программы общего назначения; 2) профессиональные; 3) системы автоматизации производственных процессов; 4) обучающие, развлекающие.
Гибридные:
автоматизированные системы управления; 2) системы реального времени
3.2. Основные эксплутационные требования к программным продуктам
Эксплуатационные требования определяют некоторые характеристики разрабатываемого ПО, проявляемые в процессе его функционирования.
Характеристики:
правильность – функционирование в соответствии с ТЗ.
универсальность – обеспечение правильной работы при любых допустимых данных и защита от неправильных данных.
надежность (помехозащищенность) – обеспечение полной повторяемости результатов, т.е. их правильности при наличии различных сбоев.
проверяемость – возможность проверки получаемых результатов.
точность результатов – обеспечение заданной погрешности.
защищенность – обеспечение конфиденциальности информации.
программная совместимость.
аппаратная совместимость.
эффективность – использование минимально возможного количества ресурсов технических средств.
адаптируемость.
повторная входимость
возможность параллельного использования несколькими процессами
Сложность программных систем не позволяет сразу сформулировать четкие требования к ним. Обычно для перехода от идеи создания ПО к четкой формулировке требований (ТЗ) выполняют предпроектные исследования в области разработки.
3.3. Предпроектные исследования предметной области
Их цель - преобразование общих нечетких знаний о предназначении ПО, сравнительно точные требования к нему.
Существует два вида неопределенности:
неизвестны методы решения формулируемой задачи (при решении научно-технических задач)
неизвестна структура автоматизируемых информационных процессов (при построении АСУ)
В первом случае во время проектных исследований определяют возможность решения поставленной задачи и методы, позволяющие получить требуемый результат. Для этого могут понадобиться соответствующие научные исследования фундаментального и прикладного характера, разработка и исследование новых моделей объектов реального мира.
Во втором случае определяют:
структуры и взаимосвязи автоматизируемых информационных процессов
распределение функций между человеком и системой, между аппаратурой и программным обеспечением
функции ПО, внешние условия его функционирования, особенности интерфейса (с пользователями и при необходимости с аппаратной частью)
требования к программным и информационным компонентам, необходимые аппаратные ресурсы, требования к базам данных и физические характеристики программных компонентов.
Результаты предпроектных исследований предметной области используются в процессе разработки ТЗ.
3.4. Принципиальные решения начальных этапов проектирования
На начальных этапах процесса проектирования должны быть приняты принципиальные решения, определяющие этот процесс, качество и трудоемкость разработки. К таким решения относят:
Выбор архитектуры ПО.
Выбор типа пользовательского интерфейса и технологии работы с документами.
Выбор подхода к разработке: структурный и объектный.
Выбор языка и среды программирования.
1). Архитектурой ПОназывается совокупность базовых концепций (принципов) его построения. Она определяется сложностью решаемых задач, степенью универсальности разрабатываемого ПО и числом пользователей, одновременно работающих с его копией. Различают:
однопользовательскую архитектуру,
многопользовательскую архитектуру, которая рассчитана на работу в локальной или в глобальной сети.
В рамках однопользовательской архитектуры различают программы, пакеты программ, программные комплексы, программные системы.
Многопользовательскую архитектуру реализуют системы, построенные по принципу клиент-сервер.
Программа– это адресованный компьютеру набор инструкций, точно описывающий последовательность действий, которые необходимо выполнить для решенияконкретной задачи. При структурном подходе программа представляет собой иерархию подпрограмм, при объектном – совокупность обменивающихся сообщениями объектов, для реализации которых разработаны специальные классы. В этом случае программа представляет собой отдельно компилируемую программную единицу, которая может использовать стандартные библиотеки, но обычно не организует свои.
Пакет программ– это совокупность программ, реализующих задачи некоторой прикладной области. Программы такого пакета связаны между собой только принадлежностью к определенной прикладной области. Пакет программ реализуют как набор отдельных программ, каждая из которых сама вводит данные и выводит результат.По сути дела пакет программ — это некоторая библиотека программ.
Программные комплексы представляют собой совокупность программ, совместно обеспечивающих решение небольшого класса сложных задач одной прикладной области. Для решения такой задачи может потребоваться решить несколько подзадач, последовательно вызывая программы комплекса, Вызов программ в программном комплексе осуществляется специальной программой - диспетчером, который обеспечивает несложный интерфейс с пользователем и, возможно, выдачу некоторой справочной информации. От пакета программ программный комплекс отличается еще и тем, что несколько программ могут последовательно или циклически вызываться для решения одной задачи, и, следовательно, желательно хранить исходные данные и результаты вызовов в пределах одного пользовательского проекта. Программы в этом случае могут реализовываться как отдельно, так и как совместно компилируемые программные единицы, а исходные данные храниться в оперативной памяти или в файлах.
Программные системы представляют собой организованную совокупность программ (подсистем), позволяющую решать широкий класс задач из некоторой прикладной области. В отличие от программных комплексов программы, входящие в программную систему, взаимодействуют через общие данные. Программные системы обычно имеют развитые пользовательский и внутренние интерфейсы, что требует их тщательного проектирования.