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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Основы проектирования программных средств. Этапы и его место в жизнненом цикле конструирования программных систем

Информация:

Тип работы: курсовая работа. Добавлен: 25.04.2012. Сдан: 2011. Страниц: 6. Уникальность по antiplagiat.ru: < 30%

Описание (план):


МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ  ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО  ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНСТИТУТ  МАТЕМАТИКИ ЕСТЕСТВЕННЫХ НАУК И ТЕХНОЛОГИЙ
КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 
 
 

КУРСОВАЯ  РАБОТА
по предмету «Разработка и Стандартизация Программных  Средств и Информационных Технологий»
 на  тему
 «ОСНОВЫ  ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ.  Этапы проектирования и его  место в жизненном цикле конструирования  программных систем».
Игра  «Pah-Tum»
 
 
 
 
                                                   Выполнил:
                                                   студентка 2 курса
                                                   специальности «ПИвЭ»
                                                   группа 395  Дворникова Е.Л.
                                                   Руководитель:
                                                   доцент, к.т.н.
                                                   Воробьева М.С. 
 
 
 
 
 
 
 

Тюмень 2011

Аннотация 

В первой главе  рассматривается содержание этапа  проектирования и его место в  жизненном цикле конструирования  программных систем. Дается обзор  архитектурных моделей ПО, обсуждаются  классические проектные характеристики: модульность, информационная закрытость, сложность, связность, сцепление и  метрики для их оценки.
Во второй главе  представлено описание реализации практического  задания игры «PAH-TUM»:
    формулировка задания;
    описание структуры используемых текстовых, типизированных файлов или файлов базы данных;
    техническое описание программы (язык или среда программирования, требуемая операционная система, используемая оперативная и дисковая память, требования к компьютеру);
    инструкцию пользователя с иллюстрациями основных этапов работы.
 


Оглавление
Аннотация 3
ГЛАВА 1. ОСНОВЫ ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ. Этапы проектирования и его место  в жизненном цикле  конструирования  программных систем. 5
1.1. Основные этапы технологического процесса разработки программ. 5
Постановка  задачи. 5
Выбор алгоритма. 7
1.2. Особенности этапа проектирования 8
Модульность 10
Информационная  закрытость 11
Связность модуля 12
Функциональная  связность 13
Информационная  связность 14
Процедурная связность 15
Логическая  связность 17
Определение связности модуля 19
Сложность программной системы 20
Характеристики  иерархической структуры  программной системы 21
ГЛАВА 2. ОПИСАНИЕ РЕАЛИЗАЦИИ ПРАКТИЧЕСКОГО ЗАДАНИЯ. Игра «PAH-TUM». 24
2.1 Техническое задание  ПС 24
2.1.1. Введение 24
2.1.2. Основание для  разработки 24
2.1.3. Назначение разработки 24
2.1.4. Требования к программе 24
2.1.5. Технико-экономические  показатели 24
2.1.6. Стадии и этапы  разработки 24
2.2 Функциональная модель 26
2.3. Описание программы 27
2.3.1. Общие сведения 27
2.3.2. Функциональное назначение 27
2.3.3. Описание логической  структуры 27
2.3.4. Вызов и загрузка 28
2.3.7. Руководство пользователя 28
ЛИТЕРАТУРА 29

ГЛАВА 1. ОСНОВЫ ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ. Этапы проектирования и его место в жизненном цикле конструирования программных систем.

      Основные  этапы технологического процесса разработки программ.
    Постановка  задачи.
    Построение математической модели.
    Разработка (выбор и адаптация) алгоритма.
    Составление программы.
    Тестирование и отладка.
    Сдача в эксплуатацию.
Постановка  задачи.  
На этом этапе раскрывается организационно-экономическая сущность задачи:

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

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

    Обеспечивает необходимую точность и не обладает свойством вырождения (бесконечного зацикливания).
    Позволяет использовать уже готовые стандартные программы.
    Ориентирован на минимальный объем информации.
    Наиболее быстрое получение результатов.
Выбор алгоритма.
Типы алгоритмов.
    Если задача может быть решена прямым способом, то говорят, что она имеет детерминированный алгоритм. В таких алгоритмах отсутствует элемент неопределенности, недопустимо применение метода проб и ошибок. К таким задачам относятся математические уравнения, проверка данных, печать отчетов.
    Методы проб и ошибок, повторов, откатов назад или случайного выбора.  
    Например, нахождение делителей числа, поиск кратчайшего пути, задача о восьми ферзях (найти такой способ расстановки, при котором ни один из ферзей не находился бы под угрозой других).

    Предназначен не для поиска ответа на поставленную задачу, а для моделирования физических систем с помощью ЭВМ.
      Особенности этапа проектирования 
Проектирование  — итерационный процесс, при помощи которого требования к ПС транслируются  в инженерные представления ПС. Вначале  эти представления дают только концептуальную информацию (на высоком уровне абстракции), последующие уточнения приводят к формам, которые близки к текстам  на языках программирования.
Обычно в проектировании выделяют две ступени: предварительное  проектирование и детальное проектирование. Предварительное проектирование формирует  абстракции архитектурного уровня, детальное  проектирование уточняет эти абстракции, добавляет подробности алгоритмического уровня. Кроме того, во многих случаях  выделяют интерфейсное проектирование, цель которого — сформировать графический  интерфейс пользователя (GUI).  
Предварительное проектирование обеспечивает:
    идентификацию подсистем;
    определение основных принципов управления подсистемами, взаимодействия подсистем.
Предварительное проектирование включает три типа деятельности:
1. Структурирование системы. Система структурируется на несколько подсистем, где под подсистемой понимается независимый программный компонент. Определяются взаимодействия подсистем.
2. Моделирование управления. Определяется модель связей управления между частями системы.
3. Декомпозиция подсистем на модули. Каждая подсистема разбивается на модули. Определяются типы модулей и межмодульные соединения.
Рассмотрим вопросы  структурирования, моделирования и  декомпозиции более подробно. 
Структурирование системы
Известны четыре модели системного структурирования:
    модель хранилища данных;
    модель клиент-сервер;
    трехуровневая модель;
    модель абстрактной машины.
В модели хранилища данных подсистемы разделяют данные, находящиеся в общей памяти. Как правило, данные образуют БД. Предусматривается система управления этой базой.
Модель клиент-сервер используется для распределенных систем, где данные распределены по серверам. Для передачи данных применяют сетевой протокол, например TCP/IP. 
Трехуровневая модель является развитием модели клиент-сервер.
Уровень графического интерфейса пользователя запускается  на машине клиента. Бизнес-логику образуют модули, осуществляющие функциональные обязанности системы. Этот уровень  запускается на сервере приложения. Реляционная СУБД
хранит данные, требуемые уровню бизнес-логики. Этот уровень запускается на втором сервере - сервере базы данных.
Модель абстрактной машины отображает многослойную систему.
Каждый текущий  слой реализуется с использованием средств, обеспечиваемых слоем-фундаментом. 
Моделирование управления 
Известны два  типа моделей управления:
    модель централизованного управления;
    модель событийного управления.
В модели централизованного  управления одна подсистема выделяется как системный контроллер. Ее обязанности - руководить работой других подсистем. Различают две разновидности  моделей централизованного управления: модель вызов-возврат и модель менеджера, которая используется в системах параллельной обработки.
В модели событийного  управления системой управляют внешние  события. Используются две разновидности  модели событийного управления: широковещательная  модель и модель, управляемая прерываниями.
В широковещательной модели каждая подсистема уведомляет обработчика о своем интересе к конкретным событиям. Когда событие происходит, обработчик пересылает его подсистеме, которая может обработать это событие. Функции управления в обработчик не встраиваются.
В модели, управляемой прерываниями, все прерывания разбиты на группы - типы, которые образуют вектор прерываний. Для каждого типа прерывания есть свой обработчик. Каждый обработчик реагирует на свой тип прерывания и запускает свой процесс. 
Декомпозиция подсистем на модули
Известны два  типа моделей модульной декомпозиции:
    модель потока данных;
    модель объектов.
В основе модели потока данных лежит разбиение по функциям.
Модель объектов основана на слабо сцепленных сущностях, имеющих собственные наборы данных, состояния и наборы операций.
Очевидно, что  выбор типа декомпозиции должен определяться сложностью разбиваемой подсистемы.

Модульность 

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

Информационная  закрытость

Принцип информационной закрытости (автор - Д. Парнас, 1972) утверждает: содержание модулей должно быть скрыто друг от друга. Модуль должен определяться и проектироваться так, чтобы его содержимое (процедуры и данные) было недоступно тем модулям, которые не нуждаются в такой информации (клиентам).
Информационная  закрытость означает следующее:
1) все модули  независимы, обмениваются только  информацией, необходимой для  работы;
2) доступ к  операциям и структурам данных  модуля ограничен.
Достоинства информационной закрытости:
    обеспечивается возможность разработки модулей различными, независимыми коллективами;
    обеспечивается легкая модификация системы (вероятность распространения ошибок очень мала, так как большинство данных и процедур скрыто от других частей системы).
Идеальный модуль играет роль «черного ящика», содержимое которого невидимо клиентам. Он прост в использовании - количество «ручек и органов управления» им невелико (аналогия с эксплуатацией телевизора). Его легко развивать и корректировать в процессе сопровождения программной системы. Для обеспечения таких возможностей система внутренних и внешних связей модуля должна отвечать особым требованиям. Обсудим характеристики внутренних и внешних связей модуля.

 
Связность модуля

Связность модуля (Cohesion) - это мера зависимости его частей. Связность - внутренняя характеристика модуля. Чем выше связность модуля, тем лучше результат проектирования, то есть тем «черней» его ящик (капсула, защитная оболочка модуля), тем меньше «ручек управления» на нем находится и тем проще эти «ручки».
Для измерения  связности используют понятие силы связности (СС). Существует 7 типов связности:
1. Связность по совпадению (СС=0). В модуле отсутствуют явно выраженные внутренние связи.
2. Логическая связность (СС=1). Части модуля объединены по принципу функционального подобия. Например, модуль состоит из разных подпрограмм обработки ошибок. При использовании такого модуля клиент выбирает только одну из подпрограмм.
Недостатки:
    сложное сопряжение;
    большая вероятность внесения ошибок при изменении сопряжения ради одной из функций.
3. Временная связность (СС=3). Части модуля не связаны, но необходимы в один и тот же период работы системы.
Недостаток: сильная  взаимная связь с другими модулями, отсюда - сильная чувствительность внесению изменений.
4. Процедурная связность (СС=5). Части модуля связаны порядком выполняемых ими действий, реализующих некоторый сценарий поведения.
5. Коммуникативная связность (СС=7). Части модуля связаны по данным (работают с одной и той же структурой данных).
6. Информационная (последовательная) связность (СС=9). Выходные данные одной части используются как входные данные в другой части модуля.
7. Функциональная связность (СС=10). Части модуля вместе реализуют одну функцию.
Отметим, что типы связности 1,2,3 - результат неправильного планирования архитектуры, а тип связности 4 - результат небрежного планирования архитектуры приложения.
Общая характеристика типов связности представлена в  табл. 4.1.  

Таблица 4.1. Характеристика связности модуля
Тип связности Сопровождаемость Роль модуля
Функциональная   «Черный ящик»
Информационная ( последовательная )
Лучшая сопровождаемость Не совсем «черный  ящик»
Кэммуникативная   «Серый ящик»
Процедурная   «Белый» или  «просвечивающий ящик»
Временная Худшая сопровождаемость  
Логическая   «Белый ящик»
По  совпадению    

 
Функциональная  связность

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

Информационная  связность

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

Процедурная связность

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

Логическая  связность

Элементы логически  связного модуля принадлежат к действиям  одной категории, и из этой категории  клиент выбирает выполняемое действие.
Логически связный модуль - мешок доступных действий. Действия вынуждены совместно использовать один и тот же интерфейс модуля. В строке вызова модуля значение каждого параметра зависит от используемого действия. При вызове отдельных действий некоторые параметры должны иметь значение пробела, нулевые значения и т. д. (хотя клиент все же должен использовать их и знать их типы).
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.