views:

153

answers:

3

An SRS should specify "logical requirements" but not start "design".

My problem is in the IEEE SRS document (IEEE Std 830-1998) section 5.3.4 says:

5.3.4 Logical database requirements
This should specify the logical requirements for any information that is to be placed in a database. This may include the following:
  • a) Types of information used by various functions;
  • b) Frequency of use;
  • c) Accessing capabilities
  • d) Data entities and their relationships
  • e) Integrity constraints
  • f) Data retention requirements

So does d) mean drawing the ERD is ok? When does specifying the system to this level in REQUIREMENTS bleed in to DESIGN?

+1  A: 

A Logical Data Diagram does not define actual data storage. It defines the Entities at a conceptual level. It's up to somebody else to figure out how to store those Logical Entities.

...so yes, an ERD would be acceptable.

This kind of activity would start to bleed into Design if you began to specify actual storage requirements (which data belongs in which tables, data types, etc.) rather than just defining the Entities at the conceptual level.

Justin Niessner
An ERD can be both a logical and a physical design document. Take a look here to see the difference. http://www.visual-paradigm.com/highlight/compare_logical_physical_erd.jsp
Nissan Fan
A: 

An ERD is logical design.

The table-column logical schema is independent of any physical implementation. From the tables, columns (even indexes), you cannot determine anything about the physical infrastructure that supports that database.

Physical database design is tablespaces, filesystem, media, logging, etc.

Here's a summary: http://www.revision-zero.org/logical_data_independence

Here's a paper: http://www.sigmod.org/record/issues/9309/design.ps

Note that there's no clear and absolute division between "logical requirements" and "design". In principle, one is "what" and another is "how", but there's an infinite number of fine-grained what vs. how levels to any specification.

You can say that "code" is design. I say that "code" is a logical model and the circuits of the computer hardware that process that code is where the physical design happens. Someone else can say that the superficial hardware instruction set is just logical design, and it's the individual gate arrays that are physical design.

S.Lott
+1  A: 

Here is a very useful reference that breaks down the difference between logical and physical database design:

http://www.developer.com/tech/article.php/641521/Logical-Versus-Physical-Database-Modeling.htm

Nissan Fan