INTRODUCTION - University of Waterlooltahvild/courses/ECE... · INTRODUCTION RUBY ON RAILS •Ruby...

Preview:

Citation preview

A COMPONENT BASED METHODOLOGY FOR WEB APPLICATION DEVELOPMENT USING RUBY ON RAILSPresentation 1 – 13th July 2009 by Brett Nisbett

INTRODUCTION

INTRO

DUCTIO

NCOMPONENT BASED SOFTWARE ENGINEERING FOR WEB APPLICATIONS

•Do Websites really need CBSE?

•More to Web application development than visual design and user interfaces

•Involves planning, Web architecture and system design, testing, quality assurance just like most other applications andsometimes more.

INTRO

DUCTIO

NCOMPONENT BASED SOFTWARE ENGINEERING FOR WEB APPLICATIONS

•What is a component in a web application?

•A component, in the context of a Web‐based application, is a system or a software program that has been pre‐compiles to provide certain functionality.[1]

•They are often integrated into web applications through exposed interfaces and associations like hyperlinks and HTML tags.[1]

INTRO

DUCTIO

NRUBY ON RAILS

•Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language.

•Rails is an open source Ruby framework for developing database‐backed web applications. 

•All layers in Rails are built to work together so you [developer] Don’t Repeat Yourself (DRY) and can use a single language from top to bottom.

INTRO

DUCTIO

NWhat is Ruby?

•Ruby is a pure object‐oriented programming language with a very clean syntax that makes programming elegant. 

•Ruby is an interpreted scripting language, just like Perl, Python and PHP.

•Ruby successfully combines Smalltalk's conceptual elegance, Python's ease of use and learning and Perl's pragmatism.

INTRO

DUCTIO

NRUBY ON RAILS

•The MVC paradigm allows for clean separation of business logic (controller), data (model), and the formatting of data for display and user interaction (view).

INTRO

DUCTIO

NFamous Rails Websites

APPROACH

APPRO

ACH

Approach

APPRO

ACH

GENERAL DESCRIPTION OF THE APPROACH

•Web pages are the building blocks of Web applications

•Web pages can be visible or invisible to the user

APPRO

ACH

Component Types

•Components can be client side or server side

•Client side components are described as host dependent and client system components

•Observed by the user eg. plugins (host dependent) autonomous media player (client system)

•Server side component is run on the server 

•Provides functionality to a page such as chart generation

REQUIREM

ENTS A

NALYSIS

Requirements Analysis

APPRO

ACH

HIGH LEVEL ANALYSIS

APPRO

ACH

LOW LEVEL ANALYSIS

APPRO

ACH

Component Specification

RENDERIN

G SPECIFICA

TION

Rendering Specification

•Represents invisible pages

•Considers how visible pages are rendered based on the work done by the invisible page

•Helps in choosing the component type

APPRO

ACH

Integration Specification

•Deals with integration of components within the application and external ones necessary for functionality

•For example a delivery component of an external delivery company that is called whenever and order is completed

APPRO

ACH

Interface Specification

•Specify interfaces between components in terms of messages

•Used to locate and call a particular component needed for the application

•Specifies detailed information about the caller and the callee and the events that trigger the components

IMPLEMENTATION

IMPLEM

ENTA

TION

IMPLEMENTATION

ROR vs ASP .NET•ASP. NET application called DocLib

•DocLib is a Web‐based Document Management System implemented in ASP .NET technology.

•RoR version to be implemented following proposed methodology and compared based on speed and performance metrix

RELATED WORK

RELATED

 WORK

Related Work

Component Based Deployment for Web Applications: Experiences with Duct Tape and Glue – [Gary, Kevin and Koehnemann, Harry]

•Complexities in deploying and supporting component based software for web‐based applications are not understood in professional  and academic communities

•Address this problem by presenting  component based web applications from a deployment perspective

•Only developers benefit greatly from component based software engineering of web applications while support team are bombarded with newer problems during deployment and maintenance

REFERENCES

REFERENCES

1. Seung C. Lee, Ashraf I. Shirani, “A component based methodology for web application development,” The Journal of Systems and Software, vol. 71, pp177‐187, 2004

2. Oscar Pastor et al “Conceptual Modelling of Web Applications: The OOWS Approach,” in  Web Engineering: Modelling and Implementing Web Applications, Springer London, 2008 pp277‐302

3. Gustavo Rossi, Daniel Schwabe “Model‐Based Web Application Development” in  Web Engineering, Springer Berlin Heidelberg, 2006 pp303‐333

4. Kevin Gary, Harry Koehnemann “Component‐Based Deployment for Web Applications: Experiences with Duct Tape and Glue,” in Software Engineering for Modern Web Applications, Information Science Reference, 2008 pp123‐137

5. Colin Atkinson et al “Towards a General Component Model for Web Based Applications,” Annals of Software Engineering, vol. 13, pp35‐69, 2002

6. Aneesha Bakharia, “Ruby on Rails Fundamental Concepts” in Ruby on Rails Power: The Comprehensive Guide, Thomson Course Technology PTR, pp 1‐3, 2007

THANKS FO

R LISTENING

THANK YOU!!

Thank You!Questions?

bgnisbet@engmail.uwaterloo.ca