Реферат по предмету "Информатика, программирование"


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

Введение
 
Единствозаконов обработки информации в системах 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.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 (StructuredAnalysis 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 TeamBuilder 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),спецификация шрифта (Times16), состоящая из названия начертания (Times) и размера в пунктах (16), а также целый Tcl-сценарий (puts hello). Все элементы представляются единообразно – в видестрок. В данном примере атрибуты могли быть перечислены в произвольном порядке,а неупомянутым атрибутам (их насчитывается более двадцати) будут присвоенызначения по умолчанию.
В случае реализации на Java тот же самый пример потребовал бысеми строк кода, составляющих два метода. Для С++ с использованием библиотеки Microsoft Foundation Classes (MFC)масштабы увеличились примерно до двадцати пяти строк кода, образующих трипроцедуры. Один только выбор шрифта требует нескольких обращении к функциямMFC
Cfont *fontPtr=new Cront ();
fontPtr->CreteFont (16, 0, 0, 0, 700,
0, 0, 0,ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|
FF_DONTCARE,
“Times NewRoman”);
buttonPtr->SetFont(fontPtr);
Можно было бы обойтисьбез значительной части этого кода, если бы не строгая типизация. Чтобы задатьшрифт для кнопки, необходимо обратиться к методу Set Font; однако он требует передачи в качестве аргументауказателя на объект Cfont. Приходитьсяобъявлять и инициализировать новый объект. Инициализацию объекта Cfont выполняет его метод Create Font, который имеет жесткий интерфейс, требующий задания14 различных аргументов. В TCLсущественные характеристики шрифта (начертание Times и кегль 16 пунктов) могут быть указанынепосредственно без каких-либо объявлений или преобразовании. Более того, TCL позволяет описать и поведение кнопкинепосредственно в теле создающей ее команды, тогда как в С++ или Java для этого необходим отдельный метод[3].
3.1.4. Другие языки
Существует огромноеколичество атрибутов, помимо степени строгости контроля типов или уровня языка,и есть очень много интересных примеров, которые не могут быть однозначноотнесены к одной из двух рассмотренных нами категории. Например, семейство Lisp занимает некоторое промежуточноеположение, обладая атрибутами языков описания сценариев и языков программированиясистемного уровня. В Lispвпервые были реализованы такие концепции, как интерпретация и динамическийконтроль типов, которые широко используются в современных языках описаниясценариев, А также автоматическое управление хранением и интегрированные средыразработки, применяемые в языках обеих категории [7].
 
3.2.Обоснование выбора языка программирования VisualBasic
 
Исходя из поставленнойзадачи и смотря на большой выбор языков и средств программирования и созданияпрограммного обеспечения мой выбор пал на язык Visual Basic и среду разработки программного обеспечения Microsoft Visual Basic 6.0 Professional Edition. Выборэтот я сделал по следующим причинам:
— данная среда разработкиподдерживает все современные технологии программирования и разработки,описанные ниже (такие как методология RAD);
— данная среда разработкиимеет легкий для понимания интерфейс, содержит встроенную справку по всемфункциям и объектам языка (браузер объектов);
— содержит в себепомощники быстрого создания интерфейса приложения;
— главное окно ужесодержит дочернее окно, содержащее набор стандартных инструментов (кнопка,надпись, текстовое поле, таймер, поле со списком, раскрывающийся список,вертикальную и горизонтальную полосы прокрутки, два различных поля с изображениеми некоторые другие);
— так же в главном окнесодержится окно просмотра проекта, браузер всех свойств выбранного элементауправления и окно положения формы проекта на экране монитора;
— содержит меню, припомощи которого можно легко запустить, приостановить работу или откомпилироватьпроект, вызвать редактор меню, при помощи которого можно добавлять на формупроекта новые меню и редактировать старые, управлять проектом добавляя к немуновые формы, модули, классы и еще много других возможностей, которые можновыполнить при помощи меню.
— из всех языковпрограммирования данный язык наиболее подходит для разработки подобного родапрограммного обеспечения, поскольку содержит наиболее полный набор необходимыхпроцедур и возможностей а также имеет расширение для применения стандартныхфункции среды Windows, так называемых API функций, позволяющих расширитьвозможности языка программирования и получить доступ ко многим функциям исредствам недоступным ни одному из существующих на данный момент средам разработки;
— к тому же данный языкпрограммирования и среду разработки я знаю наиболее хорошо из всех мноюизучаемых и знакомых сред.
3.2.1. Достоинства VisualBasic
Хотя программная оболочка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 (RapidApplication Development). Под этим термином обычно понимается процессразработки ПО, содержащий 3 элемента:
— небольшую командупрограммистов (от 2 до 10 человек);
— короткий, но тщательнопроработанный производственный график (от 2 до 6 мес.);
— повторяющийся цикл, прикотором разработчики, по мере того, как приложение начинает обретать форму,запрашивают и реализуют в продукте требования, полученные через взаимодействиес заказчиком.
Команда разработчиковдолжна представлять из себя группу профессионалов, имеющих опыт в анализе,проектировании, генерации кода и тестировании ПО с использованием CASE-средств.Члены коллектива должны также уметь трансформировать в рабочие прототипыпредложения конечных пользователей.
Жизненный циклпрограммного обеспечения по методологии RAD состоит из четырех фаз:
— фаза анализа ипланирования требований;
— фаза проектирования;
— фаза построения;
— фаза внедрения.
На фазе анализа ипланирования требований пользователи системы определяют функции, которые онадолжна выполнять, выделяют наиболее приоритетные из них, требующие проработки впервую очередь, описывают информационные потребности. Определение требованийвыполняется в основном силами пользователей под руководствомспециалистов-разработчиков. Ограничивается масштаб проекта, определяютсявременные рамки для каждой из последующих фаз. Кроме того, определяется самавозможность реализации данного проекта в установленных рамках финансирования,на данных аппаратных средствах и т.п. Результатом данной фазы должны бытьсписок и приоритетность функций будущей ИС, предварительные функциональные иинформационные модели ИС.
На фазе проектированиячасть пользователей принимает участие в техническом проектировании системы подруководством специалистов-разработчиков. CASE-средства используются длябыстрого получения работающих прототипов приложений. Пользователи,непосредственно взаимодействуя с ними, уточняют и дополняют требования ксистеме, которые не были выявлены на предыдущей фазе. Более подробнорассматриваются процессы системы. Анализируется и, при необходимости,корректируется функциональная модель. Каждый процесс рассматривается детально.При необходимости для каждого элементарного процесса создается частичныйпрототип: экран, диалог, отчет, устраняющий неясности или неоднозначности.Определяются требования разграничения доступа к данным. На этой же фазепроисходит определение набора необходимой документации.
После детальногоопределения состава процессов оценивается количество функциональных элементовразрабатываемой системы и принимается решение о разделении ИС на подсистемы,поддающиеся реализации одной командой разработчиков за приемлемое дляRAD-проектов время — порядка 60 — 90 дней. С использованием CASE-средств проектраспределяется между различными командами (делится функциональная модель).Результатом данной фазы должны быть:
— общая информационнаямодель системы;
— функциональные моделисистемы в целом и подсистем, реализуемых отдельными командами разработчиков;
— точно определенные спомощью CASE-средства интерфейсы между автономно разрабатываемыми подсистемами;
— построенные прототипыэкранов, отчетов, диалогов.
Все модели и прототипыдолжны быть получены с применением тех CASE-средств, которые будутиспользоваться в дальнейшем при построении системы. Данное требование вызванотем, что в традиционном подходе при передаче информации о проекте с этапа наэтап может произойти фактически неконтролируемое искажение данных. Применениеединой среды хранения информации о проекте позволяет избежать этой опасности.
В отличие оттрадиционного подхода, при котором использовались специфические средствапрототипирования, не предназначенные для построения реальных приложений, апрототипы выбрасывались после того, как выполняли задачу устранения неясностейв проекте, в подходе RAD каждый прототип развивается в часть будущей системы.Таким образом, на следующую фазу передается более полная и полезная информация.
На фазе построениявыполняется непосредственно сама быстрая разработка приложения. На данной фазеразработчики производят итеративное построение реальной системы на основеполученных в предыдущей фазе моделей, а также требований нефункциональногохарактера. Программный код частично формируется при помощи автоматическихгенераторов, получающих информацию непосредственно из репозитория CASE-средств.Конечные пользователи на этой фазе оценивают получаемые результаты и вносяткоррективы, если в процессе разработки система перестает удовлетворятьопределенным ранее требованиям. Тестирование системы осуществляется непосредственнов процессе разработки.
После окончания работкаждой отдельной команды разработчиков производится постепенная интеграцияданной части системы с остальными, формируется полный программный код,выполняется тестирование совместной работы данной части приложения состальными, а затем тестирование системы в целом. Завершается физическоепроектирование системы:
— определяетсянеобходимость распределения данных;
— производится анализиспользования данных;
— производится физическоепроектирование базы данных;
— определяются требованияк аппаратным ресурсам;
— определяются способыувеличения производительности;
— завершается разработкадокументации проекта.
Результатом фазы являетсяготовая система, удовлетворяющая всем согласованным требованиям.
На фазе внедренияпроизводится обучение пользователей, организационные изменения и параллельно свнедрением новой системы осуществляется работа с существующей системой (дополного внедрения новой). Так как фаза построения достаточно непродолжительна,планирование и подготовка к внедрению должны начинаться заранее, как правило,на этапе проектирования системы. Приведенная схема разработки ИС не являетсяабсолютной. Возможны различные варианты, зависящие, например, от начальныхусловий, в которых ведется разработка: разрабатывается совершенно новаясистема; уже было проведено обследование предприятия и существует модель егодеятельности; на предприятии уже существует некоторая ИС, которая может бытьиспользована в качестве начального прототипа или должна быть интегрирована сразрабатываемой.
Следует, однако,отметить, что методология RAD, как и любая другая, не может претендовать науниверсальность, она хороша в первую очередь для относительно небольшихпроектов, разрабатываемых для конкретного заказчика. Если же разрабатываетсятиповая система, которая не является законченным продуктом, а представляетсобой комплекс типовых компонент, централизованно сопровождаемых, адаптируемыхк программно-техническим платформам, СУБД, средствам телекоммуникации,организационно-экономическим особенностям объектов внедрения и интегрируемых ссуществующими разработками, на первый план выступают такие показатели проекта, какуправляемость и качество, которые могут войти в противоречие с простотой искоростью разработки. Для таких проектов необходимы высокий уровеньпланирования и жесткая дисциплина проектирования, строгое следование заранееразработанным протоколам и интерфейсам, что снижает скорость разработки.
Методология RADнеприменима для построения сложных расчетных программ, операционных систем илипрограмм управления космическими кораблями, т.е. программ, требующих написаниябольшого объема (сотни тысяч строк) уникального кода.
Не подходят дляразработки по методологии RAD приложения, в которых отсутствует ярко выраженнаяинтерфейсная часть, наглядно определяющая логику работы системы (например,приложения реального времени) и приложения, от которых зависит безопасностьлюдей (например, управление самолетом или атомной электростанцией), так какитеративный подход предполагает, что первые несколько версий наверняка не будутполностью работоспособны, что в данном случае исключается.
Оценка размера приложенийпроизводится на основе так называемых функциональных элементов (экраны,сообщения, отчеты, файлы и т.п.) Подобная метрика не зависит от языкапрограммирования, на котором ведется разработка. Размер приложения, котороеможет быть выполнено по методологии RAD, для хорошо отлаженной среды разработкиИС с максимальным повторным использованием программных компонентов, показано втаблице 3.1.
Таблица 3.1.
функциональных элементов один человек
1000-4000 функциональных элементов одна команда разработчиков
> 4000 функциональных элементов 4000 функциональных элементов на одну команду разработчиков
В качестве итогаперечислим основные принципы методологии RAD:
— разработка приложенийитерациями;
— необязательностьполного завершения работ на каждом из этапов жизненного цикла;
— обязательное вовлечениепользователей в процесс разработки ИС;
— необходимое применениеCASE-средств, обеспечивающих целостность проекта;
— применение средствуправления конфигурацией, облегчающих внесение изменений в проект и сопровождениеготовой системы;
— необходимоеиспользование генераторов кода;
— использованиепрототипирования, позволяющее полнее выяснить и удовлетворить потребностиконечного пользователя;
— тестирование и развитиепроекта, осуществляемые одновременно с разработкой;
— ведение разработкинемногочисленной хорошо управляемой командой профессионалов;
— грамотное руководстворазработкой системы, четкое планирование и контроль выполнения работ.
3.2.3. Методология функционального моделирования SADT. Методология SADTразработана Дугласом Россом и получила дальнейшее развитие в работе. На ееоснове разработана, в частности, известная методология IDEF0 (Icam DEFinition),которая является основной частью программы ICAM (Интеграция компьютерных ипромышленных технологий), проводимой по инициативе ВВС США.
Методология SADTпредставляет собой совокупность методов, правил и процедур, предназначенных дляпостроения функциональной модели объекта какой-либо предметной области.Функциональная модель SADT отображает функциональную структуру объекта, т.е.производимые им действия и связи между этими действиями. Основные элементы этойметодологии основываются на следующих концепциях:
— графическоепредставление блочного моделирования. Графика блоков и дуг SADT-диаграммыотображает функцию в виде блока, а интерфейсы входа/выхода представляютсядугами, соответственно входящими в блок и выходящими из него. Взаимодействиеблоков друг с другом описываются посредством интерфейсных дуг, выражающих«ограничения», которые в свою очередь определяют, когда и какимобразом функции выполняются и управляются;
— строгость и точность.Выполнение правил SADT требует достаточной строгости и точности, не накладываяв то же время чрезмерных ограничений на действия аналитика. Правила SADTвключают:
— ограничение количестваблоков на каждом уровне декомпозиции (правило 3-6 блоков);
— связность диаграмм(номера блоков);
— уникальность меток инаименований (отсутствие повторяющихся имен);
— синтаксические правиладля графики (блоков и дуг);
— разделение входов иуправлений (правило определения роли данных).
— отделение организацииот функции, т.е. исключение влияния организационной структуры на функциональнуюмодель.
Методология SADT можетиспользоваться для моделирования широкого круга систем и определения требованийи функций, а затем для разработки системы, которая удовлетворяет этимтребованиям и реализует эти функции. Для уже существующих систем SADT можетбыть использована для анализа функций, выполняемых системой, а также дляуказания механизмов, посредством которых они осуществляются.

4. Описаниепрограммного продукта «ПК инфо»
 
4.1.Алгоритм программного продукта
 
При запуске программногопродукта на экране отображается главное окно программы, находится оно по центруэкрана для большего удобства.
При щелчке левой клавишимыши на одной из кнопок запускается дочернее окно, которое в зависимости оттого какой модуль вы запустили может либо отображать информацию о модуле, либоего тестировать, либо открывать и отображать один из системных файлов, либооткрывать стандартные диалоговые окна операционной системы (приложение 1).
— Работа модуля «Память».При отображении на экране главного окна программы, Вы щелкаете левой клавишеймыши на кнопку «Память» во фрейме информационных модулей, после нажатия накнопку, главное окно становится неактивным и передает работу окну свойствпамяти компьютера, которое загружается и отображается на экране поверх главногоокна программы. Отображение свойств физической и виртуальной памяти компьютераосуществляется при помощи специализированной API-функции – GlobalMemoryStatus, которая имеет рядсвойств. Поскольку свойства памяти могут меняться с течением достаточнонебольших промежутков времени, то при помощи специального элемента управления«таймер», который повторяет обработку своей процедуры по истеченииопределенного промежутка времени, производится динамическое обновление API-функции – GlobalMemoryStatus и всвязи с этим информация о памяти постоянно обновляется (приложение 2).
— Работа модуля«Логические диски». При щелчке левой клавиши мыши на кнопке информационногомодуля «Локальные диски», главная форма передает дочерней форме свойствдисковых устройств тип устройства и становится неактивной. Далее дочерняя формасвойств дисковых устройств загружается в память, отображается на экране иобрабатывает тип устройства (в данном случае это локальные диски). При выдачеинформации о дисковых устройствах задействуется очень сложный программный код,который задействует семь API-функции(FindFirstFile FindNextFile lstrlen GetLogicalDrives GetDriveType GetVolumeInformation GetDiskFreeSpace) и цикл в результате котороговыдается информация о полном объеме диска (сделано это потому что не существуетспециальных функций для отображения полного объема диска).
Алгоритм работы информационныхмодулей «Съемные диски» и «CD и DVD» аналогичен работе алгоритмаинформационного модуля логических дисков (приложение 3).
— Работа модуля«Дисплей». При щелчке на кнопку данного информационного модуля так жезагружается дочернее окно свойств видео системы и монитора компьютера. Здесьзадействованы две API-функции — GetDeviceCaps и EnumDisplaySettings содержащие много параметров. При их вызовенеобходимые параметры заносятся в надписи на форме и список (допустимые режимымонитора). Программный код данного модуля описан в приложении 4.
— Работа модуля «Сеть».Алгоритм данного модуля является самым сложным в данном проекте, и былопределен в отдельный проект. Суть его заключается в применении различныхфункций, как внутренних языка программирования так и API-функций для отображения полной информации о локальнойсети компьютера, если таковая есть.
— Работа модуля«Процессы». Задача данного модуля отобразить все запущенные в данный момент накомпьютере процессы (резидентные программы, приложения пользователя).Осуществляется это при помощи трех API-функций (CreateToolhelpSnapshot, Process32First и Process32Next), данные функции при совместнойработе за один их вызов могут вернуть имя лишь одного рабочего процесса,поэтому чтобы отобразить список всех процессов их вызов помещен в цикл,условием окончания которого является возвращение функцией «Process32First»параметра со значением логического выражения «ложь», что свидетельствует обокончании перебора списка рабочих процессов.
— Тесты съемных илогических дисков работают по принципу создания на тестируемом диске файлаопределенного объема (для локальных дисков – один мегабайт, для съемных дисков,поскольку они обычно меньшего объема нежели логические – сто килобайт) ивычислении времени, которое ушло на создание данного файла, исходя из котороговычисляется скорость записи данных на диск. Далее уже созданный файл программасчитывает и исходя из времени на считывание данного файла высчитываетсяскорость доступа (чтения) к данным с диска. Эти две процедуры повторяютсяопределенное количество раз (для локальных дисков обе процедуры повторяются подесять раз, а для съемных дисков процедура записи производится один раз ачтение четыре раза) дабы вычислить среднюю скорость чтения и записи и уменьшитьпогрешность в ходе тестов. При тестах не рекомендуется производить закомпьютером других действий (запуск программ, движение мышью), дабы исключитьпогрешности связанные с работой других программ и устройств, ведь они тожезанимают некоторое время процессора и работают с дисками.
— При запуске листингогомодуля главное окно программы передает имя системного файла дочернему окну.Дочернее окно обрабатывает данные имени файла и открывает для просмотра втекстовом поле формы листинга необходимого файла (приложение 5).
Запуск дополнительныхмодулей осуществляется при помощи массива кнопок «Command8». При обработкенажатия на одну из этих кнопок программа отслеживает индекс кнопки из массива ипо этому индексу определяет, какое диалоговое окно отобразить. Отображениенеобходимых диалоговых окон осуществляется через функцию языка программированияVisual Basic «Shell»,которая запускает программу rundll32.exe в различной конфигурации и взависимости от конфигурации на экране появляются необходимые диалоговые окна.
4.2.Руководство пользователя
 
Основное окно программыразделено на четыре подокна (рамки), в каждом из которых объединены по одномуназначению (выдача информации, тест, листинг системного файла, стандартныесистемные модули Windows) модулиотдельных устройств или систем устройств персонального компьютера:
— Информационные модули –выдают различную информацию (объем памяти, качество цвета и т. д.);
— Тестовые модули –тестирование отдельных модулей (логических и съемных дисков);
— Листинговые модули –показ листинга системного файла (boot.ini, autoexec.bat и др.);
— Дополнительные модули –стандартные модули в составе операционной системы Windows (дата и время, свойства системы и др.).
Объединены они длябольшего удобства и дабы не запутать пользователя, что он будет запускать.
Рамка (в дальнейшем«фрейм») «Информационные модули» содержит следующий перечень модулей о которыхпри нажатии на кнопку модуля будет выдана информация:
— Память – информация офизической памяти компьютера (полный объем, загруженность памяти и свободноепространство а так же процент используемой памяти) и сведения о файле подкачки(полный объем и др. характеристики);
— Логические диски –показывает информацию о количестве и буквенном значении логических дисковустановленных на персональном компьютере, отдельно для каждого (если логическийдиск на компьютере не один) тип устройства, тип файловой системы на диске,полный его объем, занятое и свободное пространство, процент занятого объема, атак же системная информация такая, как количество кластеров и секторов и др.
— Съемные диски –показывает аналогичную информацию, что и модуль «Логические диски», но длясъемных дисков установленных на компьютере, при этом диск должен находиться вдисководе, в противном случае программа попросит его установить.
— CD и DVD – показывает аналогичную информацию, что и двапредыдущих модуля, но для CD илиDVD устройств, если таковые установленына персональном компьютере пользователя.
— Дисплей – выдаетинформацию о расширении экрана по горизонтали и вертикали в пикселях и миллиметрах,качество цветопередачи и количестве цветов, а так же частоту обновления экранав Герцах и содержит список всех возможных режимов экрана доступных для дисплея.
— Сеть – показываетразличную информацию о конфигурации сети компьютера. Содержит информацию об IP-адресе в десятичной и двоичной формезаписи, маску подсети и другие параметры.
— Процессы – отображаетсписок работающих программ, запущенных окон и служб работающих в фоновомрежиме.
Фрейм «Тестовые модули»содержит два теста, это тест логических дисков и съемных дисков. Данные тестыпоказывают скорость устройств при записи на них и чтении.
Фрейм с листинговымимодулями содержит пять кнопок для отображения листинга системных файлов boot.ini, system.ini, win.ini, autoexec.nt и config.nt, в данных файлах содержитсясистемная информация загрузки и настроек операционной системы.
Фрейм с дополнительнымимодулями при нажатии на одну из кнопок (назначение кнопок по надписи на них)отображают стандартные диалоговые окна операционной системы Windows, такие как:
— Свойства системы;
— Установка и удалениепрограмм;
— Язык и региональныестандарты;
— Свойства экрана;
— СвойстваИнтернет-браузера;
— Свойства даты ивремени;
— Свойства клавиатуры;
— Свойства мыши;
— Свойства модема (еслиесть модем и он подключен и установлен);
— Свойства звука, речи иаудиоустройств (если на персональном компьютере установлена звуковая плата).
При запуске программыотображается главное окно (см. Рис. 4.1)
/>
Рис. 4.1.Интерфейс главного окна программного продукта.
 с перечнем возможныхмодулей. При щелчке левой клавиши мыши на одной из кнопок запускается дочернееокно, которое в зависимости от того какой модуль вы запустили может либоотображать информацию о модуле, либо его тестировать, либо открывать иотображать один из системных файлов, либо открывать стандартные диалоговые окнаоперационной системы.
Работу информационногомодуля можно описать на примере модуля — «Память»:
При отображении на экранеглавного окна программы, Вы щелкаете левой клавишей мыши на кнопку «Память» вофрейме информационных модулей, после нажатия на кнопку главное окно становитсянеактивным и загружается окно свойств памяти компьютера (Рис 4.2).
/>
Рис. 4.2.Пример работы программного продукта (отображение модуля «Память»).
На этой форме находятсядва фрейма: Frame1 и Frame2, в первом фрейме находятся текстовые поля, которыеотображают информацию о физической памяти, во втором фрейме текстовые поляотображают состояние виртуальной памяти. Вся эта информация получается припомощи специальной API-функции –GlobalMemoryStatus.
Вся информация осостоянии памяти отображается динамически, постоянно обновляясь, этодостигается при помощи невидимого объекта таймера
Тест дисков (будь тосъемные или логические) отображает среднюю скорость записи данных на устройствои скорость чтения с него. Интерфейс окна теста локальных дисков показан нарисунке 4.3.
/>
Рис. 4.3.Интерфейс окна тестирования дисковых устройств.
При щелчке на кнопкутеста программа обрабатывает, на какую из кнопок нажали, если был вызван тестсъемных дисков, то в дочернюю программу передается тип устройства «съемныедиски». Далее главная форма становится неактивной и передает управление форметеста дисков, которая обрабатывает тип устройств и в зависимости от типаначинает тестирование.
Для листинговых модулейтоже создана одна отдельная форма, поскольку и здесь отображается сходнаяинформация и при этом нет необходимости для каждого файла создавать отдельноеокно и нагружать при этом системные ресурсы. Окно листинга системных файловвыглядит так, как показано на рисунке 4.4.
При щелчке левой клавишеймыши на одну из кнопок необходимого листингового модуля, главное окно лишьпередает имя файла дочернему листинговому окну, которое обрабатывает имя файлаи открывает его с диска для просмотра. В случае если необходимого файла нет надиске, программа выдаст сообщение об ошибке, поскольку данный файл не найден.
/>
Рис. 4.4.Интерфейс окна листинга системных файлов.
Дополнительные модули –это стандартные диалоговые окна операционной системы Windows, такие как «свойства системы», «установка и удалениепрограмм» и др. Пример того как с помощью дополнительного модуля «Свойстваэкрана», можно открыть окно «свойства: экран» и установить изображение нарабочий стол и произвести другие настройки показан на рисунке 4.5.
Так же в программе былореализовано меню, которое позволяет выйти из программы, запустить один измодулей будь то информационный модуль, тестовый, листинговый илидополнительный, позволяет отображать только один из фреймов с необходимыми ваммодулями или же отображает все фреймы со всеми модулями, а так позволяетполучить справку о программе. Пример работы с меню программного продуктапоказан на рисунке 4.6.
/>
Рис. 4.5.Пример запуска окна «Свойства: Экран».
/>
Рис. 4.6.Работа меню программы.

Заключение
 
Анализируя данныйпрограммный продукт можно смело заявить, что с поставленной задачей ясправился, однако это не значит, что программа полностью готова и ей уже нетребуются доработки, скорее наоборот, данный программный продукт будетсовершенствоваться и расширяться, в нем будут появляться все новые и новыевозможности. На данном этапе программа в версии 1.0.1 практически полностьюудовлетворяет поставленной задаче. Программа работает правильно и без сбоев.Как и рассчитывалось она не особо требовательна к системным ресурсам, будь топамять или область жесткого диска. Однако на данном этапе есть ее некоторыенедостатки, а именно данный программный продукт содержит не так много модулейдля выдачи информации и особенно мало тестов. Однако я уверен что в дальнейшемэтот недостаток будет исправен и будут появляться новые версии программы,которые будут содержать в себе больше информационных и тестовых модулей, будетпроведена работа по усовершенствованию, нормализации и упрощению программногокода, который приведет к меньшему объему всей программы и к ее более быстройработе. Для программы будет создан удобный установщик, который поможет легко иправильно установить программу обычным пользователем.
Данный программныйпродукт смогут без труда применять простые пользователи персональныхкомпьютеров, дабы расширить знания о своем персональном компьютере и оперсональных компьютерах вообще. К тому же я не исключаю возможности примененияданного программного продукта в сфере обучения, ведь он позволяет показыватьразличную информацию об отдельных модуля и системах персонального компьютера, атак же работать с системными файлами и стандартными диалоговыми окнаминастройки операционной системы Windows.К тому же данный программный продукт на сегодняшний день является бесплатнымпрограммным обеспечением и это дает возможность работы с ней любому желающемупользователю персонального компьютера не затрачивая на это деньги. Сделано этоеще для того чтобы программный продукт распространялся наиболее широко изавоевывал популярность среди программного обеспечения поскольку на данныймомент программное обеспечение зачастую стоит не дешево и порой пользователи немогут позволить себе приобрести дорогостоящую программу, а мой программныйпродукт дает пользователю выбор – либо приобретать за определенную суммупрограмму, которая хоть и по объему информации и тестов немного больше, ноработает медленно а иногда и вовсе некорректно, потребляет много системныхресурсов, либо взять бесплатно мой программный продукт, который работает быстрои нетребователен к ресурсам персонального компьютера.
В ближайшее время ясобираюсь распространять данный программный продукт через интернет на своемличном сайте, на котором уже находится не одна из моих разработок и надеюсь,что он займет достойное место среди программных продуктов подобного рода, темболее, что сейчас таких программ очень мало.
Списокиспользуемой литературы
1.        Вендров А.М. Одиниз подходов к выбору средств проектирования баз данных и приложений.«СУБД», 2003, №3.
2.        Зиндер Е.З.Бизнес-реинжиниринг и технологии системного проектирования. Учебное пособие.М., Центр Информационных Технологий, 2000
3.        Калянов Г.Н.CASE. Структурный системный анализ (автоматизация и применение). М.,«Лори», 1999.
4.        Международныестандарты, поддерживающие жизненный цикл программных средств. М., МП«Экономика», 1998
5.        Новоженов Ю.В.Объектно-ориентированные технологии разработки сложных программных систем. М.,1999.
6.        Панащук С.А.Разработка информационных систем с использованием CASE-системы Silverrun.«СУБД», 1998, №3.
7.        Горчинская О.Ю.Designer/2000 — новое поколение CASE-продуктов фирмы ORACLE. «СУБД»,2000, №3.
8.        Горин С.В.,Тандоев А.Ю. CASE-средство S-Designor 4.2 для разработки структуры базы данных.«СУБД», 2002, №1.
9.        Петров Ю.К. JAM — инструментальное средство разработки приложений в информационных системахархитектуры «клиент/сервер», построенных на базе РСУБД.«СУБД», 2002, №3.
10.     Ахметов К.С. Курс молодого бойца. Изд. 5-е, перераб. и доп. – М.:Компьютер Пресс, 1998. – 365с.: ил.
11.     Олифер В.Г. Сетевые операционные системы. СПб.: Питер, 2002.-538с.

Приложения
 
Приложение1 (Листинг модуля главного окна программы)
OptionExplicit
PrivateDeclare Function GetWindowsDirectory Lib «kernel32» Alias«GetWindowsDirectoryA» (ByVal lpBuffer As String, ByVal nSize AsLong) As Long
PublicFileListName As String 'для передачи имени файла для листинга
Public NumDrive As Byte'для передачи информации о типе дисков
Dim sDir AsString, sTemp As String * 256, nSize As Long
Private SubAutoexecNtCommand_Click()
nSize =GetWindowsDirectory(sTemp, 255)
sDir =Left(sTemp, nSize)
FileListName =Left(sDir, 3) + «Autoexec.nt»
LoadFormListIni
FormListIni.Show
End Sub
Private SubBootIniCommand_Click()
nSize =GetWindowsDirectory(sTemp, 255)
sDir =Left(sTemp, nSize)
FileListName =Left(sDir, 3) + «boot.ini»
LoadFormListIni
FormListIni.Show
End Sub
Private SubCommand1_Click()
LoadFormInfoMemory
FormInfoMemory.Show
End Sub
Private SubCommand10_Click()
NumDrive = 2
Load FormTest
FormTest.Show
End Sub
Private SubCommand2_Click()
NumDrive = 3
Load FormDisks
FormDisks.Show
End Sub
Private SubCommand3_Click()
NumDrive = 2
Load FormDisks
FormDisks.Show
End Sub
Private SubCommand4_Click()
NumDrive = 5
Load FormDisks
FormDisks.Show
End Sub
Private SubCommand5_Click()
LoadFormDisplay
FormDisplay.Show
End Sub
Private SubCommand6_Click()
CallShell(App.Path + "\NetProject\InfoNet.exe", vbNormalFocus)
End Sub
Private SubCommand7_Click()
Load FormProc
FormProc.Show
End Sub
Private SubCommand8_Click(Index As Integer)
Select CaseIndex
Case 0: CallShell(«rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0», 5)
Case 1: CallShell(«rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1», 5)
Case 2: CallShell(«rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0», 5)
Case 3: CallShell(«rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0», 5)
Case 4: CallShell(«rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0», 5)
Case 5: CallShell(«rundll32.exe shell32.dll,Control_RunDLL timedate.cpl», 5)
Case 6: CallShell(«rundll32.exe shell32.dll,Control_RunDLL main.cpl @1», 5)
Case 7: CallShell(«rundll32.exe shell32.dll,Control_RunDLL main.cpl @0», 5)
Case 8: CallShell(«rundll32.exe shell32.dll,Control_RunDLL modem.cpl», 5)
Case 9: CallShell(«rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1», 5)
End Select
End Sub
Private SubCommand9_Click()
NumDrive = 3
Load FormTest
FormTest.Show
End Sub
Private SubConfigNtCommand_Click()
nSize =GetWindowsDirectory(sTemp, 255)
sDir =Left(sTemp, nSize)
FileListName =Left(sDir, 3) + «config.nt»
Load FormListIni
FormListIni.Show
End Sub
Private SubMnuExit_Click()
End
End Sub
Private SubMnuHelpAbout_Click()
Load FormAbout
FormAbout.Show
End Sub
Private SubSistemIniCommand_Click()
nSize =GetWindowsDirectory(sTemp, 255)
sDir =Left(sTemp, nSize)
FileListName =sDir + "\system.ini"
LoadFormListIni
FormListIni.Show
End Sub
Private SubWinIniCommand_Click()
nSize =GetWindowsDirectory(sTemp, 255)
sDir =Left(sTemp, nSize)
FileListName =sDir + "\win.ini"
LoadFormListIni
FormListIni.Show
End Sub

Приложение2 (Листингмодуляокнасвойствпамяти)
 
Private TypeMEMORYSTATUS
dwLength AsLong
dwMemoryLoadAs Long
dwTotalPhys AsLong
dwAvailPhys AsLong
dwTotalPageFileAs Long
dwAvailPageFileAs Long
dwTotalVirtualAs Long
dwAvailVirtualAs Long
End Type
PrivateDeclare Sub GlobalMemoryStatus Lib «kernel32» (lpBuffer AsMEMORYSTATUS)
Dim MS AsMEMORYSTATUS
Private SubCommand1_Click()
Unload Me
End Sub
Private SubTimer1_Timer()
MS.dwLength =Len(MS)
CallGlobalMemoryStatus(MS)
With MS
 Text1(0).Text= Format$(.dwTotalPhys / 1024, "#,###") & " Kb"
 Text1(1).Text= Format$(.dwTotalPhys / 1024 — .dwAvailPhys / 1024, "#,###") &" Kb"
 Text1(2).Text= Format$(.dwAvailPhys / 1024, "#,###") & " Kb"
 Text1(3).Text= .dwMemoryLoad
 Text1(4).Text= Format$(.dwTotalPageFile / 1024, "#,###") & " Kb"
 Text1(5).Text= Format$(.dwAvailPageFile / 1024, "#,###") & " Kb"
 Text1(6).Text= Format$(.dwTotalVirtual / 1024, "#,###") & " Kb"
 Text1(7).Text= Format$(.dwAvailVirtual / 1024, "#,###") & " Kb"
End With
End Sub

Приложение3 (листинг модуля окна информации о дисках)
 
OptionExplicit
Private ConstvbDot = 46
Private ConstMAXDWORD = &HFFFFFFFF
Private ConstMAX_PATH = 260
Private ConstINVALID_HANDLE_VALUE = -1
Private ConstFILE_ATTRIBUTE_DIRECTORY = &H10
Private TypeFILETIME
 dwLowDateTimeAs Long
 dwHighDateTimeAs Long
End Type
Private TypeWIN32_FIND_DATA
 dwFileAttributesAs Long
 ftCreationTimeAs FILETIME
 ftLastAccessTimeAs FILETIME
 ftLastWriteTimeAs FILETIME
 nFileSizeHighAs Long
 nFileSizeLowAs Long
 dwReserved0As Long
 dwReserved1As Long
 cFileName AsString * MAX_PATH
 cAlternate AsString * 14
End Type
Private TypeFILE_PARAMS
 bRecurse AsBoolean
 nFileCount AsLong
 nFileSize AsCurrency
 nSearched AsLong
 sFileNameExt AsString
 sFileRoot AsString
End Type
PrivateDeclare Function FindFirstFile Lib «kernel32» Alias«FindFirstFileA» (ByVal lpFileName As String, lpFindFileData AsWIN32_FIND_DATA) As Long
PrivateDeclare Function FindNextFile Lib «kernel32» Alias«FindNextFileA» (ByVal hFindFile As Long, lpFindFileData AsWIN32_FIND_DATA) As Long
PrivateDeclare Function lstrlen Lib «kernel32» Alias «lstrlenW»(ByVal lpString As Long) As Long
PrivateDeclare Function GetLogicalDrives Lib «kernel32» () As Long
PrivateDeclare Function GetDriveType Lib «kernel32.dll» Alias«GetDriveTypeA» (ByVal nDrive As String) As Long
PrivateDeclare Function GetVolumeInformation Lib «kernel32» Alias«GetVolumeInformationA» (ByVal lpRootPathName As String, ByVallpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByValnFileSystemNameSize As Long) As Long
PrivateDeclare Function GetDiskFreeSpace Lib «kernel32.dll» Alias«GetDiskFreeSpaceA» (ByVal lpRootPathName As String,lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClustersAs Long, lpTotalNumberOfClusters As Long) As Long
Private SubCommand1_Click()
Unload Me
End Sub
Private SubCommand2_Click()
Dim Serial AsLong, VName As String, FSName As String
Dim SecPerClus As Long 'число секторов в кластере
Dim BytePerSec As Long 'число байт в секторе
Dim FreeClus As Long 'число свободных кластеров
Dim TotalClus As Long 'общее число кластеров
Dim Retval As Long 'возвращаемое значение
Dim Free AsDouble
Dim FP AsFILE_PARAMS
VName =String$(255, Chr$(0))
FSName =String$(255, Chr$(0))
'получаем информацию одиске
With FP
 .sFileRoot = QualifyPath(Combo1.Text+ "\") 'начальный путь
 .sFileNameExt= "*.*" 'нужные файлы
 .bRecurse = 1'True = рекурсией
End With
CallGetDirectorySize(FP.sFileRoot, FP)
GetVolumeInformationCombo1.Text + "\", VName, 255, Serial, 0, 0, FSName, 255
Retval =GetDiskFreeSpace(Combo1.Text + "\", SecPerClus, BytePerSec, FreeClus,TotalClus)
VName =Left$(VName, InStr(1, VName, Chr$(0)) — 1)
FSName =Left$(FSName, InStr(1, FSName, Chr$(0)) — 1)
Free =(FreeClus / 1000 * SecPerClus * BytePerSec) * 1000
IfMainForm.NumDrive = 2 Then Label1(0).Caption = «Тип устройства: Съемный диск»
IfMainForm.NumDrive = 3 Then Label1(0).Caption = «Тип устройства: Жесткий диск»
IfMainForm.NumDrive = 5 Then Label1(0).Caption = «Тип устройства: CD или DVD диск»
Label1(1).Caption= «Полный объем: » + Format$(FP.nFileSize + Free, "#,###")& " байт" + " (" +Format$((FP.nFileSize + Free) / 1073741824, "###.#") + " Гбайт)"
Label1(2).Caption= «Свобоный объем: » + Format$(Free, "#,###") & " байт" + " (" +Format$(Free / 1073741824, "###.#") + " Гбайт)"
Label1(3).Caption= «Используемый объем: » + Format$(FP.nFileSize, "###,###,###,###")+ " байт" + " (" +Format$(FP.nFileSize / 1073741824, "###.#") + " Гбайт)"
Label1(4).Caption= «Файловая система: » + FSName
Label1(5).Caption= «Число свободных кластеров: » + CStr(FreeClus)
Label1(6).Caption =«Число секторов в кластере: » + CStr(SecPerClus)
Label1(7).Caption =«Число байт в секторе: » + CStr(BytePerSec)
Label1(8).Caption =«Общее число кластеров: » + CStr(TotalClus)
ProgressBar1.Value= ((FP.nFileSize / (FP.nFileSize + Free)) * 100): Label2.Caption =CStr(CInt(ProgressBar1.Value)) + "%"
End Sub
Private SubForm_Load()
Dim i As Byte,drivetype As Long, k As Byte
FillComboCombo1, True
For i = 0 ToCombo1.ListCount — 1
 Combo1.ListIndex= i
 drivetype =GetDriveType(Combo1.Text + "\")
 If drivetype= MainForm.NumDrive Then Combo1.AddItem Combo1.Text: k = k + 1
Next i
For i = 0 ToCombo1.ListCount — k — 1
 Combo1.RemoveItem0
Next i
Combo1.ListIndex= 0
CallCommand2_Click
End Sub
Private SubFillCombo(cbo As ComboBox, ByVal bUsed As Boolean)
Dim DriveNumAs Long
cbo.Clear
For DriveNum =0 To 25
 IfCBool(GetLogicalDrives And (2 ^ DriveNum)) = bUsed Then
 cbo.AddItemChr$(Asc(«A») + DriveNum) & ":"
 End If
Next DriveNum
End Sub
Private SubGetDirectorySize(sRoot As String, FP As FILE_PARAMS)
Dim wfd AsWIN32_FIND_DATA
Dim hFile AsLong
hFile =FindFirstFile(sRoot & "*.*", wfd)
If hFile INVALID_HANDLE_VALUE Then
 Do
 IfAsc(wfd.cFileName) vbDot Then
 If(wfd.dwFileAttributes And vbDirectory) Then
 IfFP.bRecurse Then
 GetDirectorySizesRoot & TrimNull(wfd.cFileName) & "\", FP
 End If 'Iffp.bRecurse
 Else
 FP.nFileCount= FP.nFileCount + 1
 FP.nFileSize= FP.nFileSize + ((wfd.nFileSizeHigh * (MAXDWORD + 1)) + wfd.nFileSizeLow)
 End If 'IfWFD.dwFileAttributes
 End If 'IfAsc(wfd.cFileName)
 FP.nSearched= FP.nSearched + 1
 Loop WhileFindNextFile(hFile, wfd)
End If 'IfhFile
End Sub
PrivateFunction TrimNull(startstr As String) As String
TrimNull =Left$(startstr, lstrlen(StrPtr(startstr)))
End Function
PrivateFunction QualifyPath(sPath As String) As String
IfRight$(sPath, 1) "\" Then
 QualifyPath =sPath & "\"
Else
 QualifyPath =sPath
End If
End Function

Приложение4 (листинг модуля окна свойств дисплея)
 
Option Explicit
Private Declare FunctionGetDeviceCaps Lib «gdi32» (ByVal hdc As Long, ByVal nIndex As Long)As Long
Private ConstDRIVERVERSION As Long = 0 'Версия драйвера
Private Const TECHNOLOGY AsLong = 2 'Классификация устройства
Private Const HORZSIZE AsLong = 4 'Размер по горизонтали в мм.
Private Const VERTSIZE AsLong = 6 'Размер по вертикали в мм.
Private Const HORZRES AsLong = 8 'Размер по горизонтали в точках
Private Const VERTRES AsLong = 10 'Размер по вертикали в точках
Private Const BITSPIXEL AsLong = 12 'Кол-во бит на точку
Private Const PLANES AsLong = 14 'Number of planes
Private Const NUMBRUSHES AsLong = 16 'Number of brushes the device has
Private Const NUMPENS AsLong = 18 'Number of pens the device has
Private Const NUMMARKERS AsLong = 20 'Number of markers the device has
Private Const NUMFONTS AsLong = 22 'Number of fonts the device has
Private Const NUMCOLORS AsLong = 24 'Макс. кол-во возможных цветов
Private Const PDEVICESIZE AsLong = 26 'Size required for device descripto
Private Const CURVECAPS AsLong = 28 'Curve capabilities
Private Const LINECAPS AsLong = 30 'Line capabilities
Private ConstPOLYGONALCAPS As Long = 32 'Polygonal capabilities
Private Const TEXTCAPS AsLong = 34 'Text capabilities
Private Const CLIPCAPS AsLong = 36 'Clipping capabilities
Private Const RASTERCAPS AsLong = 38 'Bitblt capabilities
Private Const ASPECTX AsLong = 40 'Length of the X leg
Private Const ASPECTY AsLong = 42 'Length of the Y leg
Private Const ASPECTXY AsLong = 44 'Length of the hypotenuse
Private ConstSHADEBLENDCAPS As Long = 45 'Shading and blending caps (IE5)
Private Const LOGPIXELSX AsLong = 88 'Logical pixels/inch in X
Private Const LOGPIXELSY AsLong = 90 'Logical pixels/inch in Y
Private Const SIZEPALETTE AsLong = 104 'Number of entries in physical palette
Private Const NUMRESERVED AsLong = 106 'Number of reserved entries in palette
Private Const COLORRES AsLong = 108 'Количество цветов
Private Const VREFRESH As Long = 116 'Текущийрефрешь по вертикали в Гц
 '(только для монитора)
Private ConstDESKTOPVERTRES As Long = 117 'Размер десктопа по горизонтали
Private ConstDESKTOPHORZRES As Long = 118 'Размер десктопа по вертикали
Private Const BLTALIGNMENTAs Long = 119 'Preferred blt alignment
'Для списка режимов
Private Declare FunctionEnumDisplaySettings Lib «user32» Alias«EnumDisplaySettingsA» (ByVal lpszDeviceName As Long, ByVal iModeNumAs Long, lpDevMode As Any) As Boolean
Private Const CCDEVICENAME= 32
Private Const CCFORMNAME =32
Private Type DEVMODE
 dmDeviceName As String *CCDEVICENAME
 dmSpecVersion As Integer
 dmDriverVersion AsInteger
 dmSize As Integer
 dmDriverExtra As Integer
 dmFields As Long
 dmOrientation As Integer
 dmPaperSize As Integer
 dmPaperLength As Integer
 dmPaperWidth As Integer
 dmScale As Integer
 dmCopies As Integer
 dmDefaultSource AsInteger
 dmPrintQuality As Integer
 dmColor As Integer
 dmDuplex As Integer
 dmYResolution As Integer
 dmTTOption As Integer
 dmCollate As Integer
 dmFormName As String *CCFORMNAME
 dmUnusedPadding AsInteger
 dmBitsPerPel As Integer
 dmPelsWidth As Long
 dmPelsHeight As Long
 dmDisplayFlags As Long
 dmDisplayFrequency AsLong
End Type
Private SubCommand1_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim sBPPtype As String
Dim sFreqtype As String
Dim CurrBPP As Long
Dim CurrVFreq As Long
'Подписываем глубину цвета дляудобства чтения
CurrBPP =GetDeviceCaps(hdc, BITSPIXEL)
Select Case CurrBPP
 Case 4: sBPPtype ="(16 цветов)"
 Case 8: sBPPtype ="(256 цветов)"
 Case 16: sBPPtype ="(High Color)"
 Case 24, 32: sBPPtype ="(True Color)"
End Select
CurrVFreq =GetDeviceCaps(hdc, VREFRESH)
Select Case CurrVFreq
 Case 0, 1: sFreqtype ="(Определяется адаптером)"
 Case Else: sFreqtype ="(Ручная настройка)"
End Select
 Label1(0).Caption =«Разрешение по горизонтали: » & GetDeviceCaps(hdc,HORZRES) & " пикселей"
Label1(1).Caption = «Разрешение по вертикали: » & GetDeviceCaps(hdc,VERTRES) & " пикселей"
Label1(2).Caption = «Разрешениепо горизонтали в миллиметрах: » & GetDeviceCaps(hdc, HORZSIZE) &" мм"
Label1(3).Caption = «Разрешениепо вертикали в миллиметрах: » & GetDeviceCaps(hdc, VERTSIZE) &" мм"
Label1(4).Caption = «Качествоцветопередачи: » & CurrBPP & " бит " & sBPPtype
Label1(5).Caption = «Количествоцветов: » & 2 ^ CurrBPP
Label1(6).Caption = «Частотаобновления экрана: » & CurrVFreq & " Гц " &sFreqtype
'Заполнение списка режимов
EnumDisplay lstmodes
End Sub
Private SubEnumDisplay(displaylistbox As ListBox)
Dim lTemp As Long,tDevMode As DEVMODE, lIndex As Long
lIndex = 0
Do
 lTemp =EnumDisplaySettings(0&, lIndex, tDevMode)
 If lTemp = 0 Then Exit Do
 With tDevMode
 displaylistbox.AddItem.dmPelsWidth & " x " & .dmPelsHeight & ", "& .dmBitsPerPel & " бит"
 End With
 lIndex = lIndex + 1
Loop
End Sub

Приложение5 (листинг модуля окна тестирования дисков)
 
PrivateDeclare Function GetDriveType Lib «kernel32.dll» Alias«GetDriveTypeA» (ByVal nDrive As String) As Long
PrivateDeclare Function GetLogicalDrives Lib «kernel32» () As Long
PrivateDeclare Function GetTickCount Lib «kernel32» () As Long
Dim TStart As Long'переменная таймера только для этой процедуры
Dim TEnd As Long 'переменнаятаймера только для этой процедуры
Dim Zapis(9)As Single
Dim Chten(9)As Single
Dim AStart AsSingle
Dim AEnd AsSingle
Private SubCommand1_Click()
Dim i As Long,j As Byte, Tmp As Single, Str1 As String
IfMainForm.NumDrive = 3 Then
 AStart =GetTickCount()
 For j = 0 To9
 TStart =GetTickCount()
 OpenCombo1.Text & "\proba.txt" For Output As 1
 For i = 0 To349524
 Print #1," "
 Next i
 Close 1
 TEnd =GetTickCount()
 Zapis(j) = 1/ ((TEnd — TStart) / 2000)
 Next j
 For i = 0 To9
 Tmp = Tmp +Zapis(i)
 Next i
 Tmp = Tmp /10
 Label1.Caption= «Средняя скорость записи » &FormatNumber(Tmp, 3) & " Мб/сек"
 ProgressBar1.Value= Tmp
 For j = 0 To9
 TStart =GetTickCount()
 OpenCombo1.Text & "\proba.txt" For Input As 1
 Str1 =Len(Input(LOF(1), 1))
 Close 1
 TEnd =GetTickCount()
 Chten(j) = 1/ ((TEnd — TStart) / 1000)
 Next j
 For i = 0 To9
 Tmp = Tmp +Chten(i)
 Next i
 Tmp = Tmp /10
 Label2.Caption= «Средняя скорость чтения » &FormatNumber(Tmp, 3) & " Мб/сек"
 ProgressBar2.Value= Tmp
 AEnd =GetTickCount()
 Label3.Caption= «Общее время теста: » & FormatNumber(((AEnd — AStart) / 1000), 4) & " секунд"
 Label4.Caption = «Кол-во тестов:10 на запись, 10 на чтение»
End If
IfMainForm.NumDrive = 2 Then
 ProgressBar1.Max= 80
 ProgressBar2.Max= 80
 AStart =GetTickCount()
 TStart =GetTickCount()
 OpenCombo1.Text & "\proba.txt" For Output As 1
 For i = 0 To349524
 Print #1," "
 Next i
 Close 1
 TEnd =GetTickCount()
 Label1.Caption= «Cкорость записи » & FormatNumber(1 / ((TEnd — TStart) / 1000000),3) & " Kb/sec"
 ProgressBar1.Value= 1 / ((TEnd — TStart) / 1000000)
For j = 0 To 3
 TStart =GetTickCount()
 OpenCombo1.Text & "\proba.txt" For Input As 1
 Str1 =Len(Input(LOF(1), 1))
 Close 1
 TEnd =GetTickCount()
 Chten(j) = 1/ ((TEnd — TStart) / 10000)
Next j
For i = 0 To 3
 Tmp = Tmp +Chten(i)
Next i
Tmp = Tmp / 10
AEnd =GetTickCount()
Label2.Caption= «Средняя скорость чтения » &FormatNumber(Tmp, 3) & " Мб/сек"
Label3.Caption= «Общее время теста: » & FormatNumber(((AEnd — AStart) / 1000), 4) & " секунд"
ProgressBar2.Value = Tmp
Label4.Caption =«Кол-во тестов: 1 на запись, 4 на чтение»
End If
End Sub
Private SubCommand2_Click()
Unload Me
End Sub
Private SubForm_Load()
Dim i As Byte,drivetype As Long, k As Byte
FillComboCombo1, True
For i = 0 ToCombo1.ListCount — 1
 Combo1.ListIndex= i
 drivetype =GetDriveType(Combo1.Text + "\")
 If drivetype= MainForm.NumDrive Then Combo1.AddItem Combo1.Text: k = k + 1
Next i
For i = 0 ToCombo1.ListCount — k — 1
 Combo1.RemoveItem0
Next i
Combo1.ListIndex= 0
CallCommand1_Click
End Sub
Private SubFillCombo(cbo As ComboBox, ByVal bUsed As Boolean)
Dim DriveNumAs Long
cbo.Clear
For DriveNum =0 To 25
 If CBool(GetLogicalDrivesAnd (2 ^ DriveNum)) = bUsed Then
 cbo.AddItemChr$(Asc(«A») + DriveNum) & ":"
 End If
Next DriveNum
End Sub


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Стратегия привлечения финансовых ресурсов
Реферат Органы прокуратуры, их значение и роль в осуществлении контрольно-надзорных функций
Реферат История изучения и использования природных вод на Урале
Реферат Жидкие кристаллы, история открытия жидких кристаллов, структура, типы и их применение
Реферат «О размещении заказов на поставки товаров, выполнение работ, оказание услуг для государственных и муниципальных нужд»
Реферат Понятие и общие принципы местного самоуправления
Реферат Биржевой товар понятие и состав его характеристика 2
Реферат Правовой анализ таможенного контроля в системе административных процедур таможенного дела
Реферат Инновационные технологии организации охраны и укрепления здоровья населения
Реферат Poem The Bottom Line Essay Research Paper
Реферат Номенклатура дел
Реферат Оборотные средства предприятия общественного питания формы и эффективность использования
Реферат The Snow Geese By William Fiennes Essay
Реферат Общие основания расторжения трудового договора
Реферат Памятники крестьянской цивилизации на территории Шахунского района