Современные методы разработки ПО
Метод нисходящего проектирования (метод пошаговой детализации, метод иерархического проектирования, top-down-подход)
Суть метода заключается в определении спецификаций компонентов системы путем последовательного выделения в ее составе отдельных составляющих и их постепенной детализации до уровня, обеспечивающего однозначное понимание того, что и как необходимо разрабатывать и реализовывать.
Этот метод является незаменимым при разработке сложных по характеру и больших по объему программ, когда к их разработке необходимо привлекать большое число программистов, работающих параллельно. Он позволяет концентрировать внимание разработчиков на наиболее ответственных частях программы, а также облегчает возможность постоянного контроля за ее работоспособностью по мере разработки, отладки и объединения отдельных составляющих программ за счет организации непрерывности этого процесса в течение всей разработки.
Для ускорения разработки программного комплекса часто вместо некоторых программ нижнего уровня, находящихся в процессе разработки, могут применяться специальные "программы-заглушки" Программы-заглушки требуются только на ранних стадиях разработки для того, чтобы не сдерживать общий ход создания программного комплекса. Суть программы-заглушки заключается в том, что при обращении к ней в соответствии с заданным набором исходных тестовых данных она не формирует, а выбирает результат "решения" из заранее подготовленного набора. Благодаря этому обеспечивается возможность имитировать работу на ЭВМ реально создаваемой программы, а следовательно, осуществлять проверку работоспособности программ верхнего уровня еще до того, как будут разработаны и отлажены все составляющие программы нижнего уровня.
Модульное проектирование
Реализация метода нисходящего проектирования тесно связана с другим понятием программирования - модульным проектированием, так как на практике при декомпозиции сложной программы возникает вопрос о разумном пределе ее дробления на составные части. Вместе с тем понятие модульности нельзя сводить только к представлению сложных программных комплексов в виде набора отдельных функциональных блоков.
Модуль - это последовательность логически взаимосвязанных фрагментов задачи, оформленных как отдельная часть программы. При этом программные модули должны обладать следующими свойствами:
§ на модуль можно ссылаться (т.е. обращаться к нему) по имени, в том числе и из других модулей;
§ по завершении работы модуль должен возвращать управление тому модулю, который его вызывал;
§ модуль должен иметь один вход и выход;
§ модуль должен иметь небольшой размер, обеспечивающий его обозримость.
При разработке сложных программ в них выделяют головной управляющий модуль, подчиненные ему модули, обеспечивающие реализацию отдельных функций управления, функциональную обработку (т.е. непосредственную реализацию основного назначения программного комплекса), а также вспомогательные модули, обеспечивающие сервисное обслуживание пакета (например, сбор и анализ статистики работы программы, обработка различного рода ошибочных ситуаций, обучение и выдача подсказок и т.п.).
Модульный принцип разработки программ обладает следующими преимуществами:
§ большую программу могут разрабатывать одновременно несколько исполнителей, и это позволяет сократить сроки ее разработки;
§ появляется возможность создавать и многократно использовать в дальнейшем библиотеки наиболее употребимых программ;
§ упрощается процедура загрузки больших программ в оперативную память, когда требуется ее сегментация;
§ возникает много естественных контрольных точек для наблюдения за осуществлением хода разработки программ, а в последующем для контроля за ходом исполнения программ;
§ обеспечивается более эффективное тестирование программ, проще осуществляются проектирование и последующая отладка.
Преимущества модульного принципа построения программ особенно наглядно проявляются на этапе сопровождения и модификации программных продуктов, позволяя значительно сократить затраты сил и средств на реализацию этого этапа.
Структурное программирование
Актуальная для начального периода развития и использования ЭВМ проблема разработки программ, занимающих минимум основной памяти и выполняющихся за кратчайшее время, в последующем в связи резким падением стоимости аппаратной части ЭВМ, значительным возрастанием их быстродействия и объемов памяти сменилась необходимостью разработки и применения принципиально новых методов составления программ. Все это нашло свое воплощение в разработке принципа структурного программирования. Одной из целей структурного программирования было стремление облегчить разработку и отладку программных модулей, а главное - их последующее сопровождение и модификацию.
В настоящее время структурное программирование - это целая дисциплина, объединяющая несколько взаимосвязанных способов создания ясных, легких для понимания программ. Эффективность применения современных универсальных языков программирования во многом определяется удобством написания с их помощью структурных программ.
CASE-технологии
За последнее десятилетие в области средств автоматизации программирования сформировалось новое направление под общим названием CASE-технологии (Computer Aided Software Engineering).
CASE-технология представляет собой совокупность средств системного анализа, проектирования, разработки и сопровождения сложных программных систем, поддерживаемых комплексом взаимоувязанных инструментальных средств автоматизации всех этапов разработки программ. Благодаря структурным методам CASE-технология на стадиях анализа и проектирования обеспечивает разработчиков широкими возможностями для различного рода моделирования, а централизованное хранение всей необходимой для проектирования информации и контроль за целостностью данных гарантируют согласованность взаимодействия всех специалистов, занятых в разработке ПО.
Технологии RAD
В начале 80-х годов появилась методология, по которой разработка программы начиналась не после завершения процесса выработки окончательных требований к ней, а как только устанавливались требования на первый, “стартовый” (пилотный) вариант прикладной программы, позволяющий начать содержательную работу по ее реализации на компьютере.
Это дало пользователю возможность, получая уже с первых шагов конкретное представление о характере реализации задачи, уточнять ее постановку. Тем самым облегчался процесс экспериментального поиска нужного решения автоматизации задачи. Благодаря тесному взаимодействию разработчика с заказчиком (пользователем) на самом ответственном этапе создания прикладных программ между ними достигалось быстрое взаимопонимание цели поставленной задачи и возможности ее автоматизации в данных конкретных условиях. Это повышало скорость разработки программ и послужило основанием для названия такой технологии RAD (Rapid Application Development - быстрая разработка программ), которая получила широкое распространение.
Data Warehouse
Другое направление разработки прикладных программных средств, олицетворяющее собой современный подход к реализации широкого круга задач для принятия управленческих решений, базируется на концепции создания специального хранилища данных (Data Warehouse). Основное отличие концепции Data Warehouse от традиционного представления баз данных заключается в следующем:
§ во-первых, в том, что актуализация данных в Data Warehouse означает не обновление элементов информации, а добавление новых элементов к уже имеющимся (что расширяет возможности проведения различного рода сравнительного анализа);
§ во-вторых, в том, что наряду с информацией, непосредственно отражающей состояние системы управления, в Data Warehouse аккумулируются и метаданные.
Метаданные (данные о данных) облегчают возможность визуального представления содержимого Data Warehouse, позволяют, "перемещаясь" по хранилищу, быстро отбирать необходимые данные для последующей обработки.
Основные типы метаданных Data Warehouse отражают:
§ структуру и содержимое хранилища;
§ соответствие между исходными и выходными данными;
§ объемные характеристики данных;
§ критерии архивирования;
§ отношения между данными;
§ информацию по кодированию;
§ интервал жизни данных и т.п.
Концепция Data Warehouse поддерживается RAD средствами разработки прикладного ПО.
Концепция Data Warehouse обеспечивает возможность разработки программных приложений для поддержки процессов принятия решений с использованием OLAP-систем.
Система OLAP (On-Line Analytical Process) предоставляет возможность разработки информационных систем, ориентированных на yна организацию многомерных баз данных и создание корпоративных сетей, а также обеспечивает поддержку Web-технологий в сетях Internet/Intranet
Успешное применение инструментальных средств OLAP-систем объясняется быстротой разработки приложений, гибкостью и широкими возможностями в области доступа к данным и их преобразования. В настоящее время на рынке ПО предлагается большое число OLAP-стем, разработчиками которых являются различные фирмы, например IBM, Informix, Microsoft, Oracle, Sybase и др.
CASE-технологии
CASE-технологии - относительно новое направление, формировавшееся на рубеже 80-х годов.
CASE-технологии делятся на две группы:
§ встроенные в систему реализации, в которых все решения по проектированию и реализации привязаны к выбранной системе явления базами данных (СУБД);
§ независимые от системы реализации, в которых все решения по проектированию ориентированы на унификацию начальных этапов жизненного цикла, средств их документирования и обеспечивают большую гибкость в выборе средств реализации.
Основное достоинство CASE-технологии - поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом.
Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляют специальные графические средства для изображения различного вида моделей:
§ диаграмм потоков данных (DFD - data flow diagrams) совместно со словарями данных и спецификациями процессов;
§ диаграмм "сущность-связь" (ERD - entity relationship diagrams), являющихся информационной моделью предметной области;
§ диаграмм переходов состояний (STD - state transition diagrams), учитывающих события и реакцию на них системы обработки данных.
Диаграммы DFD устанавливают связь источников информации с потребителями, выделяют логические функции (процессы) образования информации, определяют группы элементов данных и их хранилища (базы данных).
Описание структуры потоков данных, определение их компонентов хранятся в актуальном состоянии в словаре данных, который выступает как база данных проекта. Каждая логическая функция может детализироваться с помощью DFD нижнего уровня согласно методам исходящего проектирования.
Этими CASE-технологиями выполняются автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ) и ведение словаря данных.
Другой класс CASE-технологий поддерживает только разработку программ, включая:
§ автоматическую генерацию кодов программ на основании их спецификаций;
§ проверку корректности описания моделей данных и схем потоков данных;
§ документирование программ согласно принятым стандартам и актуальному состоянию проекта;
§ тестирование и отладку программ.
Кодогенерация программ выполняется двумя способами: создание каркаса программ и создание полного продукта. Каркас программы служит для последующего ручного варианта редактирования исходных текстов, обеспечивая возможность вмешательства программиста; полный продукт не редактируется вручную.
В рамках CASE-технологий проект сопровождается целиком, а не только его программные коды. Проектные материалы, подготовленные в CASE-технологии, служат заданием программистам, а само программирование скорее сводится к кодированию - переводу на определенный язык структур данных и методов их обработки, если не предусмотрена автоматическая кодогенерация
1.Содержание информационной технологии
2.Классификация видов информационных технологий
3.Информационная технология управления
4.Автоматизация офисной деятельности
5.Информационная технология поддержки принятия решений
6.Информационные технологии в системах организационного управления
7.Возможности использования новых информационных технологий в системах организационного управления
8.Информационные технологии в обучении
9.Системы автоматизированного проектирования
10.Технологии распределенных вычислений (РВ)+11.Распред-я обработка данных
12.Технологии объектного связывания данных
13.Общая характеристика технологии создания программного обеспечения
14.Современные методы разработки ПО
15.CASE-технологии