Лекции (по Власову Сергею Васильевичу)

[ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ Власов Сергей Васильевич]

(начиная с 2-ой лекции . до этого - http://www.vensim.com/download.html)

Курс по сути дела рассматривает разработку программного продукта группой людей . Ищется путь правильной организации разработки ПО группой программистов и других специалистов.
Часто приходится приспосабливать продукт под стандарты заказчика. Сама организация обладает неким жизненным циклом - ваш продукт должен вписываться в этот жизненный цикл (например
он должен быть способен расширяться вместе с расширением организации)
Для жизненного цикла ПО существуют несколько стандартов , например - гост 34.601-90 , и ISO 12207

гост 34.601-90 описывает порядок создания АС (автоматизированной системы)

ISO/IEC 12207 / комментарии =
в исо процессы делят на основные , вспомогательные и организационные.
ОСНОВНЫЕ
- приобретение = это действия и задача заказчика. (например приобретения спец оборудования для выполнения проекта.)
- поставка = некто просто ищет людей, которым нужны информационные системы и тех кто их может создать - и связывает первых и вторых контрактом, зарабатывая на разнице.
- эксплуатация = правила сопровождения развёрнутой автоматизированной системы .
- сопровождение - напр. исправление ошибок.
ОРГАНИЗАЦИОННЫЕ
---------------------------------

модель жизненного цикла ПО - структура , определяющая последовательность выполнения и взаимосвязи различных процессов , действий и задач.

МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ПО

- Каскадная
- Итеративная - эволюционный подход.
- Спиральная

Каскадная модель -
ступенчатая модель развития - люди до конца понимают - что именно они фотят сделать, другие же модели появляются в связи с тем, что требования заказчика носят абстрактный
характер и точно опрделить всё заранее не получается.

порядок каскадной модели =
планирование->формирование требования->анализ и проектирование (очень важный этап так как потом идёт начало создания системы - определяем
дизайн системы)-> конструирование (пишем код)->интеграция и тестирование(после чего - мы получаем продукт)->поддержка и эксплуатация.

любой код который вы пишите должен был написан так чтобы он мог быть использован повторно и легко интегрирован в другую систему.
система ценится больше, если она является переносимой - именно этим и определяется, в конечном итоге популярность языков программирования.

Основной проблемой каскадной модели состоит в предположении , вышеописанные этапы проходятся один раз. то есть плохо учитывается доработка.

Два неясных момента при проектировании системы это - 1) СТОИМОСТЬ 2) ВРЕМЯ ВЫПОЛНЕНИЯ.

ИТЕРАЦИОННАЯ МОДЕЛЬ поддерживает несколько "проходов" по циклу программного обеспечения -причём по любому отрезку,
все итерации направлены на уменьшение неопределённости
ТО есть параметры проекта - стоимость . число людей необходимое для выполнения в срок или срок выполнения при текущем составе команды, а также прочие параметры
определяются во время выполнения проекта.

СПИРАЛЬНАЯ МОДЕЛЬ РАЗВИТИЯ (Boehm 1988)
задачей модели является минимизация рисков -
1) дефицит специалистов.
2) нереальные сроки и бюджет.
существуют формальные системы оценки стоимости проекта , вообще это целое направление в деятельности. связанной с разработкой ИС
3) Реализация несоответствующей функциональности.
она может появиться по разным причинам, например по причине изменения требований, а может быть и некая атака на систему - например, некие закладки (незадокум. функции), написанные
программистами. Поэтому тестирование ПО оказывается очень важно.

4) Разработка неправильного пользовательского интерфейса.
- пользователь тоже хочет жить и жить удобно.

5) "золотая сервировка", перфекционизм (стремление получить идеальную систему. что , строго говоря, не возможно - а само стремление пагубно влияет на сроки исполнения)
, ненужная оптимизация и оттачивание деталей.
6) Непрекращающийся поток изменений.
- возможна такая среда, где эти изменения - и есть сама система, а это уже опасно для проекта....

7) Нехватка информации о внешних компонентов, определяющих окружение системы или вовлечение в интеграцию.
неизвестно с какой системой будет продукт взаимодействовать в будущем

8) Недостатки в работах, выполняемых внешними , по отношению к разрабатываемому проекту, ресурсами.
- например, несовершенство использования стороннего ПО.

9) недостаточная производительность получаемой системы.
- dos-атака создаёт подобный недостаток.

10) "Разрыв" в квалификации специалистов разных областей знаний.
- у вас есть классный аналитик, который понимает всё и умеет строить диаграммы, а программисты не умеют читать диаграммы и т.д. -одним словом, команда должна быть более-менее
одного уровня.

РАЗВИТИЕ ПО СПИРАЛИ показано в виде круга - движение начинается из центра влево. и окружность всё растёт. - каждый новый прототип строится на базе старого и т.д.

витков спирали может быть сколько угодно - мы проходим все этапы каскадной модели, но каждый раз на более высоком уровне.

[тестирование - целая наука , тестировать надо не только на выполнение запланированных функций, но и на выполнения не запланированных , а также на безопасность в целом.]
-----------------------------------------------------------------------

MBACE - модель

Методологии разработки ИС

Методология=модель+ роли (люди)

Наиболее распространё1нные методологии =

RUP (рациональный унифицированный процесс);
EUP (предприятия(разработки проекта, видимо) унифицированный процесс );
MSF (базовое решение от мелкософт) ;
Agile (гибкое проектирование - гибкое проектирование. - на основе этой методологии создано несколько других.)
--------------------конец 3-ей лекции---------------------------------------------------------------------------