Лекции по "Технологии разработки программного обеспечения"

Автор работы: Пользователь скрыл имя, 12 Июня 2012 в 11:59, курс лекций

Описание работы

1. Программное обеспечение. Классификация. Системное и прикладное ПО. 2
2. Вспомогательные средства и методы управления проектом. 3
3. Типы ПО: автономное, встроенное, реального времени, сетевое. 5
4. Распределённые команды, экстремальное программирование. Метод отбраковки. 5
5. Исторический и современный взгляд на разработку ПО. Влияние структурного и объектно-ориентированного программирования. 6
6. Анализ требований. С- и D-требования. Описание требований. Приоритет и контроль требований. 8
7. Роли и артефакты. Требования к процессу, проекту, продукту и персоналу. 8
8. Архитектура программного обеспечения. Выбор архитектуры. Классификация архитектур. 10
9. Жизненный цикл ПО. Разновидности процесса разработки. 11

Файлы: 1 файл

ekzamen.docx

— 1.00 Мб (Скачать файл)

1. Программное обеспечение. Классификация. Системное и прикладное ПО. 2

2. Вспомогательные средства и методы управления проектом. 3

3. Типы ПО: автономное, встроенное, реального времени, сетевое. 5

4. Распределённые команды, экстремальное программирование. Метод отбраковки. 5

5. Исторический и современный взгляд на разработку ПО. Влияние структурного и объектно-ориентированного программирования. 6

6. Анализ требований. С- и D-требования. Описание требований. Приоритет и контроль требований. 8

7. Роли и артефакты. Требования к процессу, проекту, продукту и персоналу. 8

8. Архитектура программного обеспечения. Выбор архитектуры. Классификация архитектур. 10

9. Жизненный цикл ПО. Разновидности процесса разработки. 11

10. Инструментальные средства разработки архитектур. Метрики для выбора архитектуры. 13

11. Унифицированный процесс разработки ПО (USDP). 14

12. Проектирование ПО. Компонентное моделирование информационных систем. 16

13. Метрология и качество ПО. Метрики. 16

14. Модульное программирование. Реализация программного кода. 17

15. Процесс контроля качества. Методы «белого» и «черного» ящика. Инспектирование. 17

16. Понятия отладки и тестирования. Стратегия проектирования тестов. Комплексное тестирование. 20

17. Критерии качества ПО. План контроля качества. Верификация и валидация. 20

18. Документация, создаваемая и используемая в процессе разработки программных средств. 22

19. Индивидуальный и коллективный  процессы разработки ПО. 23

20. Разработка технического задания на создание автоматизированных систем. 24

21. Модель зрелости возможностей (СММ). 24

22. Процесс приемки-сдачи ПО в эксплуатацию и необходимая документация. 26

23. Управление проектом: создание, продвижение и сопровождение программного продукта. Основные параметры: стоимость, функциональность, качество, расписание. 26

24. Сопровождение ПО. 27

25. Управление персоналом проекта. Варианты организации персонала и управление взаимодействием. 27

26. Архитектуры, основанные на потоках данных. 30

27. Создание структуры ответственности. Матричная организация. 32

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

29. Выявление и уменьшение рисков. Анализ рисков. Расчет приоритета рисков. 36

30. Виртуальные машины. Репозиторные архитектуры. 38

31. Инструментальные средства разработки и поддержки. CASE-инструментарий для автоматизированной разработки ПО. 41

32. Уровневые архитектуры. Смешанные архитектуры. 42

33. Прототипирование. Оценка необходимости покупки приложения или инструмента. 43

34. Документация по сопровождению программных средств. 44

35. Методы оценки продукта. Оценка трудозатрат и длительности проекта. 44

36. Система стандартов, регламентирующая требования к программной документации. 44

 

 

1. Программное обеспечение. Классификация. Системное и прикладное ПО.

Программное обеспечение (ПО) — совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ.

Также — совокупность программ, процедур и правил, а также документации, относящихся к функционированию системы обработки данных.

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

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

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

Операционные  системы,  как правило,  управляют ресурсами (процессором и памятью), процессами (задачами и потоками) и устройствами. Сложность организации операционных систем обуславливается степенью  автоматизации и достигаемой эффективности процессов управления. Так мультипрограммные операционные  системы существенно сложнее однопрограммных,  что хорошо видно на примере MS DOS и WINDOWS.

Оболочки (например, NORTON COMMANDER)  в свое  время появились для организации более удобного интерфейса пользователя с файловой системой MS DOS. Современные оболочки, такие,  как FAR,  используют  для обеспечения пользователю  привычной среды при работе  с файловой системой.

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

Прикладные  программы и системы ориентированы на  решение конкретных пользовательских задач.

Различают пользователей:

• разработчиков программ;

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

Разработчики  программ  используют  специальные  инструментальные  средства,  такие  как компиляторы,  компоновщики,  отладчики,  которые  последнее  время  обычно  интегрируют  в системы  программирования  и среды  разработки.  Современные среды программирования, например, Delphi, Visual C++,  реализуют визуальную  технологию  разработки  программных продуктов и предоставляют программистам огромные  библиотеки  компонентов,  которые можно включать  в свою  разработку. К этой же  группе  относят инструментальные  комплексы  создания баз  данных,  такие как Access, FoxPro, Oracle,  средства  создания  интеллектуальных  систем, например, экспертных, обучающих, систем контроля знаний и т. д. Последнее достижение в этом направлении - CASE-средства  разработки  программного  обеспечения,  такие как ERwin, BPwin, Paradigm Plus, Rational Rose и др.

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

Продукты общего назначения используют разные группы пользователей. К ним можно отнести текстовые редакторы,  например, WinWord,  электронные таблицы типа Excel,  графические редакторы, информационные системы общего назначения, например, карта Москвы, программы-переводчики, и т. п.

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

• системы  автоматизации  проектирования,  ориентированные  на  различные  технические области;

• системы-тренажеры,  например,  тренажер  для  отработки  действий  пилотов  в  аварийной ситуации;

• бухгалтерские системы, например. 1C;

• издательские системы, например, PageMaker, QuarkXpress;

• профессиональные графические  системы, например, Adobe Illustrator, PhotoShop, CorelDraw и т. п.;

• экспертные системы и  т. д.

Системы автоматизации производственных процессов отличаются от профессиональных тем, что они ориентированы на  пользователей разных  профессий,  связанных единым производственным процессом.

Обучающие  программы  и  системы  в соответствии  со  своим названием предназначены для обучения, например, иностранным языкам, правилам дорожного движения и т. п.

К развлекающим относят игровые программы, музыкальные программы, опять же информационные системы, но с тестами развлекающего характера, например гороскопы и т. п.

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

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

2. Вспомогательные средства и методы  управления проектом.

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

 

 

Распределенные  и международные команды

Вполне естественно, что  менеджеры стараются извлечь  пользу из таланта программистов, живущих по всему миру. Это не только снижает затраты на производство программного обеспечения, но и позволяет улучшить его качество. Почасовая оплата удаленных программистов незначительна по сравнению с проблемами связи, возникающими ввиду физической отдаленности. Интернет сделал отдаленность менее проблематичным фактором. С другой стороны, возрастает потребность в более продолжительном взаимодействии с заказчиком. Для многих приложений общение «лицом к лицу» становится просто необходимым. Достоинства и недостатки конфигураций команд с удаленными участниками заключаются в следующем.

1. Расположение в одном офисе:

+ идеально для общения  в группе;

  • продуктивность работы не оптимальна.

2. Расположение в одном городе, но в разных офисах:

достаточная степень общения.

3. Расположение в одной стране, но в разных городах:

  • трудности с постоянным общением;
  • + одинаковая культура.

4. Расположение в разных странах:

  • общение затруднено;
  • культурные связи проблематичны;

+ продуктивность работы  оптимальна.

Экстремальное программирование

Экстремальное программирование — это методика управления проектом и разработкой, предложенная Кентом Беком. Этот раздел включен в книгу для ознакомления читателя с разнообразными методами и техниками, использовавшимися в течение долгого времени. Кроме того, в нем излагаются дополнительные идеи по использованию экстремального программирования в различных обстоятельствах. Интересными особенностями экстремального программирования являются упор на непрерывную взаимосвязь как внутри организации разработчиков, так и с заказчиком, радикальная простота (использование наиболее простого решения) и парное программирование. При парном программировании разработчики работают в парах за компьютерами, тем самым исключается изоляция. Сравнение некоторых особенностей экстремального и неэкстремального программирования приводится в табл. 2.19.

Мы уже рассматривали  некоторые их этих приемов в других контекстах. Например, Министерство обороны США давно имеет своих представителей в командах, выполняющих крупные заказы. Экстремальное программирование идет дальше, делая представителя заказчика одним из участников разработки (автор однажды был таким участником). В принципе, это отличная идея, хотя она влечет некоторые юридические проблемы, которые не всякая организация может легко решить. Возможно, самой характерной чертой метода Бека является программирование в парах, при котором разработчики работают только вдвоем за одним компьютером. Фактически это своеобразная форма непрерывного инспектирования. Андерсон и другие сообщают превосходные результаты в своем исследовании применения экстремального программирования в корпорации Крайслер.

Информация о работе Лекции по "Технологии разработки программного обеспечения"