Win a copy of Spring Boot in Practice this week in the Spring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Liutauras Vilda
  • Henry Wong
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Al Hobbs
  • Carey Brown
Bartenders:
  • Piet Souris
  • Mikalai Zaikin
  • Himai Minh

New System Development: When to start data-modelling?

 
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The question is rather dumb, but I need help:

If a Java EE based System is being designed from scratch, what is the right time to start Data Modeling?

Are the following statements correct:

1) In the 'old' days Data Modeling would precede OO modeling and once the data modelers were 'done', object modelers would 'try' to model classes and objects and their interaction based on the now etched-in-stone entity model?

2) The 'correct' way, at least for a new system, is to start with the Domain Layer or Business Logic Layer of software architecture and then derive the data model based on the object model.

It is apparent, i know nothing about the larger picture, please help me.

I recently read Craig Larman's book on UML and OO design. It is a good book but doesn't discuss when to start data modeling or the inter-connection between Domain Layer and Database Entities.

Thanks in advance.
 
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'd say option 2 is the way to go.
OO design is a much richer way to model a problem (hierarchies, composition,etc).
 
Ranch Hand
Posts: 2187
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It depends upon what type of system is being created and the structure of the organization(s) that are creating it.

The activity of "data modeling" is part of many, many different development areas. The most popular might be relational data modeling, object-oriented data modeling, and XML-based data modeling. Java-based system development typically involves all of these "data modeling" areas.

In large scale development, there usually are different groups handling: (1) architecture design, (2) OO application design, (3) XML Schema/DTD design, (4) relational data and relational database design.

Ideally, no data modeling in any area should start until the (first draft) business/domain requirements have been written. Once the requirements have been written (identified), then data modeling can start in any area. The relational model is usually the most important as it is the permanent record. OO data objects are only temporary.

There is no single "right" time to start data modeling. As I said, it depends.
 
Kevin Marcus
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

The most popular might be relational data modeling, object-oriented data modeling, and XML-based data modeling. Java-based system development typically involves all of these "data modeling" areas.



From object-oriented data modeling you mean object-oriented DBMS? or you mean O/R mapping or you mean the capturing of domain concepts (for eg., Accout in Banking) which are candidates for persistence as DB entities?

Once the requirements have been written (identified), then data modeling can start in any area. The relational model is usually the most important as it is the permanent record. OO data objects are only temporary.



After identifying the requirements and going to the next phase (let's consider water-fall, for simplicity). How would the 'OO data modeling' team collaborate with the 'relational data modeling' team? after all domain objects have to be persisted in the DB. Can these two activities be really independent of each other?
 
Jimmy Clark
Ranch Hand
Posts: 2187
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

From object-oriented data modeling you mean object-oriented DBMS? or you mean O/R mapping or you mean the capturing of domain concepts (for eg., Accout in Banking) which are candidates for persistence as DB entities?



Object-oriented data modeling includes everything that you mentioned and more. Objects consist of data and functionality. To create objects for your application you have to model data in "object" form, besides other things. But the point is that data modeling is a crucial aspect of OO design.


After identifying the requirements and going to the next phase (let's consider water-fall, for simplicity). How would the 'OO data modeling' team collaborate with the 'relational data modeling' team? after all domain objects have to be persisted in the DB. Can these two activities be really independent of each other?



For development of a single system, nothing is independent of each other. Everything needs to be coordinated. Like I mentioned it all depends upon the size of the system, organizational culture and how the technical leaders choose to operate. There is no single way to coordinate this. For example, there probably are hundreds of different ways to cook rice. And, there are hundreds of ways to develop systems.

In large scale systems, Software Architects, Engineers, Programmers, Testers, QA Staff, Business Analysts, Data Architects, DBA, Project Managers all work together to get things done.

For Jim Bob Lee's 1000+ Java Interview questions website or Fred's Local Carboard website, things might be quite different.

 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic