News  |  About  |  Tools  |  Training Courses |  Services |  Contact Us

 
 


 
 

The Refactory News
About Us
Tools
Training
Agile Method
Frameworks
Patterns
Refactoring
Smalltalk
Testing
Services
 
Training Courses  

  Frameworks

Benefits:

·        Describes what frameworks are, how to use them, and why they are important

·        Teaches how to design and document frameworks

·        Shows how patterns can make the design process more efficient

·        Discuss the evolutionary process of frameworks

·        Discuss the Do’s and Don’ts of framework development 

Description:

Frameworks are reusable designs for an application or a subsystem expressed as a set of classes and the way that instances of these classes collaborate. A framework describes not only how to partition the responsibilities of a system among its components, but also how to think about a problem. It is therefore not only a way to reuse code, but a way to reuse design and analysis information, as well.

Frameworks are difficult to design because they are abstract. Framework designers must look at many concrete applications to ensure that the abstractions that they are designing make sense. Frameworks are difficult to learn because the user of a framework must adopt the collaborative model of the framework. It is usually not possible to learn a framework one class at a time, but instead several classes have to be learned together. Nevertheless, there is a great advantage to learning a well-designed framework, and mature frameworks (like some of the user interface frameworks) can provide order of magnitude increases in programmer productivity. 

This tutorial teaches how to design frameworks. It describes what they are, describes an example-driven iterative development process for designing them, and describes a set of object-oriented design patterns and a set of transformations for applying the design patterns. The design patterns and the set of transformations (refactorings) are useful for making any object-oriented design more flexible and reusable, but they are essential in framework design. The tutorial also describes how to document a framework, and it covers a little bit of topics like testing, scheduling. and performance tuning. 

We've worked on several different frameworks, and the examples used depend partly on our audience, though we always use several frameworks as examples. Our examples include technical computer science topics like code generation, file systems, and virtual memory, more general interest topics like structured drawing editors and user interface systems, and one application area: a framework for accounting.

Who Should Attend:

This course is recommended for object-oriented designers and system developers, as well as systems analysts and project leaders; specifically those who are creating reusable components and enterprise frameworks to be used within their organizations. To complete the course exercises, attendees should understand object-oriented programming concepts and have some experience coding in Java, Smalltalk, or C++.  It is also recommended that the attendees should already understand Design Patterns, or have taken the Design Patterns course.

The number of people that can attend this course is 25 maximum; though in practice smaller numbers lead to better interaction. We customize the course every time we give it, and have different versions for Java, C++, and Smalltalk audiences.