[ДОМАШНЕЕ ЗАДАНИЕ 1.02] Какая задача интересна лично вам?


Это домашнее задание к занятию, на котором вы познакомились с тем, как работают программисты.


cover_homework_konti.jpg

Задание

Найдите задачу, которая интересна лично вам.

Подсказка - Это может быть что-то, с чем вы соприкасаетесь по работе или учебе, например, какой-нибудь рутинный процесс, который бы вы хотели автоматизировать. Или есть какая-нибудь потребность, относящаяся к вашему хобби, скажем, вы не можете найти подходящую программу для создания каталога вашей коллекции открыток. Или что-нибудь связанное с Голос, например, сбор статистики или проведение лотереи :)

Когда вы определились с задачей, сделайте следующее:

  1. Опишите задачу или проблему, решение которой вы хотите получить Представьте, что вы заказчик и ставите задачу разработчикам ПО.

  2. Теперь представьте, что вы бизнес аналитик.
    • Определите предметную область задачи, дайте ей название, кратко опишите ее.
    • Какие объекты (или сущности) относятся к данной предметной области и как они связаны между собой. Изобразите сущности и связи на схеме и/или опишите их словами.
    • Выделите сущности, которые нужны для решения задачи. Как они связаны между собой? Какие их свойства важны, а какие можно игнорировать в контексте данной задачи? Изобразите полученную модель в виде диаграммы и/или опишите текстом.

В результате выполнения домашней работы, у вас должен получиться несколько нарисованных от руки (или в графическом редакторе) схем и 2-4 кусочка текста.

Соберите все это в один комментарий и добавьте к этому посту или, как вариант, красиво оформите и выложите в своем блоге, а в коммент тогда достаточно вставить ссылку на ваш пост.

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


Итоги по выбору лучшей домашней работы будут подводиться в понедельник, 11 сентября, после 10 часов утра по МСК.


Готовы? Поехали!

Желаю успеха,
@wealthycat (Валерий), инструктор курса @sc-programming


logo

Comments 61


Приложение или сайт для заполнения и хранения листов персонажей для настольных ролевых игр. В данном случае возьмем такую распространенную систему как Savage Worlds.
Для чего это нужно? что бы ведущий мог не таскать с собой кучу листов и создать что-то быстро и в любой момент либо же использовать то, что уже было им создано заранее.
Предметная область настольная ролевая игра, это вид проведения досуга, многие могли слышать про Dungeons&Dragons это из той же области, только отличается математикой самой игры.
Самый главный предмет это лист персонажа. На листе персонажа есть много подразделов, часть из которых необходимо обсчитывать автоматически, что бы ускорить этот процесс.
Самые основные свойства это атрибуты и навыки, так как они напрямую зависят друг от друга. Так же есть черты и изъяны, которые в том числе могут влиять как на первое, так и на второе, либо на производные от них значения. Инвентарь во многом тоже зависит от выбранных атрибутов.
Так как более подробное описание данной проблемы может занять слишком много места я постарался описать в кратце. Если нужно что-то более подробное, то могу расписывать уже более детально.

08.09.2017 12:45
0

Если нужно что-то более подробное, то могу расписывать уже более детально.

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

08.09.2017 12:57
0

На листе персонажа имеется 5 атрибутов. К каждому есть связанные с ним навыки. Суть следующая. При создании персонажа дается 5 очков на атрибуты. Атрибуты измеряются гранями кубиков. d4, d6, d8, d10, d12. На старте у всех игроков уже имеются все атрибуты по d4. каждое потраченное очков увеличивает атрибут на следующее количество граней, таким образом потратив 1 очко можно получит атрибут на d4. а d6, потратив еще один уже d8 и т.д.
От атрибутов зависят навыки следующим образом. На начале есть 15 очков на распределение навыков. доступных стартовых навыков нету. Пока навык меньше атрибута от которого он зависит увеличение этого навыка стоит одно очко, как только навык превышает атрибут стоимость улучшения стоит 2 очка.
Далее идут производные вещи это Защита считается как 2+(количество граней кубика навыка Драки / 2), Стойкость считается как 2 + (количество граней кубика атрибута Выносливость / 2), максимальный переносимый вес считает как количество граней кубика Силы * 2,5
Так же для некоторых черт есть условия, например черту Акробат можно взять имея Ловкость d8, так же черты могут и зависят от навыков, например, от Драки. Так же есть черты которые открывают новые навыки, такие как мистические дары (использование магии) без этих навыков нельзя прокачивать данные навыки.
И последнее где могут как-то атрибуты это оружие, так как у всего оружия ближнего боя урон будет считаться как Кубик атрибута Силы + кубик, который дает непосредственно само оружие.
Так же у оружия могут быть некоторые требования, будь то необходимая минимальная сила для использования оружия.
Изъяны так же могут влиять на навыки либо атрибуты уменьшая их или вводя ограничения на максимальное значение граней в данных атрибутах или навыках, либо просто уменьшая параметры, как то стойкость, например.
Вроде бы постарался описать как можно подробнее. Если все еще нужно что-то уточнить пишите.

08.09.2017 13:29
0

Приложение для автоматизированного сбора информации о людях на основе данных из открытых источников.

1) Изначально нужно заполнить поля формы ввода, где указать всё что известно - имя, город, возраст, дату рождения, имена друзей, ключевые слова из увлечений и хобби, известные ники итд.

2) Далее приложение начинает искать по заданным данным людей в соцсетях а также составлять запросы к гуглу

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

4) Поиск повторяется несколько раз, учитывая найденные дополненные данные о человеке

5) На выходе создается досье в котором в качестве графической паутины отображены связи и контакты человека (друзья, родные), его телефоны, емайлы, мессенджеры, ники, ключевые слова увлечений, и все найденные фотографии. Результат формируется в виде HTML страницы

В качестве поисковика для программы можно использовать people.yandeх.ru и API некоторых соцсетей а также гугл

Предметная область: Поиск информации о человеке в открытых источниках
Модель:

Cущность: Человек

  • id человека
  • Основной искомый человек(True) или его друзья в соцсетях(False)
  • ФИО человека
  • Его ники через запятую
  • Телефоны
  • Емайлы
  • Другие мессенджеры
  • Ссылки на статьи где он или его ники, контакты упоминаются кроме соцсетей
  • Город, адрес, места проживания
  • Ключевые слова характеризующие увлечения и хобби
  • Фотографии с этим человеком
  • Где работал/работает - с примерными датами
  • Где учился/учится с датами

Сущность аккаунт в соцсети:

  • id человека
  • Дата последней активности
  • Ссылка на аккаунт
  • Среднестатистический пик активности в течении суток (время наибольшей активности)

и в перспективе еще куча параметров

Изначально есть главный человек о котором ищется информация, остальные не главные

Связи между сущностями человек:

  • Дружат в соцсетях (связь многие ко многим)
  • Одинаковый город или район проживания (связь многие ко многим)
  • Близкий диапазон возрастов рождения (? хз какой тип связи)
  • Одинаковое место работы (связь многие ко многим)
  • Одинаковое место учёбы (связь многие ко многим)
  • Одна семья (связь многие ко многим)
  • Одинаковые увлечения (связь многие ко многим)
  • Топ-10 количество лайков друг друга (связь один к одному?)

Связи между сущностями человек и аккаунт в соцсети:

  • Связь один ко многим по id

Задача: заполнить как можно больше параметров о данной личности, сформировать в удобочитаемом виде (HTML)

08.09.2017 14:18
0

Заказчик программы наверно из службы безопасности разных стран )))

08.09.2017 15:10
0

Да нет я просто подумал какой мне программы не хватает для полного счастья и вот моё подсознание родило такую идею ))

08.09.2017 15:13
0

подсознание агента спецслужбы)))))

11.09.2017 08:52
0

У агентов думаю такой софт уже имеется и без моей скромной персоны ))

11.09.2017 09:38
0

интересная получится софтина))))

10.09.2017 22:16
0

Ага только вот писать такую довольно долго - это ж нужно заюзать все API популярных соцсетей...

11.09.2017 04:28
0

Программа для мониторинга, сравнения розничных цен, сбора статистики появления новых моделей смартфонов на рынке, распределение их по ценовым категориям.

  • Предметная область: розничные интернет-магазины в России, сайты производителей смартфонов, сайты китайских интернет-магазинов, у которых есть отправка в РФ.
  • Какие данные нужны для выполнения задачи?
    1. Информация поступающая от интернет-магазинов к поисковику(розничные цены,модели в продаже,новинки)
    2. Информация от производителя(новые модели,рекомендованная или розничная цена,ожидаемая дата начала продажи)
    3. Информация от китайских интернет-магазинов(цены,возможность отправки в РФ,возможность работы аппарата в РФ,новые модели)
    4. Информация от поисковых систем(сбор данных от интернет-магазинов)
  • Какие данные можно не учитывать?
    1. Операционная система смартфона,количество товара в наличии
    2. Отношения продавцов с поставщиками и производителями
    3. Наличие или отсутсвие сертификатов на товар
    4. Гарантийные обязательства
    5. Долю рынка занимаемую каким-либо производителем
    6. Информацию об оптовых ценах и оптовых продавцах
    7. Информацию с площадок частных объявлений
  • Моя программа отправляет запросы для сбора нужной информации поисковым системам, сама запрашивает информацию в интернете, собирает информацию, анализирует по заданным выше параметрам и предоставляет отчеты в готовом и удобном виде с разбивкой по нужным категориям.

    Вся схема взаимодействия выглядит вот так:

08.09.2017 22:10
0

суть задачи, в целом, понятна... а вот картинка - непонятна вообще!

  • стрелочки разных цветов
  • блок розничная торговля
11.09.2017 09:15
0

Альтернативный клиент для Голоса, частично автоматизирующий работу куратора проекта «Поддержка авторского уникального контнета»:

  • Клиент по заданным параметрам администратором или куратором (прошедшее время с момента публикации, вознаграждение за пост, репутация автора, теги) осуществляет выдачу постов.
  • Если пост показанный в выдаче открывает один из кураторов, то этот пост автоматически перестаёт отображаться в выдаче остальных кураторов. Два куратора не могут одновременно открыть один и тот же пост. (Это нужно для экономии ресурсов проекта и максимально эффективного их использования.)
  • После того как куратор заходит в пост, то текст поста автоматически отправляется на проверку уникальности в text.ru, а изображения в google, yandex или другие сервисы проверки уникальности изображений, после проверки уникальности куратор видит % уникальности текста поста, и были ли найдены такие же изображения.
  • Если куратор решает поддержать пост, то он нажимает соответствующую кнопку «поддержать» и появляется форма для заполнения, где уже автоматически заполнены: номер поддерживаемого поста, аккаунт автора поста, название поста с ссылкой на него, % уникальности с сылкой на проверку. Куратору остаётся написать краткую заметку о посте, после чего он нажимает на кнопку «скопировать в буфер обмена», после нажатия вся информация о посте в виде кода для markdown копируется в буфер обмена.
  • Если куратор решает не поддерживать пост, то так же нажимает соответствующую кнопку, появляется окно заполнения формы где куратор указывет причину отказа от поддержки, далее куратор нажимает кнопку «отправить» и этот пост отправляется в документ сервиса для совместной работы (например google docs) где указан: номер поста, ссылка на пост, ник отправившего форму куратора, дата отправки, причина по которой пост не поддержан.

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

    • Программное обеспечение для взаимодействия с блочейном Голоса
    • скрипты и автоматизация

    К программному обеспечению относятся объекты:

    • блокчейн Голоса
    • код программного обеспечения

    К скриптам и автоматизации относятся объекты:

    • сторонние сервисы с которыми будет взаимодействовать скрипт (text.ru, google, yandex и т.д.)
    • код программы скрипта
09.09.2017 10:15
0

Отличное ТЗ! Все четко и подробно.

A как насчет второй части?

Теперь представьте, что вы бизнес аналитик.

Определите предметную область задачи, дайте ей название, кратко опишите ее.

Какие объекты (или сущности) относятся к данной предметной области и как они связаны между собой. Изобразите сущности и связи на схеме и/или опишите их словами.

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

09.09.2017 10:23
0

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

10.09.2017 12:07
0

...с сущностями вообще не понятно

Это абсолютно нормально, у меня в начале было примерно тоже самое. Мы будем в следующих уроках изучать приемы моделирования более детально, по идее, должно помочь.

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

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

10.09.2017 12:28
0

Для начала довольно простая такая задачка:
кошелек для Голоса ( golos, gbg )

Предметная область: криптовалюта, golos, gbg

название: кошелек
краткое описание:
простой кошелек для хранения, передачи golos, gbg по типу других криптовалют.
зачем:
при ближайшем рассмотрении платформы оказалось что простого кошелька для пользователей НЕТ,
вернее он есть, но только на КЛИЕНТЕ golos.io ну или полная нода.
Если сайт golos.io например взломают, или заблокирует Роскомнадзор, да просто админы допустим меня забанят за плохое поведение, доступ к средствам будет затруднен, придется ставить полную ноду, для кого-то это тривиально, для большинства - дремучий лес.

10.09.2017 03:19
0

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

Как насчет второй части задания? Попробуйте понять какие сущности и связи между ними есть в рамках вашей предметной области и какие из них важны для реализации вашей задачи. Это, например, могут быть такие вещи как "счет" - свойства: валюта, баланс; "транзакция" - тип, получатель, сумма, комментарий.

10.09.2017 08:10
0

Благодарю за подсказки, предварительно так:

кошелек
   имя(отображаемое?)
   id(=имя_пользователя_на_Голосе?)
  ..
счет
   валюта(gbg или golos)
   баланс
   ..
транзакция
   получатель(и)
   валюта(gbg или golos)
   сколько
   комментарий

получатель
  id(=имя_пользователя_на_Голосе?)
  имя(отображаемое?)

адресная книга
  список получателей\отправителей

история
  получатели
  отправители
10.09.2017 09:50
0

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

Задачи:

  • отслеживать появление новых публикаций с тегом # красивыестены (не обзор недели), дописывать информацию об этой публикации в БД (№пп, автора, ссылку на статью, ссылки на все изображения в статье, маркер: не обозревали, маркер: не голосовала), сообщать мне об их появлении (давать прямую ссылку);
  • в случае, если я проголосовала по этой ссылке, в БД для этой публикации ставить маркер: проголосовала;
  • отслеживать появление новых комментариев к статьям об эстафете (с правилами и обзорам), информировать меня (прямой ссылкой);
  • уменьшать изображения (для превью) из опубликованной статьи с тегом # красивыестены, за которую я проголосовала, сохранять их на жестком диске устройства и на интернет-ресурсе хранения изображений под моим аккаунтом, в БД дописывать ссылки к соответствующей записи;
  • в определенный день недели и время составить текст будущего обзора, включающий вступление, ссылки на авторов, статьи, изображения (превью и возможность увидеть полноразмерно по клику) (только тех, что ранее не обозревались и имеют от меня голос), заключение;
  • позициям, попавшим в текст отчета, проставить маркер: номер обзора;
  • сохранить этот файл (с именем нового номера обзора), информировать меня о готовности к редактированию и публикации;
  • по вызову комманды, сформировать на странице платформы Голос под моим аккаунтом новый пост, включающий название (с учетом номера публикации), содержимое, теги.

2. Предметная область: публикации в рамках эстафеты "Красивые стены" на Голосе.

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

Модель:

А вот дальше я не уверена. И потому вопрос:
У меня сначала был свой вариант, где были только сущности (как точки взаимодействия, даже если некоторые реально являются свойством других), а потом я посмотрела другие опубликованные ответы и комментарии инструктора, и попробовала сделать иначе: сущности и их свойтва (вложенность). Но тогда у меня ключевыми для модели выходят все сущности, но не все их свойства, а только некоторые. И связи можно/нужно проставлять только для сущностей или как для сущностей, так и для свойств?

Публикую некий средний вариант (а вы, если можете, подправьте, если что не так)
1 - публикация с условиями эстафеты (свойства: ссылка, теги, комментарии)
2 - тег # красивыестены
3 - комментарии к 1
4 - пронумерованые обзоры недели по эстафете (свойства: ссылка, теги, номер, комментарии) с 2
5 - другие публикации с 2 (свойства: ссылка, автор, теги, изображения, мой голос)
6 - миниатюры изображений из 5
7 - жесткий диск и внешнее хранилище для 6
8 - БД авторов 5 (№ппа, автор, ссылка на публикацию, ссылки на изображения и миниатюры, маркер моего голоса, маркер обзора)
9 - БД публикаций (№ппо, название, вступление, заключение, теги)
10 - файл с предварительным текстом публикации
11 - инструменты для оповещения и публикации
12 - Я (мои действия: переходы, голоса, редактирование, публикации)

схема модели

И вариант где мало сущностей, но много свойств:

(1)
Публикация про условия эстафеты

  • ссылка
  • теги
  • изображения
  • комментарии
  • авторы комментариев
    (2)
    Публикация с тегом эстафеты
  • автор
  • ссылка
  • теги
  • изображения
  • мой голос
    (3)
    Ресурсы для хранения
  • место публикаций
  • место хранения изображений
  • место хранения БД
  • место хранения информации для редактирования и публикации
    (4)
    Файлы
  • БД публикаций (автор, ссылки, маркеры)
  • изображения из этих публикаций
  • подготовленный к публикации текст обзора
  • БД обзоров (номер публикации, название, теги)
    (5)
    Публикации обзоров новых работ
  • номер обзора
  • название обзора
  • теги обзора
  • контекст обзора (вступление, ссылки из БД, заключение)
    (6)
    Средства связи/вывода информации
  • текст информирования
  • метод (средство) информирования
  • средство для запуска дальнейшей обработки

модель

10.09.2017 07:36
0

И связи можно/нужно проставлять только для сущностей или как для сущностей, так и для свойств?

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

По вашим моделям есть такая проблема - вы смешиваете предметную область и реализацию программы. В первой модели к предметной области отосятся пункты 1-6, а пункты 7-11 это чистой воды реализация. Вы пытаетесь одновременно построить модель предметной области и решить как будет реализованна программа, то есть выполнить проектирование. Для простых задач можно так и делать, да так и делают в общем-то, но в рамках учебы лучше идти отдельными шагами - изучение предметной области - моделирование - проектрировании -... как описано в статье.

Когда вы ставите задачу, тоже лучше всего говорить о том, что вы хотите получить, а не как это должно быть реализованно.

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

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

Если остались еще вопросы или что-то не понятно, пишите - постараюсь помочь.

10.09.2017 08:03
0

Я очень благодарна за такую качественную обратную связь!
Я переделаю и пришлю комментарием к своему ответу. Верно?

10.09.2017 08:16
0

Проверьте, пожалуйста :)
Хочу осознавать, на этот раз я правильно поняла материал или еще есть нюансы?

Работа с публикациями в рамках моей эстафеты на платформе Голос.
Задача: отслеживать новые публикации с тегом # красивыестены, но не обзоры недели. Информировать меня о них удобным для просмотра и голосования способом. Хранить информацию о тех из них, за которые я проголосовала. Раз в неделю в заданное время подготовить к публикации текст обзора недели по новым работам, где предоставить информацию о номере публикации, порядковом номере участника, ссылке на работу-эстафету, кликабельные миниатюрки изображений из этой работы. А также, стандартные вступление и окончание.

Предметная область (то, что осталось для модели):
публикации-обзорынедели,
публикации-участники,
тег # красивыестены,
авторы публикаций-участников,
изображения из публикаций-участников,
мой голос (апвоут) за публикацию участника,
текст вступления и окончания поста-обзора,
текст для новой публикации обзоранедели.

Модель:

модель

И попытка определить (назвать) связи, если я их правильно поняла:

модель со связями

10.09.2017 11:22
0

Теперь все выглядит гораздо лучше :) Я бы еще подумал о том, являются ли сущностями "мой голос" и "тег". Мне кажется, что их можно представить в модели, как свойства сущности "публикации-участники", по которым в программе просходит отбор нужных вам публикаций для просмотра.

Например так:

публикация-участник
    мой_голос: да/нет
    тег_красивыестены, да/нет
10.09.2017 11:45
0

Ааа... Вон оно как! Чувствовала, что что-то смущает. Надо получше разобраться с разделением на сущности-свойства-связи.
Мы это будем в следующий раз учить? Или лучше где-то почитать?

10.09.2017 11:55
0

@v-mi

Это скорее практика, надо построить несколько моделей и потом их реализовать в коде. Если есть желание, возьмите еще одну предметную область и сделайте для нее, скиньте в коммент сюда - я посмотрю.

Но учить тоже будем - следующие 2 занятия будут как раз по моделированию, будем изучать стандартные приемы и диаграммы - тоже должно помочь.

Или лучше где-то почитать?

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

10.09.2017 12:15
0

Благодарю за рекомендации! (пишу сюла, ибо далее система не пускает :) )
Жду следующих занятий!

10.09.2017 12:27
0

Задача:

Отслеживание и регулирование процесса выполнения работ

Предметная область:

Управление процессом

Сущности:

Клиент
Заявка
Жалоба
Участок
Требование
Объяснительная
Совет руководителей
Решение
Кадры
Отчет (статистический по жалобам)
и т.д. и т.п.

Связи:

  1. Приходит заявка клиента на исполнение работ
    Заявка передается в участок на исполнение
    Исполнение заявки
  2. Приходит жалоба от клиента о не точном исполнении заявки
    Жалоба передается в участок основного исполнения
    Устранение некачественного исполнения заявки
  3. Жалоба клиента является основанием для выработки требования:
    3.1.1 к участку основного исполнения заявки
    Требование передается на участок основного исполнения
    Спрашивается объяснительная с исполнителя по браку
    или
    3.1.2. к смежному участку
    Требование передается смежному участку
    Спрашивается объяснительная от смежного участка по требованию
    3.2. к совету руководителей
    Требование и объяснительные передаются совету руководителей
    Готовится решение совета руководителей по устранению проблем
  4. Решение совета руководителей:
    4.1. по отношению к основному исполнителю
    Все знакомятся с объяснительной и Отчетом по требованию
    Принимаются соответствующих меры:
    4.1.1. реорганизация на участке исполнителя (нехват.людей, зап.ч., и т.д.)
    и/или
    4.1.2. меняют работника (кадровый вопрос)
    Накопление статистики по жалобам
    4.2. по отношению к смежному участку
    то же что и п.4.1, но по отношению к смежному участку
    ... и т.д., и т.п.

10.09.2017 14:46
0

Приложение для простого (автоматического) и надежного подбора “того самого” психолога для различных клиентов на основании совпадения ряда ключевых психологических параметров.

  1. Клиент заполняет данные о себе в 3-4 шага.

    • Запрос, “то, какая и для чего психотерапия ему нужна”.
    • Экспресс-диагностика.
    • Предпочитаемый для него характер взаимодействия психолога и клиента.
    • Ценовой диапазон и прочее опционально.
  2. Психолог так же заполняет соответствующие данные, но в более расширенном формате. Данные должны быть заверенными.
  3. По составленной базе данных психологов и клиентов осуществляется подбор на основании совпадения ключевых параметров. Базы данных кодируются, и большая часть данных может быть видна лишь непосредственно подобранному психологу и клиенту с возможностью полной анонимности.
  4. На основе приложения происходит либо очная запись, ибо видеосвязь.
    Предметная область: психологическое консультирование.
    Ключевые задачи: 1) Подбор качественных услуг 2) Осуществление услуги.
    Сущности:
    1) Аккаунт клиента:
    • Пол, возраст. Опционально: имя, место жительства.
    • Предполагаемый диагноз или запрос (цели консультации). Личносный профиль.
    • Предпочитаемый тип отношений между клиентом и психологом в ходе консультаций.
    • “Смысловой портрет психотерапии” – косвенный образ того, что клиент ждет от встречи.
    • Предполагаемая цена, количество и частота встреч.
    • Прочие предпочтения.
      2) Аккаунт психолога:
    • Адрес, место работы, ФИО.
    • Заверенные сведения об образовании.
    • Набор компетенций.
    • Диапазон удовлетворяемых запросов.
    • Стиль отношений с клиентами на консультации (по методикам).
    • Предполагаемая оплата.
    • Часы доступности для клиента.
    • Условия работы с клиентом.
      Свойства будут дополняться по ходу работы.
      Связи между сущностями выполняются по совпадению ряда ключевых свойств, и могут варьироваться в двустороннем порядке.

10.09.2017 14:59
0

Простой вопрос застал в расплох, хотелось разные вещи автоматизировать, но решил попроще (если не ошибаюсь со сложностью).

Домашнее Задание

Цель: монетизация простоя пк.

Задача: Сбор криптовалюты на сайте-кране "фрибитко".

  • Открывать сайт в браузере каждый час(+) рандомно,
  • ночью (или днем) не работать,
  • нажать на кнопку сбора,
  • если выскочит каптча - перехватить ее и
  • через апи отправить на сервис разгадки каптчи,
  • вставить ответ и
  • нажать кнопку сбора;
  • закрыть браузер после выполнения;
  • предусмотреть возможность добавить стратегии (дополнительные клики на сайте)
  • Сайт сохраняет куки, и каптчу выдает только при изменении идентификаторов пк и браузера, поэтому софт сугубо для персонализированной браузерной работы.

Предметная область:

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

Объекты (сущности): свойства (функции):

  • Браузер: хром;
  • сайт-кран: фрибитко;
  • режим работы: час+ рандомно, в течении 12-16 часов днем или ночью, настраиваемый;
  • кнопка сбора: нажатие эмулятором клика (программный скрипт js);
  • каптча: отсутствует или солве-медиа или ре-каптча;
  • АПИ: подключать если каптча появится для перехвата и отправки ее на сервис разгадки;
  • сервис разгадки каптчи: подключается через АПИ;
  • ответ каптче: ответ от сервиса для вставки в окно подтверждения;
    Диаграма

(Если апи сложный вопрос то попробую выложить другую задачу до утра)
Кстате, классный сервис для диаграмм =) : realtimeboard.com

10.09.2017 18:34
0

Если апи сложный вопрос то попробую выложить другую задачу до утра

Нормальная задача, сложность апи вообще не имеет значение на этом этапе.

В смысле реализации посоветую глянуть вот на эту штуку - http://phantomjs.org/

10.09.2017 18:47
0

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

10.09.2017 19:06
0

за сервис спасибо)

11.09.2017 09:32
0

,,Поддержка человеческого здоровья,путем подсказки человеку когда,сколько и чего употреблять в качестве еды и питья,,
Задача №1 Сбор информации о конкретном человеке,вес,рост,пол,год рождения,гороскоп ,привычки, перенесшые болезни и т.д.
Задача №2 Специальная программа должна в определенное время напоминать человеку о нехватке или переизбытки витамин,аминокислот ,жидкости и т.д.сколько граммов съесть пищи на выбор,какие физические или умственные упражнения и т.д.
Предметная область:Консультирование и управление процессом выживания среди не здоровой пищи и питья.
.Клиент сканирует сетчатку глаза.
.Программа выдает точную подсказку,что нужно съесть,выпить и т.д., чтобы быть в здоровой форме,которая актуальна в течении 60 минут.
Сущности:
Специальное мобильное приложение,которое позволяет считывать сетчатку глаза и мгновенно определять здоровые потребности человека.
Модель:человек > мобильное приложение > оценка-подсказка

10.09.2017 18:44
0

Модель:человек > мобильное приложение > оценка-подсказка

"мобильное приложение" - здесь лишнее, это уже не про предметную область, а про реализацию.

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

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

10.09.2017 18:54
0

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

10.09.2017 20:01
0

Вот только правильно ли я определила, что есть предметная область, что есть сущность?

Предметная область - правильно. А вот насчет сущностей, у меня есть сомнения.

алкоминиатюра  (сущность)
    напиток: коньяк/ликер/.... (свойство)
    марка: название марки (свойство)
    сорт: название сорта (свойство)
    описание: текст (свойство)
    дата_добавления: дата (свойство)

фото (сущность)

алкоминиатюра -> фото (связь между алкоминиатюрой и фото, показывает какое фото к какой миниатюре относится)

Может быть так?

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

10.09.2017 20:14
0

Спасибо за разъяснения!

10.09.2017 20:31
0

уффф... /sc-programming/@woland/sc-programming-domashka-2
УШЕЛ СПАТЬ! ;-)

10.09.2017 23:08
0

Сделала :)
/sc-programming/@lokkie/sc-programming-domashnyaya-rabota-2

11.09.2017 04:52
0

Отдельный клиент на базе блокчейна Голос - “Букмекерская контора”.

  • Для простоты не принимаются LIVE-ставки.
  • Чтобы уйти от закупки линии коэффициентов, создаётся скрипт, который собирает актуальные значения, предположим 5 разных сервисов и выводит среднее арифметическое.
  • Скрипт для постоянного обновления данных, полученных первым скриптом, и внесение в таблицу.
  • Игрок, нажимая на поле таблицы (цифру коэффициента) автоматически выбирает эту позицию в свою карточку.
  • В карточке, после выбора всех позиций, в поле суммы ставки вносит сумму в Голосах/ГБГ и нажимает “подтвердить”.
  • Всё это дублируется в golos.io под постом с таблицей в комментарии. (для наглядности - по принципу golos.loto).
  • Скрипт отслеживающий каждую позицию (true, false), если все позиции true, то происходит подсчёт (сумма ставки умножается на итоговый коэффициент карточки) и производится выплата на кошелёк игрока.

Предметные области задачи:

  1. Сам бч Голос
  2. Скрипты для автоматизации
  3. Сторонние сервисы (те букмекерские конторы у которых будет браться среднее арифметическое)
  4. Код всего проекта/клиента

Одна из основных задач: максимальное облегчение самого клиента (ресурсозатратность). Так как производство блока занимает 3 секунды, а LIVE-ставки с таким промежутком принимать точно не получится, то хотя бы ускорить работу экспресс-ставок.

11.09.2017 06:20
0

Задача: разработка плагина для Adobe InDesign, позволяющего осуществлять автоматическую верстку объявлений: оформление текста, разделов, оформление 2 видов платных объявлений: «рамок» и «фотообъявлений», подгонка текста по-странично (отсутствие висячих строк).
Предметная область: текст объявлений, загруженный в файл Adobe InDesign
Объекты: текст объявлений (свойства: размер, жирность, интерлиньяж), текст рекламных объявлений (свойства: размер, жирность, интерлиньяж, рамка), текст — название разделов и подразделов (свойства: размер, жирность, интерлиньяж), фотографии объектов к фотообъявлениям.

11.09.2017 06:39
0

я дико тизвиняюсь за ОФФТОП, но КАК оценивать? просто задача понравилась? насколько студент хорошо описал проблему и выделил сущности? насколько сложна/нова/актуальна задача? или где?

час читал все ответы, какие-то просто не понял, где-то понравилась задача, НО нет собственно домашки, т.е. взгляда аналитика! а где-то наоборот - отличное решение, но задача мне не интересна

КОРОЧЕ... срок сдачи, я так понял, прошел... пусть будет "КОШЕЛЕК", проголосовал

11.09.2017 10:36
0

а где-то наоборот - отличное решение, но задача мне не интересна

Я бы оценивал именно решение, мы ведь учимся именно решать задачи, а выбрать что нравится обычно и так не проблема :)

11.09.2017 10:49
0

моя домашка /sc-programming/@dreamer/razrabotka-predmetnoi-sushnosti-dz-1-02

11.09.2017 16:36
0

/sc-programming/@kks/domashnee-zadanie-1-02

11.09.2017 21:11
0

Программа для анализа возможности арбитража криптовалютами.

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

Есть возможность выбора биржи, криптовалют, пар торгов, проверка арбитража внутри биржи.

Предметная область: Парсинг информации с разных источников.
Задачи: поиск разницы в цене >5%, расчет скорости транзакции по торговым парам, учитывать комиссии, анализ спроса/предложения.

Сущности:

  1. Биржа
  2. Торговая пара

12.09.2017 09:30
0

Моя задача, на первое время, проста:
Telegram-канал с автоматической публикацией курса биткоина. При его росте относительно прошлого курса публикуется одна серия картинок, при падении другая

12.09.2017 10:04
0

ТЗ понятно. А какие сущности есть в предметной области этой задачи? Какие их свойства важны для решения? Какие связи между сущностями?

12.09.2017 10:09
0

Telegram-канал с автоматизированной публикацией курса BTC и прикрепленными картинками в зависимости от данных о его изменении.

В качестве сервиса, осуществляющего мониторинг курса, будет использоваться coinmarketcap.com.

Предметная область: взаимодействие с API Telegram
Сущность: изменение курса Bitcoin внутри дня

Связи между сущностями человек:

Задача: парсинг курса BTC, сопоставление с предыдущим актуальным, вывод данной информации, с помощью взаимодействия с API Telegram, на канал.

12.09.2017 11:28
0

Может быть как-то так?

Сущности:

Telegram-канал
    название
    логин
    пароль

Сообщение
     картинка

Курс-валюты
     текущий_курс
      предыдущий_курс
      время_обновления

Источник-информации-о-курсе
      url
      regexp_для_парсинга

Связи:

  • Сообщение передается через Telegram-канал при изменении состояния Курс-валюты
  • Курс-валюты обновляется по таймеру из Источник-информации-о-курсе
12.09.2017 11:55
0

Спасибо большое!!

12.09.2017 12:01
0

Поняла, что если и дальше буду выбирать, что бы мне автоматизировать, выполнение домашнего задания затянется на неделю. Так что беру первое попавшееся.
Приложение, которое будет периодически заходить в игру и выполнять какие-то задачи (открывать сундуки, собирать монеты и проч.). Например: раз в два часа выполняется заход в игру и конкретный набор действий:нажатие на изображение сундука, переход, еще одно нажатие, переход, 3 последовательных нажатия.
Предметная область: игры онлайн, автоматизация.
Сущности: сундук, палец пользователя.
Вот дальше я застряла. Если палец пользователя не используется, и приложение призвано его заменить, то превращается ли приложение в отдельную сущность?
Или оно по определению не может ей являться?

12.09.2017 13:13
0

У вас предметная область - это игровой мир. То есть сущностями будут "сундук", "монеты" и другие вещи которые встречаются в игре.

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

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

12.09.2017 14:37
0

Спасибо, теперь гораздо яснее. Буду думать)

12.09.2017 14:57
0

Извините, я тут выпала из процесса слегка, у нас в понедельник "1 сентября" было, со школьными хлопотами голова отказывалась принимать новую информацию.
Итак, что у меня получилось.
Я посмотрела другие работы, у всех такие задачи глобальные...
я для начала решила что-то простенькое изобразить, ибо не уверена, что до конца правильно поняла все эти разделения на группы-подгруппы-сущности-объекты)))

  1. Проблема заваленности компьютера фото и видеофайлами. Они раскиданы по дискам и папкам, много дублирующих.
    Надо рассортировать в понятном виде.
  2. я-бизнес аналитик:
    Собрать все файлы с разных дисков и папок в единую структуру. убрать дубликаты. Разложить файлы по папкам
    -по времени создания
    -по тематике
    -по формату (фото или видео)

@wealthycat, а Вы проверите опоздавших?

12.09.2017 19:07
0

Вы проверите опоздавших?

Конечно проверю :)

По сути - задача у вас описана хорошо, модель тоже в принципе годная. Не совсем понятно, что означает связь "мой компьютер". Зачем она нужна? Ведь вроде все файлы и так у вас на компьютере. Еще не понятна связь между видео и фото файлами.

По сущностям можно сделать еще так (рассмотрите как вариант):

Файл
     формат: фото/видео
     время_создания
     тема

Папка:
     сортировка: по времени создания/по теме/по формату

При таком раскладе у вас будет только одна связь между двумя сущностями - к какой папке отосится файл. Отношение будет "многие ко многим", то есть один файл может быть в разных папках и в одной папке будет больше одного файла.

12.09.2017 19:21
0

спасибо! да, так лучше, это мне и надо!

14.09.2017 06:03
0

Здесь мое ДЗ 1.02

14.09.2017 07:37
0

Я сделаль
/sc-programming/@ruslandis/razrabotka-yazyka-poiskovykh-zaprosov

16.09.2017 12:49
0