Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6506

.pdf
Скачиваний:
0
Добавлен:
21.11.2023
Размер:
808.89 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Васильева О.Ю.

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

Учебно-методическое пособие по подготовке к лекциям, практическим занятиям

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

для обучающихся по дисциплине «Программная инженерия» по направлению подготовки 09.03.03 Прикладная информатика профиль Прикладная информатика в экономике

Нижний Новгород

2022

УДК 004.9

Васильева О.Ю. / Программная инженерия: учебно-методическое пособие / О.Ю. Васильева; Нижегородский государственный архитектурно-строительный университет – Нижний Новгород: ННГАСУ, 2022. – 21 с.– Текст: электронный.

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

.

Учебно-методическое пособие предназначено для обучающихся в ННГАСУ по дисциплине «Программная инженерия» по направлению подготовки 09.03.03 Прикладная информатика, направленность (профиль) Прикладная информатика в экономике.

© О.Ю. Васильева, 2022 © ННГАСУ, 2022

2

Оглавление

1.

Общие положения ..........................................................................................................................

4

 

1.1

Цели изучения дисциплины и результаты обучения ...........................................................

4

 

1.2

Содержание дисциплины........................................................................................................

4

 

1.3

Порядок освоения материала .................................................................................................

5

2.

Методические указания по подготовке к лекциям .....................................................................

7

 

2.1

Общие рекомендации по работе на лекциях ........................................................................

7

 

2.2

Общие рекомендации при работе с конспектом лекций .....................................................

7

 

2.3

Контрольные вопросы ............................................................................................................

7

3.

Методические указания по подготовке к практическим занятиям ...........................................

9

 

3.1

Общие рекомендации по подготовке к практическим занятиям........................................

9

 

3.2

Примеры заданий для практических занятий.......................................................................

9

4.

Методические указания по выполнению курсовой работы.....................................................

11

 

4.1

Цели выполнения курсовой работы ....................................................................................

11

 

4.2

Общие требования к оформлению курсовой работы.........................................................

11

 

Требования к содержанию отчета .............................................................................................

11

 

Требования к оформлению текстовых документов .................................................................

13

 

4.3

Темы курсовых работ............................................................................................................

13

 

4.4

Требования к именованию файлов при сдаче отчета в электронном виде......................

17

5.

Методические указания по организации самостоятельной работы ........................................

18

 

5.1

Общие рекомендации для самостоятельной работы .........................................................

18

 

5.2

Темы для самостоятельного изучения ................................................................................

19

3

1. Общие положения

1.1 Цели изучения дисциплины и результаты обучения

Основными целями освоения учебной дисциплины «Проектирование программного обеспечения» являются:

-изучение современных инженерных принципов (методов) создания надежного, качественного программного обеспечения, удовлетворяющего предъявляемым к нему требованиям;

-формирование у студентов понимания необходимости применения данных принципов программной инженерии.

В процессе освоения дисциплины студент должен:

Знать: основные принципы системного подхода и математические методы формализации решения прикладных задач; стандарты оформления технической документации; основные средства графического моделирования ПО, среды разработки и СУБД; основные технические средства коммуникации между сотрудниками ИТ-проекта; правовые нормы, определяющие вопросы владения программами и базами данных.

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

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

Данная дисциплина позволит студентам не только систематизировать полученные теоретические знания, укрепить исследовательские навыки, но и даст возможность ориентироваться в новом предметном поле экономической информатики.

1.2 Содержание дисциплины

Материал дисциплины сгруппирован по следующим разделам:

1.Введение в программную инженерию.

История и основные понятия программной инженерии. Программная инженерия как инженерная дисциплина. Требования к специалистам в области разработки программного обеспечения

2.Программное обеспечение (ПО).

Процесс разработки ПО.Определение программного обеспечения, его структура. Процесс разработки программного обеспечения, модели процесса, модели жизненного цикла программного обеспечения

3.Управление программным проектом.

Основные понятия. Компетенции менеджера проекта. Планирование проекта. Управление командой проекта, рисками, конфигурациями. Системы управления проектами.

4.Оценка при планировании программного проекта.

4

Планирование проекта. Оценка предварительной стоимости проекта, ресурсов.

5.Разработка и анализ требований.

Терминология, типы спецификации требований, классификация требований. Методологии и стандарты, регламентирующие работу с требованиями. Свойства требований. Работа с требованиями. Документирование требований, верификация и валидация.

6.Управление требованиями.

Статические и динамические требования. Планирование управления требованиями. Управление изменениями требований.

7.Архитектура ПО. Проектирование ПО.

Структурирование программной системы. Архитектурные паттерны. Моделирование управления. Модульная декомпозиция. Методы и модели проектирования. Выбор архитектуры.

8.Основы объектно-ориентированной разработки систем.

Зачем моделировать ПО. Фазы разработки. Основные сведения о языке UML. Определение требований. Построение диаграммы прецедентов. Объекты. Взаимодействие объектов. Диаграммы последовательности и кооперации. Классы. Диаграммы классов. Диаграммы видов деятельности. Состояния, переходы и условия. Диаграммы состояний. Пакеты и диаграммы развертывания.

9.Унифицированный процесс (UP) – объектно-ориентированный процесс разработки. Основные понятия. Технологические процессы. Артефакты, исполнители, виды деятельности. Фаза исследования, фаза уточнения, фаза построения, фаза развертывания.

Процессы RUP, ICONIX, Scrum.

10.Тестирование ПО.

Виды тестирования. Организация процесса тестирования программного обеспечения. Объектно-ориентированное тестирование программного обеспечения

11.Обеспечение качества ПО.

Определение качества. Цели обеспечения качества программного обеспечения. Факторы качества, стандарты обеспечения качества. Процесс управления качеством. Планирование качества. Контроль качества. Верификация и валидация программного обеспечения.

12.Технико-экономическое обоснование проектов программных средств.

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

1.3 Порядок освоения материала

Материал дисциплины изучается в соответствии с порядком, определённым в Таблице 1:

5

Таблица 1

Порядок освоения дисциплины

Раздел дисциплины

№№ предшествующих

разделов

 

 

 

 

 

1

Введение в программную инженерию

-

 

 

 

2

Программное обеспечение (ПО). Процесс разработки ПО.

1

 

 

 

3

Управление программным проектом.

1,2

 

 

 

4

Оценка при планировании программного проекта

1-3

 

 

 

5

Разработка и анализ требований

1-4

 

 

 

6

Управление требованиями

1-5

 

 

 

7

Архитектура ПО Проектирование ПО.

1-6

 

 

 

8

Основы объектно-ориентированной разработки систем

1-7

 

 

 

9

Унифицированный процесс (UP) – объектно-ориентированный

1-8

 

процесс разработки

 

 

 

 

10

Тестирование ПО

1-9

 

 

 

11

Обеспечение качества ПО

1-10

 

 

 

12

Технико-экономическое обоснование проектов программных

1-11

 

средств.

 

 

 

 

6

2. Методические указания по подготовке к лекциям

2.1 Общие рекомендации по работе на лекциях

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

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

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

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

2.2Общие рекомендации при работе с конспектом лекций

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

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

Вслучае неясности по тем или иным вопросам необходимо задавать преподавателю уточняющие вопросы. Следует ясно понимать, что отсутствие вопросов без обсуждения означает в большинстве случаев неусвоенность материала дисциплины.

2.3Контрольные вопросы

1.Дайте определение программной инженерии. Назовите основные отличия от инженерной науки.

2.Что такое ПО? Перечислите основные свойства ПО.

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

4.Перечислите модели процесса и дайте их характеристику.

5.Перечислите модели жизненного цикла ПО, их преимущества и недостатки.

6.Разработка требований. Классификация требований. Свойства требований. Методологии и стандарты, регламентирующие работу с требованиями.

7.Расскажите о типовом цикле работы с требованиями. Перечислите методы выявления требований.

8.Документирование требований. Перечислите типовые ошибки при работе с требованиями.

7

9.Что включает процесс управления требованиями.

10.Дайте определение архитектуры ПО. Назовите три типа базисной деятельности по созданию архитектуры.

11.Дайте описание известных архитектурных паттернов. Назовите их преимущества и недостатки.

12.Дайте характеристику проблемно-зависимых моделей архитектуры.

13.Перечислите и кратко прокомментируйте разные виды диаграмм UML.

14.Перечислите и кратко охарактеризуйте различные способы контроля качества ПО.

15.Дайте определение тестирования. Что входит в искусственные, специально заданные условия воздействия на систему, которые имеются в виду в определении тестирования? В чем важность концепции теста?

16.Дайте определение тестирования. Перечислите преимущества и недостатки автоматического и «ручного тестирования».

17.Дайте определение тестирования. Перечислите и кратко охарактеризуете виды тестирования.

18.Унифицированный процесс разработки ПО. Основные принципы унифицированного процесса.

19.Дайте краткую характеристику основных составляющих унифицированного процесса: технологических процессов, исполнителей, артефактов.

20.Технологические процессы и виды деятельности.

21.Технологический процесс управления требованиями. Основной принцип. Определение требований. Артефакты. Исполнители. Виды деятельности.

22.Технологический процесс анализа. Основная цель. Модель анализа. Артефакты. Исполнители. Виды деятельности.

23.Технологический процесс проектирования. Основная цель. Модели проектирования и развертывания. Артефакты. Исполнители. Виды деятельности.

24.Технологический процесс реализации. Основная цель. Модель реализации. Артефакты. Исполнители. Виды деятельности.

25.Технологический процесс тестирования. Основная цель. Модель тестирования. Артефакты. Исполнители. Виды деятельности.

26.Перечислите основные возможности объектно-ориентированных Case-средств.

27.Расскажите о принципах «гибких» методов разработки. Перечислите известные вам «гибкие» методологии разработки ПО.

28.Расскажите о принципах XP. С чем, на ваш взгляд, могут возникнуть трудности при практическом внедрении XP?

8

3. Методические указания по подготовке к практическим занятиям

3.1Общие рекомендации по подготовке к практическим занятиям

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

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

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

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

3.2Примеры заданий для практических занятий

Пример № 1: Изучение нормативной базы по работе с требованиями.

1.Изучить методику составления спецификаций требований к программному обеспечению, рекомендуемую Институтом Инженеров по Электротехнике и Радиоэлектронике (IEEE).

2.Создать конспект по разделам SRS.

Пример № 2: Разработка требований

1.Проанализируйте требование Руководства Заказчика: «АСУ должна обеспечивать поддержку эффективной системы продаж».

2.Дайте ответы на вопросы:

Является ли это требованием?

К какому уровню оно относится?

Пример № 3: Проектирование интерфейса пользователя. Оценка качества пользовательского интерфейса.

Рассмотрите сущностный сценарий и реальный сценарии Получение Денег модели Use Case для интерфейса банкомата, представленные в Таблице 2.

9

 

 

 

Таблица 2

 

 

 

 

 

сущностного сценарий

 

реальный сценарий

 

 

 

1.

идентификация пользователя;

1. вставка карточки

 

 

 

2.

выбор действия;

2. ввод PIN-кода

 

 

 

3.

изъятие денег.

3. нажатие клавиши продолжения транзакции

 

 

 

 

 

 

4.

выбор действия и нажатие клавиши ввода

 

 

 

 

 

 

5.

ввод суммы

 

 

 

 

 

 

6.

нажатие клавиши подтверждения суммы

 

 

 

 

 

 

7.

изъятие карточки

 

 

 

 

 

 

8.

получение денег

 

 

 

 

Вычислите СЭ. При необходимости предложите пути улучшения интерфейса. Какое значение примет СЭ после улучшения?

Пример №: 4 Оценка при планировании программного проекта.

Выполните предварительную оценку проекта «ПО для рабочей станции дизайнера автомобиля»:

1.Вычислить ожидаемую LOC-оценку реализации функции.

2.Определить удельную стоимость, производительность и затраты на реализацию каждой функции

Пример №5: Разработка ПО на основе унифицированного процесса.

Задача: разработать оконный интерфейс пользователя, который будет использоваться прикладными программами.

1.Построить необходимые диаграммы с помощью UML.

1.Оценить качество проектирования

1. Метрики объектноориентированных систем1. Для классов, представленных в Таблице 3 нарисовать диаграмму классов и вычислить метрики Чидамбера-Кемерера

 

 

 

 

 

Таблица 3

 

 

 

 

 

 

 

Класс

Атрибуты

Операции

Примечание

 

 

 

 

 

 

 

 

 

Публичные

Приватные

Публичные

Приватные

 

 

 

 

 

 

 

 

 

А

-

pa1, pa2

opA1(),

-

 

 

 

 

 

opA2()

 

 

 

 

 

 

 

 

 

 

В

-

pb1

opB1(),

-

наследник А

 

 

 

 

opB2()

 

 

 

 

 

 

 

 

 

 

С

-

pc1, pc2

opC1(),

-

наследник А

 

 

 

 

opC2()

 

 

 

 

 

 

 

 

 

 

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]