Not all frameworks are alike. One way to distinguish between them is the notion of white box vs. black box. A white-box framework requires the framework user to understand the internals of the framework to use it effectively. In a white box framework, you usually extend behavior by creating subclasses, taking advantage of inheritance. A […]
Category: frameworks
Growing Frameworks: Miscellany
Philosophy Interfaces Generic Hotspots Graph Workflow Reporting Drawing Graph G = <N,E> N & E = 0 E = <N,N> Graph – Node – Edge ================================ Graph 1. Graph Enumeration getEdges() Enumeration getNodes() boolean isMember(Node) boolean isMember(Edge) int […]
Evolution Framework growthe New domains Bug fixes The conflict o o / o Business models Razors vs blades Source Documentation Testing How to test abstract classes? [Make concrete] What’s a test case ? [an application] Software engineering of Frameworks Iteration […]
Growing Frameworks: Beans
What are beans? Bean rules Beans as plugins What are beans? Java Beans are software components. From the Java Beans specification: “A Java Bean is a reusable software component that can be manipulated visually in a builder tool.” The goal of this is to encourage a split in software development: some developers will build components; […]
JavaScript, TCL, Scheme, Python, REXX What Why Approaches Customization dialogs (ui characteristics, toolbar content, etc.) Macros Script languages Plugins Progression Relation to framework Effect on system design Expose “low level” Multiple scriptable languages “End users are not programmers.” Javascript to Java + […]
Exploring dependencies Notation Impact Exercises Break Dependencies Cycles & circular dependencies?? Goal of having a small set of key objects Java packages don’t support other dependency structures directly. Monolithic frameworks A framework is monolithic (“one rock”) when it is constructed such that if you need one piece, you need all pieces. This is the easiest […]
Growing Frameworks: Plugins
What Why vs external program vs source code Mechanics of plugin client Code to interface Move class files to plugin directory Watch it work Mechanics of server Define interface Define directory Load classes Instantiate & call Plugins in Java Consequences […]
When you maintain a web site, it’s helpful to have tools. In this chapter and the next, we’ll develop an application that can serve as a framework for a number of tools to track and manipulate pages in a web site. What tools might we have? · Viewers – to show pages · Editors […]
Growing Frameworks: Patterns
Design patterns are micro-architectures that solve a particular design problem. See the class text Design Patterns. A pattern is a literary form that describes a problem, the forces surrounding it, and a solution that resolves those forces. The designs described here will influence your framework’s structure. They will also be at work in your […]
Suppose you’ve been developing programs for a while, and you keep finding yourself building graphs – the node and edge kind – over and over. So, you’ve built a graph class, which you move from one project to the next, improving it as you go. You’ve heard of frameworks, and you think your graph might […]