Лекция 3
Проектирование
Этап проектирования дает ответ на вопрос: «Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?». Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем здесь не рассматриваются вопросы, связанные с реализацией на конкретной платформе. Проектирование определяется как «(итерационный) процесс получения логической модели системы вместе со строго сформулированными целями, поставленными перед нею, а также написания спецификаций физической системы, удовлетворяющей этим требованиям». Обычно этот этап разделяют на два подэтапа:
• проектирование архитектуры системы, включающее разработку структуры и интерфейсов компонент, согласование функций и технических требований к компонентам, методам и стандартам проектирования;
• детальное проектирование, включающее разработку спецификаций каждой компоненты, интерфейсов между компонентами, разработку требований к тестам и плана интеграции компонент.
|
|
Другими словами, проектирование является этапом ЖЦ, на котором вырабатывается, как реализуются требования к ИС, порожденные и зафиксированные на этапе анализа. В результате этапа должна быть построена модель реализации, демонстрирующая, как система будет удовлетворять предъявленным к ней требованиям (без технических подробностей). Фактически модель реализации является развитием и уточнением модели требований, а само проектирование является мостом между анализом и реализацией.
Реализация (Программирование/Внедрение)
На этапе реализации осуществляется создание системы как комплекса программно-аппаратных средств, начиная с проектирования и создания телекоммуникационной инфраструктуры и заканчивая разработкой и инсталляцией приложений.
Корректность АСУП является ее самым важным свойством. В идеальном случае под корректностью АСУП понимается отсутствие в ней ошибок. Однако для большинства сложных программных продуктов достигнуть этого невозможно — "в каждой программе содержится по крайней мере одна ошибка". Поэтому под корректным обычно подразумевают программный продукт, работающий в соответствии с предъявленными к нему требованиями, другими словами, продукт, для которого пока еще не найдены такие условия, в которых он окажется неработоспособным.
Установление корректности является главной целью рассматриваемого этапа жизненного цикла. Следует отметить, что этап тестирования и отладки — один из наиболее трудоемких, утомительных и непредсказуемых этапов разработки АСУП. В среднем при разработке традиционными методами этот этап занимает от 1/3 до 1/2 полного времени разработки. С другой стороны, тестирование и отладка представляют собой серьезную проблему: в некоторых случаях тестирование и отладка программы требуют в несколько раз больше времени, чем непосредственно программирование.
|
|
Тестирование представляет собой набор процедур и действий, предназначенных для демонстрации корректной работы АСУП в заданных режимах и внешних условиях. Цель тестирования — выявить наличие ошибок или убедительно продемонстрировать их отсутствие, что возможно лишь в отдельных тривиальных случаях. Важно различать тестирование и сопутствующее понятие «отладка». Отладка — это набор процедур и действий, начинающихся с выявления самого факта наличия ошибки и заканчивающихся установлением точного места, характера этой ошибки и способов ее устранения.
В основе практически всех способов отладки лежат три метода: просмотр, проверка и прокрутка. Метод просмотра заключается в следующем: текст программы внимательно изучается на предмет обнаружения ошибок и смысловых расхождений с текстом алгоритма, при этом помимо сплошного просмотра может применяться и выборочный просмотр (циклов, условных операторов, параметров процедур и функций). При проверке своей программы программист по тексту мысленно старается восстановить определяемый программой вычислительный процесс, после чего сверяет его с требуемым процессом. Основой прокрутки является имитация программистом выполнения программы с целью более конкретного и наглядного представления о процессе, определяемом текстом проверяемой программы, т. е. программа проверяется как бы в динамике ее работы над конкретными данными.