Модуль 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)
- 
Группы процессов
- 
Внедрение технологических и организационных инноваций
- 
Причинно-следственный анализ и разрешение проблем