Categories
frameworks

Growing Frameworks: White-Box and Black-Box

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 […]

Categories
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 […]

Categories
frameworks

Growing Frameworks: Software Engineering

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 […]

Categories
frameworks

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; […]

Categories
frameworks

Growing Frameworks: End-User Programming

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 + […]

Categories
frameworks

Growing Frameworks: Monolithic, Layered, Interlocking

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 […]

Categories
frameworks

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                 […]

Categories
frameworks

Growing Frameworks: Web Site Manager – Analysis, and Design

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 […]

Categories
frameworks

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 […]

Categories
frameworks

Growing Frameworks: From Class… to Framework

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 […]