frameworks iii
Download
Skip this Video
Download Presentation
Frameworks III

Loading in 2 Seconds...

play fullscreen
1 / 16

Frameworks III - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

Frameworks III. Practical Issues. How 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Frameworks III' - koto


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
frameworks iii

Frameworks III

Practical Issues

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to use application frameworks
How 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 objects

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to s for frameworks
“How to’s” for Frameworks
  • Use
  • Learn
  • Evaluate
  • Develop

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to use application frameworks1
How 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 B

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to use application frameworks2
How 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 detail

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to use application frameworks3
How 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 classes

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to learn application frameworks
How 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 objects

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

how to evaluate application frameworks
How 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)

how to develop application frameworks
How 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 examples

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

hooks
Hooks
  • 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 framework

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

hooks cont d
Hooks (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)

benefits of frameworks
Benefits 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)

classification of frameworks
Classification of Frameworks
  • System Infrastructure
  • Middleware Integration
  • Enterprise application

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

system infrastructure frameworks
System Infrastructure frameworks
  • Simplify development of portable and efficient system infrastructure:
  • Examples:
    • OS (Campbell-Islam 93)
    • Communication (Schmidt 97)
    • UI and language processing tools
  • Primarily used internally within SW org

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

middleware integration frameworks
Middleware Integration Frameworks
  • Commonly used to integrate distributed applications and components
  • Designed to enhance ability of SW developers to modularize, reuse, and extend SW infrastructure in dist env
  • Examples:
    • ORB
    • Message-oriented MW
    • Transactional databases

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

enterprise application frameworks
Enterprise Application Frameworks
  • Address broad application domains:
    • E.g.,: telecommunications, avionics, manufacturing, financial eng.,
  • Expensive to develop/purchase
  • Good investment:
    • Support development of end-user applications/products directly
  • System Infrastructure/Middleware Frameworks:
    • Focus largely on internal SW development concerns
    • Contribute significantly to rapid creation of high-quality SW
    • Not contribute to high revenue for large business orgs.

CSE870: Advanced Software Engineering: Cheng (Sp 2001)CSE870: Advanced Software Engineering: Cheng (Sp 2001)

ad