Оценка принципов разработки ПО

Автор работы: Пользователь скрыл имя, 13 Октября 2012 в 21:13, курсовая работа

Описание работы

Известно, что основной задачей первых трех десятилетий компьютерной эры являлось развитие аппаратных компьютерных средств. Это было обусловлено высокой стоимостью обработки и хранения данных. В 80-е годы успехи микроэлектроники привели к резкому увеличению производительности компьютера при значительном снижении стоимости.
Основной задачей 90-х годов и начала XXI века стало совершенствование качества компьютерных приложений, возможности которых целиком определяются программным обеспечением (ПО).

Содержание работы

ВВЕДЕНИЕ 2
1. БАЗОВЫЕ ОСНОВЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 4
1.1 КЛАССИЧЕСКИЙ ЖИЗНЕННЫЙ ЦИКЛ 5
1.2 МАКЕТИРОВАНИЕ 7
1.3 СТРАТЕГИИ КОНСТРУИРОВАНИЯ ПО 10
1.4. МОДЕЛИ КАЧЕСТВА ПРОЦЕССОВ РАЗРАБОТКИ ПО 12
2. ПРОГРАММНАЯ ИНЖЕНЕРИЯ 16
2.1 РАСПРЕДЕЛЕННОЕ ПРОГРАММИРОВАНИЕ 16
2.2 СРЕДСТВА РАЗРАБОТКИ ПО 19
2.3 ВОПРОСЫ БЕЗОПАСТНОСТИ 22
3. СОВРЕМЕННЫЕ ТЕНДЕНЦИИ РАЗРАБОТКИ ПО 24
3.1 ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ 24
3.2 CASE-СИСТЕМЫ 29
3.3 ИННОВАЦИОННЫЕ ВОЗМОЖНОСТИ 33
ЗАКЛЮЧЕНИЕ 39
СПИСОК ЛИТЕРАТУРЫ 43

Файлы: 1 файл

курсовая - оценка принципов разработки ПО.doc

— 298.00 Кб (Скачать файл)

 

 

Рис. 6.  Модель параллельной программы в виде графа "процессы - каналы"

 

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

Дадим дополнительные пояснения для используемых понятий в модели "процессы – каналы":

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

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

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

Следует отметить важное достоинство  рассмотренной модели "процессы – каналы" – в ней проводится четкое разделение локальных (выполняемых на отдельном процессоре) вычислений и действий по организации информационного взаимодействия одновременно выполняемых процессов. Такой подход значительно снижает сложность анализа эффективности параллельных методов и существенно упрощает проблемы разработки параллельных программ.

 

 

3.2 CASE-системЫ

 

В последние годы на мировом  рынке программных продуктов  появилось много программных средств, называемых CASE-системами или CASE-средствами. Слово CASE представляет собой сокращение от Computer Aided Software Engineering. В русскоязычной литературе нет соответствующего общепринятого термина. С нашей точки зрения есть два наиболее соответствующих оригиналу и назначению CASE-систем перевода: ``Программная инженерия, поддерживаемая компьютером'' и менее буквальный, но более отвечающий сути перевод ``Средства разработки программ с помощью компьютера''. Теоретическое осмысливание этого явления и его места в технологии программирования находится на очень ранних стадиях.

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

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

Приведенная технология базируется в основном на стандартах IEEE [10,11] (IEEE - Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике). Термин "внедрение" используется в широком смысле и включает все действия от оценки первоначальных потребностей до полномасштабного использования CASE-средств в различных подразделениях организации-пользователя. Процесс внедрения CASE-средств состоит из следующих этапов:

  • определение потребностей в CASE-средствах;
  • оценка и выбор CASE-средств;
  • выполнение пилотного проекта;
  • практическое внедрение CASE-средств.

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

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

Приведем краткий обзор некоторых CASE-средств.

- Power Designer компании Sybase. В состав Power Designer входят следующие модули:

Process Analyst - средство для  функционального моделирования,  поддерживает нотацию Йордона - ДеМарко, Гейна - Сарсона и несколько других.

Data Analyst - инструмент для  построения модели "сущность-связь"  и автоматической генерации на ее основе реляционной структуры.

Application Modeler - инструмент  для автоматической генерации  прототипов программ обработки данных на основе реляционных моделей, построенных в Data Analyst.

- Silverrun компании Silverrun Technologies Ltd. CASE-система Silverrun состоит из следующих инструментов:

BPM - построение DFD-диаграмм. Поддерживает нотации Йордона-ДеМарко,  Гейна - Сарсона, Уорда-Меллора  и многие другие. Данный инструмент позволяет автоматически проверить целостность построенной модели, причем список критериев проверки определяется пользователем (например: отсутствие имен у элементов модели, потоки данных типа "хранилище - хранилище" или "внешняя сущность - внешняя сущность" и т.д.)

ERX - построение диаграмм "сущность-связь". Поддерживаются  не только бинарные связи, но и связи более высоких порядков, имеется возможность определения атрибутов у связей. Построенные ER-модели с помощью внешней утилиты могут быть сконвертированы в реляционный структуры (в той версии, с которой я работал, при этом, к сожалению, терялись атрибуты связей).

RDM - инструмент реляционного  моделирования, позволяет генерировать SQL-скрипты для создания таблиц  и индексов примерно для 25 целевых СУБД.

- BPWin и ERWin компании LogicWorks.LogickWorks выпускает два взаимнодополняющих инструмента проектирования информационных систем:

BPWin - функциональное моделирование  на основе методологии IDEF0. Допускается также использовние нотации IDEF3 и DFD в нотации Йордона - ДеМарко. Имеется возможность экспорта построенных моделей в системы функционально-стоимостного анализа (ABC - Activity Based Costing) и информационного моделирования ERWin.

ERWin - средство информационного  моделирования, используется нотация IDEF1X. Поддерживаются свыше 20 целевых СУБД, имеется возможность генерации прототипов прикладных программ для Visual Basic, Delphi и т.д.

- Designer/2000 компании Oracle. Данный продукт компании Oracle, возможно, наиболее полно поддерживает все этапы создания приложений обработки данных. Однако, следует оговориться, что, в отличие от других средств, он поддерживает практически одну целевую СУБД - Oracle Server (имеется еще возможность генерации скриптов на ANSI SQL). То же самое касается и средств создания пользовательсокго интерфейса. Хотя возможна генерация прототипов программ для языков Visual Basic, C, Java, полностью все возможности Designer/2000 реализуются только при использовании его вместе со средством разработки Oracle Developer/2000. В состав Oracle Designer/2000 включены модули: инструментарий анализа предметной области, генераторы структур, инструментарий проектирования приложения, генераторы данных и кода.

- Rational Rose. Это CASE-система для визуального моделирования объектно-ориентированных программных продуктов. Визуальное моделирование — процесс графического описания разрабатываемого программного обеспечения. В его составе выделяют шесть элементов: строку инструментов, панель «инструменты диаграммы», окно диаграммы, браузер, окно спецификации, окно документации. В процессе генерации Rational Rose отображает логическое описание класса в каркас программного кода — в коде появляются языковые описания имени класса, свойств класса и заголовки методов. Кроме того, для описания тела каждого метода формируется программная заготовка. Появляются и программные связи классов. Автоматическая генерация была задана настройкой среды — свойствами генерации. Система обеспечивает настройку параметров генерации для уровней класса, роли, свойства (атрибута) и проекта в целом.

3.3  инновационные возможности

 

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

В обстановке отсутствия четких стандартов и перестройки структуры, сопровождающих любое изменение технологий, компании имеют отличную возможность максимально эффективно воспользоваться сложившейся ситуацией, начав адаптировать свои приложения для использования всех преимуществ многопоточности и энергосберегающей производительности, реализованных в микроархитектуре Intel® Core™. Корпорация Intel поддерживает компании, которые решились на этот шаг, предоставляя им широкий спектр средств разработки и технологий – от университетских курсов и организации повышения квалификации до готовых компонентов, позволяющих ускорить разработку многопоточных приложений [2]. В этой статье обсуждаются направления развития и потенциал многопоточного программирования, новые модели использования, а также перспективные методы разработки программ будущего, учитывая то, что сейчас уже планируется дальнейший переход от двухъядерных и четырехъядерных процессоров к многоядерным.

В ближайшее время большинство новых компьютеров будет оснащено двухъядерными или четырехъядерными процессорами на базе технологий Intel®. Широкое внедрение многоядерных технологий позволяет по новому взглянуть на вычислительные возможности компьютеров, и порождает всплеск творческой активности по созданию инновационных решений. Разработчики клиентских приложений могут исследовать новые способы применения многозадачности, которые в прошлом не имели практического значения или были сложны в реализации. Например, важные системные задачи теперь могут выполняться постоянно – непрерывный и упреждающий поиск вирусов, автоматическое резервное копирование, гарантирующее сохранение всех рабочих файлов, интеллектуальная система мониторинга потоков работ, способная прогнозировать потребности пользователя и выдавать информацию в реальном времени по запросу. С ростом распространения многоядерных клиентских ПК список полезных приложений, которые могут непрерывно выполняться в фоновом режиме, будет постоянно расти.

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

Информация о работе Оценка принципов разработки ПО