• No results found

Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures

N/A
N/A
Protected

Academic year: 2021

Share "Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

Frameworks

1. Objectives ... 2

2. Frameworks... 3

3. Classification ... 3

4. Example: Components for Java (BC4J) ... 6

5. Existing Frameworks ... 9

6. Presistence Frameworks ... 11

7. Content Management System Frameworks ... 11

8. Cocoon Framework ... 12

(2)

2 1. Objectives

A framework is not a library

 Components in a library have little, if any, interaction with each other (e.g., string, file, date, list).

 Each component can be independently added to an application.

 Building complex applications from scratch is very expensive.

 Where are we in the software life cycle?

Requirements Design Implementation …. Software

Architectures

Components Software Component Architecture DSSA: Domain-Specific Software

Architectures Frameworks Design Patterns Which Programming language?

(3)

2. Frameworks

 There are no hard and fast rules as to what constitutes a framework. In general, it should provide the skeleton of an application.

A framework is a partially complete (sub-) system that is intended to be instantiated.

 It defines the architecture for a family of (sub-) systems and provides the basic building blocks to create them.

 It also defines the places where adaptations for specific functionality should be made.

 In an object-oriented environment a framework consists of abstract and concrete classes.

3. Classification

 There are two categories of frameworks: o Horizontal

o Vertical

 Horizontal framework:

o It is a more general framework and can be applied in several applications.

o Horizontal frameworks provide the most flexibility. o Example: GUI toolkits, Master/detail coordination.

 Vertical framework:

o It a more specific framework.

(4)

4 o Example:

 If you need to build an inventory control system, you might find that a precooked inventory framework is a good way to jump-start your development effort.

 A statistical analysis framework for economic data can only be applied to financial applications.

 There are three variables that can distinguish a vertical framework from a horizontal framework:

o The level of generality: The number of applications that can potentially use features in the framework

o The average portion of the framework that is used per application: The average utilization of the framework. For example, x percent of classes in a framework are in a typical application.

o The average portion of code in an application that is built from the framework

 Horizontal framework:

Portion of Application

Generality

(5)

 Vertical Framework:

Portion of Application

Generality

(6)

6 4. Example: Components for Java (BC4J)

http://technet.oracle.com/tech/java/jroadmap/bc4j/listing.htm

 What is BC4J?

o Oracle Business Components for Java (BC4J) is Oracle

JDeveloper's programming framework for building scalable, multi-tier database applications from reusable business

components.

o It is a 100%-Java, XML-powered framework that enables productive development, portable deployment, and flexible customization of multitier.

o BC4J Architecture:

 BC4J is the middle layer in a relational environment:

 Why BC4J?

o Why would you connect to a database using JDBC?

o Why would you use java.sql.* or SQLJ to interact with the database?

o Why would you create all the database tables manually?

Java Application

BC4J

(7)

 Different Types of BC4J Components o Application Module (AM)

 Provides a logical container for view objects, view links, and transactions

 Takes care of database connections  Takes care of row locking

o Entity Object (EO)

 Provides a wrapper for database structures

 Create an EO for each table, view, or stored procedure  EOs contain Attributes, corresponding to columns or

procedure parameters o View Object (VO)

 Hide the complexity of the database from the application  Uses SQL query to specify filtered subsets of data from one

or more EO

 VO Attributes correspond to EO Attributes

 Provide cached, navigable, modifiable result sets

 Provide runtime dynamic linking, sorting, and filtering o Association

 Defines the relationship between two entity objects. o View Link

 Defines the relationship between two view objects. Java Application VO VO … … VO VO AM BC4J EO EO … … EO EO Database

(8)

8

 A BC4J system

o An XML file, and possibly one or more JAVA files, represents each BC4J component

o The XML file stores metadata while the Java file stores the object's code that implements application-specific behavior. o The following figure shows the relationship between different

components in the BC4J framework at the runtime.

(9)

5. Existing Frameworks

 Examples of Existing Frameworks:

 Aranea  Apache Cocoon  Apache Struts  ATK - Achievo ToolKit  Biscuit  BinaryCloud  BlueShoes  CakePHP  Catalyst  Cocoon  Django  eZ publish  Fusebox  Helma  Horde  InternetBeans Express  JavaServerFaces  Jerrata Backbone  Jifty  Karrigell  Mach-II  Maypole  Millstone  OpenACS  OpenMocha  Ozone PHP Framework  PageKit  PHP on TRAX  PRADO  Pylons  Quixote  Radicore  RIFE  Ruby on Rails  Seagull  Seam  Spring  Stripes  Symfony  Tapestry  Trailes  TurboGears  web.py  WebObjects  WebWork  Wicket  Zend  Zope  ZK

 Java Web Application Frameworks o Struts Action

o Struts Shale

o Java Server Faces o WebWork

o Tapestry o Wicket o Cocoon o RIFE

(10)

10 o Seam o Spring o Stripes o Trails o InternetBeans Express

(11)

6. Presistence Frameworks

 Persistence Frameworks

o A persistence framework moves the program data in its most natural form (in memory objects) to and from a permanent data store the database.

o Persistence framework simplifies the development process. o The persistence framework manages the database and the

mapping between the database and the objects.

o There are many persistence framework (both Open Source and Commercial) in the market.

 Examples:

o Hibernate - widely used open-source persistence framework for Java.

o NHibernate for .Net languages

o iBatis - simple, uses SQL maps. Database schema not transparent to Java code.

o Entity Enterprise JavaBeans - uses EJB container services to perform persistence.

o Cayenne - Apache project, has GUI modeler that eliminates need to write xml files. Can reverse engineer database or generate database schema & Java code.

o TopLink (Oracle), o Torque (Apache DB)

o The Apache Gora open source framework provides an in-memory data model and persistence for big data

7. Content Management System Frameworks

 Systems that store and manage content (centralized or decentralized)

 Popular examples include: Joomla, Drupal, Apache Lenya (Based on Cocoon)

(12)

12

 A complete list can be found in

http://en.wikipedia.org/wiki/List_of_content_management_systems

8. Cocoon Framework

(13)

9. Summary

 Objectives

 Frameworks

 Classification

References

Related documents

We argue that buy-side risk management practices provide an alternative conception of risk management which is more grounded in operations and which avoids the problems

An occupational therapy Quality Indicator (QI) Framework was developed as an initiative of the World Federation of Occupational Therapists (WFOT), with a purpose of providing a

Table 3.16 Mean values for non-cancerous and high grade glioma serum samples with no significant difference 150 Table 3.17 The results from figure 3.10 in numerical form

faults in half-bridge modular multilevel converter (HB-MMC) based bipolar high-voltage direct-current (HVDC) systems induce some special fault consequences: overvoltage on

I’ve heard people say that mask- ing is trendy in art right now, and maybe they’re right, but in that case it’s been trendy for a long time.. We can’t forget all of

Gilbert Habib, Patrizio Lancellotti, Khalil Fattouch, José Luis Zamorano. Congress venue: Roma Eventi Fontana Di

• The CONV2D GSAF model performs relatively badly (Fig 6a), it reaches a maximum accuracy of 89.53% for training and 95.45% for the testing, this model seems less prone to

 Emphasis on TL deposits in line with strong TL loan growth  FX lending financed mainly through long term financing Strong capitalization with CAR 14.4%, Tier I 13.4%..