dbTalk Databases Forums  

What is analysis?

comp.databases.theory comp.databases.theory


Discuss What is analysis? in the comp.databases.theory forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
David Cressey
 
Posts: n/a

Default What is analysis? - 12-02-2007 , 06:23 PM






I had thought that all software engineers were familiar with what analysis
is, and how it differs from design. But perhaps not. There have been a
couple of basic questions in this newsgroup, from people that seem like
serious professionals, that suggest that analysis itself is widely
misunderstood.


Given the number of large projects that have begun with inadequate analysis,
and have ended in disaster over the last decade, perhaps there's a
widespread ignorance of the fundamentals of analysis.

I'm hesitant to offer a definition off the top of my head, because it will
surely be torn apart by the usual gang of vultures. In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did you
ever take a course on analysis? Or, alternatively, did you ever take a
course on methodologies that put a strong emphasis on analysis?

Have any of you ever undertaken a large scale database design project
without doing any formal analysis, or just by writing down the requirements
in a doc? What happened after that? I'm not talking about a little
database with 20 or 30 columns. I'm talking a database with upwards of 300
columns and a good number of tables.





Reply With Quote
  #2  
Old   
Marshall
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 01:40 AM






On Dec 2, 4:23 pm, "David Cressey" <cresse... (AT) verizon (DOT) net> wrote:
Quote:
I'm hesitant to offer a definition off the top of my head, because it will
surely be torn apart by the usual gang of vultures.
What, here in c.d.t.? Noooo, that can't be right. :-)


Quote:
In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did you
ever take a course on analysis?
I have a bachelors in CS from UC Berkeley. Never took a class
in analysis. Never really heard of it until the last 5 years or so.


Quote:
Or, alternatively, did you ever take a course on methodologies
that put a strong emphasis on analysis?
Never took any methodology course.


Quote:
Have any of you ever undertaken a large scale database
design project without doing any formal analysis, or just
by writing down the requirements in a doc?
Well, at my last job, most of what I did over the years
involved working with this one big database. It had
roughly 75 tables when I started, and many hundreds
when I left. Data size in terabytes; revenue in billions.

Since I don't know what analysis is, I don't know
whether I did any or not. :-) However it was pretty
rare that I ever actually did anything so heavyweight
as to write down requirements in a doc. Usually I
just thought about what was needed and wrote code.

There were two other large scale projects I worked on,
in a role that I guess could be called "chief architect"
or some such thing. In both cases I did all the schema
design myself, not wanting to leave this part to junior
engineers. I did my designs by writing DDL in vi.


Quote:
What happened after that?
Uh, worked fine?

The big problems tended to be rapidly changing requirements.
(Not that we misunderstood the requirements in the first
place, but rather they changed after the initial design.)
Oh, and Sarbanes-Oxley.


Marshall


Reply With Quote
  #3  
Old   
Jon Heggland
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 02:42 AM



Quoth David Cressey:
Quote:
I'm hesitant to offer a definition off the top of my head, because it will
surely be torn apart by the usual gang of vultures.
I'll have a go, then: Analysis is taking something apart (to see how it
works). Whereas design is putting something together (to make it work).

Quote:
In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did you
ever take a course on analysis? Or, alternatively, did you ever take a
course on methodologies that put a strong emphasis on analysis?
No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time, but
I've never had analysis presented as a science as opposed to an art or
craft.

Quote:
Have any of you ever undertaken a large scale database design project
without doing any formal analysis, or just by writing down the requirements
in a doc? What happened after that? I'm not talking about a little
database with 20 or 30 columns. I'm talking a database with upwards of 300
columns and a good number of tables.
I have a database of currently 102 relvars with in total 590 attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"
--
Jon


Reply With Quote
  #4  
Old   
David Cressey
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 07:13 AM




"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote

Quote:
Quoth David Cressey:
I'm hesitant to offer a definition off the top of my head, because it
will
surely be torn apart by the usual gang of vultures.

I'll have a go, then: Analysis is taking something apart (to see how it
works). Whereas design is putting something together (to make it work).

I like this a lot better than my own attempts. I this case, I think it
means "taking the problem apart". Breaking the problem down into pieces
that are easily assimilated. The term "easily assimilated" has more to do
with psychology than logic, so we should be prepared for the general
complaint that "analysis is subjective".

In the above terms, the opposite of analysis is synthesis. I like to think
of the overall life cycle as consisting of "problem analysis and system
synthesis".




Quote:
In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did
you
ever take a course on analysis? Or, alternatively, did you ever take a
course on methodologies that put a strong emphasis on analysis?

No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time, but
I've never had analysis presented as a science as opposed to an art or
craft.
Maybe it is an art or craft rather than a science. Maybe presenting as if
it were a science is missing the point.
Quote:
Have any of you ever undertaken a large scale database design project
without doing any formal analysis, or just by writing down the
requirements
in a doc? What happened after that? I'm not talking about a little
database with 20 or 30 columns. I'm talking a database with upwards of
300
columns and a good number of tables.

I have a database of currently 102 relvars with in total 590 attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"
I think you answered the question. You raise a very important point:
prototyping
and successive apporximation. You didn't say successive approximation, but
I'm inferring that from the word "ask". Prototyping has always been an
attractive alternative to analysis.

I would certainly prefer prototyping to what has been called "analysis
paralysis". In fact, I'll go so far as to say that prototyping, done
properly, is itself a form of analysis. It blends analysis with design in a
ways that classical analysis does not. However, I've seen prototyping done
wrong, and that can lead to disaster.

How do you show people a table? Do you se a diagram? Do you show the table
through the lens of the application you are building? Do you give them what
MS Access calls a "datasheet view"?

Do your people understand foreign keys just fine? My experience, going
back to the 1990s was that people who had not worked with databases did NOT
understand foreign keys just fine. That includes people with 20 years COBOL
programming experience and who were in other respects highly proficient.
Managers also couldn't get "the big picture" from a datasheet view.

My biggest success with diagrams did not come from the analysis of a
proposed system. It came from reverse engineering an existing database back
into ER form, and using that diagram to communicate with managers and
programmers.

I used a tool to perform the busy work. It took me all of one day to
extract the metadata from the devlopment database, generate the ER diagram,
make subsets of it for presentation purposes, and copy the result to
transparencies (yeah, I know, that's primitive). I will admit that MOST of
the communication was in the form of questions and answers in plain English,
rather than the diagram itself.

Where the diagram added value is that it kept the conversation moving
forward, instead of going around in circles.

The database was about 100 tables, and maybe 600 columns. I forget how many
entities and relationships I ended up with, but it was about 100 in total.
That's because every table describes an entity or a relationship. There are
a few extra relationships hidden in entity tables, and there are few tables
that are "about nothing" in the Seinfeld sense.

Before I did this, the only person who understood the database was the DBA.
After I did this, almost all the stakeholders understood it. This was not
analysis. The database was about customer relationhip management in the
cell phone industry.


When I built new databases, much smaller and simpler, I used diagrams for
my own purposes. It was much easier that keeping the details in my head,
or writing the details in formal English in a doc, or embedding the details
in code. I also found that diagrams were much better and faster at
communicating with management than "progress reports".
















Reply With Quote
  #5  
Old   
Bob Badour
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 08:04 AM



David Cressey wrote:

Quote:
"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote in message
news:fj0fhm$ad9$1 (AT) orkan (DOT) itea.ntnu.no...

Quoth David Cressey:

I'm hesitant to offer a definition off the top of my head, because it

will

surely be torn apart by the usual gang of vultures.

I'll have a go, then: Analysis is taking something apart (to see how it
works). Whereas design is putting something together (to make it work).



I like this a lot better than my own attempts. I this case, I think it
means "taking the problem apart". Breaking the problem down into pieces
that are easily assimilated. The term "easily assimilated" has more to do
with psychology than logic, so we should be prepared for the general
complaint that "analysis is subjective".

In the above terms, the opposite of analysis is synthesis. I like to think
of the overall life cycle as consisting of "problem analysis and system
synthesis".





In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did

you

ever take a course on analysis? Or, alternatively, did you ever take a
course on methodologies that put a strong emphasis on analysis?

No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time, but
I've never had analysis presented as a science as opposed to an art or
craft.


Maybe it is an art or craft rather than a science. Maybe presenting as if
it were a science is missing the point.

Have any of you ever undertaken a large scale database design project
without doing any formal analysis, or just by writing down the

requirements

in a doc? What happened after that? I'm not talking about a little
database with 20 or 30 columns. I'm talking a database with upwards of

300

columns and a good number of tables.

I have a database of currently 102 relvars with in total 590 attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"


I think you answered the question. You raise a very important point:
prototyping
and successive apporximation. You didn't say successive approximation, but
I'm inferring that from the word "ask". Prototyping has always been an
attractive alternative to analysis.

I would certainly prefer prototyping to what has been called "analysis
paralysis". In fact, I'll go so far as to say that prototyping, done
properly, is itself a form of analysis. It blends analysis with design in a
ways that classical analysis does not. However, I've seen prototyping done
wrong, and that can lead to disaster.

How do you show people a table? Do you se a diagram? Do you show the table
through the lens of the application you are building? Do you give them what
MS Access calls a "datasheet view"?

Do your people understand foreign keys just fine? My experience, going
back to the 1990s was that people who had not worked with databases did NOT
understand foreign keys just fine. That includes people with 20 years COBOL
programming experience and who were in other respects highly proficient.
Managers also couldn't get "the big picture" from a datasheet view.

My biggest success with diagrams did not come from the analysis of a
proposed system. It came from reverse engineering an existing database back
into ER form, and using that diagram to communicate with managers and
programmers.

I used a tool to perform the busy work. It took me all of one day to
extract the metadata from the devlopment database, generate the ER diagram,
make subsets of it for presentation purposes, and copy the result to
transparencies (yeah, I know, that's primitive). I will admit that MOST of
the communication was in the form of questions and answers in plain English,
rather than the diagram itself.

Where the diagram added value is that it kept the conversation moving
forward, instead of going around in circles.

The database was about 100 tables, and maybe 600 columns. I forget how many
entities and relationships I ended up with, but it was about 100 in total.
That's because every table describes an entity or a relationship. There are
a few extra relationships hidden in entity tables, and there are few tables
that are "about nothing" in the Seinfeld sense.

Before I did this, the only person who understood the database was the DBA.
After I did this, almost all the stakeholders understood it. This was not
analysis. The database was about customer relationhip management in the
cell phone industry.
Since it was the telephone/telecommunications industry, is it fair to
say most of the managers had an engineering background?


Quote:
When I built new databases, much smaller and simpler, I used diagrams for
my own purposes. It was much easier that keeping the details in my head,
or writing the details in formal English in a doc, or embedding the details
in code. I also found that diagrams were much better and faster at
communicating with management than "progress reports".
I suspect you have worked with a different sort of management than I have.


Reply With Quote
  #6  
Old   
David Cressey
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 08:15 AM



Marshall,

I only have one book on analysis on my bookshelf. It's "Object Oriented
Analysis" (2nd edition) by Peter Coad and Edward Yourden. My copy goes
back to the early 90s. The state of the art has almost surely progressed
beyond this. I would recommend you get and read this book. An alternative
would be to get a successor book, one the authors might recommend, if they
are still around. Again, the state of the art has almost surely
progressed.

From your posts some 3 year back, I know that you are something of an
"object oriented programmer in recovery". And, even though you are able to
pass in c.d.t. as just another relational bigot, I know you are little more
open, in secret, to object oriented thinking than some of the rest of us,
including me. I'm not very open to object oriented thinking, but that
didn't prevent me from appreciating OOA.

What's interesting about OOA is that it does NOT suffer from the
"object-relational impedance mismatch" that has plagued people who have
tried to build systems using OOD and RM together. I found this book very
easy to accept, without abandoning my preference for "relational think"
over "object think". It helps that the authors understood and appreciated
the way "the database people" go about understanding the subject matter.

Here by the way, is the definition of "system analysis" they offer for
starters, from DeMarco[1978]: "Analysis is the study of a problem, prior
to taking some action."

This isn't perfect, but I'll offer it in preference to my efforts.

They contrast OOA with functional decomposition, the data flow approach,
and information modeling, even though they borrow freely from all of them.
They deal extensively with the problem of changing requirements.

You seem to have gotten a long way with no formal training in this area.
You might get even farther with some reading. Warning: the input to
analysis is almost entirely psychological. The output, however, is expected
to be logical, or at least useable by logical people. Second warning:
analysis is not design. I keep repeating this, but we keep forgetting it.






Reply With Quote
  #7  
Old   
David Cressey
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 08:37 AM




"Bob Badour" <bbadour (AT) pei (DOT) sympatico.ca> wrote

Quote:
David Cressey wrote:

"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote in message
news:fj0fhm$ad9$1 (AT) orkan (DOT) itea.ntnu.no...

Quoth David Cressey:

I'm hesitant to offer a definition off the top of my head, because it

will

surely be torn apart by the usual gang of vultures.

I'll have a go, then: Analysis is taking something apart (to see how it
works). Whereas design is putting something together (to make it work).




I like this a lot better than my own attempts. I this case, I think it
means "taking the problem apart". Breaking the problem down into
pieces
that are easily assimilated. The term "easily assimilated" has more to
do
with psychology than logic, so we should be prepared for the general
complaint that "analysis is subjective".

In the above terms, the opposite of analysis is synthesis. I like to
think
of the overall life cycle as consisting of "problem analysis and system
synthesis".





In the meantime, I'd
like to hear from everybody with a degree in software engineering. Did

you

ever take a course on analysis? Or, alternatively, did you ever take a
course on methodologies that put a strong emphasis on analysis?

No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time, but
I've never had analysis presented as a science as opposed to an art or
craft.


Maybe it is an art or craft rather than a science. Maybe presenting as
if
it were a science is missing the point.

Have any of you ever undertaken a large scale database design project
without doing any formal analysis, or just by writing down the

requirements

in a doc? What happened after that? I'm not talking about a little
database with 20 or 30 columns. I'm talking a database with upwards of

300

columns and a good number of tables.

I have a database of currently 102 relvars with in total 590 attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"


I think you answered the question. You raise a very important point:
prototyping
and successive apporximation. You didn't say successive approximation,
but
I'm inferring that from the word "ask". Prototyping has always been an
attractive alternative to analysis.

I would certainly prefer prototyping to what has been called "analysis
paralysis". In fact, I'll go so far as to say that prototyping, done
properly, is itself a form of analysis. It blends analysis with design
in a
ways that classical analysis does not. However, I've seen prototyping
done
wrong, and that can lead to disaster.

How do you show people a table? Do you se a diagram? Do you show the
table
through the lens of the application you are building? Do you give them
what
MS Access calls a "datasheet view"?

Do your people understand foreign keys just fine? My experience, going
back to the 1990s was that people who had not worked with databases did
NOT
understand foreign keys just fine. That includes people with 20 years
COBOL
programming experience and who were in other respects highly proficient.
Managers also couldn't get "the big picture" from a datasheet view.

My biggest success with diagrams did not come from the analysis of a
proposed system. It came from reverse engineering an existing database
back
into ER form, and using that diagram to communicate with managers and
programmers.

I used a tool to perform the busy work. It took me all of one day to
extract the metadata from the devlopment database, generate the ER
diagram,
make subsets of it for presentation purposes, and copy the result to
transparencies (yeah, I know, that's primitive). I will admit that
MOST of
the communication was in the form of questions and answers in plain
English,
rather than the diagram itself.

Where the diagram added value is that it kept the conversation moving
forward, instead of going around in circles.

The database was about 100 tables, and maybe 600 columns. I forget how
many
entities and relationships I ended up with, but it was about 100 in
total.
That's because every table describes an entity or a relationship. There
are
a few extra relationships hidden in entity tables, and there are few
tables
that are "about nothing" in the Seinfeld sense.

Before I did this, the only person who understood the database was the
DBA.
After I did this, almost all the stakeholders understood it. This was
not
analysis. The database was about customer relationhip management in the
cell phone industry.

Since it was the telephone/telecommunications industry, is it fair to
say most of the managers had an engineering background?

No, it is not. There were plenty of technical people in the IT department,
but they were almost all working in the "switching group". This was a group
that tracked the behavior of the cell phone towers, and captured data about
usage, as well as data about malufunctions. The management in that group
was almost entirely engineers.

The management in the group that handled the customer database was business
oriented, and had almost no engineering background. Those that were former
IT technicians had grown up in the files and records era, and both the
relational model and SQL were largely uncharted territory for them. They
relied on the programmers who worked for them to have current technical
knowledge.

The programmers had a rudimentary understanding of SQL, but they didn't
really understand databases.

Quote:
When I built new databases, much smaller and simpler, I used diagrams
for
my own purposes. It was much easier that keeping the details in my
head,
or writing the details in formal English in a doc, or embedding the
details
in code. I also found that diagrams were much better and faster at
communicating with management than "progress reports".

I suspect you have worked with a different sort of management than I have.
Probably true. The interesting thing to know is which way the trend is
going. Is management becoming more technically aware or less so? Given how
fast things are changing these days, are managers remaining technically
current as well as honing their management skills? Do they have any
management skills worth honing?

Do they understand the fundamentals of data modeling?





Reply With Quote
  #8  
Old   
Jon Heggland
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 08:43 AM



Quoth David Cressey:
Quote:
"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote in message
news:fj0fhm$ad9$1 (AT) orkan (DOT) itea.ntnu.no...
[...]
In the above terms, the opposite of analysis is synthesis. I like to think
of the overall life cycle as consisting of "problem analysis and system
synthesis".
Yes, I was thinking about analysis and synthesis when I spoke my piece.

Quote:
No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time, but
I've never had analysis presented as a science as opposed to an art or
craft.

Maybe it is an art or craft rather than a science. Maybe presenting as if
it were a science is missing the point.
I was half hoping that you might know of any science in the area, since
you used the term "formal analysis" earlier, and seemed surprised that
there is confusion about what analysis is. Oh well.

Quote:
I have a database of currently 102 relvars with in total 590 attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"

I think you answered the question. You raise a very important point:
prototyping
and successive apporximation. You didn't say successive approximation, but
I'm inferring that from the word "ask". Prototyping has always been an
attractive alternative to analysis.
"Approximation" sounds strange to my ears in this context; I usually
talk about "iterative development". Which goes almost without saying; I
can hardly imagine building an information system any other way. The
users have hardly any idea what they want until I show them something.

Quote:
How do you show people a table? Do you se a diagram? Do you show the table
through the lens of the application you are building? Do you give them what
MS Access calls a "datasheet view"?
I'm not familiar with Access. My tool of choice, Dataphor, creates GUIs
from table (or rather view) definitions. There isn't any clear
separation between the database and the application(s). So I show them
the actual application, which shows actual database tables/views quite
plainly. Sometimes I draw sample tables (with example data, not just
headings) on a whiteboard or something. And sometimes I use an ER-like
notation (Carlis and Maguire's LDS), but with a strict and simple
correspondence to my relvars. The relvars come first; the diagrams are
simplifying representations of them.

Quote:
Do your people understand foreign keys just fine? My experience, going
back to the 1990s was that people who had not worked with databases did NOT
understand foreign keys just fine. That includes people with 20 years COBOL
programming experience and who were in other respects highly proficient.
I don't consider foreign keys all that special. It always annoys me when
someone says that foreign keys signify relationships. They don't; they
/constrain/ relationships. Relationships are given by attributes being
defined over the same domain (although this makes far more sense if your
DBMS has proper domain support). Anyway, I don't feel the need to talk
much about foreign keys. I talk about identifiers (key constraints), and
say that this column/attribute is the same as that.

Quote:
Managers also couldn't get "the big picture" from a datasheet view.

My biggest success with diagrams did not come from the analysis of a
proposed system. It came from reverse engineering an existing database back
into ER form, and using that diagram to communicate with managers and
programmers.
That fits with my experience, too. But "back into ER form"? Did it start
out that way?

Quote:
[...] I will admit that MOST of
the communication was in the form of questions and answers in plain English,
rather than the diagram itself.
Ditto. Except, y'know, Norwegian.

Quote:
Where the diagram added value is that it kept the conversation moving
forward, instead of going around in circles.
Yes. One must have some sort of artifact to point at and scribble on.

Quote:
Before I did this, the only person who understood the database was the DBA.
After I did this, almost all the stakeholders understood it. This was not
analysis.
No? I'd say it was, but an analysis of the database, not the business
problem.
--
Jon


Reply With Quote
  #9  
Old   
David Cressey
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 10:11 AM




"Jon Heggland" <jon.heggland (AT) ntnu (DOT) no> wrote

Quote:
Quoth David Cressey:
"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote in message
news:fj0fhm$ad9$1 (AT) orkan (DOT) itea.ntnu.no...
[...]
In the above terms, the opposite of analysis is synthesis. I like to
think
of the overall life cycle as consisting of "problem analysis and system
synthesis".

Yes, I was thinking about analysis and synthesis when I spoke my piece.

No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time,
but
I've never had analysis presented as a science as opposed to an art or
craft.

Maybe it is an art or craft rather than a science. Maybe presenting as
if
it were a science is missing the point.

I was half hoping that you might know of any science in the area, since
you used the term "formal analysis" earlier, and seemed surprised that
there is confusion about what analysis is. Oh well.

I don't think of "formal" as a code word for "scientific". In fact, I
don't even think "engineering" is code for "scientific". Science is about
discovery. Engineering is about invention. There is a lot of overlap in the
language, the tools, the method and the mode of thought. But they aren't
interchageable.

Quote:
I have a database of currently 102 relvars with in total 590
attributes.
No formal analysis, whatever that means. I drew some pictures in the
beginning for communication, but once I had a prototype, it was simpler
to just show, tell and ask. People understand tables just fine. What do
you mean, "What happened after that?"

I think you answered the question. You raise a very important point:
prototyping
and successive apporximation. You didn't say successive approximation,
but
I'm inferring that from the word "ask". Prototyping has always been an
attractive alternative to analysis.

"Approximation" sounds strange to my ears in this context; I usually
talk about "iterative development". Which goes almost without saying; I
can hardly imagine building an information system any other way. The
users have hardly any idea what they want until I show them something.

I'll accept "iterative development" as better sounding than "successive
approximation".

And I'll accept that information systems evolve along with changing
requirements. But
I'll also claim that some good analysis can accomplish in weeks when take
months worth of iterative development. I've seen analysts that are better
than I am doing their work. It's really impressive, except that the
interviewees are generally nuimpressed. One manager's summary: "He's not
very bright, but at least he's thorough." What the manager didn't know is
that the analyst deliberately asked the same question over and over again in
different words. If he had gotten different answers each time, that would
have told him something he needed to know.

Quote:
How do you show people a table? Do you se a diagram? Do you show the
table
through the lens of the application you are building? Do you give them
what
MS Access calls a "datasheet view"?

I'm not familiar with Access. My tool of choice, Dataphor, creates GUIs
from table (or rather view) definitions. There isn't any clear
separation between the database and the application(s). So I show them
the actual application, which shows actual database tables/views quite
plainly.
Fair enough. That's really what I was after. I hold no brief for Access.
It's just that it existed on almost every desktop that I used at a client's
site, it was easy to link to "the real database", and it had a very easy
learning curve, from my point of view.



Quote:
Sometimes I draw sample tables (with example data, not just
headings) on a whiteboard or something. And sometimes I use an ER-like
notation (Carlis and Maguire's LDS), but with a strict and simple
correspondence to my relvars. The relvars come first; the diagrams are
simplifying representations of them.
It would be interesting to know if there is a way of deriving relvars from
some form of data analysis that doesn't involve ER. I am convinced that a
set of relvars embeds design decisions, but I don't know from direct
experience. What do you say?

Quote:
Do your people understand foreign keys just fine? My experience, going
back to the 1990s was that people who had not worked with databases did
NOT
understand foreign keys just fine. That includes people with 20 years
COBOL
programming experience and who were in other respects highly proficient.

I don't consider foreign keys all that special. It always annoys me when
someone says that foreign keys signify relationships. They don't; they
/constrain/ relationships. Relationships are given by attributes being
defined over the same domain (although this makes far more sense if your
DBMS has proper domain support). Anyway, I don't feel the need to talk
much about foreign keys. I talk about identifiers (key constraints), and
say that this column/attribute is the same as that.

The word "signify" strikes me as odd and stilted in this context. I prefer
to say that "foreign keys represent relationships."


Quote:
Managers also couldn't get "the big picture" from a datasheet view.

My biggest success with diagrams did not come from the analysis of a
proposed system. It came from reverse engineering an existing database
back
into ER form, and using that diagram to communicate with managers and
programmers.

That fits with my experience, too. But "back into ER form"? Did it start
out that way?
No, I didn't mean "back" that way. What I really meant was "backwards".


Quote:
[...] I will admit that MOST of
the communication was in the form of questions and answers in plain
English,
rather than the diagram itself.

Ditto. Except, y'know, Norwegian.

Where the diagram added value is that it kept the conversation moving
forward, instead of going around in circles.

Yes. One must have some sort of artifact to point at and scribble on.

Before I did this, the only person who understood the database was the
DBA.
After I did this, almost all the stakeholders understood it. This was
not
analysis.

No? I'd say it was, but an analysis of the database, not the business
problem.
Well, yes. After a while, the database becomes "a part of the system". At
that point, system analysis includes database analysis. Since I came to
this case late in the game, the database was already "part of the
environment" a far as most of its stakeholders were concerned.




Reply With Quote
  #10  
Old   
Bob Badour
 
Posts: n/a

Default Re: What is analysis? - 12-03-2007 , 10:30 AM



David Cressey wrote:

Quote:
"Jon Heggland" <jon.heggland (AT) ntnu (DOT) no> wrote in message
news:fj14mv$n05$1 (AT) orkan (DOT) itea.ntnu.no...

Quoth David Cressey:

"Jon Heggland" <jon.heggland (AT) idi (DOT) ntnu.no> wrote in message
news:fj0fhm$ad9$1 (AT) orkan (DOT) itea.ntnu.no...

[...]

In the above terms, the opposite of analysis is synthesis. I like to

think

of the overall life cycle as consisting of "problem analysis and system
synthesis".

Yes, I was thinking about analysis and synthesis when I spoke my piece.


No. Nothing that covered analysis /thoroughly/, at least, and certainly
not /formally/. I've learned a few diagramming notations in my time,

but

I've never had analysis presented as a science as opposed to an art or
craft.

Maybe it is an art or craft rather than a science. Maybe presenting as

if

it were a science is missing the point.

I was half hoping that you might know of any science in the area, since
you used the term "formal analysis" earlier, and seemed surprised that
there is confusion about what analysis is. Oh well.

I don't think of "formal" as a code word for "scientific". In fact, I
don't even think "engineering" is code for "scientific". Science is about
discovery. Engineering is about invention. There is a lot of overlap in the
language, the tools, the method and the mode of thought. But they aren't
interchageable.
Pure science is about discovery. Engineering is about applying science
whether to invention, re-invention, patent subversion, measurement,
design etc.

[snip]


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.