- •42)Процесс усовершенствования является процессом установления, оценки, измерения, контроля и улучшения любого процесса жизненного цикла программных средств.
- •41) Iso12207. Процесс верификации
- •Iso12207. Процесс обеспечения качества
- •Iso12207. Процесс аттестации
- •40) Iso12207: процессы качества по
- •39) Система управления качеством.
- •36) Принятие решений – компромисс и консенсус
- •Как добиться консенсуса?
- •35) Преимущества командной работы
- •Доверие
- •Страсть
- •26) Треугольник ограничений проекта. Проектный треугольник
- •24) Основные характеристики проекта
- •23) Спиральная модель жизненного цикла программного обеспечения
- •22. Каскадная модель жизненного цикла программного обеспечения
- •21. Модели и стадии жизненного цикла программного обеспечения
- •20. Жизненный цикл программного продукта
Ответы на Вопросы :
1) Программный продукт — комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции.
Программные продукты могут создаваться как:
-
индивидуальная разработка под заказ;
-
разработка для массового распространения среди пользователей.
При индивидуальной разработке фирма-разработчик создает оригинальный программный продукт, учитывающий специфику обработки данных для конкретного заказчика.
При разработке для массового распространения фирма-разработчик, с одной стороны, должна обеспечить универсальность выполняемых функций обработки данных, с другой стороны, гибкость и настраиваемость программного продукта на условия конкретного применения. Отличительной особенностью программных продуктов должна быть их системность — функциональная полнота и законченность реализуемых функций обработки, которые применяются в совокупности.
Программный продукт разрабатывается на основе промышленной технологии выполнения проектных работ с применением современных инструментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств. На создание программных продуктов затрачиваются значительные ресурсы — трудовые, материальные, финансовые; требуется высокая квалификация разработчиков.
Как правило, программные продукты требуют сопровождения, которое осуществляется специализированными фирмами — распространителями программ (дистрибьюторами), реже — фирмами-разработчиками. Сопровождение программ массового применения сопряжено с большими трудозатратами — исправление обнаруженных ошибок, создание новых версий программ и т.п.
Сопровождение программного продукта — поддержка работоспособности программного продукта, переход на его новые версии, внесение изменений, исправление обнаруженных ошибок и т.п.
Программные продукты в отличие от традиционных программных изделий не имеют строго регламентированного набора качественных характеристик, задаваемых при создании программ, либо эти характеристики невозможно заранее точно указать или оценить, так как одни и те же функции обработки, обеспечиваемые программным средством, могут иметь различную глубину проработки. Даже время и затраты на разработку программных продуктов не могут быть определены с большой степенью точности заранее.
Основными характеристиками программ являются:
-
алгоритмическая сложность (логика алгоритмов обработки информации);
-
состав и глубина проработки реализованных функций обработки;
-
полнота и системность функций обработки;
-
объем файлов программ;
-
требования к операционной системе и техническим средствам обработки со стороны
-
программного средства;
-
объем дисковой памяти;
-
размер оперативной памяти для запуска программ;
-
тип процессора;
-
версия операционной системы;
-
наличие вычислительной сети и др.
Программные продукты имеют многообразие показателей качества:
Мобильность программных продуктов означает их независимость от технического комплекса системы обработки данных, операционной среды, сетевой технологии обработки данных, специфики предметной области и т.п. Мобильный (многоплатформный) программный продукт может быть установлен на различных моделях компьютеров и операционных систем, без ограничений на его эксплуатацию в условиях вычислительной сети. Функции обработки такого программного продукта пригодны для массового использования без каких- либо изменений.
Надежность работы программного продукта определяется бесперебойностью и устойчивостью в работе программ, точностью выполнения предписанных функций обработки, возможностью диагностики возникающих в процессе работы программ ошибок.
Эффективность программного продукта оценивается как с позиций прямого его назначения — требований пользователя, так и с точки зрения расхода вычислительных ресурсов, необходимых для его эксплуатации.
Расход вычислительных ресурсов оценивается через объем внешней памяти для размещения программ и объем оперативной памяти для запуска программ.
Учет человеческого фактора означает обеспечение дружественного интерфейса для работы конечного пользователя, наличие контекстно-зависимой подсказки или обучающей системы в составе программного средства, хорошей документации для освоения и использования заложенных в программном средстве функциональных возможностей, анализ и диагностику возникших ошибок и др.
Модифицируемость программных продуктов означает способность к внесению изменений, например расширение функций обработки, переход на другую техническую базу обработки и т.п.
Коммуникативность программных продуктов основана на максимально возможной их интеграции с другими программами, обеспечении обмена данными в общих форматах представления (экспорт/импорт баз данных, внедрение или связывание объектов обработки и др.).
2) Программная инженерия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению
Термин «программная инженерия» появился впервые в 1968 году на конференции НАТО и предназначался, чтобы спровоцировать поиск решений для происходившего в то время «кризиса программного обеспечения». С тех пор это переросло в профессию программного инженера (англ. software engineer) и область исследований, посвящённых созданию программного обеспечения, более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого.
Money Magazine и Salary.com оценили профессию разработчика программного обеспечения как лучшую работу в Америке в 2006 году[уточнить]
Разработка программного обеспечения связана с дисциплинами информатики, управления проектами, и системной инженерии.
3) Программная инженерия - это создание сложных программ, над которыми, как правило работает группа разработчиков, эта специальность непосредственно связана с программированием. Прикладная информатика к программированию практически не имеет отношения, это больше аналитика и управление в IT-сфере, работа с базами данных. Встречала выпускников по прикладной информатике, которые вообще ничего не умели.
4) Системотехника охватывает все аспекты разработки вычислительных систем (включая создание аппаратных средств и ПО) и соответствующие технологические процессы. Технологии инженерии программного обеспечения являются частью этих процессов
6) Программная инженерия — это интегрирование принципов математики, информатики и компьютерных наук с инженерными подходами, разработанными для производства осязаемых материальных артефактов" Системная инженерия - это умение связывать между собой результаты программной инженерии
7) Это совокупность процессов, ведущих к созданию или развитию программного обеспечения
8) Методы программной инженерии.
Эвристические методы – это последовательность предписаний или процедур обработки информации, выполняемая с целью поиска более рациональных и новых конструктивных решений.
Эвристические методы обычно противопоставляют формально математизированным. К их числу относят, как правило, методы, связанные с сокращением разнообразия, индуктивные методы и т.д.
В программной инженерии эвристические методы делят на следующие классы:
-
Структурные методы, предполагающие построение модели, начиная с самого высокого уровня абстракции, с постепенным уточнением деталей на более низких уровнях;
-
Методы, ориентированные на данные, связанные с разработкой структур данных, которыми манипулирует программное средство;
-
Объектно-ориентированные методы, моделирующие программную среду при помощи абстракции (объектов);
-
Методы, ориентированные на область применения и связанные с решением конкретных предметных задач. Например, система защиты информации.
Формальные методы – подразумевают операции по созданию формального (математического) описания системы, его анализ и доказательство. Реализация системы на основе преобразования формального описания, программный код, верификация этого кода.
Формальные методы всегда имеют свое системное описание, в котором есть свой язык, словарь, синтаксис и семантика, которые определены формально. Как правило, под формальными методами подразумевают методы, основанные на дискретной математике, алгебре логики, теории множеств, теории алгоритмов.
Формальные методы можно классифицировать на следующие категории:
-
Языки и нотации, ориентированные на модель, свойство и поведение, такие как формальные методы и описание требований;
-
Методы трансформации, основанные на преобразовании описания в программный код;
-
Методы подтверждения, основываются на строгом математическом доказательстве исходных гипотез относительно получаемого продукта с использованием методов оценки точности моделей.
Методы прототипирования – связаны с созданием моделей разрабатываемой системы на основе уже существующих систем-прототипов.
Делятся на 3 категории:
-
Стили прототипирования, которые подразумевают создание временно используемых прототипов и их преобразование в готовую программу;
-
Цели прототипирования, такие как требования, архитектурный дизайн или пользовательский интерфейс;
-
Техники оценки или исследования результатов прототипирования, касающиеся того как будут использованы результаты создания прототипа.
42)Процесс усовершенствования является процессом установления, оценки, измерения, контроля и улучшения любого процесса жизненного цикла программных средств.
Процесс состоит из следующих работ:
-
Создание процесса
-
Оценка процесса
-
Усовершенствование процесса.
Создание процесса усовершенствования
Работа состоит из одной задачи:
-
Определить набор организационных процессов для всех процессов жизненного цикла в соответствии с имеющимся практическим опытом.
При этом:
-
Эти организационные процессы и их применение в конкретных ситуациях должны быть задокументированы
-
Должен быть определен механизм управления процессом усовершенствования при разработке, контроле, управлении и улучшении улучшаемых процессов.
Оценка процесса усовершенствования
Оценка процесса (улучшаемого) состоит из следующих задач:
-
Должна быть разработана, документально оформлена и применена процедура оценки процесса. Должны сохраняться и обновляться отчеты о выполненных оценках процесса.
-
Оценка и анализ улучшаемых процессов должны планироваться и выполняться в установленные сроки.
Усовершенствование процесса
Усовершенствование (выполняемых) процессов включает:
-
По результатам анализа и оценки внести соответствующие улучшения в выполняемый процесс, при этом должны быть внесены соответствующие изменения в документацию выполняемого процесса.
-
Для выявления сильных и слабых сторон выполняемых процессов должны быть собраны и проанализированы архивные, технические и оценочные данные. Результаты анализов должны быть использованы для усовершенствования данных процессов, выработки рекомендаций по внесению изменений в реализуемые или планируемые проекты и определения потребности в передовых технологиях.
-
Для усовершенствования организационных процессов административной деятельности должны быть собраны, обновлены и использованы данные о расходах. Эти данные должны быть использованы при определении стоимости работ по предотвращению и решению обнаруженных проблем и несоответствий в программных продуктах и услугах.
41) Iso12207. Процесс верификации
Iso12207. Процесс обеспечения качества
Цель процесса - обеспечение гарантий того, что программные продукты и процессы в жизненном цикле проекта соответствуют установленным требованиям и утвержденным планам. При обеспечении качества могут использоваться результаты других вспомогательных процессов, таких как верификация, аттестация, совместные анализы, аудит и решение проблем.
Процесс состоит из следующих работ:
-
Подготовка процесса
-
Обеспечение продукта
-
Обеспечение процесса
-
Обеспечение систем качества
Цель процесса верификации - определение того, что программные продукты функционируют в полном соответствии с требованиями. Процесс может включать анализ, проверку и испытание (тестирование). Процесс может выполняться с различной степенью независимости исполнителей процесса от разработчиков программного продукта. Независимая верификация выполняется независимой от разработчика организацией.
Процесс верификации состоит из следующих работ:
-
Подготовка процесса
-
Верификация
Подготовка процесса верификации
Основными задачами подготовки процесса верификации являются:
-
Определение необходимости верификации и степени организационной независимости исполнителей. Анализ критичности проектных требований с точки зрения необходимости верификации.
-
Установление процесса верификации. Выбор (при необходимости) независимой организации.
-
Определение работ и программных продуктов, нуждающиеся в верификации
-
Разработка плана верификации на основе установленных задач верификации
-
Выполнение плана верификации. Устранение обнаруженных проблем через процесс решения проблем.
Верификация
Основными задачами верификации являются:
-
Верификация договора по критериям:
-
возможности удовлетворить установленным требованиям;
-
непротиворечивости и полноты требований;
-
наличия процедур внесения изменений в требования и решения проблем;
-
наличия процедур по взаимодействию и кооперации между участниками;
-
Верификация процесса по критериям:
-
соответствие и своевременность установления проектных требований;
-
пригодность, реализуемость и выполнимость выбранных для проекта процессов;
-
применимость выбранных стандартов проектирования;
-
укомплектованность и обученность персонала.
-
Верификация требований по критериям:
-
непротиворечивость, выполнимость, тестируемость и точность;
-
распределение требований к аппаратным, программным и ручным операциям;
-
правильность требований по безопасности, защите и критичности.
-
Верификация проекта по критериям:
-
соответствие и учет требований в проекте;
-
реализуемость проекта по времени, требованиям, ресурсам
-
возможность выбора проекта, исходя из установленных требований;
-
правильность реализации в проекте требований безопасности, защиты и других критических требований.
-
Верификация программы по критериям:
-
тестируемость, правильность и соответствие установленным требованиям и стандартам программирования;
-
реализуемость событий и интерфейсов, обнаружения, локализации и восстановления ошибок;
-
возможность выбора программы, исходя из проекта или установленных требований;
-
правильность реализации в программе требований безопасности, защиты и других критических требований.
-
Верификация сборки по критериям:
-
полнота и правильность сборки компонентов и модулей;
-
полнота и правильность сборки технических и программных объектов и ручных операций в систему;
-
Верификация документации по критериям:
-
соответствие, полнота и непротиворечивость документации;
-
своевременность подготовки документации;
-
управление конфигурацией документов.