The document discusses a proposed reusability framework for cloud computing. The framework, called the Cloud Computing Reusability Model (CCR), aims to enable reusability in cloud computing through component-based development. The CCR model is validated using CloudSim, and experimental results show that the reusability-based approach can minimize costs and reduce time to market. The document also reviews related work on reusability and cloud computing, and analyzes challenges of the cloud computing platform for software development.
International Journal of Computational Engineering Research(IJCER) ijceronline
nternational Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
Before the emergence of Component-Based Frameworks, similar issues have been addressed by other
software development paradigms including e.g. Object-Oriented Programming (OOP), ComponentBased Development (CBD), and Object-Oriented Framework. In this study, these approaches especially
object-oriented Frameworks are compared to Component-Based Frameworks and their relationship are
discussed. Different software reuse methods impacts on architectural patterns and support for
application extensions and versioning. It is concluded that many of the mechanisms provided by
Component-Based Framework can be enabled by software elements at the lower level. The main
contribution of Component-Based Framework is the focus on Component development. All of them can be
built on each other in layered manner by adopting suitable design patterns. Still some things such as
which method to develop and upgrade existing application to other approach.
A Methodology To Manage Victim Components Using Cbo Measureijseajournal
The current practices of software industry demands development of a software within time and budget
which is highly productive. The traditional approach of developing a software from scratch requires
considerable amount of effort. To overcome the drawback a reuse drive software development approach is
adopted. However there is a dire need for realizing effective software reuse. This paper presents several
measures of reusability and presents a methodology of reconfiguring the victim components. The CBO
measure helps in identifying the component to be reconfigured. The proposed strategy is simulated using
HR portal domain specific component system.
PATTERN-BASED AND REUSE-DRIVEN ARCHITECTING OF MOBILE CLOUD SOFTWAREijseajournal
Context: Mobile Cloud Computing (MCC) represents the state-of-the-art technology that unifies mobile computing and cloud computing to develop systems that are portable yet resource sufficient. Mobile computing allows portable communication and context-aware computation, however, due to the energy and resource constraints mobile computing lacks performance for computationally intensive tasks. Cloud computing model uses the ‘as a service’ model - providing hardware and software services - to offer virtually unlimited storage and processing resources. The integration of mobile and cloud computing has given rise to the MCC systems that are portable, context-aware and resource sufficient.
Challenges and Solution: To develop the MCC systems, some recurring challenges such as connectivity, context-awareness, portability and security must be addressed during the system design and architecting process. One way to address these challenges is to use the best practices and repeatable solutions to design and architect the MCC systems. In this research, we aim to utilise the empirically discovered patterns that support reusable design knowledge for architecture-driven development of the MCC systems. We follow a three-step process to empirically discover, document and apply patterns for architecting mobile cloud systems. Specifically, we have discovered three patterns as generic and reusable solutions for MCC systems. We demonstrate the applicability of the patterns based on a case study for architecture-centric development of the MCC patterns. The propose research aims to advance the state-of-the-art on reusable and knowledge-driven architecting of the MCC systems.
‘O’ Model for Component-Based Software Development Processijceronline
The technology advancement has forced the user to become more dependent on information technology, and so on software. Software provides the platform for implementation of information technology. Component Based Software Engineering (CBSE) is adopted by software community to counter challenges thrown by fast growing demand of heavy and complex software systems. One of the essential reasons behind adopting CBSE for software development is the fast development of complicated software systems within well-defined boundaries of time and budget. CBSE provides the mechanical facilities by assembling already existing reusable components out of autonomously developed pieces of the software. The paper proposes a novel CBSE model named as O model, keeping an eye on the available CBSE lifecycle.
International Journal of Computational Engineering Research(IJCER) ijceronline
nternational Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSacijjournal
Before the emergence of Component-Based Frameworks, similar issues have been addressed by other
software development paradigms including e.g. Object-Oriented Programming (OOP), ComponentBased Development (CBD), and Object-Oriented Framework. In this study, these approaches especially
object-oriented Frameworks are compared to Component-Based Frameworks and their relationship are
discussed. Different software reuse methods impacts on architectural patterns and support for
application extensions and versioning. It is concluded that many of the mechanisms provided by
Component-Based Framework can be enabled by software elements at the lower level. The main
contribution of Component-Based Framework is the focus on Component development. All of them can be
built on each other in layered manner by adopting suitable design patterns. Still some things such as
which method to develop and upgrade existing application to other approach.
A Methodology To Manage Victim Components Using Cbo Measureijseajournal
The current practices of software industry demands development of a software within time and budget
which is highly productive. The traditional approach of developing a software from scratch requires
considerable amount of effort. To overcome the drawback a reuse drive software development approach is
adopted. However there is a dire need for realizing effective software reuse. This paper presents several
measures of reusability and presents a methodology of reconfiguring the victim components. The CBO
measure helps in identifying the component to be reconfigured. The proposed strategy is simulated using
HR portal domain specific component system.
PATTERN-BASED AND REUSE-DRIVEN ARCHITECTING OF MOBILE CLOUD SOFTWAREijseajournal
Context: Mobile Cloud Computing (MCC) represents the state-of-the-art technology that unifies mobile computing and cloud computing to develop systems that are portable yet resource sufficient. Mobile computing allows portable communication and context-aware computation, however, due to the energy and resource constraints mobile computing lacks performance for computationally intensive tasks. Cloud computing model uses the ‘as a service’ model - providing hardware and software services - to offer virtually unlimited storage and processing resources. The integration of mobile and cloud computing has given rise to the MCC systems that are portable, context-aware and resource sufficient.
Challenges and Solution: To develop the MCC systems, some recurring challenges such as connectivity, context-awareness, portability and security must be addressed during the system design and architecting process. One way to address these challenges is to use the best practices and repeatable solutions to design and architect the MCC systems. In this research, we aim to utilise the empirically discovered patterns that support reusable design knowledge for architecture-driven development of the MCC systems. We follow a three-step process to empirically discover, document and apply patterns for architecting mobile cloud systems. Specifically, we have discovered three patterns as generic and reusable solutions for MCC systems. We demonstrate the applicability of the patterns based on a case study for architecture-centric development of the MCC patterns. The propose research aims to advance the state-of-the-art on reusable and knowledge-driven architecting of the MCC systems.
‘O’ Model for Component-Based Software Development Processijceronline
The technology advancement has forced the user to become more dependent on information technology, and so on software. Software provides the platform for implementation of information technology. Component Based Software Engineering (CBSE) is adopted by software community to counter challenges thrown by fast growing demand of heavy and complex software systems. One of the essential reasons behind adopting CBSE for software development is the fast development of complicated software systems within well-defined boundaries of time and budget. CBSE provides the mechanical facilities by assembling already existing reusable components out of autonomously developed pieces of the software. The paper proposes a novel CBSE model named as O model, keeping an eye on the available CBSE lifecycle.
The performance of an algorithm can be improved using a parallel computing programming approach. In this study, the performance of bubble sort algorithm on various computer specifications has been applied. Experimental results have shown that parallel computing programming can save significant time performance by 61%-65% compared to serial computing programming.
Developing a gui based design software inLaukik Raut
In mechanical industry, design process requires more time because it is iterative process and requires
experienced people. We know that there are many CAD packages available in the market for design which demands
modeling skills. It has been observed that many research efforts have been made in the area of design automation like
integration of different CAD software like Creo Parametric, CATIA, SolidWorks with different computer
programming languages like Visual Basic, Java, C++.But it is observed that Visual Basic is having some advantages
over others like it will give us best frame work for product design input base as well as it can be easily interface with
intermediate software like MS-excel which provides an input to other modeling or analysis software and among all
available parametric modeling software Creo is widely used in industries. During the literature review, it is observed
that integration of GUI or tailor made software development using a computer programming language with modeling
software is done till now but further integration with analysis software is not done yet. This integration plays very
important role for design automation of complicated assemblies which will definitely save much time of product design
and development phase.
Multi-objective Genetic Algorithm for Interior Lighting DesignMario Pavone
This paper proposes a novel system to help in the design of
interior lighting. It is based on multi-objective optimization of the key criteria involved in lighting design: the respect of a given target level of illuminance, uniformity of lighting, and electrical energy saving. The proposed solution integrates the 3D graphic software Blender, used to reproduce the architectural space and to simulate the eect of illumination, and the genetic algorithm NSGA-II. This solution oers advantages in design exibility over previous related works.
Developing reusable software components for distributed embedded systemseSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueIJEACS
Due to the growing need for high-performance and low-cost software applications and the increasing competitiveness, the industry is under pressure to deliver products with low development cost, reduced delivery time and improved quality. To address these demands, researchers have proposed several development methodologies and frameworks. One of the latest methodologies is software product line (SPL) which utilizes the concepts like reusability and variability to deliver successful products with shorter time-to-market, least development and minimum maintenance cost with a high-quality product. This research paper is a validation of our proposed framework, Improved Software Product Line (ISPL), using Expert Opinion Technique. An extensive survey based on a set of questionnaires on various aspects and sub-processes of the ISPLD Framework was carried. Analysis of the empirical data concludes that ISPL shows significant improvements on several aspects of the contemporary SPL frameworks.
The performance of an algorithm can be improved using a parallel computing programming approach. In this study, the performance of bubble sort algorithm on various computer specifications has been applied. Experimental results have shown that parallel computing programming can save significant time performance by 61%-65% compared to serial computing programming.
Developing a gui based design software inLaukik Raut
In mechanical industry, design process requires more time because it is iterative process and requires
experienced people. We know that there are many CAD packages available in the market for design which demands
modeling skills. It has been observed that many research efforts have been made in the area of design automation like
integration of different CAD software like Creo Parametric, CATIA, SolidWorks with different computer
programming languages like Visual Basic, Java, C++.But it is observed that Visual Basic is having some advantages
over others like it will give us best frame work for product design input base as well as it can be easily interface with
intermediate software like MS-excel which provides an input to other modeling or analysis software and among all
available parametric modeling software Creo is widely used in industries. During the literature review, it is observed
that integration of GUI or tailor made software development using a computer programming language with modeling
software is done till now but further integration with analysis software is not done yet. This integration plays very
important role for design automation of complicated assemblies which will definitely save much time of product design
and development phase.
Multi-objective Genetic Algorithm for Interior Lighting DesignMario Pavone
This paper proposes a novel system to help in the design of
interior lighting. It is based on multi-objective optimization of the key criteria involved in lighting design: the respect of a given target level of illuminance, uniformity of lighting, and electrical energy saving. The proposed solution integrates the 3D graphic software Blender, used to reproduce the architectural space and to simulate the eect of illumination, and the genetic algorithm NSGA-II. This solution oers advantages in design exibility over previous related works.
Developing reusable software components for distributed embedded systemseSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueIJEACS
Due to the growing need for high-performance and low-cost software applications and the increasing competitiveness, the industry is under pressure to deliver products with low development cost, reduced delivery time and improved quality. To address these demands, researchers have proposed several development methodologies and frameworks. One of the latest methodologies is software product line (SPL) which utilizes the concepts like reusability and variability to deliver successful products with shorter time-to-market, least development and minimum maintenance cost with a high-quality product. This research paper is a validation of our proposed framework, Improved Software Product Line (ISPL), using Expert Opinion Technique. An extensive survey based on a set of questionnaires on various aspects and sub-processes of the ISPLD Framework was carried. Analysis of the empirical data concludes that ISPL shows significant improvements on several aspects of the contemporary SPL frameworks.
The technologies and people we are designing experiences for are constantly changing, in most cases they are changing at a rate that is difficult keep up with. When we think about how our teams are structured and the design processes we use in light of this challenge, a new design problem (or problem space) emerges, one that requires us to focus inward. How do we structure our teams and processes to be resilient? What would happen if we looked at our teams and design process as IA’s, Designers, Researchers? What strategies would we put in place to help them be successful? This talk will look at challenges we face leading, supporting, or simply being a part of design teams creating experiences for user groups with changing technological needs.
An immersive workshop at General Assembly, SF. I typically teach this workshop at General Assembly, San Francisco. To see a list of my upcoming classes, visit https://generalassemb.ly/instructors/seth-familian/4813
I also teach this workshop as a private lunch-and-learn or half-day immersive session for corporate clients. To learn more about pricing and availability, please contact me at http://familian1.com
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
Thinking about your sales team's goals for 2017? Drift's VP of Sales shares 3 things you can do to improve conversion rates and drive more revenue.
Read the full story on the Drift blog here: http://blog.drift.com/sales-team-tips
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
A FRAMEWORK STUDIO FOR COMPONENT REUSABILITYcscpconf
The deployment of a software product requires considerable amount of time and effort. In order
to increase the productivity of the software products, reusability strategies were proposed in the
literature. However effective reuse is still a challenging issue. This paper presents a framework
studio for effective components reusability which provides the selection of components from framework studio and generation of source code based on stakeholders needs. The framework studio is implemented using swings which are integrated onto the Net Beans IDE which help in faster generation of the source code.
An Approach to Calculate Reusability in Source Code Using MetricsIJERA Editor
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
A Novel Optimization towards Higher Reliability in Predictive Modelling towar...IJECEIAES
Although, the area of software engineering has made a remarkable progress in last decade but there is less attention towards the concept of code reusability in this regards.Code reusability is a subset of Software Reusability which is one of the signature topics in software engineering. We review the existing system to find that there is no progress or availability of standard research approach toward code reusability being introduced in last decade. Hence, this paper introduced a predictive framework that is used for optimizing the performance of code reusability. For this purpose, we introduce a case study of near real-time challenge and involved it in our modelling. We apply neural network and Damped-Least square algorithm to perform optimization with a sole target to compute and ensure highest possible reliability. The study outcome of our model exhibits higher reliability and better computational response time
Best Practices for Improving User Interface Designijseajournal
A rich and effective computational system must have a friendly user interface with appealing usability features that provides excellent user experience. In order to develop interactive systems with the best user experience, an innovative iterative approach to user interface engineering is required because it is one of the most challenging areas given the diversity of knowledge, ideas, skills and creativity needed for building smart interfaces in order to succeed in today’s rapidly paced and tough, competitive marketplace. Many modeling aspects including analytical, intuitive, artistic, technical, graphical, mathematical, psychological and programming models need to be considered in the development process of an effective user interface. This research examines some of the past practices and recommends a set of guidelines for designing effective user interfaces. It also demonstrates how UML use case diagrams can be enhanced by relating user interface elements to use cases.
BEST PRACTICES FOR IMPROVING USER INTERFACE DESIGN ijseajournal
A rich and effective computational system must have a friendly user interface with appealing usability features that provides excellent user experience. In order to develop interactive systems with the best user experience, an innovative iterative approach to user interface engineering is required because it is one of the most challenging areas given the diversity of knowledge, ideas, skills and creativity needed for building smart interfaces in order to succeed in today’s rapidly paced and tough, competitive marketplace. Many modeling aspects including analytical, intuitive, artistic, technical, graphical, mathematical, psychological and programming models need to be considered in the development process of an effective user interface. This research examines some of the past practices and recommends a set of guidelines for designing effective user interfaces. It also demonstrates how UML use case diagrams can be enhanced by relating user interface elements to use cases.
Visual Programming and Program Visualization – Towards an Ideal Visual Softwa...IDES Editor
There has been a great interest recently in systems
that use graphics to aid in the programming, debugging, and
understanding of computer systems. The ‘’Visual
Programming’’ and ‘’Program Visualization’’ are exciting
areas of active computer science research that show promise
for improving the programming process, for this they have
been applied to these systems. This article attempts to provide
more meaning to these terms by giving precise definitions,
and then surveys a number of systems that can be classified as
providing Visual Programming or Program Visualization.
These systems are organized by classifying them into two
different taxonomies. The paper also gives a brief description
of our approach that concentrated on both Visual Programming
and Program Visualization for an Ideal Visual Software
Engineering System. We consider it as a new promising trend
in software engineering.
Similar to Reusability Framework for Cloud Computing (20)
The ultimate goal of scientific research is publication so as to showcase the research outcomes. Scientists, starting as graduate students, are measured primarily not by their dexterity in laboratory manipulations, not by their innate knowledge of either broad or narrow scientific subjects, and certainly not by their wit or charm; they are measured, and become known by their publications. A scientific experiment, no matter how spectacular the results, is not completed until the results are published. In fact, the cornerstone of the philosophy of science is based on the fundamental assumption that original research must be published; only thus can new scientific knowledge be authenticated and then added to the existing databases. In this paper, a practitioners approach to write an effective paper is presented in a chronological order. Further, writing style of effective research paper, a review technique to conduct a methodical survey in a systematic manner and finally an effective research plan for forthcoming research scholars is discussed. This research work provides an effective direction to write, submit and publish the effort put into doing research into a published form.
Sukhpal Singh Gill and Rajkumar Buyya, "Cloud Data Centers and the Challenge of Sustainable Energy", Cutter Business Technology Journal, Volume 31, Issue 4, Pages 1-2, Publisher Cutter, 2018.
This article describes how integrate Java with Microsoft Technology. Sometimes there may be need an application where integrate both technologies. This article describes how to call some Java methods from .NET code, and pass some values to Java or .NET and vice versa. This is a simple ASP.NET application, which interacts with Java Applets while performing another operation. The application is very simple to do, but the main thing behind the scene is the idea and implementation logic.
Software Requirements Specification (SRS) for Online Tower Plotting System (O...Dr Sukhpal Singh Gill
Software Requirements Specification (SRS) for Online Tower Plotting System (OTPS) created during Master of Engineering in Software Engineering at Thapar University, Patiala, Punjab, India in Software Project Management (SPM) in 2011.
SRS of Case Study Based Software Engineering Project Development: State of Art
Download Link:
http://www.slideshare.net/sukhpalsinghgill/case-study-based-software-engineering-project-development-state-of-art
Presented in the National Level Technical Symposium on Emerging Trends in Technology [TECHNOVISION ’10, G.N.D.E.C. Ludhiana, Punjab, India- 9th-10th April, 2010]
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Dr Sukhpal Singh Gill
Three days workshop on Basics of Software Engineering at Thapar University, Patiala on 7th-9th, 2013. Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Case Study Based Software Engineering Project Development: State of ArtDr Sukhpal Singh Gill
Publised in International Journal of Scientific Research in Computer Science Applications and Management Studies (IJSRCSAMS), Volume 2, Issue 3 (May 2013).
Step by Step Development of Software Project
An approach to learn Software Project Management Practically.
SDLC phases of Software Engineering
Project Completed at Thapar University, Patiala, Punjab, India.
Download Link:
http://arxiv.org/ftp/arxiv/papers/1306/1306.2502.pdf
http://www.ijsrcsams.com/images/stories/Past_Issue_Docs/ijsrcsamsv2i3p31.pdf
SRS of this Project can be downloaded from :
http://www.slideshare.net/sukhpalsinghgill/software-requirements-specification-srs-for-online-tower-plotting-system-otps
Conference Proceedings of the National Level Technical Symposium on Emerging Trends in Technology, TECHNOVISION ’10, G.N.D.E.C. Ludhiana, Punjab, India- 9th-10th April, 2010
Constructors, Destructors, call in parameterized Constructor, Multiple constructor in a class, Explicit/implicit call, Copy constructor, Dynamic Constructors and call in parameterized Constructor
1. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
Reusability Framework for Cloud Computing
Sukhpal Singh1, Rishideep Singh2
1
M.E. (S.E.) Co mputer Science and Engineering Depart ment, Thapar Un iversity, Patiala, India,
2
Assistant Professor, Depart ment of Information Technology, N.W.I.E.T. Dhudike, Moga, India.
Abstract:
Cloud based development is a challenging task for several software engineering projects, especially for those which needs
development with reusability. Present time of cloud computing is allowing new professional models for using the software
development. The expected upcoming trend of computing is assumed to be this cloud computing because of speed of
application deployment, shorter time to market, and lower cost of operation. Until Cloud Co mputing Reusability Model is
considered a fundamental capability, the speed of developing services is very slow. Th is paper spreads cloud computing wit h
component based development named Cloud Co mputing Reusability Model (CCR) and enable reusability in cloud computing.
In this paper Cloud Co mputing Reusability Model has been proposed. The model has been validated by Cloudsim an d
experimental result shows that reusability based cloud computing approach is effective in minimizing cost and time to market.
Keywords: Cloud based software development, Co mponent based development, Cloud Co mponent, Cloud computing,
Reusability, Software engineering, Software reuse.
1. Introduction
Reusability means using a segment of source code that can be used again to add new functionalities with slight or no
modification. In most engineering disciplines, systems are designed by composing existing components that have been used in
other systems [26]. Software engineering has been more focused on original develop ment but it is now recognized that to
achieve better software, more quickly and at lower cost, we need to adopt a design process that is based on systematic software
reuse [1]. Reverse engineering means evaluating something to understand how it works in order to duplicate or enhance it. It
allo ws the reuse of the know-how h idden inside already implemented programs [12] [14]. The object oriented software
developers now admit that thinking about object-oriented program understanding and comprehension to be relatively easier is
not that easy. Programs are even more co mp lex and difficu lt to comprehend, unless rigorously documented. What if the
documentation is improper? To affect change management, even a simpler upgrade may become cu mbersome then [3] [25].
This is the reason why eminent development houses now focusing on advanced documentation support [39]. Re-engineerin g
code environment hence largely affect the problem issues regarding program co mprehension when the software size grows
enormously. Reverse Engineering is a methodology that greatly reduces the time, effo rt and complexity involved in solving
these issues providing efficient program understanding as an integral constituent of re -engineering paradigm [2] [26]. Clou d
computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically
the Internet) [33] [38]. The name comes fro m the use of a cloud-shaped symbol as an abstraction for the complex infrastructure
it contains in system diagrams. Cloud computing [11] [30] entrusts remote services with a user's data, software and computation
[13] shown in Figure 1. In Section 2 the related work has been described. The challenges of cloud computing platform fo r
software is analyzed in Section 3. In Section 4 the Cloud Co mputing Reusability Model (CCR) has been discussed. The
experimental results are exp lained in Section 5. The advantages of proposed model have been discussed in Section 6. The
Section 7 concludes the whole work and provides future work in Sect ion 8.
2. Related work
Reverse engineering is a systematic form of program understanding that takes a program and constructs a high -level
representation useful for documentation, maintenance, or reuse. To accomplish this, reverse engineering technique begins by
analyzing a program’s structure [24]. The structure is determined by lexical, syntactic, and semantic rules for legal program
construction. Because we know how to proceed on these kinds of analysis, it is natural to try and apply them to understand
programs. In itially reverse engineering term was evolved in the context of legacy software support but now has ventured into
the important issue of code security such that it doesn’t remain confined to legacy systems. We will come to the discussion into
this effect after a while. Transformations are applied under the process of Re-engineering [25] after analy zing the software to
apply changes incorporating new features and provide support for latest environment. Object -oriented software development
methodology primarily has three phases of Analysis, Design and Implementation [36]. W ith the view of the tradit ional waterfall
model, reverse engineering this is looking back to design from imp lementation and to analysis from implementation. The
important thing is that it actually is a reverse forward engineering i.e. fro m imp lementation; analysis is not reached before
Issn 2250-3005(online) October | 2012 Page 169
2. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
design. The software system or p rogram under study is neither modified nor re -imp lemented because of not bringing it under
Re-engineering. [23] Software Re-engineering is the area which deals with mod ifying software to efficiently adapt new changes
that can be incorporated within as software aging is a well-known issue. Reverse engineering provided cost effective solutions
for modify ing software or programs to adapt change management through Re -engineering application [25] [10]. Reusable
architectures [31] can be developed fro m reusable architectural patterns [11] as in FIM architecture [12] wh ich operates at three
different levels of reuse: Federation, domain and application. Paulisch F. et. al. focuses on how non-functional property
reusability relates to the software architecture (SOA) of a system [4] [7]p. K.S. J. and Dr. Vasantha R. presented a software
process model for reuse based software development approach [5] [17] [18]. Fro m the overall literature survey, it can be
concluded that: code, design, test cases etc can be reused. Reuse can be systematic (software develop ment for reuse), or
opportunistic (software development with reuse) Reuse does not just happen; it needs to be planned and require p roper
documentation and design. Reverse-engineering can be used for reusability or it can be said that reusability can be achieved
using reverse-engineering. Reverse engineering helps to understand the legacy system by creating its UML model and once the
model of the legacy system is created, that model can be used with little or no modification in the underdevelopment or in the
future project to promote reusability and to increase productivity of the organization [6] [12]. There are lots of UML tools
available to perform reverse-engineering process [9] [15]. Reverse-Engineering can be used to make the poorly designed and
poorly documented legacy software system developed with cloud development process; Re-usable by extracting the component
fro m the legacy system using UML models [8] [26].
Figure 1. Cl oud Computing and its services [13]
Reuse based software engineering and cloud development is an open research area in rap id development. We had
conducted a survey on the number of approaches existing for Cloud Based Development [14, 9], and Reusability [11] [16]
individually, but the proposed model co mbines both Cloud co mputing and Reusability [19] into a single approach for ach ievin g
efficient classificat ion, storage and retrieval of software co mponents and improve time to market and reduce cost. The cost
without reusability is increasing phase to phase as shown in Figure 2. Presently there is no such approach as presented in
proposed model which co mbines the Co mponent based Development (Reusability) [24] [29] and Cloud computing [15].
3. Analysis
In the rapidly changing computing environ ment with cloud platform, software develop ment is going to be very
challenging. The software development process will involve heterogeneous platforms, distributed web services, multiple
enterprises geographically dispersed all over the world. Figure 2 shows the cost of development is increasing from requiremen t
to maintenance without reusability for a small project, the development with reuse will cut an initial cost and reduce time to
market. The organizat ions need to incorporate reuse in their development [20] [32]; it will be a long term investment process.
Figure 3 summarizes incremental reuse levels (solid line) and related reuse approaches (dotted lines) [21]. The reuse of ad-hoc
reuse events with in itial benefits is the only level of reuse which can be achieved without investing in software reuse; inst ead
the experience of prev ious projects is used to copy relevant pieces of code.
Issn 2250-3005(online) October | 2012 Page 170
3. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
Figure 2. Evol uti on of Software Engineering
This reuse level is defined as level 0. The first real reuse level presents a form of code -leverage, where p ieces of code
are made available and can be reused by multiple part ies. The pieces of code are made available through the use of a reuse
lib rary, provid ing a central p lace where the components are stored [37].
Figure 3. Incremental stages of reuse [21]
The use of these leveraged components is not restricted and can be considered as white-bo x reuse; the code may be
adjusted and changed to the specific context in which the component is applied [27] [35]. This strategy works for a while up to
the point that multip le copies, each slightly d ifferent, have to be managed. The choice can be made to stop using components as
white-bo x and start using them as black-bo x co mponents instead. Black-bo x co mponents may no longer be internally adjusted;
rather its environ ment should be adjusted to support the component. Previous research has pointed out that with black -bo x reuse
higher reuse levels can be achieved than with white-bo x reuse [22] [36]. The reason for this is that there are reduced costs in
component maintenance and maintenance across products using these components. However, black -bo x reuse also has its
limitat ions.
Issn 2250-3005(online) October | 2012 Page 171
4. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
Figure 4. Assets and reuse operations [22].
The axis of the three dimensional model are exp lained by an underlying model, a lso presented in Tomer et al. [22].
The underlying model is presented in Figure 4. For simp licity Tomer et al. transferred the underlying model to a two
dimensional model, where develop ment and maintenance are comb ined into one axis [34]. A key assumption made in this
model is that reuse activities cannot be freely transferred between specific products without first storing and cataloguing the
assets in a central repository [22]. Hence incorporating reuse in cloud co mputing will be beneficial if the general co mponent
will be used mu ltiple times for developing cloud projects and services.
4. Cloud Computing Reusability (CCR) Model
Innovative software engineering is required to leverage all the benefits of cloud computing and mit igate its challenges
strategically to push forward its advances. Here we propose an extended version of software development, reusability process
model for cloud computing platform and na me it Cloud Co mputing Reusability (CCR) Model [Figure 5]. A model capable o f
developing cloud based applications with reusability by retrieving the components from the cloud component repository by
using pattern matching algorithms and various retrieval methods. There are some different 6 retrieval methods available for the
classification of co mponents in the software library. This model will help to make searching faster based on classification o f
components and develop the cloud based application accordin g to cloud customer requirements to improve time to market as
compared to traditional software development approach. The Cloud Co mponent Architecture of proposed Cloud Computin g
Reusability (CCR) Model is shown in Figure 6. In the Unified Modeling Language, a component diagram depicts how clou d
components are wired together to form larger co mponent. They are used to illustrate the structure of arbitrarily co mplex clou d
systems.
Issn 2250-3005(online) October | 2012 Page 172
5. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
Dirty Source Code IaaS PaaS SaaS
Code Cloud Based Developed
Restructuring System/Service
Document Data
Reverse Engineering
Restructuring Restructuring
Clean Clean Clean
Documentation Source Code Data
Analysis
Identification Reusable Component Process
Cloud
Reusable Cloud Component
Component
Component Validation and Testing Repository
Cloud Component Searching
Component
Cloud Component
Adaptation
Qualify?
White Box Reuse No
Yes
Component Component
Integration Composition
Black Box Reuse
Cloud Based
Development Process
Figure 5. Cloud Computing Reusability (CCR) Model
Issn 2250-3005(online) October | 2012 Page 173
6. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
4.1 Cloud B ased Developed System/Service
In cloud computing, three services are provided to the customer; Infrastructure as a Service, Platform as a Service and Software
as a Service. The organization reuses their developed projects by black bo x reuse and if the cloud service or project is
developed by another organization then it will be used by reverse engineering in cloud computing then if it will be fu rther
updated by white box reuse.
4.2 Reverse Engineering
The dirty source code is obtained from cloud based development and service and then code, data and document restructuring
will be performed to find a clean document (UML), data (Meta Data) and Code (coding style). After that it will be analyzed for
future use, to check whether it is feasible or not, if feasible then identify reusable process. The reusable cloud component will
be obtained through this process and then validation and verificat ion of cloud component will be performed and then sent to the
cloud component repository.
Figure 6. Cloud Component Architecture
4.3 Cloud Component Repository
The refined cloud developed components by reverse engineering with traditional development model will be stored in cloud
component repository and retrieved it at a later stage for other cloud application development. There is some different storage
and retrieval methods (Information retrieval methods, Operational semantics methods, Descriptive methods, Denotational
semantics methods, Topological methods and Structural methods) are available for the classificat ion of components in the
software library. This model will help to make searching faster based on classification of cloud components and use these cloud
components in other projects by searching and send back to cloud component repository after updating.
4.3 Cloud Component Reuse Process
The searched cloud component will be send through the phase cloud component qualificat ion to check whether the c omponent
support required architecture, functionality and interfaces. If it qualifies then it will reused as a black bo x otherwise it will be
reused as a white box reuse through the modification then the component will be integrated with current cloud application and
send back to cloud component repository for future use.
5. Results and Discussion
The results of Cloud Co mputing Reusability (CCR) Model as compared to tradit ional cloud based development have
been described in the Table 1. The result with Cloud Co mputing Reusability (CCR) Model has been ve rified with the help of
Cloudsim.
Issn 2250-3005(online) October | 2012 Page 174
7. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
Table 1. Comparison of CCR method and traditi onal method
Criteria CCR Method Traditional Methods
Approach Adaptive Predictive
Success Measurement Business Value Confirmation To Plan
Project Size Small Large
Management S tyle Decentralized Autocratic
Perspective To Change Change Adaptability Change Sustainability
Culture Leadership Collaboration Command Control
Documentation Low Heavy
Emphasis People Oriented Process Oriented
Cycles Numerous Limited
Domain Unpredictable/Exploratory Predictable
Upfront Panning M inimal Comprehensive
Return On Investment Early In Project End Of Project
Team Size Small/Creative Large
Cost Less M ore
Time To Market Less M ore
Figure 7 shows the HR application developments in cloud computing as a development for reuse, and then it will be four times
used in four projects. The HR application which has been stored in cloud component repository, now used in cloud computing
projects: MRI Imagining, Clinical Trial, Viral Marketing and Molecule Research.
MRI Imaging HR App. HR App. Clinical Trial
Cloud
HR App. Component HR App.
Viral Marketing Molecule Research
Repository
Figure 7. Reuse of HR App. Cl oud component in other projects
The services provided by cloud provider will be easily reusable for new cloud projects. The evaluation of Cloud
Co mputing Reusability (CCR) Model has been summarized in Table 1. The cost and time to market reduces in Cloud
Co mputing Reusability (CCR) Model as compared to traditional software development, better services will be delivered to the
cloud user with large satisfaction level, and these results were verified by Cloudsim. The cost reduction and imp rovement in
time to market proved by Cloudsim shown in Figure 8.
Figure 8. The comparison of cost and ti me to market for Traditional and CCR Model
6. Advantage of Proposed Approach
This proposed Cloud Co mputing Reusability (CCR) will help to 1) developing application quickly 2) reduces cost 3)
improves reusability 4) reduce time to market and make searching faster based on classification of components and introducing
reusability in Software Develop ment. It will be accepted widely if pattern based architecture designing, design patterns [27]
Issn 2250-3005(online) October | 2012 Page 175
8. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
[28], UM L based analysis and designing is incorporated. The six impo rtant ways Cloud Co mputing Reusability (CCR)
enhances cloud based development.
Enhance the productivity and improve the quality and reliab ility of the new software systems.
Identify independent components having a low coupling and high cohesion.
Accelerate cloud based development
Improve time to market
Reduce cost
Increase generality
7. Conclusion
In this paper, we have presented a Cloud Co mputing Reusability (CCR) Model. The objective is to min imize the
complexity, cost, time to market and increase reusability, development speed and generality. Soft ware Development wit h
reusability has encouraging future in the software industry and is capable of fulfilling the requirements of the cloud industry.
Thus, at times it co mpro mises with quality and is incapable of providing reusability of its cloud based developed components.
Traditional Soft ware Develop ment offers particular solutions whereas Reuse and Cloud component based Development believe
in generalized solutions to satisfy the demands of cloud customer. Co mponent based development is a standard shift over the
traditional way of developing and deploying of software. The amount of effort required for evolv ing software with reusabilit y
will dimin ish but there will be added commun ication and coordination requirement with the developer which makes software
development project more difficult. The main objective of this paper is that the leading software process models should
incorporate this new dimension of interaction with the reusability. A new Cloud Co mputing Reusability (CCR) Model is
proposed in this paper which includes the expected communication requirement with the application developer and component
developer which will dimin ish all the challenges of software development on a cloud computing platform and make it more
beneficial to develop and deploy software on the cloud computing platform. The model is based on Reverse Engineering for
identifying and creating reusable software component and reused that component. A model based on pattern matching
technique is used to search the cloud component from the cloud component repository. This model encompasses the reverse
engineering methodology to extract components of the object oriented legacy cloud system development. It utilizes cloud
component repository to store and manage the tested components and restructures the new system that finally integrates the
new system with the reusable components. The reusability of the cloud component is the most popular way to enhance the
productivity and improve the quality and reliability of the new software systems by reducing the development costs. Due to
these reasons, it is very important to identify independent components having a low coupling and high cohesion. Also a
systematic approach to identify reusable component fro m the object oriented legacy system through cloud component
architecture has been proposed. The proposed approach has been validated by using a UML and also its components are tested
for reusability and illustrated that how these components can be reused in other cloud projects.
8. Future Work
The future scope of this work is to analyze and to incorporate risk fa ctors in Component Based Development
systematically and find the critical success factors of the Cloud Computing Reusability (CCR) and also identify the various risk
factors using risk analysis of introducing reusability in component based development and offer a model that will help us to
achieve reusability in Cloud Develop ment. Reusability can also be automated in cloud development using an automated tool.
Current results have been gathered through the simu lation on Cloudsim but in future the s ame results would be verified actually
by cloud providers. In future, if this proposed methodology can be fully automated by an automatic tool then it could be more
effective and less time consuming. Co mponent based software engineering and cloud co mputing is an op en research area in
fast growth.
References
[1] Radha Guha. Toward The Intelligent Web Systems. In Proceedings of IEEE CS, First International Conference on Computational
Intelligence, Communication Systems and Network, Pages 459-463, July 2009.
[2] J. Handler, N. Shadbolt, W. Hall, T. Berners-Lee and D. Weitzner. Web Science: An Interdisciplinary Approach to Understanding
the Web. Communications of the ACM , Vol. 51, No. 7, July 2008.
[3] F. Chong and G. Carraro. Architecture Strategies for Catching the Long Tail. M icrosoft Corporation, April 2006.
[4] J. Banerjee and S. Aziz. SOA: The missing link between Enterprise Architecture and Solution Architecture. SETLabs briefing, Vol.
5, No 2, Pages 69-80, M arch 2007.
[5] HADOOP. http://en.wikipedia.org/wiki/Hadoop, February 2010.
[6] D. Taft. IBM 's M 2 Project Taps Hadoop for M assive M ashups.www.eweek.com, February 2010.
[7] Sun M icrosystem. Introduction to Cloud Computing architecture. White Paper, 1st Edition, June 2009
[8] Sun M icrosystem. Open Source & Cloud Computing: On-Demand, Innovative IT On a M assive Scale.
[9] A. Singh, M . Korupolu, D. M ahapatra. Server-Storage Virtualization: Integration and Load Balancing in Data Centers. IEEE/ACM
Supercomputing (SC), 2008
Issn 2250-3005(online) October | 2012 Page 176
9. I nternational Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6
[10] VM WARE. Virtualization Overview. www.vmware.com.
[11] Reservoir Consortium. Resources and Services Virtualization without Barriers. Scientific Report. 2009.
[12] R. Pressman. Software Engineering: A Practitioner's Approach.7th Edition. M cGraw-Hill Higher Education (2009).
[13] I. Sommerville. Software Engineering, 8th Edition, Pearson Education, 2006.
[14] M . Brambilla et al. A Software Engineering Approach to Design and Development of Semantic Web Service Applications
[15] Vaquero, L.M ., Rodero-M erino, L., Caceres, J., Lindner, M .: A break in the clouds towards a cloud definition. ACM SIGCOMM
Comput. Commun. Rev. 39(1), 50–55 (2009)
[16] T. DeM arco and T. Lister. Waltzing with Bears: M anaging Risk on Software Projects, Dorset House Publishing
Company, Incorporated. M arch 2003.
[17] Paulisch F., Siemens AG,” Software Architecture and Reuse – an Inherent Conflict?” 3rd International Conference on
Software Reuse, Nov. 1994, pp. 214.
[18] www.win.tue.nl/~mchaudro/cbse2007/managing%20CBSE%20and %20reuse.pdf
[19] Garlen D., Allen R., and Ockerbloom J., “Architectural M ismatch: Why Reuse is So Hard”, IEEE Software,
November1995, vol. 12, no 6, pp 17-26.
[20] The Open Group: Building return on investment from cloud computing. A white paper, cloud business artifacts project. Cloud
Computing Work Group (2010)
[21] M . Griss. (1996, April). Systematic Software Reuse: Architecture, Process and Organization are Crucial. Available:
http://martin.griss.com/pubs/fusion1.htm
[22] A. Tomer, et al., "Evaluating software reuse alternatives: A model and its application to an industrial case study,"
IEEE Transactions on Software Engineering, vol. 30, pp. 601-612, 2004.
[23] Chikofsky E.J., Cross II J.H. (1990), Reverse Engineering and Design Recovery: a Taxonomy , p-p13-17, IEEE
Software, volume 7, January 1990.
[24] Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 .
http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7/Presentations/PDF/ch18.pdf
[25] Asit Kumar Gahalaut ,2010,REVERSE ENGINEERING: AN ESSENCE FOR SOFTWARE RE-ENGINEERING
AND PROGRAM ANALYSIS. http://http://www.ijest.info/docs/IJEST10-02-06-131.pdf
[26] Basili, V., Rombach, D. Support for comprehensive reuse. Department of Computer Science, University of M aryland
at College Park, UM IACS-TR-91-23, CSTR- 2606, 1991..
[27] J.H. Chuang. Potential-Based Approach for Shape M atching and Recognition. Pattern Recognition, 29:463-
470, 1996.
[28] Gomma H. and Farrukh G.A., “Composition of Software Architectures from Reusable Architecture Patterns”,
Foundations of Software Engineering, Proceedings of 3rd International Workshop on Software Architecture, Orlando,
Florida, US, 1998, pp. 45-48.
[29] K.S. J., and Dr. Vasantha R., “A New Process M odel for Reuse based Software Development Approach”, Proceedings
of the World Congress on Engineering, London U.K, July 2008, vol. 1.
[30] M onaco, Ania (7 June 2012 [last update]). "A View Inside the Cloud". The institute.ieee.org (IEEE). Retrieved August 21, 2012.
[31] Bhaskar Prasad Rimal et. al., Architectural Requirements for Cloud Computing Systems: An Enterprise Cloud
Approach, Springer Science Business M edia B.V. 2010, J Grid Computing (2011) 9:3–26
[32] Radha Guha et.al., Impact of Web 2.0 and Cloud Computing Platform on Software Engineering, 2010 International
Symposium on Electronic System Design, 213-218.
[33] Armbrust, M ., Fox, A., Griffith, R., Joseph, A.D., Katz, R.H., Konwinski, A., Lee, G., Patterson, D.A., Rabkin, A.,
Stoica, I., Zaharia, M .: Above the clouds: a Berkeley view of cloud computing. Technical Report No. UCB/EECS-
2009-28, Electrical Engineering and Computer Sciences, University of California at Berkeley (2009)
[34] Bonvin, N., Papaioannou, T.G., Aberer, K.: Dynamic cost-efficient replication in data clouds. In: Proceedings of the
1st Workshop on Automated Control for Datacenters and Clouds (2009)
[35] Dash, D., Kantere, V., Ailamaki, A.: An economic model for self-tuned cloud caching. In: Proceedings of the IEEE
International Conference on Data Engineering (2009)
[36] Fingar, P.: Extreme Competition: Cloud Oriented Business Architecture. Business Process Trends (2009)
[37] Foster, I., Zhao, Y., Raicu, I., Lu, S.: Cloud computing cloud computing and Grid computing 360 degree compared. In: Grid
Computing Environments Workshop (2008)
[38] Gellman, R.: Privacy in the clouds: risks to privacy and confidentiality from cloud computing. In: World Privacy Forum (2009) 35.
Golden, B.: Virtualization
[39] M ell, P., Grance, T.: Perspectives on Cloud Computing and Standards. National Institute of Standards and Technology (NIST),
Information Technology Laboratory (2009)
Issn 2250-3005(online) October | 2012 Page 177