Введение в системное проектирование

Введение в системное проектирование

Эта книга посвящена не только требованиям для программного обеспечения (ПО). Принципы и практические методы разработки требований применимы и для системных разработок, в которых ПО может являться лишь небольшой частью всей системы.
В качестве примера можно рассмотреть железнодорожную систему - Магистраль Западного Побережья (West Coast Mainline) от Лондона до Глазго.
Требование высокого уровня для системы могло бы звучать так: «поездка от станции Юстон (сев. Лондон) до Глазго (Шотландия), должна занимать не более 250 минут».
Удовлетворение этого требования зависит от скоординированного взаимодействия всех основных составляющих системы:.
• поезда и скорость их движения;.
• рельсы и их способность выдерживать высокоскоростные поезда;.
• станции и их персонал, а также время ожидания, которое накладывается на станционное расписание поездов;.
• машинисты и их способность управлять поездами;.
• системы сигнализации и связи;.
• системы управления железнодорожным движением;.
• службы энергообеспечения.
Несмотря на то, что системы сигнализации и связи, а также системы управления железнодорожным движением играют крайне важную роль для выполнения этого требования, они не могут обеспечить его выполнение сами, т. е. без участия всех остальных составляющих системы. Полное решение задачи требует использования всех компонентов системы. Так и в реальной жизни - большинство требований удовлетворяется набором свойств системы, поскольку являются результатом поведения системы как единого целого. Что же мы тогда подразумеваем под системой?.
Система это:.
• набор компонентов - механизмов, программного обеспечения и людей, -.
• которые согласовано взаимодействуют.
• для достижения некоторого заданного результата, сформулированного в виде требований.
Таким образом, системы включают людей.
Для Магистрали Западного Побережья машинисты и станционный персонал, включая обучение, которое они проходят и инструкции, которыми они пользуются, - важны также, как механизмы и ПО.
Вследствие того, что компоненты системы должны взаимодействовать друг с другом, интерфейсы между ними занимают важное место в системном проектировании (и разработке требований) - интерфейсы между людьми и механизмами, между механизмами и ПО.
В качестве примера интерфейса между двумя механизмами для железнодорожной системы можно рассмотреть взаимодействие колес поезда с рельсами. Помимо физического расположения (система спроектирована так, чтобы поезд шел по рельсам без схождения с них), существующие электрические цепи, расположенные параллельно рельсам, могут также рассматриваться как часть системы управления железнодорожным движением - для определения положения поезда.
В центре концепции «системы» лежит идея «системных свойств» (emergent properties), поскольку полезность системы не зависит от какой-то конкретной ее части, а появляется в результате взаимодействия между ее компонентами. Системные свойства могут быть желательными, такими, какими они были изначально задуманы и спроектированы, для того, чтобы сделать систему полезной; или - нежелательными, другими словами, могут являться непредвиденными побочными эффектами, такими, например, как загрязнение окружающей среды. Искусство системного проектирования состоит в том, чтобы получать желательные системные свойства и избегать нежелательных.
Другая важная концепция это «система систем».
Любая система может быть разработана так, чтобы, в свою очередь, являться составной частью большей системы. Например, Магистраль Западного Побережья является частью большей железнодорожной системы и пересекается с другими более и менее важным дорогами. Сама же железнодорожная система это тоже часть большей транспортной системы страны, которая взаимодействует со всеми типами дорожных систем и системами воздушного транспорта. Транспортная система, в свою очередь, обеспечивает инфраструктуру для транспортировки людей и грузов, и, таким образом, является частью экономики страны. Страна уже может рассматриваться как часть мира. И так далее.
Для того чтобы правильно сформулировать требования к системе, необходимо понять требования к той системе, в чей состав она входит. Зачастую, от этого зависит правильное функционирование всей системы. Например, способность вертолета летать обеспечивается наличием у Земли гравитации и атмосферы.
Возьмем другой, очень простой пример - чашку (рис. 1.1).
Рис.1.1 Чашка как пример простой системы.
Очевидно, что чашка состоит из компонентов: ручки и чаши. Для каких целей нужны эти компоненты? - чаша нужна для того, чтобы содержать в себе жидкость, а ручка нужна для того, чтобы человек мог держать чашку, не обжигаясь. Отсюда вывод - цель, или требования для чашки, - это позволить человеку донести горячую жидкость до рта, не разлив ее и не получив ожога.
Чашка полна интерфейсов. Она может быть поставлена на плоскую поверхность для устойчивости; ее можно держать в человеческой руке; она может быть наполнена жидкостью и опустошена; должен быть интерфейс с жидкостью для продолжительного ее содержания; и она должна подходить для перемещения жидкости в человеческий рот.
Тем не менее, можно сделать и другие наблюдения:.
• Сама по себе чашка не может удовлетворить цель, сформулированную нами выше, так как чашка зависит от движений человеческой руки, которая ее держит.
• Чаша, как компонент чашки, критически зависит от гравитации, а также правильного использования. Если чашку перевернуть вверх дном, это приведет к выливанию жидкости, и, возможно, ожогу.
Итак, способность простой чашки удовлетворить сформулированную нами цель зависит от:.
• свойств, которые появились в результате взаимодействия ее компонентов;.
• соответствующих интерфейсов с внешними компонентами;.
• ее корректного включения во общую систему - чашка удерживается и переносится человеческой рукой;.
• присутствия соответствующих внешних условий - в условиях невесомости для удовлетворения поставленной нами цели явно потребуется другое решение.
Резюмируя вышесказанное, необходимо отметить, что разработка требований должна обязательно принимать во внимание природу системы. Нельзя рассматривать системные свойства изолированно, - необходим комплексный подход: учет условий, которые привносит внешнее окружение, накладываемые кем-то или чем-то ограничения, а также интерфейсы с окружающими системами.

Популярные статьи

Свежие статьи