SAM SIG: Design and Implementation of Small, But Useful, Frameworks
From requirements to working code
Design and Implementation of Small, But Useful, Frameworks - from requirements to working code
Frameworks are class libraries that capture expertise to make it easier to solve complex problems. Frameworks not only provide functionality, but also encapsulate the flow of control. Applications frameworks such as Apple's MacApp and NextStep, or Microsoft's MFC and .NET Framework, have been used for many years to help develop GUI-based applications. There are also many popular frameworks like Struts, Java Server Faces (JSF), and Rails for building web applications.
But how about those times when you'd like to reduce code and/or complexity, but no framework exists. What can you do then?
You can write your own framework. This talk will provide a case study in writing a useful small framework. In the process of developing a large dataflow-based spreadsheet, Dave Wilson found that Java's Swing toolkit provided lots of good stuff, but support for Undo was weak. He therefore wrote a small Java-based framework on top what Swing provided to provide support for multiple-level Undo and Redo. Dave's "Easy Undo Framework" turned out to be fun to write, and pretty easy to use.
This talk will include:
- the motivation for developing the framework (the app he's writing that needed Undo)
- a short discussion about toolkits vs. frameworks
- the nine requirements that drove the design
- the framework from the user's perspective (adding Undo to a sample program)
- how the framework was implemented
- an implementation trick that made the framework easier to use and less error-prone
- how the framework was tested
- a discussion of how to document a framework.
About the Presenter
Dave Wilson is a consultant and Java developer in San Jose, CA. He helped develop numerous innovative software products, including a dataflow-based visual programming language and two applications frameworks for Emergent Behavior, Java applications for managing billing systems for Portal Software, and a prototype of an advanced automated teller machine for Sun Microsystems.
Dave has a Ph.D. from Stanford University. He has co-authored two Addison-Wesley books about the MacApp applications framework, delivered hour-long presentations at JavaOne in 2002 and 2003, and penned numerous magazine articles.
Cubberley Community Center
4000 Middlefield Road, Room H-1
Palo Alto, CA
6:30 - 7:00 p.m. Registration/Networking/Refreshments/Pizza
7:00 - 9:00 p.m. Presentations
$15 at the door for non-SDForum members
No charge for SDForum members
No registration required
More on the Software Architecture & Modeling....