1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Chapter 2: Software Process
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
XCON - IETF 62 (March 2005) - Minneapolis 1 XCON data modeling – NETCONF, RDF and others draft-schulzrinne-sipping-emergency-req-01 draft-sipping-sos Henning.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
James Martin CpE 691, Spring 2010 February 11, 2010.
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Technical Architectures
CHAPTER 3 COLLECTIONS Abstract Data Types. 2 A data type consists of a set of values or elements, called its domain, and a set of operators acting on.
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Software Requirements
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
Purpose of Requirements Analysis Process of discover, refinement, modeling, and specification o Bridge gap between system level SW allocation and design.
1 Case Study: Starting the Student Registration System Chapter 3.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Software Life Cycle Model
The chapter will address the following questions:
UNIT-V The MVC architecture and Struts Framework.
Introduction to Information System Development.
Chapter 10 Architectural Design
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
XForms: A case study Rajiv Shivane & Pavitar Singh.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
Copyright © Orbeon, Inc. All rights reserved. Erik Bruchez Applications of XML Pipelines XML Prague, June 16 th, 2007.
Introduction to MDA (Model Driven Architecture) CYT.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Web Server.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Web Services from 10,000 feet Part I Tom Perkins NTPCUG CertSIG XML Web Services.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Chapter 19: Building Systems with Assurance Dr. Wayne Summers Department of Computer Science Columbus State University
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Software Design and Development Development Methodoligies Computing Science.
By Jeremy Burdette & Daniel Gottlieb. It is an architecture It is not a technology May not fit all businesses “Service” doesn’t mean Web Service It is.
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
1 Software Requirements Descriptions and specifications of a system.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
12. DISTRIBUTED WEB-BASED SYSTEMS Nov SUSMITHA KOTA KRANTHI KOYA LIANG YI.
About the Presentations
CS148 Introduction to Programming II
Presentation transcript:

1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science Department University of Mississippi

2 Abstract Forms-based user interfaces are used widely for human-computer interaction. However, it is difficult to reuse software in such systems because they are often dependent upon particular display technologies. We design the Family of Retargetable User Interface Tools(FRUIT) to solve the problem. FRUIT adapts the device-independent XForms technology to deliver a family that supports a variety of devices. We study the architecture for the FRUIT product line and illustrate a design methodology based on stepwise refinement and commonality and variability analysis. We also examine two members of FRUIT and show how they are refinements of the family architecture.

3 1. Introduction Client Application Forms-based UI Component User Figure 1. An architectural design of an application In Figure 1, the user interacts with the application through a forms-based User Interface (UI). It is difficult to share code or fine-grained architectural design within a forms-based UI. FRUIT is a software product line in which the members share a high-level architectural design, a common interface design, and perhaps components. By using FRUIT, the interactions with user interface controls are represented in a device-independent manner and translated into specific technologies. Figure 2 shows an architectural design of an application with FRUIT. The information exchanges between the Client Application and FRUIT use the XML-based XForms standard. Client Application User FRUIT Configuration info Figure 2. An application with FRUIT Submission response Form description

4 2. XForms XForms is a new device-independent markup language that combines XML and forms. XForms splits traditional HTML forms into the parts: (1) XForms model, (2) XForms user interface, and (3) instance data (Figure 3). XForms Model XForms User Interface XML Instance Data XForms Submit Protocol Figure 3. Three parts of XForms Figure 4. An example form <submission action = " method ="post" id = "submit"/> Figure 5. XForms model and instance data Your Name submit Figure 6. User interface section Figure 7. Filled form yi liu Figure 8. Submitted instance data

5 3. Architectural design The general goal is to develop a product line in which user interface controls are represented in a device- independent manner. Commonality analysis is a process for finding the common characteristics among family members. Variability analysis identifies important assumptions that hold for some family members. We generalize the variabilities and wrap them with abstract interfaces so that family members can be built with a common architecture. Stepwise refinement We use a stepwise refinement method that combines domain analysis with commonality and variability analysis. Step 1: Find the main components and specify the top-level architecture. FRUIT takes descriptions from the Client Application, translates them into a form, and delivers it to the device. Then, FRUIT collects data from the device and sends them to the Client Application (Figure 9).

6 Client Application FRUIT UI Figure 9. FRUIT architecture – step 1 Step 2: Analyze the interfaces. Commonality a: FRUIT is independent from the Client Application. All communication between the Client Application and FRUIT uses the abstract interface between them. The inputs consist of both the form description (an XForms document that describes the elements) and the form configuration information (an XML document that specifies details such layout). Commonality b: The UI varies among devices. Each FRUIT member has an interface with the UI that isolates FRUIT from the specific device characteristics. FRUIT sends a form to the device and then collects the user responses (Figure 10). Client Application FRUIT UI Configuration info Form description Submission response Form Collected data Figure 10. FRUIT architecture – step 2

7 Step 3: Refine the main components. We divide FRUIT into two stages: (1)parsing the XForms document and generating the user interface (2)extracting the user response and assembling the data. Step 3.1: The commonalities for the first stage. Commonality c: Each family member must parse the XForms documents (Figure 11). Configuration info Form description Submission response Form Collected data FRUIT XForms Parsing Figure 11. FRUIT architecture – step 3.1 Commonality d: FRUIT parses the form description and extracts the elements into displayable controls for the expected device. Form configuration gives the layout information (Figure 12). Configuration info Form description Submission response Form Collected data FRUIT XForms Parsing Form Generation Figure 12. FRUIT architecture – step 3.1

8 Step 3.2: The commonalities for the second stage. Commonality e: All family members must collect data from the UI and send them to the Client Application. The submitted data contains two parts: instance data and action description. When a form returns, it gives the URI for the form to be invoked next in the action description (Figure 13). FRUIT Response Assembly instance data action Configuration info Form description Submission response XForms Parsing Form Generation Form Collected data Figure 13. FRUIT architecture – step 3.2 Step 4: Refine the subcomponents. Consider Form Generation and Response Assembly. Commonality f: Each element corresponding to an XForms control is translated into a control in output form. Commonality g: FRUIT should establish appropriate policies for form layout since the form configuration information might be incomplete or empty.

9 Commonality h: We divide Response Assembly into two subcomponents: Data Extraction for unifying the incoming data into the same format for all family members and Data Assembly for assembling the unified data into submitted data (Figure 13). Submission response Form Collected data FRUIT Data Assembly Layout Policy Data Extraction XForms Parsing Form description Configuration info Control Construction Figure 15. FRUIT architecture – step 4 4. Examples Consider a Java Swing application and a Java Servlet application. The Java Swing and Java Servlet applications are both implemented using Java. XForms Parsing and Data Assembly are components that can be reused. Variability analysis Variability a: The action types between the FRUIT and the other two components differ.

10 The interactions among components in the FRUIT Java Swing application are procedure calls. The components in the FRUIT Java Servlet application communicate by invoking servlets. We divide the FRUIT process into two parts: the outgoing process, and the incoming process (Figure 16 and 17). Figure 16. FRUIT Java Swing application Client App. UIUI Form Proc. Call FRUIT XForms Parsing Control Construc- tion Layout Policy Data Assembly Data Extraction Proc. Call Figure 17. FRUIT Java Servlet application Client App. UIUI Form Proc. Call FRUIT XForms Parsing Control Construc- tion Layout Policy Data Assembly Data Extraction C1 C2 Invoke URL FRUIT-in FRUIT -out

11 Variability b: The implementation of the Control Construction component differs. In the Java Swing application, the XForms controls are converted into Swing controls. In the Java Servlet application, the XForms controls are converted into HTML controls. 5. Conclusion It is difficult to exploit software reuse in forms-based systems because the systems are heavily dependent upon the display technologies. FRUIT uses the new device-independent technology XForms to satisfy the diverse expectations of users. We design FRUIT as a family of programs, or software product line, whose members share the same design architecture but differ in the implementations of some components. In addition to introducing a tool, we illustrate a methodology for designing product line architectures. This method is based on the stepwise refinement approach and commonality and variability analysis. The experience of building the Java Swing and Java Servlet prototypes of FRUIT indicates that this method results in a reliable architecture.