Логотип Автор24реферат
Задать вопрос
Реферат на тему: Методы и модели разработки ПО. Уязвимости процесса разработки и методы защиты ПО в процессе разработки.
60%
Уникальность
Аа
25342 символов
Категория
Информационная безопасность
Реферат

Методы и модели разработки ПО. Уязвимости процесса разработки и методы защиты ПО в процессе разработки.

Методы и модели разработки ПО. Уязвимости процесса разработки и методы защиты ПО в процессе разработки. .doc

Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод Эмоджи на новый заказ в Автор24. Это бесплатно.

Введение

Современный персональный компьютер теперь имеет производительность большой ЭВМ 80-х годов. Сняты практически все аппаратные ограничения на решение задач. Оставшиеся ограничения приходятся на долю программного обеспечения.
Чрезвычайно актуальными стали следующие проблемы:
аппаратная сложность опережает наше умение строить ПО, использующее потенциальные возможности аппаратуры;
наше умение строить новые программы отстает от требований к новым программам;
нашим возможностям эксплуатировать существующие программы угрожает низкое качество их разработки.
Ключом к решению этих проблем является грамотная организация процесса создания программного обеспечения, далее будем называть ПО, реализация технологических принципов промышленного конструирования программных систем.
Настоящая работа посвящена изучению и оценке методов и моделей разработки ПО.
Для достижения цели работы необходимо выполнить следующие задачи:
Рассмотреть методы и модели процесса разработки ПО;
Привести уязвимости процесса разработки;
Описать методы защиты ПО в процессе разработки.

Методы и модели разработки ПО

Технология разработки программного обеспечения – система инженерных принципов для создания ПО, которое надежно и эффективно работает в реальных компьютерах.
Различают методы, средства и процедуры технологии разработки ПО [1].
Методы обеспечивают решение следующих задач:
планирование и оценка проекта;
анализ системных и программных требований;
проектирование алгоритмов, структур данных и программных структур;
кодирование;
тестирование;
сопровождение.
Ресурсы (утилиты) разработки ПО гарантируют автоматизированную либо механическую помощь методов. В целях общего использования утилиты имеют все шансы группироваться в системы автоматизированного конструирования ПО. Подобные концепции общепринято именовать CASE-системами. Сокращение CASE расшифровывается равно как Computer Aided Software Engineering (программная инженерия с компьютерной помощью).
Операции считаются «клеем», что объединяет способы и утилиты таким образом, что они гарантируют постоянную научно-техническую цепочку разработки. Операции устанавливают:
порядок применения методов и утилит;
формирование отчетов, форм по соответствующим требованиям;
контроль, который помогает обеспечивать качество и координировать изменения;
формирование «вех», по которым руководители оценивают прогресс.
Процедура конструирования ПО заключается из очередности деяний, использующих способы, утилиты и операции. Данные последовательности шагов зачастую именуют парадигмами технологии конструирования ПО.
Использование данных парадигм обеспечивает регулярный, организованный подход к индустриальной разработке, применению и сопровождению ПО. По сути, парадигмы записывают в процесс формирования ПО организующее техническое начало, потребность которого сложно пересмотреть.
Рассмотрим наиболее популярные парадигмы технологии конструирования ПО.

Классический жизненный цикл

Старейшей парадигмой процесса разработки ПО является классический жизненный цикл (автор Уинстон Ройс, 1970) [1].
Весьма зачастую традиционный актуальный цикл именуют каскадной либо водопадной моделью, выделяя, что создание рассматривается как очередность стадий, при этом трансформация в последующий, иерархически нижний этап совершается только лишь уже после абсолютного окончания работ на нынешнем этапе (рис. 1).
Имеется в виду, что создание наступает на системном уровне и протекает через анализ, планирование, шифрование, тестирование и поддержание. При этом формуются воздействия обычного технического цикла.
Комплексный анализ предлагает сделать значимость любого компонента в компьютерной системе, связь компонентов друг с другом. Так как ПО считается только составляющей большой системы, в таком случае исследование наступает с определения условий к абсолютно всем системным составляющим и назначения подмножества этих условий программному «элементу». Потребность целого подхода очевидно выражается, если создается интерфейс ПО с иными компонентами (аппаратурой, людьми, основами информации). В этом же этапе наступает разрешение проблемы планирования плана ПО. В процессе планирования проекта формируются размер предназначенных трудов и их угроза, требуемые трудовые затраты, создаются работники проблемы и проект-план работ.
Анализ требований относится к программному элементу – программному обеспечению. Уточняются и детализируются его функции, характеристики и интерфейс [ REF _Ref520817379 \r \h 9].
Все определения документируются в спецификации анализа. Здесь же завершается решение задачи планирования проекта.


Рис. 1. Классический жизненный цикл разработки ПО

Проектирование состоит в создании представлений:
архитектуры ПО;
модульной структуры ПО;
алгоритмической структуры ПО;
структуры данных;
входного и выходного интерфейса (входных и выходных форм данных) [ REF _Ref520817379 \r \h \* MERGEFORMAT 9].
Начальные сведения с целью проектирования находятся в спецификации анализа, то есть в процессе проектирования производится передача условий к ПО в большое число предназначенных взглядов. При постановлении проблем проектирования главное внимание уделяется качеству предстоящего программного продукта.
Кодирование состоит в переводе результатов проектирования в текст на языке программирования.
Тестирование – выполнение программы для выявления дефектов в функциях, логике и форме реализации программного продукта.
Сопровождение – это внесение изменений в эксплуатируемое ПО. Цели изменений:
исправление ошибок;
адаптация к изменениям внешней для ПО среды;
усовершенствование ПО по требованиям заказчика.
Поддержание ПО заключается во вторичном использовании любого из предыдущих шагов (стадий) актуального цикла к имеющейся программе, однако не в разработке новейшей программы.
Равно как и каждая техническая модель, классический актуальный цикл обладает плюсами и минусами.
Плюсы традиционного жизненного цикла: предоставляет проект и временной план согласно абсолютно всем стадиям проекта, упорядочивает процесс конструирования.
Недостатки классического жизненного цикла:
1) реальные проекты часто требуют отклонения от стандартной последовательности шагов;
2) цикл основан на точной формулировке исходных требований к ПО (реально в начале проекта требования заказчика определены лишь частично);
3) результаты проекта доступны заказчику только в конце работы.

1.2 Итеративная разработка

Процедура итеративной (либо инкрементальной) разработки стал вторичным развитием модификации водопада

Зарегистрируйся, чтобы продолжить изучение работы

. Процедура заключается в серии циклических итераций (их количество находится в зависимости от определенного плана), любая из каковых по сути считается полным микроскопический-планом с фазами установления условий, рассмотрения, дизайна и т.д. В следствии следующий итерации продукция обретает новейшую работоспособность либо усовершенствования в имеющейся функциональности. Целый набор условий, установленный границами плана, как оказалось реализованным уже после окончания финишной итерации.
Опираясь на специфику плана и условия клиента, создатели имеют все шансы подбирать, что они желают приобрести в следствии следующий итерации:
Полноценную систему с ограниченной функциональностью, готовую для промышленной эксплуатации [ REF _Ref520817426 \r \h 3].
Функциональные и архитектурные прототипы, непригодные для промышленной эксплуатации, но позволяющие оценить функциональный дизайн, пользовательский интерфейс, производительность и т.д.
Как показано на рис. 2, итеративная разработка обладает рядом преимуществ по сравнению с последовательной моделью.


Рис. 2. Интеративная разработка

Осуществление наиболее значимых функций может являться окончена в процессе некоторых первых итераций. Уже после их окончания (в таком случае имеется значительно ранее завершения в целом проекта) клиент сумеет начать применение системы.
Уже в истоке плана пользователи приобретают вероятность дать оценку фунциональности системы и её соответствие собственным нуждам. Требуемые перемены и добавления имеют все шансы являться сделаны в течение последующих итераций [4].
Основные предназначенные опасности имеют все шансы (и обязаны) являться допустимы на первых итерациях. К примеру, строительное разрешение, которое приводит к неприемлемой производительности может быть обнаружено и откорректировано ранее в первой итерации.
Важно осознавать, что все без исключения данные достоинства выражаются только лишь при кропотливом планировании итераций, в ином случае просто получить ухудшенный вид модификации водопада.

1.3 RUP

RUP (Rational Unified Process) - в основе данной методологии лежит пошаговый подход: каждая итерация представляет собой промежуточный, но полноценно функционирующий компонент программного продукта. Итеративная разработка позволяет оперативно реагировать на изменяющиеся требования заказчика, обнаружить и устранить основные риски. RUP методология подразумевает постоянный контроль качества создаваемого программного продукта, а также компонентную архитектуру, реализуемую и тестируемую на ранних стадиях разработки. [ REF _Ref520817460 \r \h \* MERGEFORMAT 7].


1.4 Методологии разработки ПО

Методология разработки софта — организация труда, включающая идеологические принципы, план, контроль над процессами, подход к сотрудникам. Выделим 12 видов:
Waterfall — традиционный подход. Модель Waterfall относится к классическому пониманию разработки ПО. Весь процесс является жестким и линейным, имеет четкие цели для каждого этапа, новая фаза начинается по завершению предыдущей, нет возврата назад. Преимущества водопадной методологии — децентрализация и строгий контроль над сроками и качеством исполнения [ REF _Ref520817492 \r \h 14].
Agile — общая методология гибкой разработки. Метод гибкой разработки программного обеспечения, предполагающий большое количество итераций.
Crystal Clear — подход с уравниванием разработчиков в коллективе. Методология, созданная для небольших коллективов из 6−10 сотрудников. Также поддерживает принципы гибкой разработки, но имеет чуть больше конкретики. Основная идея, которая и заключена в названии — каждая команда является набором людей с разным уровнем знаний, разными умениями и опытом [ REF _Ref520817749 \r \h 6].
Spiral — спиральный метод. Сложная организация жизненного цикла ПО, которая фокусируется на раннем выявлении и уменьшении проектных рисков. Разработка начинается в небольшом масштабе, решаются локальные задачи, оцениваются риски и пути их уменьшения. Следующий шаг охватывает более комплексные задачи — следующий виток спирали [ REF _Ref520817513 \r \h 11].
DSDM (Dynamic Systems Development Model) — динамическая модель. Модель развития динамических систем была разработана в Великобритании в середине 1990-х годов и является эволюционным развитием быстрой разработки приложений (RAD). Основная идея стандартная: при планировании в самом начале невозможно понимать всех тонкостей разработки, поэтому весь процесс — исследовательская работа [ REF _Ref520817702 \r \h 5].
FDD (Feature Driven Development) — методология, рассматривающая будущие изменения. Процесс для обеспечения масштабируемости и повторяемости, при этом поощряющий творчество и инновации [ REF _Ref520817513 \r \h 11].
JAD (Joint Application Development) — ориентированный на пользователя подход. Модель, нацеленная на максимальную занятость в разработке конечного пользователя. Происходит это посредством встреч и проведения совместных семинаров.
RAD (Rapid Application Development) — модель быстрой разработки. Одно из главных условий — использование языка быстрой разработки.
Scrum — концепция работы в условиях сорванных сроков и идеологического кризиса. Гибкий метод управления проектами, целью которого является повышение производительности труда в командах, ранее парализованных более тяжелыми методологическими процессами [ REF _Ref520817513 \r \h 11].
XP (Extreme Programming) — экстремальная разработка в динамической среде. Возможность вести разработку в условиях постоянно меняющихся требований.
LD (Lean Development) — метод, предполагающий бережное отношение ко всем участникам процесса. Ещё одно ответвление гибкой методологии, предполагающее сохранение высокого морально-функционального состояния разработчиков.


Уязвимости процесса разработки и методы защиты ПО в процессе разработки

Равно как демонстрирует практическая деятельность, цена корректировки кода в запоздалых стадиях жизненного цикла программного предоставления увеличивается согласно экспоненте. Невзирая на данное, навык выполнения аудита защищенности начального кода в ходе исследования по-старому мало известен. Угроза возникновения программных погрешностей, которые имеют все шансы послужить причиной к опасным уязвимостям, существует постоянно, по этой причине используется эластичная технология безопасной разработки, направленная на высококачественное испытание кода в абсолютно всех стадиях жизненного цикла ПО [ REF _Ref520817690 \r \h 2].

2.2 Уязвимости процесса разработки

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

50% реферата недоступно для прочтения

Закажи написание реферата по выбранной теме всего за пару кликов. Персональная работа в кратчайшее время!

Промокод действует 7 дней 🔥
Больше рефератов по информационной безопасности:

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

15589 символов
Информационная безопасность
Реферат
Уникальность

Влияние коррупции на национальную безопасность России

16364 символов
Информационная безопасность
Реферат
Уникальность

Методы классификации информации

23302 символов
Информационная безопасность
Реферат
Уникальность
Все Рефераты по информационной безопасности
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач