Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Functional Design Vs Technical Design  RSS feed

 
kri shan
Ranch Hand
Posts: 1487
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 1847
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
kri shan
Ranch Hand
Posts: 1487
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 6920
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!