Разработка программного продукта "ПК инфо" (48635)

Посмотреть архив целиком

51



Введение


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

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

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

Тенденции компьютеризации общества связаны с появлением новых профессий, связанных с вычислительной техникой, и различных категоpий пользователей ЭВМ. Если в 60-70е годы в этой сфере доминиpовали специалисты по вычислительной технике (инженеpы-электpоники и пpогpаммисты), создающие новые сpедства вычислительной техники и новые пакеты прикладных пpогpамм, то сегодня интенсивно pасшиpяется категория пользователей ЭВМ - представителей самых разных областей знаний, не являющихся специалистами по компьютеpам в узком смысле, но умеющих использовать их для решения своих специфических задач.

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

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

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

Одним из подобных программных продуктов является SiSoftware Sandra, которая объединяет в себе выдачу информации: о системе персонального компьютера в целом, о материнской плате, процессоре, видео системе, памяти, логических дисках и др.; позволяет тестировать процессор, диски, локальную сеть; позволяет просматривать содержимое таких системных файлов в среде ОС Windows, как boot.ini, system.ini, autoexec.bat и config.sys. Однако данное программное обеспечение содержит ряд существенных недостатков, а именно: большая нагрузка на центральный процессор при работе программы, большой объем памяти, занимаемый программой при ее работе, большой объем дискового пространства, занимаемый данным программным продуктом, при его установке (около 5 мегабайт), к тому же данный программный продукт является ShareWare, т. е. его необходимо приобретать за некоторое количество денег, чтобы его можно было использовать.

Как уже говорилось ранее, на данный момент на рынке программного обеспечения один единственный программный продукт подобного рода, который объединяет в себе выдачу информации и тестирование отдельных модулей персонального компьютера, этот программный продукт - SiSoftware Sandra. Поэтому создание подобного программного продукта весьма актуально на сегодняшний момент, дабы дать возможность пользователям персонального компьютера, которые хотят приобрести такое программное обеспечение, выбирать между несколькими программами, а не брать именно SiSoftware Sandra, только потому что этот программный продукт является единственным в своем роде. К тому же лично для меня, как разработчика программного обеспечения было весьма интересно создать программный продукт «ПК Инфо», который я назвал PCInfo, дабы проверить свои возможности, знания и навыки программирования и разработки программного обеспечения в целом, а так же узнать много нового. Мой программный продукт является аналогом, и прямым конкурентом уже упомянутого программного продукта SiSoftware Sandra. По сравнению с аналогами, мой программный продукт обладает рядом преимуществ, которых нет у его аналогами, а именно: малый объем жесткого диска, занимаемый программой (около трехсот килобайт), меньший объем оперативной памяти, занимаемый программой при ее запуске и работе, меньшая загруженность центрального процессора при работе программы, более быстрая работа программного продукта по сравнению с основными аналогами, к тому же, мой программный продукт в версии 1.0.1 является Freeware, т. е. бесплатным программным обеспечением, что весьма существенно для подобного рода программного обеспечения.

Дипломная работа содержит 66 страниц, из них приложения содержат 12 страниц, 8 рисунков, библиографический список из 11-ти наименований.


1. Анализ информационных технологий


    1. История развития информационных технологий


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

На смену «ручной» информационной технологии в конце 19 века пришла «механическая». Изобретение пишущей машинки, телефона, диктофона, модернизация системы общественной почты - все это послужило базой для принципиальных изменений в технологии обработки информации и, как следствие, в продуктивности работы. По существу «механическая» технология проложила дорогу к формированию организационной структуры существующих учреждений [10].

40 - 60-е гг. 20 века характеризуются появлением «электрической» технологии, основанной на использовании электрических пишущих машинок со съемными элементами, копировальных машин на обычной бумаге, портативных диктофонов. Они улучшили учрежденческую деятельность за счет повышения качества, количества и скорости обработки документов.

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

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

Название «автоматизированная система управления» не совсем корректно отражает функции, которые такие системы выполняют, точнее было бы «автоматизированные системы обеспечения управления» (АСОУ), ибо в существующих АСУ, понятие «система» не включает решающего звена управления - пользователя. Игнорирование этого принципиального обстоятельства, по видимому, привело к тому, что расширение сети АСУ и повышение мощности их вычислительных средств обеспечили благодаря большим массивам первичных данных улучшение в основном учетных функций управления (справочных, статистических, следящих). Однако учетные функции отражают только прошлое состояние объекта управления и не позволяют оценить перспективы его развития, т.е. обладают низким динамизмом. В других компонентах технологии управления наращивание мощности АСУ не дало ощутимого эффекта. Отсутствие развитых коммуникационных связей рабочих мест пользователя с центральной ЭВМ, характерный для большинства АСУ пакетный режим обработки данных, низкий уровень аналоговой поддержки - все это фактически не обеспечивает высокого качества анализа пользователями данных статистической отчетности и всего интерактивного уровня аналитической работы. Тем самым эффективность АСУ на нижних ступенях управленческой лестницы, т.е. именно там, где формируются информационные потоки, существенно падает вследствие значительной избыточности поступающей информации при отсутствии средств агрегирования данных. Именно по этой причине, не смотря на ввод дополнительной системы АСУ, с каждым годом возрастает количество работников, занятых учетными функциями: на сегодняшний день шестую часть всех работников аппарата управления составляет учетно-бухгалтерский персонал.

Начиная с 70-х годов сформировалась тенденция перенесения центра тяжести развития АСУ на фундаментальные компоненты информационных технологий (особенно на аналитическую работу) с максимальным применением человеко-машинных процедур. Однако по-прежнему вся эта работа проводилась на мощных ЭВМ, размещенных централизованно в вычислительных центрах. При этом в основу построения подобных АСУ положена гипотеза, согласно которой задачи анализа и принятия решений относились к классу формализуемых, поддающихся математическому моделированию. Предполагалось, что такие АСУ должны повысить качество, полноту, подлинность и своевременность информационного обеспечения лиц, принимающих решения, эффективность работы которых будет возрастать благодаря увеличению числа анализируемых задач.

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

С появлением персональных компьютеров на «гребне микропроцессорной революции» происходит принципиальная модернизация идеи АСУ: от вычислительных центров и централизации управления, к распределенному вычислительному потенциалу, повышению однородности технологии обработки информации и децентрализации управления. Такой подход нашел свое воплощение в системах поддержки принятия решений (СППР) и экспертных системах (ЭС), которые характеризуют новый этап компьютеризации технологии организационного управления по существу - этап персонализации АСУ. Системность - основной признак СППР и признание того, что самая мощная ЭВМ не может заменить человека. В данном случае речь идет о структурной человеко-машинной единице управления, которая оптимизируется в процессах работы: возможности ЭВМ расширяются за счет структуризации пользователем решаемых задач и пополнения ее базы знаний, а возможности пользователя - за счет автоматизации тех задач, которые ранее было нецелесообразно переносить на ЭВМ по экономическим или техническим соображениям. Становится возможным анализировать последствия различных решений и получать ответы на вопросы типа: «что будет, если...?», не тратя времени на трудоемкий процесс программирования.

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

Концепция СППР требует пересмотра существующих подходов к управлению трудовыми процессами в учреждении. По существу на базе СППР формируется новая человеко-машинная трудовая единица с квалификацией труда, его нормированием и оплатой. Она аккумулирует знания и умения конкретного человека (пользователя СППР) с интегрированными знаниями и умениями, заложенными в ПЭВМ [11].


1.2. Классификация программного обеспечения


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

К программному обеспечению относится также вся область деятельности по проектированию и разработке ПО:

- технология проектирования программ;

- методы тестирования программ;

- методы доказательства правильности программ;

- анализ качества работы программ;

- документирование программ;

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

Программное обеспечение – неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО.

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

Программное обеспечение современных компьютеров включает миллионы программ - от игровых до научных.

Программы, работающие на компьютере, можно разделить на три категории:

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

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

- Вспомогательное ПО (инструментальные системы и утилиты).

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

Прикладное ПО. Для IBM PC разработаны и используются сотни тысяч различных прикладных программ для различных применений. Наиболее широко применяются программы:

- подготовки текстов (документов) на компьютере – редакторы текстов;

- подготовки документов типографского качества – издательские системы;

- обработки табличных данных – табличные процессоры;

- обработки массивов информации – системы управления базами данных.

Прикладная программа – это любая конкретная программа, способствующая решению какой-либо задачи в пределах данной проблемной области.

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

Прикладные программы могут носить и общий характер, например, обеспечивать составление и печатание документов и т.п.

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

Наиболее часто используемые типы прикладных программ:

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

- Системы деловой и научной графики позволяют наглядно представлять на экране различные данные и зависимости. Системы деловой графики дают возможность выводить на экран различные виды графиков и диаграмм (гистограммы, круговые и секторные диаграммы и т.д.).

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

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

1. Системы автоматизированного проектирования (САПР) позволяют осуществлять черчение и конструирование различных механизмов с помощью компьютера.

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

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

4. Программы-оболочки. Весьма популярный класс системных программ составляют программы-оболочки. Они обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS .Многие пользователи настолько привыкли к удобствам, предоставляемым своей любимой программой-оболочкой, что чувствуют себя без нее «не в своей тарелке». Наиболее популярными программами-оболочками являются Norton Commander, Xtree Pro Gold, PC Shell из комплекта PC Tools. В состав операционной системы MS DOS, начиная с версии 4.0, также входит собственная программа-оболочка Shell (впрочем, не очень популярная).

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

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

- мультипрограммирование, т.е. возможность одновременного выполнения нескольких программ;

- расширенные средства для обмена информацией между программами.

Операционные оболочки упрощают создание графических программ, предоставляя для этого большое количество удобных средств, и расширяют возможности компьютера. Но платой за это являются повышенные требования к ресурсам. Так, для эффективной работы c Microsoft Windows необходим компьютер АТ/386, имеющий 4 Мбайта оперативной памяти. Наиболее популярной программой-надстройкой является Microsoft Windows, иногда используется Desq View и значительно реже – другие оболочки (GEM, Geo Works и др.).

Вспомогательные программы (утилиты) - к системным программам можно также отнести большое количество так называемых утилит, т.е. программ вспомогательного назначения. Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.

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

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

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

Программы для диагностики компьютера позволяют проверить конфигурацию компьютера (количество памяти, ее использование, типы дисков и так далее), а также проверить работоспособность устройств компьютера (прежде всего жестких дисков). Существует очень много программ подобного рода, однако это программы, которые, в основном, производят диагностику или позволяют проверить конфигурацию отдельных частей персонального компьютера. А программ, объединяющих в себе диагностику нескольких частей компьютера на сегодняшний день мало (SiSoftware Sandra, AIDA32, PCInfo v 1.0.1).

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

Программы для автономной печати позволяют распечатывать файлы на принтере параллельно с выполнением другой работы на компьютере [9].


1.3. Обзор аналогов


Самый распространенный, и пожалуй единственный серьезный аналог моего программного продукта это программный продукт SiSoftware Sandra. SiSoftware Sandra - (сокращение от System ANalyser, Diagnostic and Reporting Assistant) - это информационная и диагностическая программа. Она предоставляет практически всю информацию о вашем аппаратном и программном обеспечении (включая недокументированную), которая вам может понадобиться. Sandra похожа на многие другие подобные программы для Windows, однако, она старается превзойти их и показать то, что есть на самом деле, максимально объективно. Вы можете получить информацию о процессоре, чипсете, видео адаптере, портах, принтерах, звуковой карте, памяти, сети, процессах Windows, AGP, связях ODBC, USB2, 1394/Firewire, и т.д. Здесь разработчики описывали лишь преимущества данной программы, однако ничего не сказано было о ее недостатках, а их достаточно. Это и большой объем дискового пространства, занимаемого программой после ее установки (в версии 2004 более двенадцати мегабайт), и сравнительно медленная ее работа, особенно это проявляется в тестах, которые порой длятся по несколько минут, а не по пятнадцать секунд, как просит программа подождать пока запускаемый модуль тестируется, а при запуске теста локальных дисков программа зачастую и вовсе зависает, поскольку начинает потреблять для теста большое количество памяти, которой для самого теста может вовсе не хватить, это и большая нагрузка на центральный процессор, особенно во время запуска все тех же тестов, при этом процессор работает на пределе и его загрузка постоянно держится на уровне девяноста – ста процентов. Хоть в принципе для подобного рода программ это нормально, одна можно создать алгоритм, при котором программа не будет настолько требовательна к системным ресурсам.

Еще один аналог моего программного продукта это AIDA32 - Enterprise System Information. Все данные сгруппированы по разделам, а каждый раздел, в свою очередь, зачастую имеет несколько своих внутренних разделов, содержащих более специфичную информацию. Однако данный программный продукт менее распространен нежели SiSoftware Sandra, поскольку она более проста, в ней не так много модулей описания и тестирования модулей персонального компьютера, но в ней содержатся практически те же недостатки что и у SiSoftware Sandra, это и пять мегабайт на жестком диске после установки программы, и большая требовательность к системным ресурсам и небесплатность программного продукта.


2. Обзор интегральных средств


2.1. Методологии и технологии проектирования информационных систем


2.1.1. Общие требования к методологии и технологии

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

Технология проектирования определяется как совокупность трех составляющих:

- пошаговой процедуры, определяющей последовательность технологических операций проектирования;

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

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

На данный момент существует две модели разработки программного обеспечения. Сейчас более современной и лучшей моделью разработки является - спиральная (см. рис. 2.1.).

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

Технология проектирования, разработки и сопровождения ИС должна удовлетворять следующим общим требованиям:

- технология должна поддерживать полный ЖЦ ПО;

- разработки ИС с заданным качеством и в установленное время;

Рис. 2.1. Спиральная модель разработки программного обеспечения.


Рис. 2.2. Представление технологической операции проектирования.


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

- технология должна обеспечивать возможность ведения работ по проектированию отдельных подсистем небольшими группами (3-7 человек). Это обусловлено принципами управляемости коллектива и повышения производительности за счет минимизации числа внешних связей;

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

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

- технология должна обеспечивать независимость выполняемых проектных решений от средств реализации ИС (систем управления базами данных (СУБД), операционных систем, языков и систем программирования);

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

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

- стандарт проектирования;

- стандарт оформления проектной документации;

- стандарт пользовательского интерфейса.

Стандарт проектирования должен устанавливать:

- набор необходимых моделей (диаграмм) на каждой стадии проектирования и степень их детализации;

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

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

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

Стандарт оформления проектной документации должен устанавливать:

- комплектность, состав и структуру документации на каждой стадии проектирования;

- требования к ее оформлению (включая требования к содержанию разделов, подразделов, пунктов, таблиц и т.д.),

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

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

- требования к настройке CASE- средств для обеспечения подготовки документации в соответствии с установленными требованиями.

Стандарт интерфейса пользователя должен устанавливать:

- правила оформления экранов (шрифты и цветовая палитра), состав и расположение окон и элементов управления;

- правила использования клавиатуры и мыши;

- правила оформления текстов помощи;

- перечень стандартных сообщений;

- правила обработки реакции пользователя [4].


2.2. Структурный подход к проектированию информационных систем


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

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

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

- принцип иерархического упорядочивания;

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

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

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

- принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы;

- принцип непротиворечивости - заключается в обоснованности и согласованности элементов;

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

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

- SADT (Structured Analysis and Design Technique) модели и соответствующие функциональные диаграммы;

- DFD (Data Flow Diagrams) диаграммы потоков данных;

- ERD (Entity-Relationship Diagrams) диаграммы "сущность-связь".

На стадии проектирования ИС модели расширяются, уточняются и дополняются диаграммами, отражающими структуру программного обеспечения: архитектуру ПО, структурные схемы программ и диаграммы экранных форм.

Перечисленные модели в совокупности дают полное описание ИС независимо от того, является ли она существующей или вновь разрабатываемой. Состав диаграмм в каждом конкретном случае зависит от необходимой полноты описания системы [1].


2.3. Примеры комплексов CASE-средств


В заключение приведу примеры комплексов CASE-средств обеспечивающих поддержку полного жизненного цикла программного обеспечения. Здесь хотелось бы еще раз отметить нецелесообразность сравнения отдельно взятых CASE-средств, поскольку ни одно из них не решает в целом все проблемы создания и сопровождения ПО. Это подтверждается также полным набором критериев оценки и выбора, которые затрагивают все этапы ЖЦ ПО. Сравниваться могут комплексы методологически и технологически согласованных инструментальных средств, поддерживающие полный ЖЦ ПО и обеспеченные необходимой технической и методической поддержкой со стороны фирм-поставщиков. По мнению автора, на сегодняшний день наиболее развитым из всех поставляемых в России комплексов такого рода является комплекс технологий и инструментальных средств создания ИС, основанный на методологии и технологии DATARUN. В состав комплекса входят следующие инструментальные средства:

- CASE-средство Silverrun;

- средство разработки приложений JAM;

- мост Silverrun-RDM <-> JAM;

- комплекс средств тестирования QA;

- менеджер транзакций Tuxedo;

- комплекс средств планирования и управления проектом SE Companion;

- комплекс средств конфигурационного управления PVCS;

- объектно-ориентированное CASE-средство Rational Rose;

- средство документирования SoDA [6].

Примерами других подобных комплексов являются:

- Vantage Team Builder for Uniface + Uniface (фирмы "DataX/Florin" и "ЛАНИТ");

- комплекс средств, поставляемых и используемых фирмой "ФОРС":

- CASE-средства Designer/2000 (основное), ERwin, Bpwin и Oowin (альтернативные);

- средства разработки приложений Developer/2000, ORACLE Power Objects (основные) и Usoft Developer (альтернативное);

- средство настройки и оптимизации ExplainSQL (Platinum);

- cредства администрирования и сопровождения SQLWatch, DBVision, SQL Spy, TSReorg и др. (Platinum);

- средство документирования ORACLE Book.

- комплекс средств на основе продуктов фирмы CENTURA:

- CASE-средства ERwin, Bpwin и Oowin (объектно-ориентированный анализ);

- средства разработки приложений SQLWindows и TeamWindows;

- средство тестирования и оптимизации приложений "клиент-сервер" SQLBench (ARC);

- средства эксплуатации и сопровождения Quest и Crystal Reports [8].


3. Анализ языков программирования


3.1. Обзор языков программирования


3.1.1. Языки программирования системного уровня

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

К концу 50-х годов начали появляться языки программирования более высокого уровня, такие как Lisp, Fortran, ALGOL. В них уже не было точного соответствия между языковыми конструкциями и машинными командами. Преобразование строк исходного кода в последовательности двоичных команд осуществлялось компилятором. Со временем их число пополнилось языками PL /1, Pascal, C, C++, Java. Все они менее эффективно используют аппаратуру по сравнению с языками ассемблера, но позволяет быстрее создавать приложения. В результате им удалось практически полностью вытеснить языки ассемблера при создании крупных приложений [2].


3.1.2. Языки программирования высокого уровня

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

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

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

Для описания структур управления программист может использовать также ключевые слова, как if, while; последовательности машинных команд, соответствующие этим описаниям компилятор генерирует динамически [5].


3.1.3. Языки описания сценариев

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl, Visual Basic и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с “нуля”, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Например, Tcl, Visual Basic могут использоваться для построения пользовательских интерфейсов из имеющихся элементов управления, а языки описания сценариев для оболочек UNIX применяются для формирования “конвейеров” обработки потоков данных из набора стандартных фильтров. Языки описания сценариев часто применяются и для дополнения готовых компонентов новыми возможностями; однако эта деятельность редко охватывает создание сложных алгоритмов или структур данных, которые уже обычно бывают уже заложены в компоненты. Иногда языки описания сценариев даже называют связующими или языками системной интеграции.

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

Отсутствие в языке деления переменных на типы упрощает соединение компонентов между собой. Нет априорных ограничений на то, каким образом может использоваться тот или иной элемент, а все компоненты значения представляются в едином формате. Таким образом, компонент или значение могут быть использованы в любой ситуации; будучи спроектированы для одних способов применения, они могут оказаться задействованы совершенно иными, о которых их создатель никогда не помышлял. Например, в UNIX – оболочках работа любой программы – фильтра включает чтение данных из входного потока и запись их в выходной поток. Любые две такие программы могут быть связаны путем назначения выходного потока одной в качестве входного потока другой. Следующая команда оболочки представляет систему из трех фильтров, подсчитывающую в выделенном фрагменте текста строки, содержащие слово “scripting”:

Select | grep scripting | WC

Программа select считывает текст, выделенный в данный момент на экране, и выводит его свои выходной поток; фильтр grep считывает входной поток и пропускает на выход строки, содержащие слово “scripting”; а программа wc подсчитывает число строк в своем потоке. Любой из подобных компонентов может найти применение во множестве различных ситуации, решая каждый раз иную общую задачу. Сильная типизация языков программирования системного уровня затрудняет повторное использование кода. Она поощряет программистов к созданию большого количества несовместимых друг с другом интерфейсов, каждый из которых требует применение объектов своего типа. Компилятор не позволяет объектам других типов взаимодействовать с этим интерфейсом, не смотря на то, что результат, мог бы оказаться и весьма полезным. Таким образом, чтобы использовать новый объект с существующем интерфейсом, программисту приходится писать “переходник”, преобразующий объект к типу, на который рассчитан интерфейс. А применение “переходника” требует, в свою очередь, перекомпиляции части или даже всего приложения целиком. Доминирующий в настоящее время способ распространения ПО в виде двоичных файлов делает этот подход невозможным.

Чтобы оценить преимущества бес типового языка программирования, рассмотрим следующий пример на языке Tcl:

Button .b –text Hello! -font {Times 16} – command {puts hello}

Эта команда создает на экране новую кнопку с надписью на ней Hello! шрифтом Times 16 пунктов, при нажатии, на которую выводится короткое сообщение hello . В одной строке здесь уместилось шесть элементов различных типов: название команды (button), название кнопки (. b), идентификаторы атрибутов (-text, -font, -command), простые строки (Hello! hello), спецификация шрифта (Times 16), состоящая из названия начертания (Times) и размера в пунктах (16), а также целый Tcl-сценарий (puts hello). Все элементы представляются единообразно – в виде строк. В данном примере атрибуты могли быть перечислены в произвольном порядке, а неупомянутым атрибутам (их насчитывается более двадцати) будут присвоены значения по умолчанию.

В случае реализации на Java тот же самый пример потребовал бы семи строк кода, составляющих два метода. Для С++ с использованием библиотеки Microsoft Foundation Classes (MFC) масштабы увеличились примерно до двадцати пяти строк кода, образующих три процедуры. Один только выбор шрифта требует нескольких обращении к функциямMFC

Cfont *fontPtr=new Cront ();

fontPtr->Crete Font (16, 0, 0, 0, 700,

0, 0, 0, ANSI_CHARSET,

OUT_DEFAULT_PRECIS,

CLIP_DEFAULT_PRECIS,

DEFAULT_QUALITY,

DEFAULT_PITCH|

FF_DONTCARE,

Times New Roman”);

buttonPtr->SetFont(fontPtr);

Можно было бы обойтись без значительной части этого кода, если бы не строгая типизация. Чтобы задать шрифт для кнопки, необходимо обратиться к методу Set Font; однако он требует передачи в качестве аргумента указателя на объект Cfont. Приходиться объявлять и инициализировать новый объект. Инициализацию объекта Cfont выполняет его метод Create Font, который имеет жесткий интерфейс, требующий задания 14 различных аргументов. В TCL существенные характеристики шрифта (начертание Times и кегль 16 пунктов) могут быть указаны непосредственно без каких-либо объявлений или преобразовании. Более того, TCL позволяет описать и поведение кнопки непосредственно в теле создающей ее команды, тогда как в С++ или Java для этого необходим отдельный метод [3].


3.1.4. Другие языки

Существует огромное количество атрибутов, помимо степени строгости контроля типов или уровня языка, и есть очень много интересных примеров, которые не могут быть однозначно отнесены к одной из двух рассмотренных нами категории. Например, семейство Lisp занимает некоторое промежуточное положение, обладая атрибутами языков описания сценариев и языков программирования системного уровня. В Lisp впервые были реализованы такие концепции, как интерпретация и динамический контроль типов, которые широко используются в современных языках описания сценариев, А также автоматическое управление хранением и интегрированные среды разработки, применяемые в языках обеих категории [7].


3.2. Обоснование выбора языка программирования Visual Basic


Исходя из поставленной задачи и смотря на большой выбор языков и средств программирования и создания программного обеспечения мой выбор пал на язык Visual Basic и среду разработки программного обеспечения Microsoft Visual Basic 6.0 Professional Edition. Выбор этот я сделал по следующим причинам:

- данная среда разработки поддерживает все современные технологии программирования и разработки, описанные ниже (такие как методология RAD);

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

- содержит в себе помощники быстрого создания интерфейса приложения;

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

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

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

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

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


3.2.1. Достоинства Visual Basic

Хотя программная оболочка Visual Basic выполнена полностью графической, а сам язык программирования весьма далек от языка, применяемого для ранних версий интерпретаторов Basic , простота и элегантность Basic осталась в большой мере присущей и новым версиям. Широкие возможности Visual Basic и его простота послужили основной причиной для выбора его в качестве языка программирования для создания таких Windows-приложений как Excel. Среда программирования Visual Basic содержит все необходимые инструменты для быстрого и эффективного создания мощных программ, работающих в среде Windows.

Инструменты, имеющиеся в среде программирования Visual Basic, помогают при конструировании Basic-программ.

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

Под строкой меню имеется панель инструментов - набор кнопок, являющихся ярлыками для команд, с помощью которых осуществляется работа в среде Visual Basic. В нижней части экрана расположена панель задач. Её можно использовать для переключения между компонентами Visual Basic или для активации других приложений Windows. Также имеется окно инструментов (Toolbox), окно содержания проекта (Project Container) , окно формы(Form) , окно проекта(Project), окно непосредственного выполнения(Immediate), окно свойств(Properties) и окно макета формы(Form layout).

Файлы проектов Visual Basic имеют расширения .vbp, .wak, .vbg в имени файла. В среде Visual Basic имеется 7 инструментов.

Форма Visual Basic – это окно в интерфейсе пользователя.

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

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

Visual Basic – программа состоит из нескольких файлов, которые собираются вместе, когда программа готова. В окне Project перечисляются все файлы, используемые при программировании.

Файлы проекта содержат список всех поддерживаемых файлов и программ проекта и их расширение vbp (Visual Basic program).

В Visual Basic 6 в окно Project можно одновременно загрузить несколько файлов проектов.

В Visual Basic предусмотрена оперативная справочная система, включающая информацию о среде программирования, инструментах и языке программирования Visual Basic.

Средства управления. С их помощью создаются объекты и формы, выводится информация в текстовом блоке, просматриваются диски и папки в системе, обрабатываются данные, вводимые пользователем, запускаются Windows-приложения и просматриваются записи баз данных. Язык программирования Visual Basic содержит несколько сотен инструкций, функций и специальных символов. Он предназначен не только для использования в программном продукте Visual Basic, Microsoft Visual Basic for Application включен в состав Microsoft Excel, Microsoft Word, Microsoft Access, Microsoft PowerPoint, Microsoft Project и других приложений для Windows. Переменные и операторы.

Visual Basic позволяет резервировать переменные с указанием размера и без оного, работать с различными типами данных, использовать константы, работать с математическими операторами и функциями, использовать дополнительные операторы. Предусмотрено использование операторов циклов For..Next, Do, объектов типа “таймер” (невидимый секундомер в программе). Точность установления времени в программе составляет 1 миллисекунду, или 1/1000 сек. Запущенный таймер постоянно работает - т.е. выполняется соответствующая процедура обработки прерывания через заданный интервал времени - до тех пор, пока пользователь не остановит таймер или не отключит программу.


3.2.2. Методология RAD

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

- небольшую команду программистов (от 2 до 10 человек);

- короткий, но тщательно проработанный производственный график (от 2 до 6 мес.);

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

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

Жизненный цикл программного обеспечения по методологии RAD состоит из четырех фаз:

- фаза анализа и планирования требований;

- фаза проектирования;

- фаза построения;

- фаза внедрения.

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


Случайные файлы

Файл
63632.rtf
19792.rtf
111919.rtf
56211.rtf
36732.rtf