Ответы зачёт Программная инженерия
.docxОсновные понятия дисциплины «Введение в программную инженерию»
ОТВЕТ НА КАЖДЫЙ ИЗ ВОПРОСОВ ДОЛЖЕН СОСТОЯТЬ ИЗ 1-3 ПРЕДЛОЖЕНИЙ.
-
Программный продукт
Программный продукт - это программа, которую любой потенциальный пользователь может запускать на различных платформах, тестировать, исправлять и развивать.
-
Программная система. Основная причина сложности современных ПС
Программная система (программный комплекс) - это набор взаимодействующих программ, согласованных по функциям и форматам и составляющих полное средство для решения больших задач.
-
Чтобы стать частью ПС синтаксис и семантика ввода и вывода программы должна удовлетворять точно определенным интерфейсам.
-
Программа должна быть протестирована на только отдельно, но и вместе с другими компонентами ПС во всех сочетаниях.
-
Причем с большой долей вероятности при совместном тестировании выявляются ошибки взаимодействия уже отлаженных компонентов.
-
Компонент ПС стоит, по крайней мере, втрое дороже, чем автономная программа с теми же функциями.
-
Следовательно, разработка компонента ПС, рассматриваемой как продукт, будет стоить, по крайней мере, в девять раз дороже, чем разработка аналогичной по функциям программы.
-
Программное обеспечение
Программное обеспечение (ПО) - совокупность программ, файлов конфигурации, необходимых для установки данных программ и документации, которая описывает организацию данного ПО и порядок работы пользователя с ПО (Государственный стандарт 19781-90 и международный стандарт ISO/IEC 2382/1-93)
-
Программный проект. Критерии успешности программного проекта.
Программный проект - это временное предприятие, предназначенное для создания уникальных ПП.
-
У любого проекта есть определенное начало и завершение проекта.
-
Завершение наступает, когда достигнуты цели проекта или признано, что цели проекта не могут быть достигнуты или исчезла необходимость в проекте.
-
Время жизни конечного программного продукта может существенно превышать время жизни программного проекта.
-
В состав программного проекта входят как люди (заинтересованные стороны), так и необходимые материальные ресурсы.
-
Программная инженерия
Программная инженерия - система инженерных принципов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах.
-
Case-система
CASE-системы (Computer Aided Software Engineering) - утилиты объединённые в системы автоматизированного конструирования ПО, в целях совместного применения.
Набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.
-
Жизненный цикл ПО. Перечислите этапы жизненного цикла ПО
Жизненный цикл ПО это период времени с момента принятия решения о необходимости создания ПО до момента его полного изъятия из эксплуатации.
Этапы жизненного цикла
-
Подготовка (сбор требований)
-
Планирование (оценка, расписание)
-
Моделирование (анализ, проектирование)
-
Конструирование (кодирование, интеграция, тестирование)
-
Развертывание (поставка, внедрение и сопровождение)
-
Дайте краткую характеристику этапу «Подготовка»
Подготовка (сбор требований, анализ бизнес-процессов, разработка концепции, постановка задачи). На этапе подготовки осуществляется активное взаимодействие между фирмой-разработчиком ПО и фирмой-заказчиком, заключается контракт, собираются и формулируются требования, определяющие характеристики и функции разрабатываемого ПО.
-
Дайте краткую характеристику этапу «Планирование»
Планирование. На этапе планирования определяется
-
объем работ,
-
риск работ,
-
необходимые трудозатраты,
-
рабочие задачи
-
план-график работ
-
Дайте краткую характеристику этапу «Анализ требований»
В определенной степени анализ требований можно рассматривать как формулировку выводов, следующих из результатов этапа сбора требования. На этом этапе формулируются функции, интерфейс и рабочие характеристики разрабатываемого ПО. В число таких характеристик могут входить скорость выполнения, объем потребляемой памяти, гибкость применения и др.
-
Дайте краткую характеристику этапу «Проектирование»
Основная задача проектирования состоит в разработки архитектуры ПО.
-
Архитектура ПО
Архитектура ПО определяет структуру ПС (задает ее разбиение на компоненты, связи между ними, их интерфейсы), а также основные принципы проектирования и развития системы.
-
Модульное дерево ПС
В качестве модульной структуры программы принято использовать древовидную структуру, называемую модульное дерево ПС. В вершинах такого дерева размещаются программные модули, а стрелки указывают их подчиненность. В тексте модуля, из которого исходит стрелка, должна быть ссылка на тот модуль, на который она показывает. Другими словами, каждый модуль может обращаться только к подчиненным ему модулям.
-
Дайте краткую характеристику этапу «Кодирование»
Кодирование заключается в переводе конструкций с языка проектирования на язык программирования.
-
Дайте краткую характеристику этапу «Интеграция»
Интеграция программной системы – это процесс объединения отдельных (протестированных) модулей с целью получения системы, требуемой проектом.
-
Дайте краткую характеристику этапу «Тестирование»
Тестирование, отладка и оптимизация. На этом этапе производится всесторонняя проверка программ, цель которой убедиться, что ПО является качественным.
-
Перечислите основные общие правила тестирования.
Основные принципы:
-
Следует избегать тестирования программы автором;
-
Должны быть известны предполагаемые результаты, до начала тестирования;
-
Необходимо досконально изучать все результаты, полученные в ходе тестирования;
-
Необходимо проверять действия программы на неверных данных и на неожиданные побочные эффекты;
-
Определите три основных способа отладки.
-
По знанию системы:
-
«Чёрный Ящик» (Black Box);
-
«Белый Ящик» (White Box).
-
-
По степени изолированности компонентов:
-
Модульное (Unit);
-
Интеграционное (Integration);
-
Системное (System/End-to-End).
-
По объекту тестирования:
-
Функциональное (Functional);
-
Нефункциональное (Non-Functional).
-
-
Валидация ПО
Валидация (Validation) – проверка продукта, сервиса или системы, на соответствие заявленным требованиям со стороны заказчика
-
Верификация ПО
Верификация (Verification) – оценка продукта, сервиса или системы, на соответствие принятым внутренним правилам и требованиям.
-
Дайте краткую характеристику этапу «Внедрение»
Внедрение - это процесс запуска программы в промышленную эксплуатацию.
Характерен для программ, разрабатываемых на заказ.
Разработчик устанавливает продукт на компьютеры заказчика (инсталлирует его) и проверяет весь его рабочий цикл.
Если программа работает устойчиво, начинается этап обучения пользователей.
-
Дайте краткую характеристику этапу «Сопровождение»
Сопровождение - это процесс поддержки внедренной программы, который включает:
оказание консультаций, внесение необходимых изменений в программу, устранение обнаруженных ошибок.
-
Стандарт
Стандарт - документ, в котором устанавливаются характеристики продукции, правила осуществления и характеристики процессов производства, эксплуатации, хранения, перевозки, реализации и утилизации, выполнения работ или оказания услуг. Стандарт также может содержать требования к терминологии, символике, упаковке, маркировке или этикеткам и правилам их нанесения».
-
Метрика
Метрика - это совокупность измеряемой величины, её интерпретации и метода измерений.
-
Техническое задание
Техническое задание представляет собой документ, в котором сформулированы основные цели разработки, требования к программному продукту, определены сроки и этапы разработки и регламентирован процесс приемно-сдаточных испытаний.
-
Стороны, заинтересованные в качестве ПП
В качестве программной продукта заинтересованы три стороны: заказчик, пользователь и разработчик.
-
Качество
Качество - совокупность свойств и характеристик изделий или услуг, обеспечивающих удовлетворение потребностей.
-
Характеристики пользовательского качества ПП
-
Эффективность (Effectiveness)
-
Производительность (Productivity)
-
Безопасность (Safety)
-
Соответствие потребностям (Satisfaction)
-
Система управления качеством
Система действий, обеспечивающих разработку качественного продукта на всех этапах, начиная от замысла до эксплуатации готового продукта, называется системой управления качеством.
-
6 групп характеристик качества ПП стандарта ISO/IEC 9126-1
-
Функциональность (Functionality)
-
Надежность (Reliability)
-
Удобство использования (Usability)
-
Эффективность (Efficiency)
-
Сопровождаемость (Maintainability)
-
Мобильность (Portability)
-
Интероперабельность ПП
Способность к взаимодействию (Интероперабельность, Interoperability) - способность к взаимодействию с другими системами. (Например, совместимость форматов данных, совместимость справочников БД , совместимость протоколов передачи данных, технология Drag&drop, использование формата XML, позволяющего создавать удобные протоколы взаимодействия)
-
Юзабилити ПП
Юзабилити ПП - это простое и удобное использование ПП.
-
Защищенность ПП
Защищенность (Security) - защита информации и данных для исключения неавторизированного доступа людей или систем к чтению и модификации данных. (например, защита от неавторизированного доступа к системе/данным, ролевая система защиты, шифрование данных, административные меры ), Защита может быть активной (защита от перебора логина/пароля, ролевой доступ и т.д.) и пассивной (сообщения о выполнении операций с банковской картой, отображение времени последнего посещения сайта и т.п.)
-
Восстанавливаемость ПП
Восстанавливаемость (Recoverability) - возможность восстановить данные после ошибки и время и усилия необходимые для этого. Для заказчика важно, чтобы при возникновении в системе сбоя, он был устранен в приемлемое для него время, а дынные сохранились бы приемлемом состоянии.
-
Отказоустойчивость ПП
Устойчивость к ошибке (Fault tolerance) - обеспечение качественной работы даже при наличии ошибок. В любой системе есть ошибки, либо ошибки могут возникать во внешних системах.
-
Эффективность ПП
Эффективность ПП (Efficiency) – это отношение уровня услуг, предоставляемых программным продуктом пользователю при заданных условиях, к объему используемых ресурсов.
-
Адаптируемость ПП
Адаптируемость (Adaptabi1ity) - возможность адаптации продукта к новым условиям работы только средствами, предусмотренными в продукте.
-
Транзакция
Транзакция – группа операций, рассматриваемая пользователем как единое целое, иными словами, это группа операторов, выполняемая либо целиком либо не выполняемая совсем.
-
Дайте характеристику однократного подхода к разработке ПО
-
Однократный подход. Данная стратегия представляет процесс разработки как линейную последовательность этапов жизненного цикла ПО.
-
Дайте характеристику инкрементной стратегии разработки ПО
-
Прежде всего полностью выполняется сбор требований.
-
Оставшаяся часть разработки выполняется в виде последовательности версий, причем каждая следующая версия реализует дополнительные по отношению к предыдущей возможности ПО.
-
Дайте характеристику эволюционной стратегии разработки ПО
-
Разработка выполняется в виде последовательности версий, как и при инкрементной стратегии.
-
В начале процесса определены не все требования к ПО, они уточняются в результате разработки версий.
-
Прототип
Прототипом обычно называют действующие ПО, реализующее отдельные функции и внешние интерфейсы разрабатываемого ПО. Процесс разработки прототипа называют прототипированием.
-
Тяжеловесные и облегченные процессы.
Тяжеловесные – полностью прогнозируемые документированные процессы, при которых порядок спланированных работ не должен меняться.
Облегченные – гибкие, адаптивные процессы, которые представляются собой компромисс между слишком строгой дисциплиной разработчиков и полным ее отсутствием.
-
ХР-процесс
Экстремальное программирование.
ХР- процесс ориентирован на группы малого и среднего размера, строящие программное обеспечение в условиях неопределенных или быстро изменяющихся требований.
ХР- группу образуют до 10 сотрудников, которые размещаются в одном помещении.
-
UML
UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования программного обеспечения.
-
Диаграмма вариантов использования
Диаграмма вариантов использования в UML — диаграмма, отражающая отношения между актёрами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне.
-
Диаграмма активностей
Диаграмма деятельности (диаграмма активностей) — UML-диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий англ. action, соединённых между собой потоками, которые идут от выходов одного узла к входам другого.
-
Диаграммы последовательностей и кооперативные диаграммы
Диаграмма последовательности — диаграмма, на которой показано взаимодействие объектов (обмен между ними сигналами и сообщениями), упорядоченное по времени, с отражением продолжительности обработки и последовательности их проявления.
Кооперативные диаграммы отражают ту же самую информацию, что и диаграммы Последовательности. Однако делают они это по-другому и с другими целями.
-
Диаграммы классов.
Диаграмма классов — диаграмма, демонстрирующая классы системы, их атрибуты, методы и взаимосвязи между ними.
-
Основные этапы развития программной инженерии
-
Стихийное программирование (<1960г)
-
Структурное программирование (60-70гг)
-
Объектный подход (80-90гг)
-
Компонентный подход и CASE-технологии (середина 90х-настоящее время)