Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на теоретические вопросы.docx
Скачиваний:
31
Добавлен:
26.01.2020
Размер:
105.27 Кб
Скачать

Ответы на Вопросы :

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

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

  • индивидуальная разработка под заказ;

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

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

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

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

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

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

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

Основными характеристиками программ являются:

  • алгоритмическая сложность (логика алгоритмов обработки информации);

  • состав и глубина проработки реализованных функций обработки;

  • полнота и системность функций обработки;

  • объем файлов программ;

  • требования к операционной системе и техническим средствам обработки со стороны

  • программного средства;

  • объем дисковой памяти;

  • размер оперативной памяти для запуска программ;

  • тип процессора;

  • версия операционной системы;

  • наличие вычислительной сети и др.

Программные продукты имеют многообразие показателей качества:

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

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

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

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

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

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

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

2) Программная инженерия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению

Термин «программная инженерия» появился впервые в 1968 году на конференции НАТО и предназначался, чтобы спровоцировать поиск решений для происходившего в то время «кризиса программного обеспечения». С тех пор это переросло в профессию программного инженера (англ. software engineer) и область исследований, посвящённых созданию программного обеспечения, более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого.

Money Magazine и Salary.com оценили профессию разработчика программного обеспечения как лучшую работу в Америке в 2006 году[уточнить]

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

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

4) Системотехника охватывает все аспекты разработки вычислительных систем (включая создание аппаратных средств и ПО) и соответствующие технологические процессы. Технологии инженерии программного обеспечения являются частью этих процессов

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

7) Это совокупность процессов, ведущих к созданию или развитию программного обеспечения

8) Методы программной инженерии.

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

Эвристические методы обычно противопоставляют формально математизированным. К их числу относят, как правило, методы, связанные с сокращением разнообразия, индуктивные методы и т.д.

В программной инженерии эвристические методы делят на следующие классы:

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

  2. Методы, ориентированные на данные, связанные с разработкой структур данных, которыми манипулирует программное средство;

  3. Объектно-ориентированные методы, моделирующие программную среду при помощи абстракции (объектов);

  4. Методы, ориентированные на область применения и связанные с решением конкретных предметных задач. Например, система защиты информации.

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

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

Формальные методы можно классифицировать на следующие категории:

  1. Языки и нотации, ориентированные на модель, свойство и поведение, такие как формальные методы и описание требований;

  2. Методы трансформации, основанные на преобразовании описания в программный код;

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

Методы прототипирования – связаны с созданием моделей разрабатываемой системы на основе уже существующих систем-прототипов.

Делятся на 3 категории:

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

  2. Цели прототипирования, такие как требования, архитектурный дизайн или пользовательский интерфейс;

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

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

Процесс состоит из следующих работ:

  • Создание процесса

  • Оценка процесса

  • Усовершенствование процесса.

Создание процесса усовершенствования

Работа состоит из одной задачи:

  1. Определить набор организационных процессов для всех процессов жизненного цикла в соответствии с имеющимся практическим опытом.

При этом:

  • Эти организационные процессы и их применение в конкретных ситуациях должны быть задокументированы

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

Оценка процесса усовершенствования

Оценка процесса (улучшаемого) состоит из следующих задач:

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

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

Усовершенствование процесса

Усовершенствование (выполняемых) процессов включает:

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

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

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

41) Iso12207. Процесс верификации

Iso12207. Процесс обеспечения качества

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

Процесс состоит из следующих работ:

  • Подготовка процесса

  • Обеспечение продукта

  • Обеспечение процесса

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

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

Процесс верификации состоит из следующих работ:

  • Подготовка процесса

  • Верификация

Подготовка процесса верификации

Основными задачами подготовки процесса верификации являются:

      1. Определение необходимости верификации и степени организационной независимости исполнителей. Анализ критичности проектных требований с точки зрения необходимости верификации.

      2. Установление процесса верификации. Выбор (при необходимости) независимой организации.

      3. Определение работ и программных продуктов, нуждающиеся в верификации

      4. Разработка плана верификации на основе установленных задач верификации

      5. Выполнение плана верификации. Устранение обнаруженных проблем через процесс решения проблем.

Верификация

Основными задачами верификации являются:

  1. Верификация договора по критериям:

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

  • непротиворечивости и полноты требований;

  • наличия процедур внесения изменений в требования и решения проблем;

  • наличия процедур по взаимодействию и кооперации между участниками;

  1. Верификация процесса по критериям:

  • соответствие и своевременность установления проектных требований;

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

  • применимость выбранных стандартов проектирования;

  • укомплектованность и обученность персонала.

  1. Верификация требований по критериям:

  • непротиворечивость, выполнимость, тестируемость и точность;

  • распределение требований к аппаратным, программным и ручным операциям;

  • правильность требований по безопасности, защите и критичности.

  1. Верификация проекта по критериям:

  • соответствие и учет требований в проекте;

  • реализуемость проекта по времени, требованиям, ресурсам

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

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

  1. Верификация программы по критериям:

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

  • реализуемость событий и интерфейсов, обнаружения, локализации и восстановления ошибок;

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

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

  1. Верификация сборки по критериям:

  • полнота и правильность сборки компонентов и модулей;

  • полнота и правильность сборки технических и программных объектов и ручных операций в систему;

  1. Верификация документации по критериям:

  • соответствие, полнота и непротиворечивость документации;

  • своевременность подготовки документации;

  • управление конфигурацией документов.