Re: Data-aware GUI controls
From: Patrick May (pjm_at_spe.com)
Date: 08/22/04
- Next message: Matt: "upstream and downstream development"
- Previous message: H. S. Lahman: "Re: Data-aware GUI controls"
- In reply to: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Next in thread: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Reply: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 22 Aug 2004 21:45:16 +0100
fredrik_bertilsson@passagen.se (Fredrik Bertilsson) writes:
> > Throughout each application's lifetime, the schema is likely to
> > change for reasons unrelated to the application.
>
> I would say the opposite, throughout the lifetime of the database
> schema the application is most likely to change.
I was under the impression that we were discussing enterprise
systems. These types of applications access multiple, shared
databases that are not owned by the application. Applications
certainly change, but so do schemas and the lifecycles of the two
should not be coupled.
> There are many examples of enterprise applications written orginally
> in Cobol and later rewritten in modern languages, but the most of
> database schema is the same.
"Most" is a very key word here. Schemas do change and change for
reasons related to only one of the many applications that use them.
Failing to insulate applications from these changes leads to brittle
systems that can't be changed because of the ripple effect on other
unrelated components.
> > > A good software design always starts with a careful database
> > > design.
> >
> > False. A good software design starts with an understanding
> > of the business functionality and behaviors required to provide
> > value to the customer.
>
> I think that many developers will disagree with you.
They'd be wrong, then. There's an old saying that no one wants a
drill, but people occasionally need holes. The data, DBMS, and
software in general are of no interest to the vast majority of
businesses, but support for business functionality is essential. That
functionality is why customers pay for systems to be built.
> For example, ask someone doing data warehousing. The business data
> is not only accessed through enterprise applications. Reports and
> queries are also done with standard report and DW tools. It's
> extremly important that the data is carefully designed from the very
> beginning.
I have not suggested otherwise. It is very important to use best
practices in designing database schemas. It is very important to use
best practices when designing business logic and functionality. It is
very important to decouple the two.
> > > Redesign of the database will almost always lead to a change in
> > > the application code, whatever arcitecture is used.
> >
> > False. Changes to the schema that are not related directly
> > to application functionality need not, and should not, affect the
> > application. As an example, denormalization for performance
> > should not impact the user interface.
>
> Yes, the only database changes you can do without changing the
> application is performance optimization. But (all other) changes
> caused by feature requests will of course always affect the
> application too.
Absolutely false. Changes that support new applications or
modifications to other applications (we're discussing enterprise
systems here, remember) can also be made without impact to a given
application. More drastic changes to the entities and relationships
that still support the abstractions required by the application can
also be made.
> > > If you have a "Customer" table, you will most likely have a
> > > spreadsheet in your client which will show "Customer" records.
> >
> > This may be the case in a simple CRUD application, but is
> > increasingly unlikely in large distributed systems.
>
> You think it is unlikely to have a spreadsheet showing customers in
> a large distributed system? I can tell you that every major ERP
> system has.
Not every component or application that uses customer information
in the system will have a GUI of any kind, let alone one with a
customer "spreadsheet". The majority of components will have
different views of what exactly is meant by "Customer" and in many
cases that view will change based on the internal workflow. Coupling
every component of a distributed system to the specifics of a database
schema is a recipe for an inflexible failure.
Regards,
Patrick
------------------------------------------------------------------------
S P Engineering, Inc. | The experts in large scale distributed OO
| systems design and implementation.
pjm@spe.com | (C++, Java, ObjectStore, Oracle, CORBA, UML)
- Next message: Matt: "upstream and downstream development"
- Previous message: H. S. Lahman: "Re: Data-aware GUI controls"
- In reply to: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Next in thread: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Reply: Fredrik Bertilsson: "Re: Data-aware GUI controls"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|