A COMPONENT BASED METHODOLOGY FOR WEB APPLICATION DEVELOPMENT USING RUBY ON RAILS Presentation 1 13 th July 2009 by Brett Nisbett
INTRODUCTION
COMPONENT 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 and sometimes more. INTRODUCTION
COMPONENT 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] INTRODUCTION
RUBY 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. INTRODUCTION
What 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. INTRODUCTION
RUBY ON RAILS INTRODUCTION The MVC paradigm allows for clean separation of business logic (controller), data (model), and the formatting of data for display and user interaction (view).
INTRODUCTION Famous Rails Websites
APPROACH
APPROACH Approach
GENERAL DESCRIPTION OF THE APPROACH Web pages are the building blocks of Web applications Web pages can be visible or invisible to the user APPROACH
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 APPROACH
REQUIREMENTS ANALYSIS Requirements Analysis
HIGH LEVEL ANALYSIS APPROACH
LOW LEVEL ANALYSIS APPROACH
Component Specification APPROACH
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 RENDERING SPECIFICATION
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 APPROACH
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 APPROACH
IMPLEMENTATION
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 IMPLEMENTATION
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 RELATED WORK
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 REFERENCES
THANK YOU!! Thank You! Questions? THANKS FOR LISTENING bgnisbet@engmail.uwaterloo.ca