Модуль 2
Основы проектирования информационных систем
Проектирование информационных систем
Основы проектирования информационных систем
-
История проектирования программного обеспечения
-
Настоящее и будущее проектирования программного обеспечения
-
Эволюция языков программирования
-
Зрелость процесса разработки информационных систем
-
Уровни CMM/CMMI
Начало 70-х годов – “Software Crisis” (Кризис ПО)
-
Отставание разработки от графика
-
Превышение сметы расходов
-
Требуемый функционал не реализован в полном объёме
-
Низкая производительность ИС
-
Качество ПО не устраивает потребителей
-
Высокие затраты на сопровождение ПО в крупных организациях (от 60% до 80% затрат на ИС)
Проектирование ПО
-
Проектирование ПО (program engineering – инженерия ПО) – совокупность инженерных методов и средств создания ПО
-
Фундаментальная идея – проектирование ПО является формализуемым процессом, который можно изучать и совершенствовать
История проектирования ПО
-
70-е и 80-е годы – появление и развитие структурного подхода, систематизация и стандартизация процессов создания ПО
-
Середина 80-х годов – появление объектно-ориентированного подхода
-
90-е годы переход к промышленному, сборочному способу создания ПО
-
Начало XXI века – переход на полностью объектно-ориентированные платформы, становление Интернета, как универсальной информационной системы
Цели проектирования ПО
-
Соответствие получаемой ИС требованиям заказчика на момент внедрения
-
Разработка должна осуществляться в срок и в рамках бюджета
-
Качество получаемых ИС должно удовлетворять требованиям
-
Должна быть обеспечена интеграция разрабатываемой ИС в существующую инфраструктуру
-
Получаемые ИС должны быть масштабируемыми и легко сопровождаемыми
Категории современных проектов ИС
-
Мелкие – команда менее 10 человек, продолжительность от 3 до 6 месяцев
-
Средние – команда от 20 до 30 человек, продолжительность 1-2 года
-
Крупные – команда от 100 до 300 человек, продолжительность 3-5 лет
-
Гигантские – команда от 1000 до 2000 человек, продолжительность 7-10 лет
Нерешённые проблемы
-
Недостаточное понимание задач пользователей
-
Трудность отслеживания изменений требований
-
Трудность сопровождения
-
Позднее обнаружение ошибок
-
Недостаточное качество
-
Низкая производительность
-
Трудность управления командой разработчиков и процессом разработки
Успешность проектов ИС
Улучшение динамики происходит за счёт роста мелких и средних проектов
Основные причины краха проектов ИС
-
Нечёткая и неполная формулировка требований
-
Частое изменение требований
-
Недостаточное привлечение пользователей при проектировании
-
Сложность сопровождения
Трудности сопровождения ИС
-
На стадии сопровождения «выплывают» ошибки проектирования
-
Накопление проблем
-
Расползание границ проекта
-
Нарастание программного кода и усложнение внесения в него изменений
-
Текучесть кадров
-
Прекращение использования платформы приводит к необходимости переноса ПО
Эволюция языков программирования
-
1GL – программирование на машинном языке
-
2GL – всевозможные ассемблеры
-
3GL – процедурные языки общего назначения, такие как Бейсик, Кобол, Фортран, Паскаль, Си, Ада
-
4GL – базирующиеся на словарях языки программирования, позволяющие увеличить производительность разработки систем, когда программы пишутся так, что состоят из команд прикладного пакета (обычно написанного на языках 2GL и/или 3GL)
-
Программы на языках СУБД FoxBase, Paradox
-
Языки запросов (SQL) и отчетов
-
5GL – языки искусственного интеллекта
-
Пролог (от программирование на основе логики) декларативный язык программирования для задач искусственного интеллекта, обработки естественных языков
GL – Generation Language – Язык уровня
Применение языков программирования в ИС
-
1GL – применяются в микропрограммах
-
2GL – применяются во встраиваемых системах, системах реального времени
-
3GL – наиболее часто применяемые языки для описания логики и управления ИС
-
4GL – применяются для работы с данными и управления готовой ИС
-
5GL – почти не применяются
Зрелось процесса разработки ИС
-
Модель CMM – Capability Maturity Model, модель технологической зрелости организации
-
Разработана SEI – Software Engineering Institute Институт техники программного обеспечения Карнеги-Мелона в 1991 году
-
Выпущено семейство моделей: – SW-CMM для программных продуктов, SE-CMM – для системной инженерии, Acquisition CMM – для закупок, People CMM – для управления людскими ресурсами, ICMM – для интеграции продуктов
-
Модель CMMI – Capability Maturity Model Integration объединяет ранее выпущенные модели, устраняет ошибки и учитываюет требования международных стандартов, разработана в 2002 году
-
Пять уровней зрелости организации (по возрастанию): Initial, Repeatable, Defined, Managed и Optimizing
-
SQA (Software Quality Assurance) – гарантия качества ПО, заключается в формировании численных показателей качества ПО (метрик)
Уровень 1 – начальный (Initial)
Уровень 2 – воспроизводимый (Repeatable)
-
Группы процессов
-
Управление требованиями
-
Управление конфигурацией
-
Планирование проекта
-
Мониторинг и контроль проекта
-
Управление контрактами
-
Измерения и анализ
-
Обеспечение качества процесса и продукта
Уровень 3 – Определённый (Defined)
-
Группы процессов
-
Спецификация требований
-
Интеграция продукта
-
Верификация
-
Аттестация
-
Стандартизация процессов организации
-
Обучение
-
Интегрированное управление проектом
-
Управление рисками
-
Анализ и принятие решений
Уровень 4 – Управляемый (Managed)
-
Группы процессов
-
Управление производительностью и продуктивностью
-
Количественное управление проектом
Уровень 5 – Оптимизируемый (Optimizing)
-
Группы процессов
-
Внедрение технологических и организационных инноваций
-
Причинно-следственный анализ и разрешение проблем