Главная страница
Навигация по странице:

  • Атомарность.

  • Согласованность.

  • Изолированность.

  • Степень связанности (

  • Зацепление (

  • Связывание и зацепление

  • Модульность

  • Билет 17 Проектирование информационных систем методика постепенной формализации. Алгоритм реализации метода постепенной формализации для разработки асу


    Скачать 75.23 Kb.
    НазваниеБилет 17 Проектирование информационных систем методика постепенной формализации. Алгоритм реализации метода постепенной формализации для разработки асу
    Дата20.02.2023
    Размер75.23 Kb.
    Формат файлаdocx
    Имя файла17-19.docx
    ТипДокументы
    #946272
    страница3 из 5
    1   2   3   4   5

    2. Транзакция и ее свойства.


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

    Любая транзакция всегда должна переводить БД из одного согласованного состояния в другое, хотя допускается, что согласованность состояния БД будет нарушаться в ходе выполнения транзакции. Любая транзакция завершается одним из двух возможных способов. В случае успешного завершения результаты транзакции фиксируются (commit) в БД, и транзакция переходит в новое согласованное состояние. Если выполнение транзакции не прошло успешно, она отменяется, в этом случае в БД должно быть восстановлено то согласованное состояние, в котором она находилась до начала данной транзакции - откат (roll back) транзакции. Зафиксированная транзакция не может быть отменена. Если оказывается, что зафиксированная транзакция была ошибочной, потребуется выполнить другую транзакцию, отменяющую действия, выполненные первой транзакцией. В большинстве языков манипулирования данными для указания границ отдельных транзакций используются операторы BEGINTRANSACTION, COMMIT и ROLLBACK.

    Свойства транзакций ACID: Атомарность. Свойство типа «все или ничего». Любая транзакция представляет собой неделимую единицу работы, которая может быть выполнена либо вся целиком, либо не выполнена вовсе. Согласованность. Каждая транзакция должна переводить БД из одного согласованного состояния в другое согласованное состояние. Внутри транзакции система может находиться в несогласованном состоянии. Изолированность. Все транзакции выполняются независимо одна от другой - промежуточные результаты незавершенной транзакции не должны быть доступны другим транзакциям. Долговечность. Результаты успешно завершенной транзакции должны сохраняться в БД постоянно и не должны быть утеряны в результате последующих сбоев.
    Синтаксис осн команд:

    Begin Tran [saction] [<имя транз>],

    Commit Tran [saction] [<имя транз>],

    RollBack Tran [saction] [<имя транз>] [<имя т сохр>],
    Save Tran [saction] [<имя т сохр>]

    Неявн транз – не треб наличия Begin Tran. Нач-ся с 1-го опер-ра, заканч традиц-но. Без Begin Tran кажд опер-р SQL счит-ся отд странз. Неявн начало: set implicit_transaction on. Опер-ры, инициир транз-ю: Create, insert, update, delete, trunicate, drop, open, fetch, grant, select, revoke.

    3. Понятия связанности (Coupling) и зацепления (Cohesion) в сложных программных системах. Связанность и зацепление классов, модулей, компонентов.


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

    • Изменения в связанных классах приводят к локальным изменениям в данном классе.

    • Затрудняется понимание каждого класса в отдельности.

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

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

    • Изменения компонентов мало сказываются на других объектах.

    • Принципы работы и функции компонентов можно понять, не изучая другие объекты.

    • Удобство повторного использования.

    Зацепление (cohesion) (функциональное зацепление) – это мера связанности и сфокусированности обязанностей класса. Считается, что элемент обладает высокой степенью зацепления, если его обязанности тесно связаны между собой и он не выполняет непомерных объёмов работы. В роли таких элементов могут выступать классы, подсистемы и т.д.

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

    • Трудность понимания.

    • Сложность при повторном использовании.

    • Сложность поддержки.

    • Ненадёжность, постоянная подверженность изменениям.

    Классы со слабым зацеплением, как правило, являются слишком «абстрактными» или выполняют обязанности, которые можно легко распределить между другими объектами.

    Гради Буч считает, что можно говорить о высоком функциональном зацеплении между элементами одного компонента (например, класса), если «все они взаимодействуют между собой с целью обеспечения некоторого определённого поведения».

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

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

    Ещё одной особенностью, тесно связанной со связыванием и зацеплением, является модульность. Модульность – это свойство системы, разбитой на множество модулей с высокой степенью зацепления и слабым связыванием.
    1   2   3   4   5


    написать администратору сайта