DOC PREVIEW
MSU CSE 870 - Frameworks

This preview shows page 1-2-3-4-5 out of 16 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Frameworks IIIHow to use Application Frameworks“How to’s” for FrameworksSlide 4Slide 5Slide 6How to Learn Application FrameworksHow to Evaluate Application FrameworksHow to Develop Application FrameworksHooksHooks (cont’d)Benefits of FrameworksClassification of FrameworksSystem Infrastructure frameworksMiddleware Integration FrameworksEnterprise Application FrameworksCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)1RRRFrameworks IIIPractical IssuesCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)2RRRHow to use Application Frameworks•Application developed with Framework has 3 parts:–framework–concrete subclasses–everything else: •script that specified which concrete classes will be used and how they will be interconnected•objects that have not relationship to framework•use one or more framework objects, but not called by framework objectsCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)3RRR“How to’s” for Frameworks•Use•Learn•Evaluate•DevelopCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)4RRRHow to use Application Frameworks•Easiest way: Blackbox (e.g., GUI frameworks)–connect existing components–DOES NOT change framework or make any new concrete subclasses–reuses framework’s interfaces and rules for connecting components–Analogous to:•Building from Legos•connected integrated circuits for circuit board–Application programmers only need to know:•type A objects can be connected to type B objects•not need to know exact spec of A and BCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)5RRRHow to use Application Frameworks•Next easiest way: (Graybox)–Define new concrete subclasses; use them to build application–Subclasses are tightly coupled to superclasses:•Requires more knowledge about abstract classes–Subclasses must meet spec implied by superclasses•Programmer must understand framework’s interfaces in detailCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)6RRRHow to use Application Frameworks•Most challenging way: (Whitebox)–Change the abstract classes that form core of framework•add new operations or variables to them–Analogous to fleshing out a skeleton of an application.–Usually requires the source code of framework–Most challenging, but most powerful–Changes to abstract classes can break existing concrete classesCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)7RRRHow to Learn Application Frameworks•Learning a framework is more challenging than learning a class library–not just individual classes–learn a set of classes with specific interconnections–many classes are abstract•Must have concrete examples (easy to challenging)•Documentation should include:–Purpose of framework–How to use framework (e.g., cookbook style)–How the framework works :•interaction between objects•how responsibility is partitioned between objectsCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)8RRRHow to Evaluate Application Frameworks•Most application domains have no commercially available domain-specific frameworks•Criteria:–Run on “right” platform–“right” programming language–“right” standards–“Right” tradeoffs between simplicity and power. •Make checklist for objectives of frameworks.–Features that must be supported (e.g., distributed, networking issues, interaction styles, etc.)CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)9RRRHow to Develop Application Frameworks•Design of framework analogous to design of reusable SW–Domain analysis (collect examples)–First version: should implement examples•Usually whitebox–Then use to build applications•Will point out weak points in frameworks•Parts that are hard to change–Experience leads to improvements in framework•Make it more blackbox•Iteration is important:–Domain analysis will gain more information –Framework makes explicit the parts that will change•Components should implement changeable parts–Frameworks are abstractions•Design of framework depends on original examplesCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)10RRRHooks•Hook: Point in framework meant to be adapted–Filling in parameters–Creating subclasses•Hook Description:–Describes problem/reqt that framework builder anticipates application developer will have–Provides guidance as to how to use hook–Focuses on smal reqt–Details required changes to design –Constraints to be satisfied–Effects on the frameworkCSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)11RRRHooks (cont’d)•Adaptation:–Enabling*/disabling a feature–Replacing a feature–Augmenting a feature–Adding a feature*CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)12RRRBenefits of Frameworks•Modularity:–Encapsulate volatile implementation details behind stable interfaces–Localize impact of design/implementation changes •Reusability:–Stable interfaces enhance reusability of generic components–Leverages domain knowledge/prior experience•Extensibility:–Hook methods that allow applications to extend its stable interfaces–Hook methods decouple stable interfaces and behaviors of an application domain•Inversion of Control:–Application processing customized by event handler objects invoked via framework’s reactive dispatching mechanism–Allow framework (rather than each application) to determine which set of application-specific methods to invoke in response to external events (e.g., window messages from end users or packets arriving on communication ports)CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)13RRRClassification of Frameworks•System Infrastructure•Middleware Integration •Enterprise applicationCSE870: Advanced Software Engineering: Cheng (Sp


View Full Document

MSU CSE 870 - Frameworks

Documents in this Course
HW2

HW2

3 pages

splc1

splc1

21 pages

Lessons

Lessons

3 pages

revision

revision

13 pages

ft1

ft1

12 pages

john.dsn

john.dsn

21 pages

Survey

Survey

2 pages

revision

revision

38 pages

Load more
Download Frameworks
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Frameworks and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Frameworks 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?