План курса "Разработка и стандартизация программных средств и информационных технологий" 16 часов: 3 (*4) лекции + 1(*4) зачетное занятие

Вид материалаЛекции

Содержание


Технологический фактор
Вечные вопросы и недоразумения
На стыке теории и практики
Бюджетная составляющая компьютеризации
Современные тенденции на рынке ПО
Исполнители и их роли в процессе разработки проекта
Руководство и политики воздействия
Выбор концепции и инструментов реализации проекта
Моделирование до и после разработки
Методологии разработки ПО
Пример цепочки моделей
Подобный материал:

Пермский Государственный Технический Университет

Региональный межотраслевой центр переподготовки кадров


Кафедра информационных технологий и информационного менеджмента


План курса



"Разработка и стандартизация программных средств

и информационных технологий"


16 часов: 3 (*4) лекции + 1(*4) зачетное занятие


Разработчик: Кошин В.А.


Пермь 2004

Издание №1 от 1.06.2004

Лекция №1 "До и вокруг разработки ПО"
  • О курсе (проблема ежистости).
  • Смысловое значение программных средств (ПО):

Предмет или вещь.

Работа или процесс.

Услуга или сервис.

Информация или данные.
  • Что такое данные и их отличие от программных средств:

Критерий активности.

Способность к исполнению или обработке.

*Куда относятся библиотеки?
  • А так ли необходимо все это?

Нужна ли реорганизация или повышение культуры (диспетчер)?

Нужна ли новая техника?

Нужны ли новое ПО?

Нужен ли отдел АСУ?
  • Технические и программные средства (АО и ПО):

Тенденции усиления и ослабления.

Тенденции изменения удельной стоимости рынка.

Стоимость результата и процесса.
  • Человеческий фактор:

Формулирование требований и их изменение.

Реализация системы.

Сопровождение системы.

*Узкие специалисты это хорошо?
  • Технологический фактор:

Влияние устройства исполняющего инструкции (привязка к технике).

Влияние среды окружения (привязка к системе исполнения).

Аспекты сопряжения (совместимости):

Совместимость на уровне среды.

Совместимость на уровне данных.
  • Вечные вопросы и недоразумения:

Где тут можно сэкономить?

Сколько стоит ПО?

Единица измерения стоимости?

Масштабность использования (1 … N пользователей)?

Принадлежность (имущественная и неимущественная) ПО?

Амортизация техники и программных средств (в том числе сайтов).
  • На стыке теории и практики:

Возможности разработка с чистого листа.

Возможное историческое наследие:

Горе техника.

Горе система.

Горе персонал.

Горе руководство.

Горе правила.
  • Бюджетная составляющая компьютеризации:

Доля затрат на автоматизацию/компьютеризацию?

Правило 7% в "развитие" и "не отставание".
  • Что предпочтительнее:

"Недопрограммирование" или "перепрограммирование"?

Самодостаточное ПО, библиотечное или надстроечное.

Платные и бесплатные сырки (инструменты, программы, данные).

Лицензионное или что-то другое.
  • Современные тенденции на рынке ПО:

Глобализация или локализация ПО?

Виртуальная локализация ПО и глобализация сервисов.
  • Группа содействия разработке:

Участие ЛПР.

*Критерий разработки.
  • Эффективны только узкие инструменты, но на рынке выживают конструкторы.
  • Основные методологии разработки ПО (RAD, CASE, XP).


Лекция №2 "Разработка ПО или изобретение по требованию"
  • Выводы из анализа окружения.
  • Человеческий ресурс (особенности разработчиков).
  • Отношение к ГОСТам.
  • Минимизация влияния внешних факторов.
  • Отношение к опыту:

Положительному.

Отрицательному.
  • Различия подходов к разработке:

Заплаток.

Малых программ и надстроек.

Офисных программ средней сложности.

Программ высокой сложности.

Специальных программ.

Малых (автономных) систем.

Средних (интегрируемых в среду) систем.

Крупных (задающих корпоративный стандарт) систем.
  • Исполнители и их роли в процессе разработки проекта:

Инженеры.

Постановщики.

Программисты.

Разработчики.

Операторы.

Кодеры.

Тестеры.

*Кого забыли?
  • Руководство и политики воздействия:

Руководители групп.

Руководители тем (сфер ответственности).

Руководители функций.

Руководители проекта.
  • Выбор концепции и инструментов реализации проекта:

Концепция ПП (полное разделение программ и данных).

Концепция ООП (выделение общих данных).

*Является вторичным и определяется выбранной методологией.
  • Моделирование до и после разработки:

*Является вторичным и определяется выбранной методологией.
  • Отношения к изменениям требований:

Исключительное.

Этапное.

Гибкое.
  • Методологии разработки ПО:

Отличаются отношением к жизненному циклу программной системы, который определяется стандартами ISO и содержит:

Основные процессы (приобр., поставка, разработка, сопров., экспл.)

Вспомогательные процессы (документир., обеспеч. качества, оценка …)

Организационные процессы (улучшение, обучение…)

1. Историческая (типовая).

2. RAD (Rapid Application Development) – на основе законченных циклов.

3. CASE технологии – на основе структурных моделей.

4. Методология XP – на основе гибких взаимоотношений.


Задание:

  • Общие рекомендации и выводы:

Журналы настройки.

Журналы изменений.

Журналы конфликтов.

Лекция №3 "Модельные ряды в ИТ-проектировании"
  • Выбор методологии разработки ПО.
  • Эволюция процессной организации разработки.

1976 - SDL – язык спецификации и описания функционального поведения телекоммуникационных систем.

1987 – Objectory v1.0…3.8 – система управления вариантами использования.

1986 – теоретические изыскания Уолкера Ройса, Рича Рейтмана, Гради Буча и Филиппа Крухтена.

1995-97 – ROP (Rational Objectory Process) – управление конфигурациями, развертыванием и создание среды разработки.

1995… – UML (Unified Modeling Language) – различные нотации единого стандарта.

1998… – RUP v1…5.0 (Rational Unified Process) – современная унификация процесса разработки.
  • Принципы итерации и интерактивности.




  • Выбор возможного модельного ряда.

Модели вариантов использования (+пользователи и активности).

Модели анализа (уточнение и детализация вариантов поведения).

Модели проектирования (1: статическая структура системы, подсистемы, классы и интерфейсы и 2: варианты использования в виде коопераций).

Модели реализации (компоненты и раскладка классов по компонентам).

Модель развертывания (компьютеры, узлы сети и расположение частей системы по этим узлам).

Модель тестирования (тесты для проверки вариантов использования).

Модели архитектуры.
  • Взаимосвязь перечисленных моделей:


  • Распределение итераций по фазам (этапам) разработки:



Анализ: идея в концепцию, архитектуру, стоимость (бизнес-план).

Проектирование: детальное описание архитектур и их взаимодействий.

Построение: реализация скелета работающей системы.

Внедрение: тестирование бета-версии продукта, исправления, обучение.
  • Пример цепочки моделей:

Диаграмма вариантов использования.



Выделение классов анализа (граничные классы, управляющий класс, класс сущности).



Диаграмма реализации вариантов в структуре классов анализа.



Диаграмма кооперации в модели анализа.




Диаграмма классов (реализации варианта «Снять деньги со счета»).



Диаграмма последовательности (часть реализации варианта «Снять деньги со счета»).




Диаграмма группировки и реализации подсистем.



Диаграмма реализаций классов или подсистем.



Модель тестирования описывается словесно в текстовом виде.


Зачетное задание: