Рубрика «Анализ и проектирование систем» - 77

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

В статье я постарался описать одну из проблем, которую может решить хорошая архитектура: связанные участки кода могут разъезжаться между собой, это может приводить к багам, и тесты тут не спасут. А грамотный дизайн может помочь.
Читать полностью »

Продолжаю рассказывать про проекционное моделирование.
Следующая тема, которую я хочу затронуть, — это объяснение, почему мы определили связь в конструкции как 4-Д объект. Напомню, что в проекционном моделировании связь – это общая часть элементов конструкта. Поскольку элементы конструкта – это 4-Д объекты, то связи – тоже 4-Д объекты. То есть, для существования связи между двумя 4-Д объектами должен быть общий 4-Д объем, принадлежащий обоим этим объектам.

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

Пространственные связи

Начнем с простого: пусть объекты связаны общим положением в пространстве или во времени. Это связи типа «справа», «выше», «после», «вместе» и т.д. Для моделирования такого рода связей нам нужно рассмотреть 4-Д пространство, в котором помещены рассматриваемые нами 4-Д объекты. 4-Д пространство играет такую же роль, как и другие 4-Д объекты. Обычно моделирование начинается именно с того, что мы формируем границы модели, то есть, 4-Д пространство, в котором потом размещаем 4-Д объекты. Почему-то про этот самый первый 4-Д объект забывают сразу после его определения. Но именно его свойства позволяют нам описать указанные мной связи.
Читать полностью »

Вступление

Спасибо Игорю Катричеку за прекрасный вопрос! На форуме, посвященном проекционному моделированию, он задал интересный вопрос:

Если я буду смотреть на вал двигателя, и его повороты сольются для меня в единое целое, то это будет функция. Если я буду отсчитывать каждый поворот вала на 90 градусов или другой угол, то это будет операция. А если я буду следить за положением точки на валу, например, с целью автоматического регулирования её координат, то что это? Например, на валу радиолокационная антенна. Операций нет, так как нет начала и конца движения, повороты вала не дискретны, требуемое положение антенны постоянно меняется оператором, а фактическое меняется от ветра. Функций тоже нет, так как повороты вала не сливаются в единое вращение. Что это?

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

Введение

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

Дуальность

Часто можно слышать: этот объект одновременно обладает и свойствами такими-то и свойствами такими-то. Например, такое часто можно услышать про квантовую частицу. Якобы она обладает одновременно и свойствами волны, и свойствами частицы. В моей модели нет дуальностей. Как только появляется дуальность, это значит, что у нас есть либо две разные точки зрения на описание 4-Д объекта, или два разных метода.
Читать полностью »

Бизнес не любит:
1. 1С-Франчайзи, программистов 1С вообще, и почти все, что те делают;
2. веб-программистов и компании, создающие и продвигающие сайты, и все продукты их работы;
3. системы менеджмента качества и людей, которые занимаются их внедрением;
4. бухгалтеров и бух.учет;
5. экономистов со всеми их гигантскими экселевскими портянками;
6. внутренние проекты развития, на которые без слез уже смотреть невозможно;
7. Scrum и все эти доски, на которых неделями висят одни и те же стикеры;
8. ТОС, после внедрения которого дефицитов и неликвидов становится еще больше;
9. Контроллинг, который дает цифры позже, чем бух.учет;
10. KPI, адекватность которого приходится доказывать самому себе каждый раз, когда приносят эти цифры;
11. Системы мотивации, которые, как ни крути, «оклад+премия», хоть и названы модными словами, типа «грейд».

Продолжать можно до бесконечности. Никогда не задумывались, почему бизнес всего этого не любит? Или вообще не замечали, что бизнес этого не любит?

При этом, как ни странно, бизнес любит:
1. повышение прибыльности бизнеса за счет автоматизации;
2. увеличение количества лидов и рост оборота за счет правильного продвижения;
3. повышение качества процессов производства и бизнес-процессов;Читать полностью »

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

image
Читать полностью »

Вступление

В прошлой статье я рассмотрел, что такое моделирование. Из этого рассказа должно было возникнуть чувство, что обмен описаниями скорее невозможен, чем возможен. У каждого субъекта свой мир в его сознании. Кто-то видит модель в виде образа, кто-то слышит ее в виде речи, кто-то осязает ее. Как мы при этом умудряемся о чем-то договориться, совершенно непонятно. И все же мы это делаем. Как это нам удается, — вопрос к психологам. Нам же стоит удивиться и воспользоваться этой возможностью, чтобы идти дальше.

В идеале должно быть так: два разных субъекта, получив на вход одну и ту же информацию, должны дать ее описание в одном и том же виде. Вспомните начертательную геометрию. Вам дается задание начертить конус. И все студенты чертят похожие рисунки, называемые чертежами. Так и в случае моделирования более сложных объектов: предприятий, зданий, процессов, мы должны добиться такого же уровня унификации, при котором все будут чертить похожие рисунки, писать похожие тексты (и т.д.), называемые моделями.

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

Я претендую на создание подобного языка, но для описания более сложных объектов: операций, функций, объектов. Об этом языке сегодня мой рассказ.
Читать полностью »

Когда вышла первая публикация на Хабре по теме DRaaS и миграции с VMware, организованных на базе OpenStack, в комментарии пользователя mikkisse была озвучена мысль: единственное очевидное преимущество решений на базе OpenStack — это их относительно низкая стоимость в сравнении с коммерческими предложениями. Другие пользователи (например, AntonVirtual) аккуратно (и не очень) намекали на то, что отсутствие лицензионных платежей придется компенсировать оплатой поддержки, которая обеспечила бы стабильность работы облака. А раз так, замечали третьи (такие как omnimod), лучше не экспериментировать, а отдаться старому-доброму вендору. Мы, в свою очередь, в комментариях обещали подробный рассказ о том, как именно реализуется миграция и/или DR с технологией Hystax Acura в обмен на благосклонное внимание mikkisse и других читателей, давших нам содержательную обратную связь. Выполняем взятое на себя обязательство.

Как перенести данные с VMware на OpenStack: DRaaS и миграция - 1

Читать полностью »

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

Я хочу критиковать 1С платформу и конфигурации, потому что есть проблемы, а в сети какая-то тишина, как будто всех все устраивает. Простите, но не устраивает. Хочу, чтобы статью прочитали обычные программисты 1С (не сотрудники фирмы 1C), и может быть даже поддержали меня.
Читать полностью »

Разработка через тестирование (TDD) – отличный способ повысить качество и надежность кода. Этот же подход может быть распространен и на разработку требований. Он называется "Разработка через приемочные тесты" – acceptance test driven development (ATDD). Сначала я присматривался к этому подходу, потом пробовал применить, потом долго тюнинговал, чтобы приспособить его под мои нужды, и теперь хочу поделиться мыслями. И для себя еще раз разложить все по полочкам.

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js