понимание спецификаций системных требований базы данных - PullRequest
1 голос
/ 26 мая 2011

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

The system has to keep track of the names of publishers, their
addresses and telephone numbers

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

опять что-то в этом роде

Information about the books’ names and author(s) is maintained in the database.

означает ли это, что у каждой книги может быть несколько авторов?

при условии, что это не настоящая система (не могу получить разъяснения от реальных клиентов), какое решение по умолчанию я должен принять?

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

заранее спасибо

Ответы [ 4 ]

1 голос
/ 26 мая 2011

Спецификации естественного языка неоднозначны почти по необходимости. Вот почему это постоянная попытка придумать «языки спецификации проекта», которые позволяют быть более формально точными, чем естественный язык. ER, UML, ORM («это» ORM, а не «тот» ORM), даже простые математические формулы: все они «ненатуральные» языки, изобретенные в попытке устранить неоднозначность прозы естественного языка.

Именно поэтому «определение спецификаций достаточно точно» обычно является итеративным процессом с несколькими итерациями.

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

1 голос
/ 26 мая 2011

Английский язык часто неоднозначен, поэтому вы не можете быть на 100% уверены, что имеется в виду в первом случае;вам придется использовать свой здравый смысл, чтобы найти решение.Однако я думаю, что использование «автора (ов)», а не «авторов» во втором случае дает понять, что книга может иметь более одного автора - ее можно прочитать как сокращение для «автор или авторы».

0 голосов
/ 27 мая 2011

Конечно, вы должны получить обратную связь от клиента.Задавать им вопросы - это хорошо.Но я предполагаю, что вам нужно задать как можно меньше вопросов ... Вам действительно нужно ошибиться в создании более гибкого дизайна.Гибкая конструкция должна по-прежнему соответствовать менее гибким требованиям;хотя для создания может потребоваться больше начальной работы.Дайте понять клиенту, за какую степень гибкости они платят.Здравый смысл может быть правильным во многих случаях ... пока он не ошибается.Дизайн, предполагающий, что у человека может быть много адресов, все еще может работать в 90% случаев, когда у человека есть только один адрес.Я легко могу представить сценарии для вашего примера, в которых мне нужно было бы спроектировать много родственных объектов.Предполагать, что отношения один-к-одному, как правило, не из тех, которые можно принять.

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

0 голосов
/ 26 мая 2011

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

Для уточнения:

  • Один издатель должен иметь только один адрес и один номер телефона.
  • Одна книга должна иметь один заголовок и 1 или более авторов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...