К дипломному проекту icon

К дипломному проекту


Загрузка...
страницы: 1   2   3   4
вернуться в начало
скачать



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



  1. Разработка программного обеспечения.

    1. Анализ технологического решения задачи.

      1. Механизм доступа к реестру из прикладной программы;

Разумеется, как и для других целей, в windows API имеются средства для работы с системным реестром. Однако, использовать API не совсем удобно, поскольку API – это малосвязанный набор функций (Речь об API-функциях пойдет ниже). Все вышесказанное касается и системного реестра.

В конечном итоге, гораздо удобнее API-функции «завернуть» в следующий уровень абстракции – класс (тут уже речь идет об ООП). Где будут инкапсулированы методы (функции, термин из ООП) и данные. В методах будут использованы API-функции. Что значительно упростит жизнь пользователю этого класса (программисту более высокого уровня).

В BDS 2006 (как и в других продуктах Borland) имеется класс для работы с системным реестром – TregIniFile. Класс TRegIniFile позволяет обращаться к секции HKEY_CURRENT_USER, считывать и записывать строки (методы ReadString и WriteString), целочисленные значения (методы ReadInteger и WriteInteger), логические значения (методы ReadBool и WriteBool), секции (методы ReadSection, ReadSections и ReadSectionValues), удалять секции (метод EraseSection) и элементы (метод DeleteKey). При инициализации класса ему передается ветка в реестре. Этих функций вполне достаточно для того чтобы обеспечить минимальную функциональность приложения. Если же требуется читать и записывать данные из других секций реестра, можн воспользоваться методами класса TRegistry или непосредственно функциями Win32 API.



      1. Программный интерфейс Windows – WinAPI.

          1. Общее описание.

Windows API (application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств. Windows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.

Win16 — первая версия Windows API для 16-разрядных версий Windows. Изначально назывался просто Windows API, затем стал называться Win16 для отличия от Win32. Win32s — подмножество Win32, устанавливаемое на семейство 16-разрядных систем Windows 3.x и реализующее ограниченный набор функций Win32 API для этих систем. Win32 — 32-разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в DLL kernel32.dll и advapi32.dll; базовые модули GUI — в user32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён (в несколько ограниченном виде) в системы серии Windows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (Client/Server Runtime Subsystem), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро - ntoskrnl.exe

Win64 — 64-разрядная версия Win32, содержащая дополнительные функции для использования на 64-разрядных компьютерах. Win64 API можно найти только в 64-разрядных версиях Windows XP, Windows

          1. Основные библиотеки Windows API.

  • COMCTL32.DLL: набор дополнительных элементов управления Windows, в том числе Tree List и Rich Text;

  • MAPI32.DLL: функции работы с электронной почтой;

  • NETAPI32.DLL: элементы управления и функции работы с сетью;

  • ODBC32.DLL: функции этой библиотеки нужны для работы с различными базами данных через протокол ODBC;

  • WINMM.DLL: операции доступа к системным средствам мультимедиа.

  • KERNEL32.DLL: низкоуровневые функции управления памятью, задачами и другими ресурсами системы;

  • USER32.DLL: здесь в основном находятся функции управления пользовательским интерфейсом;

  • GDI32.DLL: библиотека Graphics Device Interface — разнообразные функции вывода на внешние устройства;

  • COMDLG32.DLL: функции, связанные с использованием диалоговых окон общего назначения;

    1. Скрипты и команды в Linux.

В Linux любую административную задачу можно выполнить из консоли. Во многих случаях использование консоли требует меньше времени и дает больше возможностей, чем графическая программа. Более того, любая консольная задача может быть записана в скрипт и тем самым автоматизирована. Чтобы по настоящему контролировать среду Linux. Если ваша система загружается в текстовом режиме (обычная конфигурация для серверов, чтобы получать на консоль вывод сообщений основных процессов), то вы уже в консоли при входе в систему. Обычно в системе Linux можно попасть на дополнительные консоли, нажав клавиши Ctrl + Alt + (F1 – F6). Каждая консоль – это совершенно отдельная сессия в системе и может использоваться разными пользователями в одно и то же время. Такое "многоконсольное" поведение отличается от "многодесктопового" в Windows. В Linux каждая консоль может контролироваться совершенно разными пользователями. Например, можно войти пользователем root на первую консоль, и пользователем joeuser на вторую. Обе консоли запускают разные программы в пространстве своего пользователя. В том же духе, разные пользователи могут удаленно входить в систему Windows. В этом случае Linux дает возможности скорее как мэйнфрейм, нежели простой сервер или рабочая станция. Если же вы работаете в графическом режиме, то можете открыть терминал, чтобы получить доступ к окну с консолью. Обычно на панели задач рабочего стола есть кнопка терминала либо его можно найти в меню Program в System Tools. Терминал также можно открыть из контекстного меню (появляется по щелчку правой кнопкой мыши на рабочем столе). Из консоли доступно много дополнительных команд. Некоторые из них действительно полезны только при написании скриптов. Все команды и ключи чувствительны к регистру. -R не то же самое, что -r и, скорее всего, приведет к другому результату. Консольные команды почти всегда пишутся в нижнем регистре.

Описание некоторых команд и ключей к ним:

  • Cd – используется для перемещения по каталогам;

  • ls – вызывается список файлов в каталоге. Есть несколько ключей, с помощью которых можно менять вид списка:

  • ls -l –Показывает расширенный вывод, включающий в себя размеры файлов, дату и время последнего изменения и атрибуты;

  • ls -t – Сортирует файлы по времени;

  • ls -S – Сортирует файлы по размеру;

  • ls -r – При использовании вместе с одним из ключей для сортировки изменяет порядок вывода;

  • ls -lt – показывает самые новые файлы в самом верху списка;

  • ls -lrt – показывает самые новые файлы в самом низу.

  • ls -h – Удобочитаемый. Использует дружественные индикаторы k, M и G, которые показывают размер файла в понятных человеку единицах, а не отображают его в байтах;

  • ls -a – Показывает все файлы в каталоге, даже скрытые;

  • cp – Копирование файлов;

  • cp -R – Копирует файлы рекурсивно. Используется при копировании каталога со всем его содержимым;

  • cp -f Копирует и перезаписывает существующие файлы без запроса подтверждения;

  • cp -l Создает ссылки на файлы вместо копирования;

  • mv – перемещает и переименовывает файлы. Команда работает абсолютно так же, как и DOS'овская move, за тем исключением, что она переместит полностью и каталоги, и файлы;

  • сat – позволяет просматривать файлы. В DOS'е ей соответствует type. Эта команда выдаст содержимое файла в другой файл или на экран, или на вход другой команды. сat – это сокращение от "concatenate" (объединять), так что можно использовать ее для объединения нескольких файлов в один большего размера;

  • more – этой командой можно просматривать информацию постранично;

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

  • vi – служит для редактирования файлов с паролями и конфигурациями;

  • man – документацию по той или иной команде можно увидеть с помощью этой команды;

  • info – похожа на man, за исключением поддержки гиперссылок, что делает перемещение по документации более простым.




    1. Обоснование выбранного языка.

      1. Классы программ.

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

  • аппаратная часть автономных компьютеров и сетей ЭВМ;

  • функциональные задачи различных предметных областей;

  • технология разработки программ.





Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов:

  • системное программное обеспечение;

  • пакеты прикладных программ;

  • инструментарий технологии программирования.


Системное программное обеспечение направлено:

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

  • на обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;

  • на проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;

  • на выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).

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

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

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

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



Класс программ

Назначение

Специфика

Web-сервисы

Ориентированы на интернет сервис.

Представление информации в виде html, архитектура клиент-сервер либо трехзвенная.

Корпоративные приложения

Направлены на офисный рынок, помогающие ускорить и автоматизировать работу организации.

Высокая надежность, высокая специализация, типовая архитектура – клиент-сервер.

Универсальные программы

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

Требуют высокой производительности и большого объема памяти

Специализированные программы

Выполняют одну специализированную функцию.

Как правило, не требуют высокой производительности.

Игры

Компьютерная программа, служащая для организации игрового процесса

В идеале требует максимальной производительности.


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


Существующие классы языков программирования, обладающие определёнными спецификациями:



Язык

Независимость от ОС

Компилятор

Удобство разработки

Библиотеки визуального интерфейса

Производительность

Итого

С++

+

+

+

+/-

+

4,5

Delphi

-

+

+

+

+

4

Visual Basic

-

+/-

+

+

-

2,5

Assembler

+

+

-

-

+

3

Java

+

+/-

+

+

+/-

4

PHP

+

-

+

-

-

2

Perl

+

-

+/-

-

-

1,5

Python

+

+/-

+

+/-

-

3


По итогам анализа оптимальным для создания программы является язык C++. В варианте C++ Builder от компании Borland этот язык поставляется с библиотекой элементов визуального интерфейса, что существенно облегчает процесс создания программ.

Концепция языка:

C++ Builder — среда быстрой разработки (RAD), выпускаемая компанией CodeGear, дочерней фирмой компании Embarcadero (ранее Borland). Предназначена для написания программ на языке программирования C++. C++ Builder объединяет Библиотеку визуальных компонентов и среду программирования (IDE), написанные на Delphi с компилятором C++. Цикл разработки аналогичен Delphi, но с существенными улучшениями, добавленными в C++ Builder. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но, к сожалению, обратное утверждение не верно. C++ Builder содержит инструменты, которые позволяют осуществлять настоящую визуальную разработку Windows-приложений методом drag-and-drop, упрощая программирование благодаря WYSIWYG редактору интерфейса, встроенному в его среду разработки.C++ Builder первоначально создавалась только для платформы Microsoft Windows. Поздние версии, содержащие кроссплатформенную компонентную библиотеку Borland, основанную на Qt, поддерживают и Windows и Linux. С++ –компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования. Несмотря на то что большая часть кода Си будет справедлива и для Си++, Си++ не является надмножеством Си и не включает его в себя. Существует и такой верный для Си код, который неверен для Си++. Это отличает его от Объектного Си, ещё одного усовершенствования Си для ООП, как раз являющегося надмножеством Си.

Достоинства:

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

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

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

Имеется возможность работы на низком уровне с памятью, адресами, портами.

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

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

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

Недостатки:

Сложность и избыточность, из-за которых C++ трудно изучать, а построение компилятора сопряжено с большим количеством проблем. В частности:

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

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

Недостаток информации о типах данных во время компиляции (CTTI).

Метапрограммирование на основе шаблонов C++ сложно и при этом ограничено в возможностях. Оно состоит в реализации средствами шаблонов C++ интерпретатора примитивного функционального языка программирования выполняющегося во время компиляции. Сама по себе данная возможность весьма привлекательна, но такой код весьма трудно воспринимать и отлаживать. Языки Lisp/Scheme, Nemerle и некоторые другие имеют более мощные и одновременно более простые для восприятия подсистемы метапрограммирования. Кроме того, в языке D реализована сравнимая по мощности, но значительно более простая в применении подсистема шаблонного метапрограммирования.

Хотя декларируется, что С++ мультипарадигменный язык, реально в языке отсутствует поддержка функционального программирования. Отчасти, данный пробел устраняется различными библиотеками (Loki, Boost) использующими средства метапрограммирования для расширения языка функциональными конструкциями (например, поддержкой лямбд/анонимных методов), но качество подобных решений значительно уступает качеству встроенных в функциональные языки решений. Такие возможности функциональных языков, как сопоставление с образцом, вообще крайне сложно эмулировать средствами метапрограммирования. Си++ добавляет к Си объектно-ориентированные возможности. Он вводит классы, которые обеспечивают три самых важных свойства ООП: инкапсуляцию, наследование и полиморфизм.

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

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

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

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

Стандартная библиотека Си++ включает стандартную библиотеку Си с небольшими изменениями, которые делают её более подходящей для языка Си++. Другая большая часть библиотеки Си++ основана на Стандартной Библиотеке Шаблонов (STL). Она предоставляет такие важные инструменты, как контейнеры (например, векторы и списки) и итераторы (обобщённые указатели), предоставляющие доступ к этим контейнерам как к массивам. Кроме того, STL позволяет сходным образом работать и с другими типами контейнеров, например, ассоциативными списками, стеками, очередями.



    1. Оценка вида хранения информации.

Наиболее оптимально, для хранения данных, использовать СУБД. 

В unix, это уже аксиома - все данные хранятся в СУБД. Написаны библиотеки, для доступа к ним, имеются заголовочные файлы, все это в открытом коде. Как правило, программы изначально ориентированы на взаимодействие с несколькими различными СУБД. В windows все примерно так же, только программы (системы) более ориентированы на какую-то конкретную СУБД, например MSSQL или Oracle. Все связанно с большими финансовыми затратами. Для небольших программ, нацеленных на windows, имеет смысл хранить данные в локальных файлах, как в нашем случае, в формате ".ini" или формате XML.


    1. Разработка вида хранения списка программ.

Для данной версии продукта, база данных, в традиционном ее понимании не используется. Используется конфигурационный файл. Это широко распространенный формат ".ini",  для которого создано, большое количество библиотек обработки. Его легко модифицировать, в том числе и "руками", в том числе и под Linux. Незамысловатый удобочитаемый формат - название секции, ключи и их значения.

Должен отметить, что в настоящее время, формат ".ini" несколько устарел, все больше применяется формат XML, под который так же создано большое количество обработчиков (парсеров). Полагаю в следующей версии продукта, будет добавлена возможность использования XML-списков соответствий, а так же не исключаю, что будет добавлена возможность подключения программы непосредственно к СУБД.

Для автоматизированного восстановления программного окружения в ОС Linux будет использоваться скрипт, который будет управлять процессом установки пакетов. Это будет bash-скрипт, который задействует, утилиту для работы с пакетами (yum, apt-get). Пока скрипт будет нацелен на конкретный дистрибутив Red Hat или совместимый с утилитой управления пакетами yum. 

Аpt-get программа для установки, обновления и удаления программных пакетов в операционных системах Debian и основанных на них (Ubuntu, Edubuntu), способна автоматически устанавливать и настраивать программы для UNIX-подобных операционных систем как из предварительно откомпилированных пакетов, так и из исходных кодов.

Пакеты берутся из интернет-репозиториев, либо их можно установить с имеющихся носителей. Список источников пакетов хранится в файле /etc/apt/sources.list и в каталоге /etc/apt/sources.list.d/. Графические оболочки для apt позволяют легко добавлять новые и удалять ненужные источники.

Аpt (apt-get) значительно упрощает процесс установки программ в командном режиме. Для пользователей, предпочитающих графический интерфейс, более удобным может оказаться другие front-end'ы — Synaptic и Adept.






оставить комментарий
страница2/4
Дата10.09.2011
Размер0,82 Mb.
ТипДиплом, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   2   3   4
Ваша оценка этого документа будет первой.
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

наверх