Оборудования, на котором работают компьютеры и сети компьютеров


Download 0.75 Mb.
Pdf ko'rish
bet5/8
Sana19.01.2023
Hajmi0.75 Mb.
#1100970
TuriЛекция
1   2   3   4   5   6   7   8
Bog'liq
Лекция 2

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


47 
Детальное проектирование. Детальное проектирование включает в себя 
реализацию того, что видно как система и ее подсистемы в конструкции 
высокого уровня. Эта деятельность более детальна по отношению к модулям и 
их реализации. Она определяет логическую структуру каждого модуля и их 
интерфейсы для взаимодействия с другими модулями. 
Какова связь между архитектурой программного обеспечения и 
проектированием? 
Архитектура программного обеспечения раскрывает структуру системы, 
скрывая при этом детали реализации. Архитектура также фокусируется на том, 
как элементы и компоненты системы взаимодействуют друг с другом. Дизайн 
программного обеспечения углубляется в детали реализации системы. К 
задачам проектирования относится выбор структур и алгоритмов данных или 
деталей реализации отдельных компонентов. 
Вопросы архитектуры и проектирования часто пересекаются. Вместо 
того, чтобы использовать жесткие и быстрые правила для разграничения 
архитектуры и дизайна, имеет смысл их комбинировать. В некоторых случаях 
решения явно носят более архитектурный характер. В других случаях решения 
в значительной степени сосредоточены на проектировании и на том, как оно 
помогает реализовать эту архитектуру. 
Важной деталью, которую следует отметить, является то, что архитектура 
– это дизайн, но не весь дизайн является архитектурным. На практике именно 
архитектор проводит черту между программной архитектурой (архитектурное 
проектирование) 
и 
детальным 
проектированием 
(неархитектурное 
проектирование). Не существует правил или руководящих принципов, которые 
подходили бы для всех случаев – в общем, предпринимались попытки 
формализовать это различие. 
Современные тенденции в архитектуре программного обеспечения 
предполагают, что проект развивается с течением времени и что архитектор 
программного обеспечения не может знать все заранее, чтобы полностью 
архитектурно оформить систему. Проектирование обычно развивается на 
стадиях внедрения системы. Архитектор программного обеспечения постоянно 
изучает и проверяет проект на соответствие требованиям реального мира. 
Какие проблемы решает архитектурный анализ? 
Дефекты программного обеспечения, которые приводят к проблемам 
безопасности, имеют два основных вкуса: 
ошибки в реализации и 
 недостатки в дизайне. 
Ошибки в коде реализации составляют как минимум половину общей 
проблемы безопасности программного обеспечения. Другая половина включает 
в себя различного рода дефекты программного обеспечения, возникающие на 
уровне проектирования. Разделение дефектов конструкции и ошибок 
составляет около 50/50. И те, и другие должны быть защищены, чтобы 
гарантировать благополучие вашего программного обеспечения. Вы можете 
создать лучшую программу просмотра кода на планете, с самыми сильными 


48 
инструментами, известными человечеству, но маловероятно, что вы сможете 
найти и исправить дефекты таким образом. 
4 способа выявить недостатки 
 Проанализировать фундаментальные принципы проектирования. 
 Оценить поверхность атаки. 
 Перечислить различные агенты угрозы. 
 Выявить слабые места и пробелы в системе контроля безопасности. 
Выявление и устранение недостатков на ранних стадиях проектирования 
гораздо более эффективно с точки зрения затрат, чем исправление недостатков 
в реализации проекта после развертывания. Анализ архитектурных рисков 
(ARA), моделирование угроз и анализ проектов средств контроля безопасности 
(SCDA) полезны для поиска и исправления недостатков проекта. 
SCDA – это облегченный подход к ARA. Их проведение занимает меньше 
времени и может осуществляться гораздо большим числом специалистов, чем 
при традиционном анализе ARA. Самое главное, что легкий подход достаточно 
эффективен, чтобы его можно было масштабировать и охватить весь портфель 
приложений. 
Организации, которым не удается интегрировать обзоры архитектуры и 
дизайна в процесс разработки, часто с удивлением обнаруживают, что их 
программное обеспечение страдает от системных сбоев как на уровне 
разработки, так и на уровне внедрения. Во многих случаях дефекты, 
выявленные при тестировании на проникновение, можно было бы легче 
выявить с помощью других методов – в более раннем возрасте жизненного 
цикла. Тестеры, которые используют результаты анализа архитектуры для 
направления своей работы, часто получают большую выгоду. 
Программное обеспечение - программа или множество программ, 
используемых для управления компьютером. 
Системное программное обеспечение – комплекс программ, которые 
обеспечивают управление компонентами компьютерной системы, такими как 
процессор, 
оперативная 
память, 
устройства 
ввода-вывода, 
сетевое 
оборудование, выступая как «межслойный интерфейс», с одной стороны 
которого аппаратура, а с другой — приложения пользователя. В отличие от 
прикладного программного обеспечения, системное не решает конкретные 
практические задачи, а лишь обеспечивает работу других программ, 
предоставляя им сервисные функции, абстрагирующие детали аппаратной и 
микропрограммной 
реализации 
вычислительной 
системы, 
управляет 
аппаратными ресурсами вычислительной системы. Как правило, к системному 
программному обеспечению относятся операционные системы, утилиты, 
системы управления базами данных, широкий класс связующего программного 
обеспечения. 
Прикладное программное обеспечение — программа, предназначенная 
для выполнения определённых пользовательских задач и рассчитанная на 
непосредственное взаимодействие с пользователем. 


49 

Download 0.75 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling