tehnologia (1018792), страница 18
Текст из файла (страница 18)
Методическое обеспечение должно быть реализовано в пользовательском интерфейсе системы,который должен предполагать выбор задачи, метода и алгоритма ее решения; ввод данных; решениепроектной задачи и сохранение исходных данных, промежуточных и окончательных результатов вовстроенной базе данных для последующего анализа.4.2. Требования к надежности4.2.1.
Предусмотреть контроль вводимой информации и блокировку некорректных действийпользователя при работе с системой.4.2.2. Обеспечить корректное завершение вычислений с соответствующей диагностикой припревышении имеющихся вычислительных ресурсов.4.2.3. Обеспечить целостность информации, хранящейся в базе данных.4.3. Требования к составу и параметрам технических средств4.3.1. Система должна работать на IBM совместимых персональных компьютерах.4.3.2.
Минимальная конфигурация:• тип процессора....................................................... ......Pentium-100;• объем оперативного запоминающего устройства........16 Мб;• тип монитора.......................................................... ......SVGA (15').934.4. Т р е б о в а н и я к и н ф о р м а ц и о н н о й и п р о г р а м м н о й с о в м е с т и м о с т иСистема должна работать под управлением операционной системы Windows'95 и выше.5.
ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ5.1. Разрабатываемая система должна включать справочную информацию о работе системы иподсказки пользователю.5.2. В состав сопровождающей документации должны входить:• пояснительная записка;• руководство пользователя.6. ЭТАПЫ РАЗРАБОТКИ№1Название этапаРазработка ядра системыСрок1.1.2000-31.3.20002Разработка методов и алгоритмови их реализация для задачикоммивояжераРазработка методов и алгоритмови их реализация для задачипостроения минимальногосвязывающего дерева и задачипоиска кратчайшего пути в графеТестирование программногопродукта и составлениепрограммной документации1.4.2000-30.6.2000341.7.2000-30.9.20001.10.2000-31.12.2000ОтчетностьОписание внутреннихформатов, интерфейса иформатов данных базы.Реализация системы на уровнеинтерфейса.Описание методов иалгоритмов.
Программныемодули, реализующие методы.Описание методов иалгоритмов. Программныемодули, реализующие методы.Тесты. Документация.Программный продукт.После утверждения технического задания организация-разработчик непосредственно приступаетк созданию программного обеспечения. Однако переход к следующему этапу разработки – этапууточнения спецификаций требует принятия еще некоторых принципиальных решений, от которых вомногом зависят как характеристики и возможности разрабатываемого94программного обеспечения, так и особенности его разработки, начиная с выбора моделей этапауточнения спецификаций.3.5.
Принципиальные решения начальных этаповпроектированияНа начальных этапах процесса проектирования должны быть приняты принципиальныерешения, во многом определяющие этот процесс, а также качество и трудоемкость разработки. Ктаким решениям относят:• выбор архитектуры программного обеспечения;• выбор типа пользовательского интерфейса и технологии работы с документами;• выбор подхода к разработке (структурного или объектного);• выбор языка и среды программирования.Другими словами, эти решения определяют, что проектируется, с какими потребительскимихарактеристиками, как и какими средствами.Часть решений может быть определена в техническом задании, образовав группутехнологических требований, остальные должны быть приняты как можно раньше, так какпредставляют собой исходные данные для процесса проектирования.Выбор архитектуры программного обеспечения.
Архитектурой программного обеспеченияназывают совокупность базовых концепций (принципов) его построения. Архитектурапрограммного обеспечения определяется сложностью решаемых задач, степеньюуниверсальности разрабатываемого программного обеспечения и числом пользователей,одновременно работающих с одной его копией.
Различают:• однопользовательскую архитектуру, при которой программное обеспечение рассчитано наодного пользователя, работающего за персональным компьютером;• многопользовательскую архитектуру, которая рассчитана на работу в локальной илиглобальной сети.Кроме того, в рамках однопользовательской архитектуры различают:• программы;• пакеты программ;• программные комплексы;• программные системы.Многопользовательскую архитектуру реализуют системы, построенные по принципу«клиент-сервер» (см. § 1.1).Программой называют адресованный компьютеру набор инструкций, точно описывающийпоследовательность действий, которые необходимо выполнить для решения конкретной задачи.При структурном подходе программы представляют собой иерархию подпрограмм, вызывающихдруг друга в95процессе решения поставленной задачи, при объектном подходе – совокупностьобменивающихся сообщениями объектов, для реализации которых разработаны специальныеклассы.
Программа в этом случае представляет собой отдельно компилируемуюпрограммную единицу, которая может использовать стандартные библиотеки подпрограмм,но, как правило, не организует свои. Это самый простой вид архитектуры, который обычноиспользуется при решении небольших задач.Пакеты программ представляют собой совокупность программ, решающих задачинекоторой прикладной области. Например, пакет графических программ, пакетматематических программ. Программы такого пакета связаны между собой толькопринадлежностью к определенной прикладной области. Пакет программ реализуют как наборотдельных программ, каждая из которых сама вводит необходимые данные и выводитрезультаты. По сути дела пакет программ - это некоторая библиотека программ.Программные комплексы представляют собой совокупность программ, совместнообеспечивающих решение небольшого класса сложных задач одной прикладной области.
Днярешения такой задачи может потребоваться решить несколько подзадач, последовательновызывая программы комплекса. Вызов программ в программном комплексе осуществляетсяспециальной программой – диспетчером, который обеспечивает несложный интерфейс спользователем и, возможно, выдачу некоторой справочной информации. От пакета программпрограммный комплекс отличается еще и тем, что несколько программ могут последовательноили циклически вызываться для решения одной задачи, и, следовательно, желательно хранитьисходные данные и результаты вызовов в пределах одного пользовательского проекта.Программы в этом случае могут реализовываться как отдельно, так и как совместнокомпилируемые программные единицы, а исходные данные храниться в оперативной памятиили в файлах.Программные системы представляют собой организованную совокупность программ(подсистем), позволяющую решать широкий класс задач из некоторой прикладной области. Вотличие от программных комплексов программы, входящие в программную систему,взаимодействуют через обилие данные.
Программные системы обычно имеют развитыепользовательский и внутренние интерфейсы, что требует их тщательного проектирования.Многопользовательские программные системы в отличие от обычных программныхсистем должны организовывать сетевое взаимодействие отдельных компонентовпрограммного обеспечения, что еще усложняет процесс его разработки. Для разработкиподобного программного обеспечения используют специальные технологии или платформы,например, технологии CORBA, COM, Java и т.п.Выбор типа пользовательского интерфейса. Различают четыре типа пользовательскихинтерфейсов:96• примитивные – реализуют единственный сценарий работы, например, ввод данных –обработка – вывод результатов;• меню – реализуют множество сценариев работы, операции которых организованы виерархические структуры, например, «вставка»: «вставка файла», «вставка символа» и т.д.;• со свободной навигацией – реализуют множество сценариев, операции которых непривязаны к уровням иерархии, и предполагают определение множества возможныхопераций на конкретном шаге работы; интерфейсы данной формы в основном используютWindows-приложения;• прямого манипулирования – реализуют множество сценариев, представленных воперациях над объектами, основные операции инициируются перемещением пиктограммобъектов мышью, данная форма реализована в интерфейсе самой операционной системыWindows альтернативно интерфейсу со свободной навигацией.Тип пользовательского интерфейса во многом определяет сложность и трудоемкостьразработки, которые существенно возрастают в порядке перечисления типов.
По последнимданным до 80% программного кода может реализовывать именно пользовательскийинтерфейс [49]. Поэтому понятно, что на ранних стадиях обучения программированиюреализуют в основном примитивные интерфейсы и меню, хотя они и не удобны дляпользователей.Появление объектно-ориентированных визуальных сред разработки программногообеспечения, использующих событийный подход к программированию и в основномрассчитанных на создание интерфейсов со свободной навигацией, существенно снизилотрудоемкость разработки подобных интерфейсов и упростило реализацию интерфейсовпрямого манипулирования. Таким образом, выбор двух последних типов интерфейсовпредполагает использование одной из визуальных сред разработки программногообеспечения.
Если соответствующие среды разработчику не доступны, то следует учитыватьбольшую трудоемкость создания подобных интерфейсов.Кроме того, выбор типа интерфейса включает выбор технологии работы сдокументами. Различают две технологии:• однодокументная, которая предполагает однодокументный интерфейс (SDI – SingleDocument Interface);• многодокументная, которая предполагает многодокументный интерфейс (MDI –Multiple Document Interface).Многодокументную технологию используют, если программное обеспечение должноработать с несколькими документами одновременно, например, с несколькими текстами илинесколькими изображениями. Однодокументную – если одновременная работа с несколькимидокументами не обязательна.Трудоемкость реализации многодокументных интерфейсов с использованиемсовременных библиотек примерно на 3...5 % выше, чем первого.97Выбор типа влияет на трудоемкость более существенно (более подробно типы интерфейсов будутрассмотрены в § 8.1).Выбор подхода к разработке.
Если выбран интерфейс со свободной навигацией илипрямого манипулирования, то, как указывалось выше, это практически однозначнопредполагает использование событийного программирования и объектного подхода, так каксовременные среды визуального программирования, такие как Visual C++, Delphi, BuilderC++ и им подобные, предоставляют интерфейсные компоненты именно в виде объектовбиблиотечных классов.
При этом в зависимости от сложности предметной областипрограммное обеспечение может реализовываться как с использованием объектов и,соответственно, классов, так и чисто процедурно. Исключение составляют случаииспользования специализированных языков разработки Интернет-приложений, таких какPerl, построенных по совершенно другому принципу.Примитивный интерфейс и интерфейс типа меню совместимы как со структурным, так ис объектным подходами к разработке.