книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Анализ систем разработки структурированных учебных курсов ( Курсовая работа, 6 стр. )
АНАЛИТИЧЕСКОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ( Дипломная работа, 77 стр. )
АРМ ОПЕРАТОРА ИНТЕРНЕТ-ПРОВАЙДЕРА ( Курсовая работа, 38 стр. )
База данных и веб-интерфейс к библиотеке ИМиКН ( Курсовая работа, 13 стр. )
База данных рецензий на фильмы для мобильных устройств ( Курсовая работа, 29 стр. )
Библиотека геометрических операций для ГИС ( Курсовая работа, 11 стр. )
Библиотека для распределённых пошаговых игр Подсистема обеспечения процесса распределённой обработки данных. ( Курсовая работа, 30 стр. )
Библиотека для распределённых пошаговых игр Проектирование и реализация имитационной модели игрового мира. ( Курсовая работа, 18 стр. )
Библиотека классов C++ для разработки оконных приложений ( Курсовая работа, 16 стр. )
БИБЛИОТЕКИ ДЛЯ PHP НА ОСНОВЕ АРХИТЕКТУРЫ AJAX ( Курсовая работа, 26 стр. )
БИЛЛИНГОВАЯ СИСТЕМА ПО ВЫДЕЛЕННЫМ И VPN- КЛИЕНТАМ С АВТОРИЗАЦИЕЙ НА СЕРВЕРЕ ДОСТУПА TACACS+ ( Дипломная работа, 80 стр. )
БИРЖА НАУКОЕМКИХ ТЕХНОЛОГИЙ В ИНТЕРНЕТ ВЕРСИЯ 1.0 ( Курсовая работа, 22 стр. )
Блок-схемы ( Контрольная работа, 14 стр. )
Блок-схемы 2005-14 ( Контрольная работа, 14 стр. )
Брокер Объектных Запросов ( Дипломная работа, 138 стр. )
Ввод-вывод программы Open-Close в языках Quick Basic и Visual Basic, описание синтаксиса и применение ( Контрольная работа, 9 стр. )
Вейвлетные Алгоритмы сжатия изображений ( Курсовая работа, 12 стр. )
Визуализация в играх преследования со многими участниками ( Курсовая работа, 12 стр. )
Визуализация медицинских данных ( Курсовая работа, 12 стр. )
Визуализация разрезов трехмерных полей, заданных непрерывными функциями ( Курсовая работа, 17 стр. )
Визуализация семейств эллиптических функций в пространстве ( Курсовая работа, 15 стр. )
Визуализация тестовых наборов данных для гео-метрических алгоритмов ( Курсовая работа, 14 стр. )
ВИЗУАЛЬНЫЙ КОНСТРУКТОР ОТЧЕТОВ НА ОСНОВЕ ВЕБ-ИНТЕРФЕЙСА ( Курсовая работа, 37 стр. )
ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ (Белоруссия) ( Контрольная работа, 11 стр. )
Генератор альбома карт в среде ПО ArcGIS Desktop. ( Курсовая работа, 13 стр. )

Содержание

Содержание 2

1. Введение 3

1.1. Глоссарий 3

1.2. Описание предметной области 3

1.3. Неформальная постановка задачи 4

1.4. Обзор существующих методов решения 5

2. Требования к окружению 6

2.1. Требования к аппаратному обеспечению 6

2.2. Требования к программному обеспечению 6

2.3. Требования к пользователям 6

2.3.1. Разработчик 6

2.3.2. Пользователь 6

3. Спецификация данных 6

3.1. Описание формата и структуры данных 6

3.1.1. Формат файла настроек 6

4. Функциональные требования 7

5. Требования к интерфейсу 7

6. Прочие требования 8

6.1. Требования к производительности 8

7. Проект 9

7.1. Средства реализации 9

7.2. Модули и алгоритмы 9

7.3. Структуры данных 17

7.3.1. Классы для кэширования данных 18

7.3.2. Классы для анализа пространств имен модулей 19

7.4. Проект интерфейса 21

7.4.1. Главное окно программы 21

7.4.2. Отформатированный код 22

8. Реализация и тестирование 23

8.1. Характеристики реализации 23

8.2. Тестирование 23

Заключение 23

Список литературы 25

Приложение 1. Стандарт форматирования исходных текстов программ ООО “Инсайт Экспертс” 26

1. Введение

1.1. Глоссарий

Исходный текст программы Delphi Object Pascal — набор символов алфавита, соот-ветствующий синтаксису компилятора Delphi.

Форматирование исходного текста программы — преобразование исходного текста программы в соответствии с каким-либо заданным стандартом без потери текстом своей семантической нагрузки.

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

1.2. Описание предметной области

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

В настоящее время большинство приложений разрабатывается коллективами про-граммистов, зачастую с применением большого числа компонент от сторонних произво-дителей. Все это не могло не привести к выработке единых стандартов форматирования исходных текстов программ внутри отдельных коллективов, а также более крупных групп разработчиков, например, стандарт форматирования исходных текстов программ на Del-phi Object Pascal фирмы Borland ([1]). К сожалению, в настоящее время не существует единого стандарта кодирования, которого бы придерживались все разработчики в рамках хотя бы одного языка программирования.

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

Деятельность компании заказчика ООО “Инсайт Экспертс” связана с написанием и продажей программных продуктов. В компании разработан свой собственный стандарт кодирования ([2]), которого придерживаются все разработчики ООО “Инсайт Экспертс”. Зачастую в процессе работы используются программные компоненты сторонних разра-ботчиков. Общий объем этих компонент превышает десятки тысяч строк кода на языке Delphi Object Pascal. В компании были предприняты попытки по приведению данного ко-да в соответствии с принятым стандартом кодирования, в частности, в сети Интернет была найдена открытая библиотека JCF [3], позволяющая преобразовывать исходные тексты программ, написанных на Delphi Object Pascal. К сожалению, данная библиотека не может быть настроена таким образом, чтобы выполнялись хотя бы основные элементы принято-го стандарта кодирования. Попытки отформатировать существующий код вручную не рассматривались ввиду трудоемкости данной задачи.

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

Таким образом, возникла необходимость разработки библиотеки, осуществляющей форматирование исходных текстов программ, написанных на Delphi Object Pascal, обла-дающая гибкой настраиваемостью в связи с внесением возможных изменений в сущест-вующий стандарт кодирования ООО “Инсайт Экспертс”.

Помимо компании заказчика данная библиотека также может быть полезна всем, чья деятельность так или иначе связана с написанием программ на Delphi Object Pascal, а так-же чтением исходного кода, написанного другими людьми, в том числе, преподавателям ВУЗов и людям, занимающимся сопровождением программ.

1.3. Неформальная постановка задачи

Целью данной работы является разработка библиотеки классов, которая должна по-зволять выполнять следующие функции:

­ Форматировать синтаксически корректный исходный код программы в полном или близком к нему соответствии со стандартом кодирования, приня-тым в ООО “Инсайт Экспертс”

­ Требовать относительно небольших усилий при модернизации или дополне-нии системы

­ Обеспечивать производительность, достаточную для работы на ЭВМ, уста-новленных в ООО “Инсайт Экспертс”

Предполагается, что библиотека будет свободно распространяться с открытыми ис-ходными текстами в соответствии с лицензией MPL (Mozilla Public License, [4]).

Ниже (рис. 1) приведена диаграмма вариантов использования библиотеки и прило-жений, написанных с ее помощью:

Рис. 1. Диаграмма вариантов использования

1.4. Обзор существующих методов решения

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

Название Гибкость настроек Скорость работы Стандарт Borland Стандарт ООО “Ин-сайт Экс-пертс” Открытость Бесплатность

Free Pas-cal – + – – + +

DelForEx + + – – – +

SCoder – +/– – – – –

JCF + +/– + – + +

ICF + +/– + +/– + +

Исходя из проведенного анализа, было принято решение взять за основу систему JCF (Jedi Code Formatter) и на ее базе создать систему ICF (Insight Code Formatter), насле-дующую, с одной стороны, все свойства JCF, а с другой стороны позволяющую обеспе-чить потребности закзазчика в лице ООО “Инсайт Экспертс”.

2. Требования к окружению

2.1. Требования к аппаратному обеспечению

Минимальные требования: PII-233 / 128 MB / 5 MB, монитор 256 цветов

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

2.2. Требования к программному обеспечению

Необходимо:

• Операционная система Windows 95/98/ME/NT 4.0/2000/XP

• Библиотеки JCL, JVCL ([5])

• Borland Delphi 5/6/7

Рекомендуется:

• Система контроля версий исходного кода с подсистемой сравнения версий исход-ного кода

2.3. Требования к пользователям

2.3.1. Разработчик

Разработчик конечного продукта должен владеть основными приемами объектно-ориентированного программирования.

2.3.2. Пользователь

Пользователь системы должен быть знаком с основными элементами управления Widows, также он должен обладать навыком программирования на языке Delphi Object Pascal.

3. Спецификация данных

Список литературы

[1] Object Pascal Style Guide, © 1994-2005 Borland Software Corporation, .

[2] Спецификация на исходные тексты, (c) 2003 ООО “Инсайт Экспертс”.

[3] Jedi Code Format, .

[4] Mozilla & Netscape Public Licenses, © 1998–2005 The Mozilla Organization, .

[5] JEDI Visual Component Library, (c) 2004 by the JVCL Team, .

[6] Кнут, Дональд, Эрвин. Искусство программирования, том 3. Сортировка и поиск, 2-е изд.: Пер. с англ.: Уч. пос. — М.: Издательский дом “Вильямс”, 2000. — 832 с.: ил. — Парал. тит. англ.

[7] Кленин А.С. Методические указания по подготовке и защите отчётов на специализации «Прикладная математика. Системное программирование» (Версия 0.7). Владивосток, 2003.

[8] Тейксейра С., Пачеко К., Delphi 5. Руководство разработчика, том 2. Разработка компонентов и программирование баз данных: Пер. с англ.: Уч. пос. — М.: Издательский дом “Вильямс”, 2000. ¬992 с.: ил. — Парал. тит. англ.

[9] DelForExp, a freeware Pascal source code formatter for Delphi, (c) 2004 Egbert van Nes, .

[10] Free Pascal, .

[11] Source Coder, (c) 2003 Peter Tiemann,

.

Примечаний нет.

2000-2024 © Copyright «DipMaster-Shop.ru»