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

Алгебра в программе Mathematica

После изучения школьного курса информатики вы панически боитесь компьютеров, программ и всего, что связано с ними? Тогда вам нужно напрочь забыть этот школьный ужастик и прочесть сначала какую-нибудь совсем простую книгу, с помощью которой вы научитесь нажимать клавиши и будете относиться к монитору так же, как к телевизору. (Впрочем, считаю своим долгом предупредить об опасности телевизоров (и компьютеров): их так легко включить, а оторваться от них иногда просто невозможно.) Если захотите после этого познакомиться с азами программирования, советую прочитать начальные главы книги Программирование на языке C/C++. Самоучитель. Но знакомство с ней, как и с любым другим курсом программирования, совсем не обязательно для того, чтобы приступить к чтению данной книги.
Вы умеете включать компьютер, устанавливать программы, но никогда не слышали о системах компьютерной алгебры? Тогда эта книга для вас. В ней есть все, что нужно знать, чтобы приступить к освоению систем компьютерной алгебры и начать применять их для решения самых разнообразных задач.
У вас уже есть опыт применения компьютерной алгебры? Тогда эта книга научит вас применять лучшую из таких систем — систему Mathematica — для решения ваших задач. Впрочем, даже если вы студент, в книге, конечно, едва ли можно найти решения именно тех задач, которые вам преподаватель задал на дом, но здесь есть подробно разобранные примеры решения типовых задач по математике. Конечно, данная книга не может заменить всех учебников по математике, но, надеюсь, она сделает знакомство с ними гораздо более приятным, во всяком случае менее утомительным, чем при традиционном способе проведения выкладок с карандашом и ластиком.
Если же ваши проекты связаны с научными исследованиями и выходят далеко за рамки решения типовых задач, во многих главах вы найдете примеры решения довольно трудных задач и получения вполне современных результатов.

Введение
У вас уже есть опыт применения компьютерной алгебры? Тогда эта книга научит вас применять лучшую из таких систем — систему Mathematica — для решения ваших задач. Впрочем, даже если вы студент, в книге, конечно, едва ли можно найти решения именно тех задач, которые вам преподаватель задал на дом, но здесь есть подробно разобранные примеры решения типовых задач по математике. Конечно, данная книга не может заменить всех учебников по математике, но, надеюсь, она сделает знакомство с ними гораздо более приятным, во всяком случае менее утомительным, чем при традиционном способе проведения выкладок с карандашом и ластиком.
Если же ваши проекты связаны с научными исследованиями и выходят далеко за рамки решения типовых задач, во многих главах вы найдете примеры решения довольно трудных задач и получения вполне современных результатов.

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

Знакомство с системой Mathematica
После того как запустим систему Mathematica 5, получится примерно то что изображено на 2.1. Большое белое окно слева- блокнот. Именно в него вводится информация, и именно в нем отображаются результаты. Окно в середине - заставка-приветствие и справка. Окно справа - панель для ввода математических символов греческих букв и т.п.

Что такое число
Что такое число? Однозначного ответа на этот вопрос нет. Например, комплексное число — это число или все-таки вектор? А действительное число — это число или сечение во множестве рациональных чисел? А если комплексные числа все-таки числа, то кватернионы — тоже числа или уже объекты другой природы? Ну а если даже кватернионы — все-таки числа, то разве не следует к числам причислить и октавы Кэли? Иногда очень удобно считать, что числа — это элементы любого кольца.

Преобразование непрерывной дроби

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

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

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

Деление с остатком
При выполнении операции деления с остатком получается частное и остаток. Для нахождения частного и остатка в системе Mathematica предусмотрены функции Quotient и Mod.

Функция Эйлера — EulerPhi Если в полной системе вычетов по модулю nоставить только вычеты, взаимно простые с модулем, получим приведенную систему вычетов по модулю n. Мощность приведенной системы вычетов по модулю n как множества обозначается ?(n), а функция ?:n-?(n) называется функцией Эйлера. Найдем, для примера, приведенную систему вычетов по модулю 10.

Удивительная механика

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

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

Небольшая экскурсия в молодость
Как быстро пролетело время! Еще пятнадцатилетним юношей я принялся за поиск «энергетической капсулы», а сегодня мне уже страшно сказать сколько. Прошло полвека, пятьдесят лет непрерывной работы, но задача создания «энергетической капсулы», пожалуй, только сейчас встала передо мной во всей своей грандиозности. Энергия и топливо стали как никогда дорогими, экология – глобальной проблемой, запасание энергии впрок – насущной жизненной потребностью человека.

CASE-технологии

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

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

Применимость CASE-средств
В течение нескольких последних лет мы наблюдаем эволюцию языков моделирования программных систем, одним из результатов которой стало появление и развитие Унифицированного Языка Моделирования - UML (Unified Modeling Language) [], объединившего под своим названием фактически несколько методологий. Он стал основой для целого спектра различных средств поддержки разработки программного обеспечения - CASE-средств (Computer-Aided Software Engineering).

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

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

Использование языка макрокоманд в AllFusion ERwin Data Modeler
На современном этапе редко какое предприятие имеет единую информационную структуру. Как правило, информационный отдел организации имеет мозаичную структуру, где каждый элемент мозаики является решением отдельной задачи или подразделения и реализован в соответствии с параметрами этой задачи. Такая мозаика во многом определяется историческим развитием организации. К примеру, на гипотетическом предприятии первоначально был автоматизирован бухгалтерский учет при помощи собственной разработки, далее была внедрена сторонняя программа по учету заработной платы и т.д.

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

Ниша и внедрение CASE-средств
Если рассматривать CASE (Computer Aided Software Engineering) в первоначальном понимании — как средство компьютерной поддержки разработки программного обеспечения (ПО), то их польза в проектировании больших и сложных программных систем станет вполне понятной. В подтверждение этого тезиса можно сослаться на «Мифический человеко-месяц» Фредерика Брукса. Самой большой проблемой, которую приходится решать программной инженерии, является сложность ПО.

ЧТО? ГДЕ? КОГДА?
Давно канули в Лету те времена, когда один человек вполне мог справляться с реализацией программного проекта, обеспечивающего функциональность крупных предприятий. Постоянный рост сложности и комплексности не только целей проекта, но и инструментария их реализации приводит к тому, что уже трудно обойтись силами отдельных специалистов, а требуется слаженная работа целой команды.

HyperText Transfer Protocol
Обмен данными в Web-технологии подразделяется в соответствии с типами методов доступа протокола HTTP и видами запросов в спецификации CGI. Основных методов доступа два: GET и POST. Помимо них часто используются HEAD и PUT. Виды запросов CGI разделяют на два основных MIME-типа: application/x-www-form-urlencoded и multipart/form-data. Второй тип запроса специально создан для передачи больших внешних файлов.



Структура bash-скрипта
Для того чтобы выполнить bash-скрипт, требуется интерпретатор bash. При этом скрипт запускается HTTP-сервером и, в общем случае, не определяет его операционное окружение (точнее, оно определяется окружением сервера). По этой причине в начале файла скрипта следует указать, что для его исполнения требуется интерпретатор bash: #!/usr/local/bin/bash echo Hello BASH

Структура Perl-программы
У программы на языке Perl нет жестко заданной структуры. Точнее сказать, программист не обязан ее соблюдать. Если же он захочет, чтобы интерпретатор контролировал объявление и использование переменных и конструкций языка, то при помощи класса strict он может такой контроль установить. Программа на Perl состоит из операторов языка, которые должны заканчиваться символом ";"

Общая структура C-скрипта
Язык программирования C — это традиционный инструмент разработки программного обеспечения, используемый на протяжении последних 25 лет (с момента появления Unix). С учетом того, что Unix в настоящее время является основной серверной средой, умение программировать CGI-скрипты на C является одним из необходимых условий успешной работы Web-инженера.

Элемент разметки FORM и его компоненты
Контейнер (элемент разметки) FORM позволяет определить в рамках HTML-документа форму ввода. В рамках этого контейнера размещаются все поля ввода, куда пользователь может поместить свою информацию. Если контейнер формы открыт, т.е. в документе указан тег начала контейнера FORM ..., то обязательно нужно указать и тег конца контейнера /FORM.

Метод доступа GET
Метод доступа GET долгое время был основным методом доступа из форм к CGI-скриптам. Это происходило по причине отсутствия при вводе большого количества данных и из-за прямого обращения к скриптам по их URL. В настоящее время ситуация меняется, но тем не менее данный метод занимает едва ли не главное место в программировании обработки данных из HTML-форм.

Internet и CGI
Изо дня в день работая над обновлением содержимого своего Web-сайта, насыщая его интересными материалами, вы, вероятно, задумываетесь о том, что ежедневно создаются сотни новых Web-сайтов, которые также ежедневно пополняются сотнями новых документов. Как создаются все эти новые массивы страниц и каким образом они так быстро обновляются?

Загрузка ресурса IMG
Настоящая публикация посвещена ряду вопросов CGI-программирования на языке Perl, а именно нетипичным ситуациям генерации выходных данных в среде броузера. Рассматриваются варианты возврата выходных данных с помощью контейнерных HTML элементов: APPLET, SCRIPT, OBJECT, IFRAME (ILAYER для Netscape), а также элемента IMG. Представлены примеры программирования реальных ситуаций (выборка новостной информации из БД

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

Обзор статьи The Technology
Развивающийся интерес к Internet и World Wide Web как платформам приложений оказал значительное влияние на рынок реляционных систем управления базами данных (РСУБД). Поначалу казалось, что феномен Web сузил профиль приложений РСУБД. Производители стали обращать большее внимание на параллельное выполнение операций над базами данных, склады данных и репликацию данных. Однако пользователи, разрабатывающие Internet/Web-приложения быстро осознали потребность в масштабируемой и надежной среде хранения, манипулирования и управления динамическими мультимедиа данными и другими сложными типами данных. Для связывания СУБД с приложением Web посредством Web-сервера требуется эффективная поддержка трехзвенной архитектуры.

HotMail своими руками, или Что может PHP
В этой статье я хотел бы продемонстрировать, что создание работоспособных и полезных динамических Web-узлов вовсе не такая сложная задача, как может показаться при чтении текстов, описывающих интерфейс CGI. На самом деле подобная работа (по крайней мере, при использовании Linux) больше всего напоминает игру The Incredible Machines, где нужно кремнем высечь искру, чтобы свет упал на солнечную батарею, от которой срабатывает сверхсовременный компьютер

Status Code и Reason Phrase в протоколе HTTP/1.1
Status-Code это код результата попытки понять и выполнить запрос. Состоит из трех цифр. Полные определения значений Status-Code приведены в главе 10. Reason-Phrase - короткое текстовое описание Status-Code. Status-Code предназначен для программ, Reason-Phrase - для человека. Первая цифра Status-Code определяет класс кода. Две следующие цифры никак не категоризируются

Разбор данных HTML-форм
Большое количество World Wide Web приложений основано на использовании внешних программ, управляемых Web сервером. Использование данных программ позволяет строить Web приложения с динамически обновляемой информацией, хранящейся в базах данных или генерирующейся в зависимости от бизнес-правил решаемых задач. Для связи между Web сервером и вызываемыми программами широко используется Common Gateway Interface (CGI), имеющий реализации как для Windows-ориентированных программ, так и для приложений, функционирующих в среде Unix.

Учебное пособие по CGI-программированию
Что меня заставило взятся за этот нелегкий труд написания данного учебного пособия. Ну во первых то что практически НЕТ ничего по CGI-програмированию на русском языке, а большинству тех,кто хотел бы изучить CGI, документация на английском в отличии от тех немногих типа меня практически недоступна для понимания.

CGI - Common Gateway Interface
Обычно гипертекстовые документы, извлекаемые из WWW серверов, содержат статические данные. С помощью CGI можно создавать CGI-программы, называемые шлюзами, которые во взаимодействии с такими прикладными системами, как система управления базой данных, электронная таблица, деловая графика и др., смогут выдать на экран пользователя динамическую информацию.

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

Синтаксис
FORM тэг определяет форму для заполнения в HTML документе. В одном документе может быть определено несколько форм для заполнения, но вложенные FORM операторы не разрешены. Формат оператора FORM выглядит следующим образом: FORM ACTION="url" METHOD="POST".../FORMgt

Общая Структура
HyperText Transfer Protocol (HTTP) - это протокол высокого уровня (а именно, уровня приложений), обеспечивающий необходимую скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа. HTTP используется проектом World Wide Web с 1990 года.

Строка Статус
Запрос - это сообщение, посылаемое клиентом серверу. Первая строка этого сообщения включает в себя метод, который должен быть применен к запрашиваемому ресурсу, идентификатор ресурса и используемую версию протокола. Для совместимости с протоколом HTTP/0.9, существует два формата HTTP запроса: Запрос = Простой-Запрос | Полный-Запрос Простой-Запрос = "GET" SP Запрашиваемый-URI CRLF Полный-Запрос = Строка-Статус *(Общий-Заголовок | Заголовок-Запроса | Заголовок-Содержания ) CRLF [ Содержание-Запроса ]

Структура ответа
Простой-Ответ должен посылаться только в ответ на HTTP/0.9 Простой-Запрос, или в том случае, если сервер поддерживает только ограниченный HTTP/0.9 протокол. Если клиент посылает HTTP/1.0 Полный-Запрос и получает ответ, который не начинается со , он должен предполагать, что ответ сервера представляет собой Простой-Ответ, и обрабатывать его в соответствии с этим. Следует заметить, что Простой-Ответ состоит только из запрашиваемой информации (без заголовков) и поток данных прекращается в тот момент, когда сервер закрывает сеанс связи.

Что такое URL?
В World Wide Web для задания местоположения файлов на других серверах сети Internet используется URL - Uniform Resource Locator. URL включает в себя : метод доступа к ресурсу, т.е. протокол доступа (http, gopher, WAIS, ftp, file, telnet и др.) сетевой адрес ресурса (имя хост-машины и домена) полный путь к файлу на сервере