Помощь в учёбе, очень быстро...
Работаем вместе до победы

Проектирование и реализация программы

РефератПомощь в написанииУзнать стоимостьмоей работы

При объектно-ориентированном подходе модель построения программы — это иерархия классов, объектная декомпозиция. В результате декомпозиции получается структурная схема программы, представляющая собой многоуровневую, иерархическую схему взаимодействия экземпляров (объектов) классов. Следующий этап проектирования программного обеспечения заключается в разработке классов и их интерфейсов с описанием… Читать ещё >

Проектирование и реализация программы (реферат, курсовая, диплом, контрольная)

Проектирование — это процесс разработки структурной схемы программного обеспечения с проектированием компонентов и их взаимосвязей.

Методологической основой проектирования программного обеспечения является системный подход.

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

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

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

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

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

Методы структурного анализа основываются на соблюдении следующих правил:

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

Основными средствами структурного анализа являются:

  • • DFD (Data Flow Diagrams) — диаграммы потоков данных в нотациях Гейна — Сарсона, Йордона — Де Марко и др., обеспечивающие требования анатиза и функционального проектирования информационных систем;
  • • STD (State Transition Diagrams) — диаграммы перехода состояний, основанные на расширениях Хартли и Уорда — Меллора для проектирования систем реального времени;
  • • ERD (Entity-Relationship Diagrams) — диаграммы «сущностьсвязь» в нотациях Чена и Баркера; структурные карты Джексона и (или) Константайна для проектирования межмодульных взаимодействий и внутренней структуры объектов;
  • • FDD (Functional Decomposition Diagrams) — диаграммы функциональной деком позиции;
  • • SADT (Structured Analysis and Design Technique) — технология структурного анализа и проектирования;
  • • семейство IDEF (Integration Definition for Function Modeling).

Тип модели программного обеспечения определяется выбранной технологией — методом программирования (процедурный, объектно-ориентированный, компонентный).

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

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

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

При объектно-ориентированном подходе модель построения программы — это иерархия классов, объектная декомпозиция. В результате декомпозиции получается структурная схема программы, представляющая собой многоуровневую, иерархическую схему взаимодействия экземпляров (объектов) классов. Следующий этап проектирования программного обеспечения заключается в разработке классов и их интерфейсов с описанием элементов-данных и элементов-функций каждого класса. Для проектирования пользовательских интерфейсов используются сложные интерфейсы: меню с иерархической структурой команд, свободная навигация, не привязанная к уровням иерархии (используется в Windowsприложениях).

Этапы проектирования программного обеспечения при объектно-ориентированном подходе принципиально отличаются от процедурного подхода, так как проектирование программы ведется в терминах (понятиях) прикладной области и отражает ее иерархию. Реализация — это процесс создания кода компонентов программного обеспечения на выбранном языке программирования, его тестирования и отладки.

При процедурном подходе реализация заключается в программировании функций и файлов (модулей) с использованием методов структурного программирования функций и программирования «сверху-вниз» {top-down).

Этап программирования задачи выполняется в следующей последовательности:

  • • программирование функций верхнего уровня схемы;
  • • программирование функций нижнего уровня схемы и т. д.

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

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

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

В соответствии с этапами обработки программы (компиляция, компоновка, выполнение) различают следующие группы ошибок:

  • • синтаксические ошибки, обнаруживаемые компилятором при синтаксическом и семантическом анализе программы;
  • • ошибки компоновки, фиксируемые компоновщиком (редактором связей) при объединении модулей программы;
  • • ошибки выполнения, обнаруживаемые операционной системой или пользователем при выполнении программы.

Из всех групп ошибок самыми сложными для тестирования и отладки являются ошибки выполнения программы, а среди них — логические ошибки, имеющие непредсказуемые причины. Так, причинами могут быть ошибки при проектировании программы, разработке алгоритмов, определении структуры данных.

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

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

Существуют и другие виды тестирования, направленные на проверку различных аспектов корректности кода программы и его соответствия техническому заданию. Отдельной разновидностью можно считать методологию разработки через тестирование (TDD, Test-Driven Development), согласно которой тесты для различных функций программы разрабатываются до создания кода этих функций. Такая методика позволяет сократить объем программного кода и повысить его надежность, но увеличивает затраты на разработку.

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

Имеются также методы отладки, позволяющие получать дополнительную информацию об ошибке и облегчающие процесс поиска и исправления ошибки. К ним относятся метод отладочного вывода и интегрированные средства отладки. Метод отладочного вывода заключается в добавлении в программу дополнительного отладочного вывода в узловых точках. Но, безусловно, наиболее эффективными методами являются интегрированные средства отладки, имеющиеся в современных средах программирования. Например, отладчик Visual C++ встроен в среду Visual Studio, имеет свои меню и панели инструментов, которые позволяют выполнять следующие действия:

  • • установка различных точек прерывания, связанных с кодом, с данными, с сообщением, условных точек прерывания;
  • • выполнение программы до точки прерывания;
  • • просмотр в шести окнах отладчика информации о текущем состоянии программы при остановке программы в точке прерывания и при пошаговом выполнении;
  • • пошаговое выполнение программы с заходом в функции и без захода;
  • • выполнение программы до строки с курсором.

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

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

Показать весь текст
Заполнить форму текущей работой