aspose file tools
The moose likes OO, Patterns, UML and Refactoring and the fly likes Functional Design   Vs   Technical Design Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


Win a copy of The Mikado Method this week in the Agile and other Processes forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Reply Bookmark "Functional Design   Vs   Technical Design" Watch "Functional Design   Vs   Technical Design" New topic
Author

Functional Design Vs Technical Design

kri shan
Ranch Hand

Joined: Apr 08, 2004
Posts: 1300
How Functional Design diferent from the Technical Design ? As per my understanding Functional Design means HighLevelDesign(UseCases), Technical Design means LowLevelDesign(Class dia, Obj dia, Sequence dia,...). Is it correct ?
Jeroen T Wenting
Ranch Hand

Joined: Apr 21, 2006
Posts: 1847
The functional design specifies WHAT a program should do, the technical design described how that functionality is to be implemented in code.

So the functional design may state that the program must attach a courtdate to a file when the user clicks a button with a specific name and position on screen.
The technical design would indicate which fields in which tables of the database will be involved, maybe even how to name the method to be called when that button is clicked.


42
kri shan
Ranch Hand

Joined: Apr 08, 2004
Posts: 1300
Hi Joren, Whether Functional desgin means UI design ( Navigation, Menu design) & Technical desgin means High Level(use case ) and Low Level(class, sequence diagrams) design ?
Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6913
Not really.

Functional design is the kind of design that is agreed between software architects and business customers. It describes what the system has to do in a way that both parties can understand and agree. It might describe user interface requirements, it might discuss database access, it might discuss web services or other forms of communication, it might discuss service level agreements or clustering and redundancy. The point is that it should be detailled enough to become the agreed definition of what the system will do.

Technical design, on the other hand, is the kind of design that is agreed between software architects and software developers. It describes how the system will be built to meet the functional design. It contains detail and terminology not appropriate to business customers but needed by developers. It might describe screen layouts, it might describe database table and column names, it might discuss WSDL or communication protocols and file formats, it might discuss server and operating system versions and dependencies. The point is that it should be detailled enough to enable unit tests, code, configurations, and technical documentation work to begin.

Is that any clearer?


A Convergent Visionary ~ Frank's Punchbarrel Blog ~ LinkedIn profile
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
We try to approach functional design at three levels.

Describe the business process and requirements in a system-free context. Don't reference specific computer systems.

Describe one computer system in an implementation-free context. Don't reference specific screens, widgets, user gestures.

Describe some subset of the UI or a system-to-system interface in excruciating detail. Every screen, widget, user gesture, data entry field values, lengths & edits, etc.

In practice, the first level is just conversation while the others are separate documents. I think it's unfortunate that the top level is often lost over time. It becomes difficult to make changes in the second because nobody knows which details are important and which are icing on the cake and the whole document becomes gospel.


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
 
jQuery in Action, 2nd edition
 
subject: Functional Design Vs Technical Design
 
Similar Threads
Design with UML templates
3 years experience Java/J2EE Developer, what to consider whether to transfer to Business Analyst ?
Creating a Thread in a Servlet
Creating a utility managed bean, to move common code and use from different beans?
artifacts for design