1 of 28

МЕТОДЫ И СРЕДСТВА ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

Маглинец Юрий Анатольевич

2 of 28

ВВЕДЕНИЕ В ПРОЕКТИРОВАНИЕ И РАЗРАБОТКУ АИС

МСПИС

03.02.2017 г.

Лекция 1

3 of 28

Программная инженерия (Software Engineеring)

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

4 of 28

Поэтапное становление методов и инструментов программной инжинерии

  • Программирование в машинных кодах
  • Программирование на ассемблере
  • Программирование на ЯВУ
  • Тестирование
  • Проектирование
  • Управление

5 of 28

Доля успешных проектов в области IT

0%

100%

31%

53%

16%

1994

40%

33%

27%

28%

46%

26%

23%

49%

28%

1995

1998

2000

Провалены Испытали большие проблемы Успешные

28%

2001

31%

2003

35%

2004

* - по данным The Standish Group International, �"CHAOS 2005", "Extreme Chaos", "Chaos Report", 1994-2004

6 of 28

Доля успешных проектов на современном этапе

7 of 28

Факторы успеха

8 of 28

Знания о программной инженерии

  • Эффективность разработчиков в зависимости от квалификации колеблется в отношении 1:10
  • Знания разработчиков ПО отличаются:
    • большим разнообразием,
    • несогласованностью,
    • разнородностью.
  • Мировая компьютерная общественность пришла к необходимости систематизировать знания в области программной инженерии

9 of 28

SWEBOK - Свод знаний о программной инженерии

© Ю.A. Маглинец

9

Введение

  • Американское объединение компьютерных специалистов ACM (Association for Computing Machinery)
  • Компьютерный союз при институте инженеров по электронике и электротехнике (IEEE Computer Society).
  • Образовали Software Engineering Coordinating Committee (SECC)

SoftWare Engineering Body of Knowledge

10 of 28

Цели, поставленные комитетом SECC

  • определить необходимый набор знаний и рекомендуемые практики;
  • определить этические и профессиональные стандарты;
  • определить учебную программу для студентов, аспирантов и продолжающих обучение.

11 of 28

Вехи развития SWEBOK

  • Ядро знаний SWEBOK 1999

  • IEEE Guide to SWEBOK® 2004

  • Сергей Орлик - ОсновыПрограммной Инженерии(по SWEBOK) http://swebok.sorlik.ru/

  •  SWEBOK V3.0

12 of 28

Ядро знаний SWEBOK-2004

  • Является основополагающим документом, консолидирующим мнения ведущих IT-специалистов о структуре знаний в области SE
  • Cодержит описание 10 областей знаний
  • Каждой области сопоставлено стандартное описание, включая:
    • понятийный аппарат,
    • методы и средства,
    • инструменты поддержки инженерной деятельности.

13 of 28

Структура SWEBOK - 2004

  1. Software requirements – требования к ПО
  2. Software design – проектирование
  3. Software construction – конструирование ПО
  4. Software testing – тестирование
  5. Software maintenance – эксплуатация (поддержка) ПО
  6. Software configuration management – конфигурационное управление
  7. Software engineering management – управление в программной инженерии
  8. Software engineering process – процессы программной инженерии
  9. Software engineering tools and methods – инструменты и методы
  10. Software quality – качество программного обеспечения

14 of 28

SWEBOK – 2004�Обзор смежных дисциплин

  • Computer engineering
  • Computer science
  • Management
  • Mathematics
  • Project management
  • Quality management
  • Systems engineering

15 of 28

Новые области знаний в �SWEBOK v3.0

  • Software Engineering Professional Practice  - описание критериев профессионализма и компетентности;
  • Software Engineering Economics -экономические аспекты разработки ПО;
  • Computing Foundations - основы вычислительных технологий в разработке ПО;
  • Mathematical Foundations - базовые математические концепции в разработке ПО;
  • Engineering Foundations - основы инженерной деятельности.

16 of 28

Основные области SWEBOK

17 of 28

Дополнительные

области SWEBOK

18 of 28

Определение автоматизированной информационной системы

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

© Ю.A. Маглинец

18

Введение

19 of 28

Проектирование АИС

Проектирование

АИС

требования

спецификация

20 of 28

Разработка АИС

Разработка

АИС

Заказ на разработку

Внедренная АИС

21 of 28

Процессы разработки приложений

  • Процесс водопада
  • Инкрементный процесс
  • Спиральный процесс

  • RUP - универсальный процесс
  • Процесс MSF
  • Гибкие процессы

22 of 28

Каскадный процесс�У. Ройс, 1970

Анализ

Проекти-рование

Реализация

Интеграция

Внедрение

23 of 28

Инкрементный процесс

  • Инкремент = приращение.
  • Разработка начинается с предоставления набора требований и
  • реализации системы путем последовательного конструирования и фиксации промежуточных продуктов (1, …, N) системы,
  • постепенно приближающейся к итоговой системе

24 of 28

Схема инкрементной модели

25 of 28

Спиральный (итерационный) процесс. Б.Боэм, 1982

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

26 of 28

Процесс, проект, продукт�

  • Под процессом (бизнес-процессом) принято понимать частично упорядоченную совокупность шагов, преобразующих входы процесса в его выходы в интересах достижения поставленной цели.
  • При разработке АИС цель процесса – в формировании или расширении существующей АИС
  • Продукт (в данном контексте программный продукт) является выходом процесса.
  • Проект является организующей сущностью, обеспечивающей завершение процесса в условиях имеющихся ограничений (персонал, финансы, время и т.д.).

27 of 28

Методология разработки ПО

  • Американский словарь Miriam-Webster:

"ряд связанных между собой методов или техник".

  • Оксфордский словарь:

"изучение методов".

 

  • Толковый словарь русского языка" Ожегова:

"принципы и способы организации теоретической и практической деятельности" ;

"совокупность методов, применяемых в какой-либо науке".

  • А.Коберн:

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

28 of 28

Компоненты методологии разработки ПО (А. Коберн)