Классификации методологий проектирования программных систем
информационная инженерия (Information Engineering); искусственный интеллект (Artificial Intelligence); обратное перепроектирование (Re-engineering); реинжиниринг бизнес-процессов (Business Process Reengineering); многоагентные системы (Multi-Agent Systems); управление знаниями (Knowledge Management); промышленная инженерия (Industrial Engineering); управление качеством (Total Quality Management). Приведем их краткую характеристику. В середине 90-х годов в методологиях и технологиях разработки программных систем произошла смена одной из парадигм: программная инженерия (Software Engineering) сменилась на информационную инженерию (Information Engineering). Информационная инженерия представляет собой совокупность методологий и программных инструментальных средств, поддерживающих создание программных систем, автоматизирующих деятельность человека. Главной отличительной особенностью информационной инженерии от программной инженерии является наличие методов и программных инструментальных средств, поддерживающих этап стратегического планирования жизненного цикла программного обеспечения. На этапе стратегического планирования осуществляется обследование деятельности организации с целью повышения эффективности труда сотрудников. Для этого анализ организации проводится на трех уровнях: макроуровне, микроуровне и уровне организации. На макроуровне осуществляется анализ политической обстановки, экономического положения и технической политики, которые влияют на выбор сфер деятельности организации. На микроуровне осуществляется анализ рыночных отношений между организацией, потребителями и конкурентами. На уровне организации осуществляется анализ внутреннего состояния организации: организационная структура, производство продукции, финансовое положение, профессионализм кадров и т.п. Стратегический анализ деятельности организации представляет трудоемкий длительный процесс, цена ошибок на котором очень высока, поскольку они могут привести к краху организации. Возникшие в рамках программной инженерии CASE-технологии (Computer-Aided Software Engineering) позволяют значительно сократить время проектирования программных систем, повысить их качество, а также значительно уменьшить затраты на их создание. Научно-практическое направление «СASE-технологии» занимается вопросами создания методологий проектирования программных систем и программных инструментальных средств их поддержки (CASE-средств). Наиболее широко применяемыми методологиями являются представители двух классов методологий: структурных и объектно-ориентированных. Структурные методы проектирования программных систем появились в конце 70-х годов. Их создание связано с именами Йордона, Джэксена, Якобсона и многими другими. Следует отметить, что Yordon является разработчиком первого CASE-средства CASE\Analyst\Design , созданного в 1979 г., в котором на основе построенных диаграмм генерируется программный код на языке Ада. К настоящему времени создан многочисленный ряд CASE-средств, поддерживающих структурные методы. К нему относятся CASE-средства: BPWin, Idef, Silverrun и многие другие. В последние годы наиболее перспективной методологией для создания программных систем признана объектно-ориентированная методология, одним из основоположников которой является Г. Буч. CASE-средства, поддерживающие эту методологию, широко применяются в фирмах в США, Японии и в других ведущих странах мира. В России широко используемыми CASE-средствами, поддерживающими объектно-ориентированные методы, являются Rational Rose Enterprise Edition 2000/2002 (фирмы Rational Software Corporation), Oracle Developer Suite 2000 (фирмы Oracle) и др. Следует заметить, что Г. Буч и Дж. Рамбоух являются создателями языка UML (Unified Modeling Language), появившегося в свет в 1994 г., который положен в основу CASE-средства Rational Rose Enterprise Edition, сотрудником фирмы, его разработавшей, в настоящее время является Г. Буч.