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

Ответы зачёт Программная инженерия

.docx
Скачиваний:
156
Добавлен:
11.06.2015
Размер:
38.06 Кб
Скачать

Основные понятия дисциплины «Введение в программную инженерию»

ОТВЕТ НА КАЖДЫЙ ИЗ ВОПРОСОВ ДОЛЖЕН СОСТОЯТЬ ИЗ 1-3 ПРЕДЛОЖЕНИЙ.

  1. Программный продукт

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

  1. Программная система. Основная причина сложности современных ПС

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

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

  • Программа должна быть протестирована на только отдельно, но и вместе с другими компонентами ПС во всех сочетаниях.

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

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

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

  1. Программное обеспечение

Программное обеспечение (ПО) - совокупность программ, файлов конфигурации, необходимых для установки данных программ и документации, которая описывает организацию данного ПО и порядок работы пользователя с ПО (Государственный стандарт 19781-90 и международный стандарт ISO/IEC 2382/1-93)

  1. Программный проект. Критерии успешности программного проекта.

Программный проект - это временное предприятие, предназначенное для создания уникальных ПП.

  • У любого проекта есть определенное начало и завершение проекта.

  • Завершение наступает, когда достигнуты цели проекта или признано, что цели проекта не могут быть достигнуты или исчезла необходимость в проекте.

  • Время жизни конечного программного продукта может существенно превышать время жизни программного проекта.

  • В состав программного проекта входят как люди (заинтересованные стороны), так и необходимые материальные ресурсы.

  1. Программная инженерия

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

  1. Case-система

CASE-системы (Computer Aided Software Engineering) - утилиты объединённые в системы автоматизированного конструирования ПО, в целях совместного применения.

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

  1. Жизненный цикл ПО. Перечислите этапы жизненного цикла ПО

Жизненный цикл ПО это период времени с момента принятия решения о необходимости создания ПО до момента его полного изъятия из эксплуатации.

Этапы жизненного цикла

  • Подготовка (сбор требований)

  • Планирование (оценка, расписание)

  • Моделирование (анализ, проектирование)

  • Конструирование (кодирование, интеграция, тестирование)

  • Развертывание (поставка, внедрение и сопровождение)

  1. Дайте краткую характеристику этапу «Подготовка»

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

  1. Дайте краткую характеристику этапу «Планирование»

Планирование. На этапе планирования определяется

  • объем работ,

  • риск работ,

  • необходимые трудозатраты,

  • рабочие задачи

  • план-график работ

  1. Дайте краткую характеристику этапу «Анализ требований»

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

  1. Дайте краткую характеристику этапу «Проектирование»

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

  1. Архитектура ПО

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

  1. Модульное дерево ПС

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

  1. Дайте краткую характеристику этапу «Кодирование»

Кодирование заключается в переводе конструкций с языка проектирования на язык программирования.

  1. Дайте краткую характеристику этапу «Интеграция»

Интеграция программной системы – это процесс объединения отдельных (протестированных) модулей с целью получения системы, требуемой проектом.

  1. Дайте краткую характеристику этапу «Тестирование»

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

  1. Перечислите основные общие правила тестирования.

Основные принципы:

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

  • Должны быть известны предполагаемые результаты, до начала тестирования;

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

  • Необходимо проверять действия программы на неверных данных и на неожиданные побочные эффекты;

  1. Определите три основных способа отладки.

  • По знанию системы:

    • «Чёрный Ящик» (Black Box);

    • «Белый Ящик» (White Box).

  • По степени изолированности компонентов:

    • Модульное (Unit);

    • Интеграционное (Integration);

    • Системное (System/End-to-End).

  • По объекту тестирования:

    • Функциональное (Functional);

    • Нефункциональное (Non-Functional).

  1. Валидация ПО

Валидация (Validation) – проверка продукта, сервиса или системы, на соответствие заявленным требованиям со стороны заказчика

  1. Верификация ПО

Верификация (Verification) – оценка продукта, сервиса или системы, на соответствие принятым внутренним правилам и требованиям.

  1. Дайте краткую характеристику этапу «Внедрение»

Внедрение - это процесс запуска программы в промышленную эксплуатацию.

Характерен для программ, разрабатываемых на заказ.

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

Если программа работает устойчиво, начинается этап обучения пользователей.

  1. Дайте краткую характеристику этапу «Сопровождение»

Сопровождение - это процесс поддержки внедренной программы, который включает:

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

  1. Стандарт

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

  1. Метрика

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

  1. Техническое задание

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

  1. Стороны, заинтересованные в качестве ПП

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

  1. Качество

Качество - совокупность свойств и характеристик изделий или услуг, обеспечивающих удовлетворение потребностей.

  1. Характеристики пользовательского качества ПП

  • Эффективность (Effectiveness)

  • Производительность (Productivity)

  • Безопасность (Safety)

  • Соответствие потребностям (Satisfaction)

  1. Система управления качеством

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

  1. 6 групп характеристик качества ПП стандарта ISO/IEC 9126-1

  • Функциональность (Functionality)

  • Надежность (Reliability)

  • Удобство использования (Usability)

  • Эффективность (Efficiency)

  • Сопровождаемость (Maintainability)

  • Мобильность (Portability)

  1. Интероперабельность ПП

Способность к взаимодействию (Интероперабельность, Interoperability) - способность к взаимодействию с другими системами. (Например, совместимость форматов данных, совместимость справочников БД , совместимость протоколов передачи данных, технология Drag&drop, использование формата XML, позволяющего создавать удобные протоколы взаимодействия)

  1. Юзабилити ПП

Юзабилити ПП - это простое и удобное использование ПП.

  1. Защищенность ПП

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

  1. Восстанавливаемость ПП

Восстанавливаемость (Recoverability) - возможность восстановить данные после ошибки и время и усилия необходимые для этого. Для заказчика важно, чтобы при возникновении в системе сбоя, он был устранен в приемлемое для него время, а дынные сохранились бы приемлемом состоянии.

  1. Отказоустойчивость ПП

Устойчивость к ошибке (Fault tolerance) - обеспечение качественной работы даже при наличии ошибок. В любой системе есть ошибки, либо ошибки могут возникать во внешних системах.

  1. Эффективность ПП

Эффективность ПП (Efficiency) – это отношение уровня услуг, предоставляемых программным продуктом пользователю при заданных условиях, к объему используемых ресурсов.

  1. Адаптируемость ПП

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

  1. Транзакция

Транзакция – группа операций, рассматриваемая пользователем как единое целое, иными словами, это группа операторов, выполняемая либо целиком либо не выполняемая совсем.

  1. Дайте характеристику однократного подхода к разработке ПО

  • Однократный подход. Данная стратегия представляет процесс разработки как линейную последовательность этапов жизненного цикла ПО.

  1. Дайте характеристику инкрементной стратегии разработки ПО

  • Прежде всего полностью выполняется сбор требований.

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

  1. Дайте характеристику эволюционной стратегии разработки ПО

  • Разработка выполняется в виде последовательности версий, как и при инкрементной стратегии.

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

  1. Прототип

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

  1. Тяжеловесные и облегченные процессы.

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

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

  1. ХР-процесс

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

ХР- процесс ориентирован на группы малого и среднего размера, строящие программное обеспечение в условиях неопределенных или быстро изменяющихся требований.

ХР- группу образуют до 10 сотрудников, которые размещаются в одном помещении.

  1. UML

UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования программного обеспечения.

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

Диаграмма вариантов использования в UML — диаграмма, отражающая отношения между актёрами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.

  1. Диаграмма активностей

Диаграмма деятельности (диаграмма активностей) — UML-диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий англ. action, соединённых между собой потоками, которые идут от выходов одного узла к входам другого.

  1. Диаграммы последовательностей и кооперативные диаграммы

Диаграмма последовательности — диаграмма, на которой показано взаимодействие объектов (обмен между ними сигналами и сообщениями), упорядоченное по времени, с отражением продолжительности обработки и последовательности их проявления.

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

  1. Диаграммы классов.

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

  1. Основные этапы развития программной инженерии

  • Стихийное программирование (<1960г)

  • Структурное программирование (60-70гг)

  • Объектный подход (80-90гг)

  • Компонентный подход и CASE-технологии (середина 90х-настоящее время)