Технология разработки программного обеспечения с использованием RAD Delphi7

Автор работы: Пользователь скрыл имя, 28 Мая 2012 в 09:55, курсовая работа

Краткое описание

Одним из возможных подходов к разработке ПО в рамках спиральной модели ЖЦ является получившая в последнее время широкое распространение методология быстрой разработки приложений RAD (Rapid Application Development). Под этим термином обычно понимается процесс разработки ПО, содержащий 3 элемента:
небольшую команду программистов (от 2 до 10 человек);

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

ВВЕДЕНИЕ ………………………………………………………………. … 3
1. ПОСТАНОВКА ЗАДАЧИ ………………………………………………. 5
2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ...7
2.1 Анализ языка программирования Delphi ……………………………….7
2.2 Анализ языка программирования Visual Basic…………………...……10
2.3 Анализ языка программирования Python ……………………………...11
2.4 Анализ языка программирования Java…... ……………………………13
2.5 Анализ языка программирования C++…... ……………………………16
3. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ АУДИО И ВИДЕО
КОНВЕРТЕРА .....…………………………………………………………. 20
4. ПРОЕКТИРОВАНИЕ ПРОГРАММЫ ………………………………….23
4.1 Модель пользовательского интерфейса ……………………………….23
4.2 Модель работы программы …………………………………………….24
5. ВНЕДРЕНИЕ ПРОГРАММНОГО ПРОДУКТА ……………………….26
5.1 Руководство по работе с программным продуктом ………………….26
6. ОЦЕНКА КАЧЕСТВА ПРОГРАММНОГО ПРОДУКТА …………….34
6.1 Стандартизация характеристик качеств ………………………………34
6.2 Выбор показателей качества …………………………………………...35
6.3 Оценка качества …………………………………………………………35
ЗАКЛЮЧЕНИЕ ……………………………………………………………..37
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ………………………...39
ПРИЛОЖЕНИЯ………………………………………………

Содержимое работы - 1 файл

ТРПП.docx

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

 

2.2.2 Недостатки языка программирования

Поддержка операционных систем только семейства Windows (Исключение — VB1 for DOS). Отсутствие механизма наследования объектов.  Существующие в языке наследование, позволяет наследовать только интерфейсы объектов, а не их самих. Таким образом, в унаследованом классе должны быть явно переписаны все функции базового класса. Также в унаследованном классе невозможно добавление каких-либо методов, присущих только даннному классу, то есть если абстрактный базовый класс содержит только два метода, то и производный класс содержит только два метода, не более и не менее того. Требует установленных DLL для работы программы.

Часто критике подвергаются такие аспекты  Visual Basic, как возможность отключить средства слежения за объявленными переменными, возможность неявного преобразования переменных, наличие типа данных «Variant». По мнению критиков, это даёт возможность писать крайне плохой код. С другой стороны, это можно рассматривать как плюс, так как VB не навязывает «хороший стиль», а даёт больше свободы программисту.

Отсутствие указателей, низкоуровневого  доступа к памяти, ASM-вставок. Несморя на то, что парадигма Visual Basic позволяет среднему VB-программисту обходиться без всего этого, перечисленные вещи также нередко становятся объектами критики. И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi.

 

2.3 Анализ языка программирования  Python

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

В связи с этим, определенный интерес  представляет рассмотрение сравнительно нового языка программирования Python (пайтон), который был создан его автором Гвидо ван Россумом (Guido van Rossum) в начале 90-х годов.

Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов, вместе с тем очень гибок и выразителен. Это язык более высокого уровня нежели Pascal, C++ и, естественно C, что достигается, в основном, за счет встроенных высокоуровневых структур данных (списки, словари, тьюплы).

 

2.3.1 Достоинства языка  программирования Python

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

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

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

  • Numerical Python - расширенные математические возможности, такие как манипуляции с целыми векторами и матрицами;
  • Tkinter - построение приложений с использованием графического пользовательского интерфейса (GUI) на основе широко распространенного на X-Windows Tk-интерфейса;
  • OpenGL - использование обширной библиотеки графического моделирования двух- и трехмерных объектов Open Graphics Library фирмы Silicon Graphics Inc. Данный стандарт поддерживается, в том числе, в таких распространенных операционных системах как Microsoft Windows 95 OSR 2, 98 и Windows NT 4.0.

 

2.3.2 Недостатки языка  программирования Python

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

 

2.4 Анализ языка программирования  Java

Язык программирования Java был создан в рамках проекта корпорации Sun Microsystems по созданию компьютерных программно-аппаратных комплексов нового поколения. Первая версия языка была официально опубликована в 1995 году. С тех пор язык Java стал стандартом де-факто, вытеснив за десять лет языки C и C++ из многих областей программирования. В 1995 году они были абсолютными лидерами, но к 2006 году число программистов, использующих Java, стало заметно превышать число программистов, использующих C и C++, и составляет более четырех с половиной миллионов человек. А число устройств, в которых используется Java, превышает полтора миллиарда.

В 1995 году появились сразу два  языка программирования, имеющие  в настоящее время огромное значение –Java, разработанный в корпорации Sun, и JavaScript, разработанный в небольшой фирме Netscape Communication, получившей к тому времени известность благодаря разработке браузера Netscape Navigator.

Java создавался как универсальный язык, предназначенный для прикладного программирования в неоднородных компьютерных сетях как со стороны клиентского компьютера, так и со стороны сервера. В том числе – для использования на тонких аппаратных клиентах (устройствах малой вычислительной мощности с крайне ограниченными ресурсами). При этом скомпилированные программы Java работают только под управлением виртуальной Java-машины, поэтому они называются приложениями Java.  Синтаксис операторов Java практически полностью совпадает с синтаксисом языка C, но, в отличие от C++, Java не является расширением C – это совершенно независимый язык, со своими собственными синтаксическими правилами. Он является гораздо более сильно типизированным по сравнению с C и C++, то есть вносит гораздо больше ограничений на действия с переменными и величинами разных типов. Например, в C/C++ нет разницы между целочисленными числовыми, булевскими и символьными величинами, а также адресами в памяти. То есть, например, можно умножить символ на булевское значение, из которого вычтено целое число, и разделить результат на адрес! В Java введен вполне разумный запрет на почти все действия такого рода.

 

2.4.1 Достоинства языка программирования  Java

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Трансляция в байтовый код увеличивает скорость выполнения и уменьшает размер Java программ.

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

 

2.4.2 Недостатки языка программирования  Java

Часто к недостаткам концепции  виртуальной машины относят то, что  исполнение байт-кода виртуальной машиной  может снижать производительность программ и алгоритмов, реализованных  на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований:

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

По данным сайта shootout.alioth.debian.org, для  семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++.

 

2.5 Анализ языка программирования С ++

C++ — компилируемый статически  типизированный язык программирования  общего назначения. Поддерживая  разные парадигмы программирования, сочетает свойства как высокоуровневых,  так и низкоуровневых языков. В сравнении с его предшественником  — языком C, наибольшее внимание  уделено поддержке объектно-ориентированного  и обобщённого программирования. Название «C++» происходит от  языка C, в котором унарный оператор ++ обозначает инкремент переменной.

Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Laboratories Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. В 1998 году был ратифицирован международный стандарт языка C++.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных  прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а  также развлекательных приложений (например, видеоигры). А Microsoft Visual C++ — интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition делает его одним из самых популярных языков для создания RAD приложений.

 

2.5.1 Достоинства языка программирования С ++

C++ — чрезвычайно мощный язык, содержащий средства создания  эффективных программ практически  любого назначения, от низкоуровневых  утилит и драйверов до сложных  программных комплексов самого  различного назначения. В частности поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).

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

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

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

Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, неконстантный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.

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

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

Возможность создания встроенных предметно-ориентированных  языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

Используя шаблоны и множественное  наследование можно имитировать  классы-примеси и комбинаторную  параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPtr которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.

Информация о работе Технология разработки программного обеспечения с использованием RAD Delphi7