23.        Что такое качество программного обеспечения с Вашей точки зрения?

24.        Что такое тестирование программных продуктов?

7.2. Примерный перечень вопросов к зачету 

Жизненный цикл и этапы разработки программных продуктов. Модели и процессы управления проектами. программных средств Техническое задание на разработку программного продукта. Примеры оформления технического задания. Технологичность. Схемы разработки программ. Нисходящая и восходящая разработка. Способы декомпозиции предметной области. Модульный подход. Принцип вертикального управления. Структурное программирование. Событийное программирование. Архитектура программного обеспечения. Проектирование при процедурном подходе. Проектирование при объектном подходе. Классификация интерфейсов программных продуктов. Элементы пользовательских интерфейсов. Типы и формы диалога. Сценарий диалога. Способы взаимодействия человека и ЭВМ. Методы разработки. Методы тестирования программных модулей. Тестирование системы в целом. Методы отладки. Удостоверение качества и сертификация программных продуктов.

7.3. Примерная тематика рефератов


Научные проблемы и направления научных исследований Процесс развития технологии проектирования программных ситем. Технологии быстрой разработки программных систем. Проектировние приложений с использованием технологии быстрой разработки ПО. Средства коммандной разработки ПО.

       

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

НЕ нашли? Не то? Что вы ищете?


Методические указания к лабораторным занятиям

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

Зачёт выставляется в соответствии с балльно-рейтинговой системой оценки знаний студентов, в том случае, если обучающийся в семестре набрал не менее 61 балла (из 100). При несоответствии требованиям балльно-рейтинговой системы оценки знаний (совокупное количество баллов за семестр не достигает порога 61 балл) студент сдаёт зачёт во время сессии традиционно, в соответствии с расписанием.

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

Самостоятельная работа может быть организована в виде:

    Письменные задания поискового характера

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

    Решение творческих задач (творческие проекты) и задач повышенного уровня сложности

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

    Реферирование

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

9.  Учебная практика по дисциплине

Не предусмотрена

Приложение 1

План лекций

Лекция 1. О предмете изучения

Что такое программная инженерия? Назовите дату зарождения программной инженерии как отдельной науки. В чем отличие программной инженерии от информатики? В чем отличие программной инженерии от системотехники? Приведите примеры дисциплин информатики и программной инженерии (дисциплины не путать с учебными предметами). Что такое ПО? Перечислите характеристики ПО по Бруксу и кратко характеризуйте каждую. C какими иными видами человеческой деятельности соотносится создание ПО в данном разделе?

Задания

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

Лекция 2. Процесс разработки программного обеспечения

Вопросы

Что такое процесс создания ПО? Расскажите о причинах отсутствия универсального процесса разработки ПО. Почему возможно и целесообразно стандартизировать процесс на уровне компании? Что такое стандартный и конкретный процессы и как они соотносятся? Чем отличаются между собой текущий и конкретный процессы? Какие методологии разработки ПО поддерживают понятие конкретного процесса и какими средcтвами? Дайте определение деятельности по совершенствованию процесса. В чем главная трудность совершенствования процессов в компаниях? Перечислите основные направления улучшения процесса. Расскажите о стратегии organization pull к внедрению инноваций. Приведите примеры. Расскажите о стратегии technology push к внедрению инноваций. Приведите примеры. Расскажите о достоинствах, недостатках, а также возможных рисках этих стратегий. Что такое модель процесса? Что такое фаза процесса? Что такое вид деятельности? Почему нельзя отождествлять фазы и виды деятельности? Когда и по каким причинам это все таки происходит на практике? В чем достоинства водопадной модели? В чем ее историческая роль? В чем ее недостатки? Как в рамках водопадной модели предполагается работать с рисками? Почему водопадная модель до сих пор используется? Объясните, почему эту модель удобно использовать в оффшорных проектах с почасовой оплатой? Чем виток спиральной модели отличается от фазы в водопадной модели? Приведите пример последовательности витков спиральной модели. Опишите условия, при которых спираль завершается. Расскажите про второе и третье измерение спиральной модели. Опишите различные секторы витка спирали. В чем достоинства и недостатки спиральной модели? Каковы ограничения этой модели? Как в рамках этой модели предполагается работать с рисками?

Задания

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

Лекция 3. Рабочий продукт, дисциплина обязательств, проект

Вопросы

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

Задания

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

Лекция 4. Архитектура ПО

Вопросы

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

Лекция 5. Управление требованиями

Вопросы

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

Задания

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

Необходимо реализовать программную систему для call-центра крупного банка, обслуживающего частных лиц. Банк хочет начать предоставлять новый вид услуг – по телефону. Кроме того, система должна уметь учитывать рабочее время операторов центра (дифференцированно, собирая информацию о том, какой вид работ, а также простои сколько занимают времени). Система также должна быть интегрирована с различными электронными справочниками и базами данных, содержать информацию о постоянных клиентах, маршрутизировала бы их к "своим" операторам (которые с ними общались и их помнят). Часть функций система должны быть доступны через Интернет, так как менеджеры call-центра должны иметь доступ к текущей статистики, находясь в любой точке мира, а также в дороге (банк – сильно распределен, его call-менеджеры участвуют в большом количестве международных деловых встреч, конференций и пр.) Система должна также обеспечивать максимальную защищенность данных от несанкционированного доступа – ее данные являются жизненно важными, критичными для банка, так как содержат информацию о финансах его клиентов, среди которых есть самые богатые люди мира.

Лекция 6. Конфигурационное управление

Вопросы

Приведите примеры проблем в проектах, где нет хорошего конфигурационного управления. Неформально объясните, какие задачи выполняет конфигурационное управление в проекте. Дайте формальное определение конфигурационному управлению. Расскажите об известном противоречии - абсолютной сохранности и удобного доступа. Приведите пример артефактов проекта, которые могут "подпадать" под конфигурационное управление. Приведите пример артефактов проекта, которые могут не "подпадать" под конфигурационное управление. подпадающих Что является главным артефактом конфигурационного управления и почему. Перечислите основные функции версионного контроля. Что такое управление сборками? Что такое непрерывная интеграция. В каких известных вам методологиях она используется и почему (на ваш взгляд). Расскажите о понятии baseline.

Задания

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

Лекция 7. Тестирование

Вопросы

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

Задания

Как на ваш взгляд концепция тестирования системы методом черного ящика связан с типичной организацией команды тестеровщиков и ее взаимодействия с командой разработчиков? В ответе учтите различные стратегии, принятые в разных известных вам методологиях разработки ПО. Ответ нарисуйте в виде карты памяти. Нарисуйте в виде карты памяти взаимодействие между различными видами тестирования. Нарисуйте пример жизненного цикла ошибки.

Лекция 8. Диаграммные техники в работе со знаниями

Вопросы

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

Лекция 9. MSF

Вопросы

Расскажите об истории разработки MSF. Расскажите об основных принципах MSF. В чем главные новшества MSF? Чем отличаются версии MSF 3.х от 4.х? Что такое IT-решение? Что такое управление компромиссами? Приведите примеры. Расскажите о модели команды MSF. В чем ее свобода и где она заканчивается?

Задания

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

Лекция 10. CMMI

Вопросы

Что такое CMMI? Постарайтесь не описывать CMMI, а в нескольких предложениях его определить, дать компактное и точное определение. Кратко расскажите историю развития стандарта CMMI. Чем CMMI отличается от CMM? Перечислите и кратко охарактеризуйте уровни CMMI.

Лекция 11. "Гибкие" (agile) методы разработки

Вопросы

Расскажите о принципах "гибких" методов разработки. Какие, по вашему, существуют ограничения в применении гибких методов? Перечислите известные вам "гибкие" методологии разработки ПО. Расскажите о принципах XP. С чем, на ваш взгляд, могут возникнуть трудности при практическом внедрении XP? Расскажите о главных идеях Scrum. При этом не начинайте длинный рассказ про всю методологию в целом, а также не перечисляйте ее сонные артефакты. Дайте качественное описание из вне. Расскажите, как устроена самоорганизуемсоть команды в Scrum? Как методология ограждает свободу команды и какие выгоды из этого извлекаются для проекта? Расскажите об обязанностях Scum-матера. Расскажите об обязанностях Product Owner. Расскажите о задачах ежедневных встреч.

Лекция 12. Обзор технологии Microsoft Visual Studio Team System (VSTS)

Вопросы

Расскажите об основных составляющих продукта MS VSTS. Расскажите о функциональности TFS. Расскажите о различных клиентских приложениях MS VSTS. Расскажите о средствах поддержания сборки в MS VSTS. Расскажите о различных изданиях Visual Studio и их возможностях относительно MS VSTS. Расскажите о самом простом клиенте TFS и тех функциональных возможностях, которые он обеспечивает. Расскажите о возможностях пакета Team Foundation Power Tools. Это клиентская или северная компонента? Расскажите об инсталляции MS VSTS.

Задания

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

Лекция 13. VSTS: управление элементами работ (Work Items)

Вопросы

Что такое элемент работы? Приведите примеры различных видов элементов работы. Какие есть еще артефакты в процессе, развернутом в MS VSTS? Как они взаимосвязаны с элементами работы? Что такое тип элемента работы, что в нем определяется? Расскажите о реквизитах элемента работы. Как и где задается жизненный цикл элемента работы? Какие программные продукты при этом используются? Расскажите об импорте/экспорте элементов в MS Excel и Project: зачем это нужно, какие практические выгоды это дает. Расскажите о связи элементов работы и отчетов.

Лекция 14. VSTS: конфигурационное управление

Вопросы

Перечислите особенности системы контроля версий TFS, отсутствующие в других подобных средствах. Расскажите об Отслеживание изменений отдельных файлов. Расскажите о правилах внесения изменений. Расскажите об управлении ветками. Расскажите о сохранении без внесения. Расскажите о связи средств управления сборкой TFS и MS Build. Расскажите об описаниях сборок (build definition). Расскажите о результатах сборок (build results). Расскажите о том, как создается проект в MS Build. Расскажите о запуске процесса сборки. Расскажите об анализе результатов сборки. Расскажите об управлении процессом сборки. Расскажите об управлении политикой очистки сборок.

Лекция 15. VSTS: тестирование

Вопросы

Подробно разберите и прокомментируйте жизненный цикл ошибки в шаблоне процесса MSF for Agile. Расскажите о том, как создается описание ошибки. Опишите связь изменений исходных текстов ПО и ошибок. Расскажите о системе автоматических оповещений в TFS. Расскажите о целях и задачах модульного тестирования. Как модульные тесты, созданные разработчиками, могут использоваться в дальнейшем? Какие альтернативы MS VSTS существуют для автоматической поддержки модульного тестирования для Visual Studio? Расскажите о поддержке модульного тестирования в MS VSTS. Какая часть среды реализует эту функциональность? Расскажите о поддержке работы с пакетами тестов в MS VSTS. Расскажите о подходе тестирования пользовательского интерфейса Capture & Playback. В чем его трудности? Расскажите о том, как эти трудности решаются в случае тестирования интерфейсов Web-приложений. Расскажите о поддержке Capture & Playback тестирования интерфейсов Web-приложений в MS VSTS.

Лекция 16. VSTS: поддержка различных моделей процесса

Вопросы

Зачем нужны разные шаблоны процессов в MS VSTS? Что они определяют, что задают, и как ограничивают разработчиков. И как им помогают? Какова на ваш взгляд, трудоемкость создания собственного шаблона процесса "с нуля"? С какой темой курса связана шаблоны процессов в MS VSTS? Найдите термин из курса, который в точности может заменить термин "шаблон процесса". Перечислите и охарактеризуйте разделы описания шаблона процесса. Сделайте краткий обзор известных вам шаблонов процесса MS VSTS. Опишите шаблон MSF for Agile Software Development. Опишите шаблон Scrum. Чем они отличаются?

Приложение 2

Темы семинарских занятий

Семинар 1. Разработка состава и содержания документов системного проекта сложного комплекса программ.

Семинар 2. Разработка спецификации требований к проекту сложного комплекса программ.

Семинар 3. Разработка требований к характеристикам качества проекта сложного комплекса программ.

Семинар 4. Анализ и сравнение требований к характеристикам качества трех типов программных средств.

Семинар 5. Разработка документов технико-экономического обоснования проекта сложного программного средства на базе экспертных оценок модели СОСОМО.

Семинар 6. Разработка проекта контракта с заказчиком на обеспечение жизненного цикла сложного комплекса программ.

Семинар 7. Разработка группы планов обеспечения жизненного цикла и распределения ресурсов проекта сложного комплекса программ.

Семинар 8. Анализ и оценка рисков при разработке сложного комплекса программ.

Семинар 9. Анализ и оценивание корректности программ по покрытию тестами их структуры.

Семинар 10. Разработка комплекта документов и структуры базы данных для управления конфигурацией проекта комплекса программ.

Семинар 11. Подготовка проекта комплекта эксплуатационных документов для конкретного, сложного программного продукта на основе стандартизированных шаблонов.

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

Приложение 3

Вопросов к зачету

Жизненный цикл и этапы разработки программных продуктов. Модели и процессы управления проектами. программных средств Техническое задание на разработку программного продукта. Примеры оформления технического задания. Технологичность. Схемы разработки программ. Нисходящая и восходящая разработка. Способы декомпозиции предметной области. Модульный подход. Принцип вертикального управления. Структурное программирование. Событийное программирование. Архитектура программного обеспечения. Проектирование при процедурном подходе. Проектирование при объектном подходе. Классификация интерфейсов программных продуктов. Элементы пользовательских интерфейсов. Типы и формы диалога. Сценарий диалога. Способы взаимодействия человека и ЭВМ. Методы разработки. Методы тестирования программных модулей. Тестирование системы в целом. Методы отладки. Удостоверение качества и сертификация программных продуктов.

Приложение 5

Литература

О чем не напишут в книгах по Delphi. – СПб.: БХВ-Петербург, 2008. – 576 с. (Б-ка программиста №1. – 2008, № 12). Рихтер Дж., Кларк Дж. Д. Программирование серверных приложений для Microsoft Windows 2000. Мастер класс: Пер. с англ./Дж. Рихтер, Дж. Д. Кларк.- СПб.: Русская Редакция, 2001. – 592с. Ли В.-М. Профессиональное программирование гаджетов WindowsVista & 7: пер. с англ. – СПб.: БХВ-Петербург, 2010. – 576 с. (Б-ка программиста № 2. – 2010, № 3). Меняев и основы программирования: учеб. пособие по спец. «менеджмент организаций» / . – 3-е изд., стер. – М.: Омега – Л, 2007.  – 458с. – (Высшее техническое образование). Микрюков и программирование: учеб. пособие / . – Ростов н/Д:  Феникс, 2007. – 304 с. – (Среднее профессиональное образование). Turbo Pascal. Программирование на языке высокого уровня: учеб. для вузов. – М., 2006. – 544 с. азработка защищенных приложений на Visual и Visual C#.NET. Учебный курс Micrоsoft. – М.: Издательство «Русская Редакция», 2007. – 688с. Семакин программирования: учеб. для сред. Проф. образования / , . – 5-е изд. – М.: Академия, 2006. – 432 с. Ревич приемы программирования на Delphi. – СПб.: Петербург, 2008. – 560 с. Microsoft Windows 7 для пользователей. – СПб.: БХВ-Петергбург, 2010. – 56 с. Фокс Дж.. Программное обеспечение и его разработка. - М.: Мир, 1989. - 360 с. ИСО 9000-3: ИСО 9001 Общее руководство качеством и стандарты по обеспечению качества, часть 3: Руководящие указания по применению ИСО 9001 при разработке, поставке и обслуживанию программного. Международная организация стандартов, Женева, 1991. ИСО/МЭК 9126 Информационные технологии. Оценка продукции программного обеспечения. Характеристики качества и инструкции по их применению. Международная организация стандартов, Женева, 1991

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3