The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
The first thing I think we have to speak about is: *why* do we design at all? The computer doesn't care about the design, after all.
Analysis comes before design, if you analyse, i.e. think, the next stage - design, just comes out as obvious consequence.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Analysis.
The part of the software development process whose primary purpose is to formulate a model of the problem domain.
Originally posted by Jayadev Pulaparty:
To save money I think this is the bottom line... to cut down the future costs of modifying (extending the functionality by keeping it as open-ended as possible, fine tuning the performance, easy maintainability, etc.) the software by delivering a qualify piece of job. Improper designs may result in a lot of re-work (if the flaws are identified at a later stage).
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Tom�s S�oPaulo:
I have never formally designed. Just coded and refractored (and only many years later had come to know how it is being called).
[...]
I think design is the overburden/overkill and is really needed only for very complicated cases/teams (teams with a great patience) and still I participated in heavy projects without much of it.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Tom�s S�oPaulo:
I think design is the overburden/overkill and is really needed only for very complicated cases/teams (teams with a great patience) and still I participated in heavy projects without much of it.
Originally posted by Ilja Preuss:
Extendability and maintainability are certainly very strong forces to design, yes! Are there more forces coming to mind?
Originally posted by Ilja Preuss:
I agree with you that what some people call "Big Up Front Design" (that is, designing on paper for months before actually writing a line of code) is most probably overkill for most projects (and actually has killed some).
1.Abstracting[b] the systems to achieve maintainability and modularity and the abstraction should be fine-tuned towards a future [b]2.pluggability .
please note as change is unavoidable pluggable abstration seems to be achieved thr' good design.
An abstraction without pluggability is too short-shighted. A pluggable feature can't be attained wihoout good abstraction. So if the goal is towards obtaining a "pluggable abstraction" everything falls into place.
please comment!
[ April 28, 2003: Message edited by: aadhi agathi ]
Aadhi
Originally posted by Chris Mathews:
I guess I would add one more: risk management. We design because not to design will introduce a higher degree of risk to our projects.
In other words, we design because we are afraid to not design
need to choose class names, method names, etc... these decisions are what designing is all about.
Aadhi
Read about me at frankcarver.me ~ LinkedIn ~ Frank's PhD research
Originally posted by Frank Carver:
To me, one of the most important things which chracterises "design" is the act of choosing. Choosing one way of doing something in preference to another; choosing whether to do something or not; choosing which thing to do first; and so on.
Looked at from this point of view, choosing a name for a class or for a variable is wholly in the area of "design".
Aadhi
Originally posted by Don Kiddick:
Why do we design ?
extendable & maintainable already mentioned.
How about supportable ? how easy is to recover to if things go wrong (can it recover automatically ?)How about testable ?
How about performance & scalability.
D.
Aadhi
Originally posted by aadhi agathi:
please correct me in case i am not getting this one
Originally posted by Don Kiddick:
Not sure what you are saying mate. I was also proposing, "We design so we can build the system in such a way that it is supportable, testable and will scale well/meet our performance requirements".
D.
Aadhi
Originally posted by aadhi agathi:
let me be clear this time. the features like scalable, supportable etc are focusing towards an architetcural design and not towards an OO design.
Aadhi
Originally posted by Don Kiddick:
Performance I think is an OO design issue.
D.
Just using an app server doesn't give you scalability. If you make a poor choice of datastructure that means that to implement a use case requires the use of a high order algorithm (e.g O(n*n)), then your application will not be scalable.
Testable. I disagree, I think one of the benefits of doing a design is that it allows you to make the system easy to test.
For example, in my designs I try to avoid the use of singletons because I know they can make my code difficult to test.
Aadhi
Originally posted by aadhi agathi:
i strongly disagree. anything out of the requirement is waste of resources(KISS).
Originally posted by Don Kiddick:
There are always implicit performance requirements for any system and sometimes explicit ones. IMHO you need to address these in design.
Aadhi
Originally posted by aadhi agathi:
i respectfuly disagree. just choosing a name/ renaming is not design , IMHO.
Read about me at frankcarver.me ~ LinkedIn ~ Frank's PhD research
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
[.. snipped ..]
Gopi - I don't see yet how the domain logic / application logic distinction fits into the picture.Fully agree with your other points, though.
[ .. snipped ..]
Read about me at frankcarver.me ~ LinkedIn ~ Frank's PhD research
Originally posted by Frank Carver:
Likewise, some seem to see a strong distinction between "OO" design and "architectural" design. To me that distinction doesn't seem very useful - a design decision is a design decision whether it is how many buildings to fit on Manhattan Island, or what color to paint the Brooklyn Bridge.
Martin Fowler says it here:quote Fowler
"Although it's slightly tangential to this theme, this is a good moment to throw in some advice about that most-touted benefit of object-oriented platforms: reuse. Over the years I've run into plenty of people who've talked about building a foundation of reusable frameworks on which they intend to build the next generation of applications. I've run into hardly any successes. That's even not taking into account the problems when technology platforms disappear. The problem is that it's very hard to build frameworks from scratch."
The trick is that often not all the needs are immediately obvious. Needs such as scalability, performance, maintainability, usability, ease of deployment, development cost, stability of tools, staff skills and so on are often left unmentioned and unprioritized in the rush to list features and use cases.
By the way. I agree with Ilja, this is turning out to be a fascinating thread.
Aadhi
Aadhi
Aadhi
Originally posted by Gopi Balaji:
The distinction is important to realize because of these -
1. They need different treatments in analysis and design.
2. There should be no compromise in the design/architecture of domain logic, whereas one can live with compromises in application logic
The idea of having "testability of software system" as a design objective is interesting. Is it possible to quantify it? If so, how would you?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by aadhi agathi:
8) Helps to estimate the project schedule
![]()
9) Helps to estimate a new add-on requirement
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Frank Carver:
I can't help feeling that if the term "design" is reserved only for good/effective designs, then it does not make much sense to talk about designs which are somehow bad or less effective . But I'm sure we have all encountered such "designs"![]()
Just as I see the definiftion of the word design as being ultimately very simple. I also see the definition of "good" design also being simple. A good design is simply one that meets all its needs.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Any sufficiently advanced technology will be used as a cat toy. And this tiny ad contains a very small cat:
Clean our rivers and oceans from home
https://www.kickstarter.com/projects/paulwheaton/willow-feeders
|