Курсовой проект по теории и технологии моделирования систем
Исполнители: Воронов А.А., Прошкин А.С.
Московский государственный институт радиотехники, электроники и автоматики (Технический университет)
Факультет кибернетики
Кафедра интеллектуальных технологий и систем
Москва, 1997
Содержание
Лавинообразное расширение областей применения ЭВМ, возрастающая сложность программного обеспечения и повышающиеся к нему требования привели к необходимости индустриализации производства программной продукции, а именно: необходимости применения высокоэффективных технологий создания программного обеспечения. Важное направление в развитии программных технологий составили разработки интегрированных инструментальных систем, базирующихся на концепциях жизненного цикла и управления качеством программной продукции и представляющих собой комплексные технологии, ориентированные на создание сложных программных систем и поддержку их полного жизненного цикла или ряда его основных этапов. Дальнейшее развитие работ в данном направлении привело к созданию ряда концептуально целостных, оснащенных высокоуровневыми средствами проектирования и реализации, доведенных по качеству и легкости тиражирования до уровня программных продуктов технологических систем, которые и получили название CASE - систем или CASE - технологии .
В настоящее время CASE - системы прочно вошли в практику программной индустрии. При этом они используются не только как комплексные технологические конвейеры для производства программных систем, но и как мощный инструмент решения исследовательских и проектных задач, таких как структурный анализ предметной области, спецификация проектов средствами языков программирования четвертого поколения, выпуск проектной документации, тестирование реализаций проектов, планирование и контроль разработок, моделирование деловых приложений с целью решения задач оперативного и стратегического планирования и управления ресурсами и т.п.
В данной курсовой работе мы попытались дать описание одного из основных методов структурного анализа и проектирования программного обеспечения систем обработки информации, наиболее распространенным способом – диаграммами потоков данных. Поскольку большинство понятий системного анализа к нам пришло из за рубежа – дадим основные варианты их определений на английском языке:
DFD (Data Flow Diagrams) – диаграммы потоков данных. Метод демонстрируется на функциональной модели, рассмотренной в данном курсовом проекте ниже. По сути, он определяет функциональную страту изучаемого объекта.
ERD (Entinity-Relationship ) – диаграммы “сущность-связь”. Метод широко используется при описании структуры систем и применяется главным образом в теории баз данных. В отечественной литературе он в основном описан как метод диаграмм ER- типа.
STD (State Transmition Diagrams) – Диаграммы переходов состояний. Используются для описания функционирования рассматриваемой системы во времени. Аналогом этому является метод пространства состояний, с успехом применяемый при моделировании систем.
Основным источником нашего проекта является книга написанная на основе оригинального семестрового курса лекций по CASE - технологиям, подготовленного и читаемого автором в высшей компьютерной школе при НИВЦ. МГУ им. Ломоносова в течение четырех последних лет, которая предназначена прежде всего для аналитиков предметной области, руководителей программных проектов, системных аналитиков, проектировщиков и разработчиков информационных систем и систем реального времени. Сделанный в книге акцент на последовательное рассмотрение наиболее важных аспектов системного структурного анализа делает эту книгу особенно полезной для пользователей, которые выбирают CASE - системы в качестве инструмента для решения прикладных задач, а также для студентов, начинающих постигать основы современных информационных технологий.
Введение в CASE - технологии.
За последнее десятилетие сформировалось новое направление в программотехнике - CASE (Computer - AidedSoftware/SystemEngineering). В настоящее время не существует общепринятого определения CASE. Содержание этого понятия обычно определяется перечнем задач, решаемых с помощью CASE, а также совокупностью применяемых методов и средств. Грубо говоря, CASE - технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения (ПО), поддержанную комплексом взаимосвязанных средств автоматизации. CASE - это инструментарий для системных аналитиков, разработчиков и программистов, позволяющий автоматизировать процесс проектирования и разработки ПО.
К настоящему моменту дисциплина CASE оформилась в самостоятельное наукоемкое направление в программотехнике, повлекшее за собой образование мощной САSE - индустрии, объединившей сотни фирм и компаний различной ориентации. Среди них выделяются компании-разработчики средств анализа и проектирования ПО с широкой сетью дистрибьюторских и дилерских фирм; фирмы-разработчики специальных средств с ориентацией на узкие предметные области или на отдельные этапы жизненного цикла ПО; обучающие фирмы, которые организуют семинары и курсы подготовки специалистов; консалтинговые фирмы, оказывающие практическую помощь при использовании CASE- пакетов для разработки конкретных приложений; фирмы, специализирующиеся на выпуске периодических журналов и бюллетеней по CASE. Основными покупателями CASE-пакетов за рубежом являются военные организации, центры обработки данных и коммерческие фирмы по разработке ПО.
Существует мнение, что CASE является наиболее перспективным направлением в программотехнике. С этим ложно спорить, но то, что CASE - наиболее бурно и интенсивно развиваемое направление , является в настоящее время фактом. Практически ни один серьезный зарубежный программный проект не осуществляется без использования CASE - средств. Известная методология структурного системного анализа SАDТ (точнее ее подмножество IDEF0) принята в качестве стандарта на разработку ПО Министерством обороны США. Более того, среди менеджеров и руководителей компьютерных фирм считается чуть ли не правилом хорошего тона знать основы SADT и при обсуждении каких-либо вопросов нарисовать простейшую диаграмму, поясняющую суть дела.
CASE позволяет не только создавать "правильные" продукты, но и обеспечить "правильный" процесс создания. Основная цель CASE состоит в том, чтобы отделить проектирование ПО от его кодирования и последующих этапов разработки, а также скрыть от разработчиков все детали среды разработки и функционированию. Чем больше деятельности будет вынесено в проектирование не из кодирования , тем лучше.
При использовании CASE - технологий меняются этапы жизненного цикла программной системы, при этом наибольшие изменения касаются этапов анализа и проектирования. В большинстве современных CASE - систем применяются методологии структурного анализа и проектирования, основанные на наглядных диаграммных техниках, при этом для описания модели проектируемой системы используются графы, диаграммы, таблицы и схемы. Такие методологии обеспечивают строгое и наглядное описание проектируемой системы, которое начинается с ее общего обзора и затем детализируйся, приобретая иерархическую структуру со все большим числом уровней.
CASE - технологии успешно применяются для построения практически всех типов систем ПО, однако устойчивое положение они занимают в следующих областях:
1. Обеспечение разработки делового и коммерческого ПО. Широкое применение CASE - технологий обусловлено массовостью этой прикладной области, в которой CASE применяется не только для разработки ПО, но и два создания моделей систем, помогающих коммерческим структурам решать задачи стратегического планирования, управления финансами, определения политики фирм, обучения персонала и т.д. (это направление получило свое собственное название - бизнес-анализ),
2. Разработка системного и управляющего ПО. Активное применение CASE - технологий связано с большой сложностью данной проблематики и со стремлением повысить эффективность работ.
CASE - не революция в программотехнике, а результат естественного эволюционного развития всей отрасли средств, называемых ранее инструментальными или технологическими. Однако это и не ConfuseArrayofSoftwarethatdoesEvrything существует ряд признаков и свойств, наличие которых позволяет классифицировать некоторый продукт как CASE - средство. Одним из ключевых признаков является поддержка методологий структурного системного анализа и проектирования.
С самого начала CASE - технологии развивались с целью преодоления ограничений при использовании структурных методологий проектирования 60-70-х годов (сложности понимания, большой трудоемкости и стоимости использования, трудности внесения изменений в проектные спецификации и т.д.) за счет их автоматизации и интеграции поддерживающих средств. Таким образом, CASE -технологии не могут считаться самостоятельными методологиями, они только развивают структурные методологии и делают более эффективным их применение за счет автоматизации.
Помимо автоматизации структурных методологий и, как следствие, возможности применения современных методов системной и программной инженерии, CASE обладают следующими основными достоинствами:
улучшают качество создаваемого ПО за счет средств автоматического контроля (прежде всего, контроля проекта),
позволяют за короткое время создавать прототип будущей системы, что позволяет на ранних этапах оценить ожидаемый результат, · ускоряют процесс проектирования и разработки;
освобождают разработчика от рутинной работы, позволяя ему целиком сосредоточиться на творческой части разработки;