The Central Role of APIs in Mashup and Cloud Platforms and Need for an Agile API Development Method
|
|
- Julia Daniela Garrett
- 8 years ago
- Views:
Transcription
1 The Central Role of APIs in Mashup and Cloud Platforms and Need for an Agile API Development Method Valeh H. Nasser Department of Computer Science University of Calgary Calgary, Canada Abstract Mashups and cloud platforms aim to bring access to low-cost customized IT solutions by taking advantage of largescale reuse of existing resource. In this work we have highlighted the crucial role of domain-specific APIs in success of mashup development and we have proposed an agile domain-specific API development methodology for developing usable and useful APIs that address mashup developer requirements. Keywords: agile software development; mashups; platform as a service; application programming interface I. INTRODUCTION Software industry is in a never-ending battle for reducing the cost of software development. Mashups and cloud computing are the new players in the field. To reduce software development costs, mashups reuse online resources to customize mainstream software and cloud computing provides platforms of online resources. Cloud platforms and mashup development concepts are built on reusing existing resources. Building software by reusing existing components (a notion of borrowed from hardware industry) has been the oasis of software industry, since the 1968 [15]: "The most important characteristic of a software components industry is that it will offer families of routines for any given job. [ ] In other words, the purchaser of a component from a family will choose one tailored to his exact needs. [ ] He will expect families of routines to be constructed on rational principles so that families fit together as building blocks." The notion of software component has changed through the years. The level of abstraction and scale of reuse has risen from low-level procedures to high-level plug-ins. Two of the most common reuse technologies are object-oriented software platforms and libraries that facilitate reuse of their functionality through their APIs. Cloud platforms and mashups are about providing and using high-level domain-specific APIs. Reusing domain specific assets have been known to be more difficult than reusing low-level static concepts [14]. Developing usable and useful domain-specific APIs is not trivial; the reason perhaps lays in the fact that anticipating requirements of API users and dealing with their different requirements is not trivial. We propose that agile methods can help designing usable and useful APIs that address users needs. Agile software development rejects anticipating requirements and bigdesign-up-front. Instead it is based on close customer relationship and iterative evolution of software in reaction to concrete customer requirements. Designing APIs driven by requirements of API users relieves API designer from anticipating requirements and can help alleviate difficulties of domain specific API development. However APIs can be complex. As a result traditional direct communication methods, which gather requirements based on direct communication with customer may not suffice. Analyzing API usages can provide other sources of input for API developers. Automated extraction of usage scenarios from API users code can help API developers understand requirements of their users. In this paper we first describe mashups, cloud computing, their development process, challenges, and role of APIs in section II. In section III we describe an agile API development process. In section IV we describe related research and section V we conclude the paper. II. BACKGROUND In this section, we first define cloud computing and mashups. Then, we describe how they go hand-in-hand to enable access to low-cost customized IT applications. We will discuss a specific type of cloud computing service called Platform as a Service (PaaS) and its relationship to mashups. Next, we will describe a process model that has been proposed for mashup development. Finally, by discussing mashup development challenges, we clarify the role of API s in mashup development. A. Cloud Computing Cloud computing [1] reduces IT costs by providing instant access to online services based on pay-per-use model and relieves companies from up-front investment in hardware and software. Three kinds of cloud computing services are defined (Fig. 1): Infrastructure as a Service provides computing resources (such as Amazon 1 EC2), 1
2 Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS) Figure 1 Cloud computing architecture Platform as a Service provides software development resources and platforms (such as SalesForce 2 development platform), Software as a Service provides software (such as SalesForce CRM software). In this work we mostly refer to Platform as a Service. Platform as a Service provides software development platforms including APIs that can be used for developing applications. Two examples of Platform as a Service model are SalesForce and Amazon web services. Amazon provides web services including services for inventory management, payment collection, etc. Some of these services seam to be extracted from existing amazon market place application code. Similarly, SalesForce has created some APIs on top of their existing CRM application to make it extensible by third-party add-ons. B. Mashups Mashups [2] are applications that reuse existing resources and re-combine them to bring added value to end-users. The resources used by mashups can be data, functionality, or presentation. The combination of resources can happen at client-side or server-side. Mashups may use different technologies (such as RSS feed, web APIs e.g. Google Map APIs, screen scraping, etc.) to access and combine existing resources. Enterprise mashups are mashups that combine enterprise resources (Such as an ERP and payment system). To enable building enterprise mashups, enterprise data and services should be made available through API s [3]. Literature describes several related motivations for mashups. One motivation is long tail of software requirements [4, 8] (Fig. 2); many software requirements are requested by a small group of users and therefore are not addressed by mainstream software. To address the long tail of software requirements, situated software [5] is developed. Situated software refers to software that is developed and is only good enough for a transient need specific to a situation and is not useful out of that context. Mashups are online situated software [6, 8]. Another motivation behind mashups is business-it gap [7]: misscommunication, low reaction time, and IT not having time for transient and urgent requirements. Driven by these motivations, a lot of research on mashup development is towards enabling end user development [9], which is challenging. We believe that business-it gap can be avoided by using agile practices. Additionally, we think that the main motivation for enterprise mashups is that small Figure 2 The long tail of software requirements; requirements located in the tail of the requirement axis are not usually supported by mainstream software. to medium sized companies want to reduce IT costs by using mainstream software and still be able to customize the software for their requirements. C. Relation Between Mashups and Cloud Computing Software as a Service in cloud computing provisions low-cost software for small to medium sized companies. However, it does not provide extensibility and integration with other enterprise systems. Providing APIs on top of implementation of Software as a Service and extension mechanisms can create a domain specific platform. APIs provided by such a domain specific platform, allow creating mashups that integrate and extend the functionality provided by the original software. SalesForce CRM software and its development platform are examples of this model. D. Mashup Development Process Several similar mashup development processes are described in literature [7, 8, 10]. Since the mashup development processes are similar, in this section we will describe one of them. The mashup development process [10] includes three processes and roles: Providers develop and publish resources (APIs, data feeds, etc.). Intermediaries (IT) match the supply and demand between providers and consumers by finding resources and providing them for consumers in the mashup platform. Consumers compose mashups using resources available in the mashup platform. It is notable that this process highly depends on abilities of consumers composing mashups, which is a kind of end user development. Moreover, it does not clearly describe level of abstraction of resources and composition operators. In addition, the process does not address based on what requirements the providers develop resources. While, the intermediary matches requirements of consumers with resourced developed by providers, the development of resources is not driven by user requirements. As a result the process becomes waterfall depending on up-front design and prediction of requirements by resource providers. 2
3 Software as Service Infrastructure as a Service E. Mashup Development Challenges and the Central Role of APIs A large body of mashup research ties mashup development to end user development and aim to empower end users to compose software [9]. End user development is challenging. The open question in end user development is what are the right component and composition models with regards to capabilities of end users? Different models are proposed for end user development of mashups [9]. But the question seams not be answered yet. A study of end users using a mashup development platform showed that end users who have no background in programming are not capable of finishing their development tasks without assistance [11]. The problems end users encountered included: use of programming concepts (such as list) in component and composition model and vagueness of services provided by some modules. The results of study are compatible with another study [12] that highlights difficulties of end user development. A user-centered process for creating and documenting resources used in end user development may alleviate some of the issues. Whether end users are developing mashups or professional programmers, availability and usability of resources are crucial. If a mashup platform does not provide usable and useful APIs, chances are less that third party developers would use the platform to develop mashups. The proposed mashup development processes [7, 8, 10] do not take difficulties of providing usable and useful resources into consideration. To address this challenge, we suggest that instead of upfront API design, providers should use agile methods for reactively developing and evolving APIs based on requirements of mashup developers. Additionally providers should monitor API usages to enhance API usability and utility. III. Mashup Application Software as Service Figure 3 Relation between cloud computing and mashups: mashups are software as service in the cloud that depend on other platform API s and other software. AGILE API DEVELOPMENT PROCESS In the previous section we described the central role of APIs in mashup platforms. In this section we will discuss an agile method for bottom-up API design. The context of our method is that a Software as a Service is provided in the cloud. By providing high level and usable APIs on top of the software (bottom-up development), providers allow mashups to be developed by third parties. The problem is that what are the appropriate APIs. For this purpose we suggest that instead of big up-front API design, API s should be developed iteratively to address requirements of mashup developers. Agile methods develop vertical parts of consumer-software iteratively based on customer requirements and depend on close interaction with customers. Similarly agile methods for API development should develop API s iteratively to address requirement of their customers. Close interaction with customers can enhance usability and utility of APIs. For this purpose, an API provider-user relationship should be established. IT people of clients who are using the software and would like to be able to customize and extend, and integrate the software with their other enterprise systems are the API users. By providing information about their requirements to API developers, API users would benefit from their requirement being addressed. Communication channels for developer-customer should be established. Requirements of mashup developers can be communicated to API developers based on scenario tests, which can be reused for documenting APIs. The API development process is evolutionary, iterative, and driven by scenarios specified by API users. Change impact analysis and mitigation. In addition, scenario tests are used for change impact analysis and mitigation. If a change in an API affects an existing scenario test, it can break API user codes. In these cases the broken scenario test should be fixed to work with the new version of APIs. The old and evolved scenarios are provided as implicit input to program migration methods (such as [13]), which use API usage examples to update the programs to work with the new version of API. Extraction and analysis of usage patterns and scenarios for enhanced customer communications. There is a difference between APIs and consumer-software that would make it beneficial to use indirect sources of input and feedback from customers. The difference is that unlike many consumer-software systems, APIs can be used in different ways for different purposes. If APIs are widely adopted, there is a chance that they are used for unanticipated usage scenarios. To address this difference we propose to leverage indirect communication channels, which are based on extracting API usage patterns and scenarios. Usage patterns and scenarios extracted from APIs usage codes can be used to provide input for API developers. A usage pattern is a set of API entities (methods, types, etc.) that is used for accomplishing a scenario. A scenario is a high-level task that is accomplished using the APIs. The input usage code for extracting usage patterns can include programs developed by collaborating customers and open-source software that uses the APIs. We propose that the following information can be extracted from API usages: Popular usage patterns: Popular usage patterns are usage patterns that occur repeatedly. If there are no scenario tests for these usage patterns, scenario tests should be created to ensure changes that effect them are evaluated and mitigated. Complex usage patterns: Metrics should be provided for identifying complex usage patterns. For instance, a complex usage pattern can be a usage pattern that uses several API types or methods. A complex usage pattern can indicate a usage scenario that had not
4 been anticipated when designing APIs. Better abstractions and utility methods can be provided to reduce complexity of these usage scenarios. Internal usage patterns: An internal usage patterns uses an internal type, which is not a part of implementation of the framework and should not be used externally. Internal usage patterns indicate that the API does not provide a functionality required by API users. Internal usage patterns should be identified and presented to API developers so that they provide the required functionality in the published API's. In addition to extracting usages of APIs that are under development, usages of other APIs, which are providing similar functionality, can be used as source of input. Popular usage patterns in usages of similar API's can indicate highly required usage scenario. In addition complex and internal usage patterns of similar APIs can indicate how their design choices have affected their customers. In this section we described an agile API development, which is driven by customer requirements and uses other indirect sources of inputs for customer feedback. Our next step in this research is evaluating the proposed methodology by developing supporting tools and identifying other sources of inputs by interviewing people who are involved with API development. IV. RELATED WORK In this section we have listed various research areas that are related to agile bottom-up API design process: API development processes - API development books [16, 18] mostly focus on providing guidelines for avoiding breaking applications that depend on APIs, when evolving them. These guidelines go as far as suggesting not fixing previous mistakes [17]. Such approaches to API development may inhibit development of usable API s. Current advances in program migration methods [13], which help API users in migrating their code to a new version of API can enable evolutionary development of usable APIs. However, program migration methods need input, such as adapted usage examples. An API development methodology can support program migration methods by providing input for them. Additionally API development books [16, 18] suggest that API s should be created based on use cases or test cases, but they do not describe how the requirements are gathered from API users. API usability - Metrics that are based on cognitive theory have been suggested for measuring API usability [19]. Additionally, methods for evaluating API design choices have been suggested [20, 21, 22]. Some works on API usability evaluate small-scale design choices such as using a factory method versus a constructor [23]. There is also research on API documentation. A related work on API documentation research, studies the use of test cases that come with APIs for enhancing API documentation [30]. API usage analysis - There has been little research about requirement engineering and providing feedback to developers based on how API users use APIs in practice to accomplish different tasks. One of the few works that studies API usages to inform API developers does not provide much input for enhancing API usability and design [24]. Other API usage analysis methods are about search driven development which studies supporting API users by recommending API usages (one of the early worked on this is [25]). We believe that analyzing API usages can provide information about how APIs are used in practice for implementing different scenarios and direct developers to potential improvements to existing API s. Agile development methodologies - Our work has similarity with an agile software product lines methodology [26], which evolves product-line platforms in reaction to requirements and uses acceptance tests for managing and documenting the assets. Another related research uses acceptance tests for enabling communication between software development teams [27]. However, these works are for creating internal APIs. Usability of internal APIs is not as important and communication is more direct. With published API evolution, requirement engineering, and usability engineering are challenging. Pragmatic reuse Turning a Software as a Service to a platform by providing APIs on top of it, is bottom-up API design and is related to pragmatic [28] or opportunistic [29] reuse. Pragmatic or opportunistic reuse refers to reusing code that has not been intended for reuse. Current work on pragmatic reuse focuses on taking a portion of code and integrating it into existing software. With bottom-up API design, instead of a one-time integration of the reused code, API s are designed on top of it to enable reuse for various scenarios. V. CONCLUSION Useful and usable APIs are crucial elements of creating mashups and cloud platforms. An agile API development process, which is based on close collaboration with API users and leverages implicit feedback and input from API users to enhance APIs can enhance how the developed APIs address requirements of their users. In this work we have proposed initial ideas on agile API development processes. Our next steps in this research can be categorized into three directions: Automated analysis of API usages for informing API development: We will implement tools for extracting implicit feedback by automatically analyzing API usages. Analysis usage scenarios can support change impact analysis and mitigation and direct developers to how they can enhance existing APIs. Studying existing API development in practice: We will study API development in practice by interviewing API developers. We intend to characterize how API developers make design decisions. In addition we will identify sources of input and methods for enhancing communication of API developers and consumers.
5 Bottom-up API development: Developing APIs by reusing existing software implementation is not trivial. It requires identifying hidden contracts, assumptions and decoupling the code, and creating useful and usable abstractions on top of it. Another research direction is studying challenges of bottomup API development. REFERENCES [1] Vaquero, L M, L Rodero-Merino, J Caceres, and M Lindner. A Break in the Clouds: Towards a Cloud definition. ACM SIGCOMM Computer Communication Review 39.1, [2] Koschmider, A, V Torres, and V Pelechano. "Elucidating the Mashup Hype: Definitions, Challenges, Methodical Guide and Tools for Mashups." 2nd Workshop on Mashups, Enterprise Mashups and Lightweight Composition on the Web [3] Gamble, M T, and R Gamble. "Monoliths to Mashups: Increasing Opportunistic Assets." IEEE Software, Nov.-Dec. 2008: [4] Anderson, C. The long tail: Why the future of business is selling less of more. Hyperion Books, [5] Shirky, C. "Situated Software." Clay Shirky's Writings About the Internet. Mar. 30, (accessed 12 14, 2010). [6] Balasubramaniam, S G, A Lewis, and S Simanta. "Situated Software: Concepts, Motivation, Technology, and the Future." IEEE Software, Nov.-Dec 2008: [7] Bitzer, S, and M Schumann. "Mashups: an Approach to Overcoming the Business/IT Gap in Service-Oriented Architectures." VALUE CREATION IN E-BUSINESS MANAGEMENT Lecture Notes in Business Information Processing. Springer, [8] Pahlke, I, R Beck, and M Wolf. "Enterprise Mashup Systems as Platform for Situational Applications Benefits and Challenges in the Business Domain." Business & Information Systems Engineering (Gabler Verlag) 2, no. 5 (2010): [9] Yu, J, B Benatallah, F Casati, and F Daniel. "Understanding Mashup Development." IEEE Internet Computing (EEE Computer Society) 12, no. 5 (2008): [10] Hoyer, V, and K Stanoevska-Slabeva. "Generic Business Model Types for Enterprise Mashup Intermediaries." Value Creation in E-Business Management 15th Americas Conference on Information Systems. Springer, [11] Zang, N, and B Rosson. "Playing with Information: How End Users Think About and Integrate Dynamic Data." Visual Languages and Human-Centric Computing, VL/HCC IEEE Symposium on. IEEE Computer Society [12] Ko, A, B A Myers, and H H Aung. "Six Learning Barriers in End-User Programming Systems." VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing. IEEE Computer Society, [13] Schafer, T, J Jonas, and M Mezini. "Mining framework usage changes from instantiation code." Proceedings of the 30th international conference on Software engineering. ACM, [14] Lehman, M M. "Programs,Life Cycles, and Laws of Software Evolution." Proceedings of the IEEE, 1980: [15] McILROY. "Mass Produced Software Components." Software Engineering, Report on a conference sponsored by the NATO Science Committee, [16] Tulach, J. Practical API Design: Confessions of a Java Framework Architect. Springer, [17] Tulach, T. "Practical api design." (accessed Dec 14, 2010). [18] Cwalina, K, and B Abrams. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable.NET Libraries. Addison-Wesley Professional, [19] Clarke, S. "Measuring API Usability." Doctor Dobbs Journal, May [20] Forooq, U. "API Peer Reviews: A Method for Evaluating Usability of Application Programming Interfaces." Proceedings of the 2010 ACM conference on Computer supported cooperative work. ACM, [21] Gerken, J, H Jetter, and H Reiterer. "Using Concept Maps to Evaluate the Usability of APIs." CHI EA '10 Proceedings of the 28th of the international conference extended abstracts on Human factors in computing systems [22] O Callaghan, P. "The API Walkthrough Method, A lightweight method for getting early feedback about an API." proceed- ings of the Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU). ACM, [23] Ellis, B, J Stylos, and B Myers. "The factory pattern in api design: A usability evaluation." Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society, [24] Holmes, R, and R J Walker. "Informing Eclipse API production and consumption." Proceedings of the 2007 OOPSLA workshop on eclipse technology exchange. ACM, [25] Xie, T, and J Pei. "MAPO: Mining API usages from open source repositories." Proceedings of the 2006 international workshop on Mining software repositories. ACM, [26] Ghanam, Y., and F. Maurer. "Extreme Product Line Engineering Refactoring for Variability: A Test-Driven Approach." " Proc. of 11th International Conference on Agile Processes and EXtreme Programming (XP 2010). Springer, [27] Read, K, and F Maurer. "Issues in Scaling Agile Using an Architecture-Centric Approach: A Tool-Based Solution." Extreme Programming and Agile Methods-XP/Agile Universe Springer, [28] Holmes, R, and R J Walker. "Semi-Automating Pragmatic Reuse Tasks." ASE '08 Proceedings of the rd IEEE/ACM International Conference on Automated Software Engineering. IEEE Computer Society, [29] Kotonya, G, S Lock, and J Mariani. "Opportunistic Reuse: Lessons from Scrapheap Software Development." Component-Based Software Engineering. Springer, [30] Nasehi, S.M., F. Maurer, and. "Unit tests as API usage examples." Software Maintenance (ICSM), 2010 IEEE International Conference on. IEEE Computer Society
6
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
More informationThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
More informationPLATFORM-AS-A-SERVICE (PAAS): THE ADOXX METAMODELLING PLATFORM
PLATFORM-AS-A-SERVICE (PAAS): THE ADOXX METAMODELLING PLATFORM Dimitris Karagiannis and Niksa Visic University of Vienna, Knowledge Engineering Research Group, Brünnerstr. 72, A-1210 Vienna, Austria {dk,
More informationAn Efficient Cost Calculation Mechanism for Cloud and Non Cloud Computing Environment in Java
2012 International Conference on Computer Technology and Science (ICCTS 2012) IPCSIT vol. 47 (2012) (2012) IACSIT Press, Singapore DOI: 10.7763/IPCSIT.2012.V47.31 An Efficient Cost Calculation Mechanism
More informationRun-time Variability Issues in Software Product Lines
Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.
More informationHow To Understand Cloud Usability
Published in proceedings of HCI International 2015 Framework for Cloud Usability Brian Stanton 1, Mary Theofanos 1, Karuna P Joshi 2 1 National Institute of Standards and Technology, Gaithersburg, MD,
More informationIn the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer
More informationSupply Chain Platform as a Service: a Cloud Perspective on Business Collaboration
Supply Chain Platform as a Service: a Cloud Perspective on Business Collaboration Guopeng Zhao 1, 2 and Zhiqi Shen 1 1 Nanyang Technological University, Singapore 639798 2 HP Labs Singapore, Singapore
More informationMyths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other.
WSJ: SOA Myths About Service-Oriented Architecture Demystifying SOA Service-oriented architecture (SOA) refers to an architectural solution that creates an environment in which services, service consumers,
More informationSoftware Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?
Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance? Jussi Ronkainen, Pekka Abrahamsson VTT Technical Research Centre of Finland P.O. Box 1100 FIN-90570 Oulu, Finland
More informationReactive Variability Realization with Test-Driven Development and Refactoring
Reactive Variability Realization with Test-Driven Development and Refactoring Glauco Silva Neves Informatics and Statistics Department - INE Federal University of Santa Catarina - UFSC Florianópolis, Brazil
More informationB API Usage Examples and Their Models
ExPort: Detecting and Visualizing API Usages in Large Source Code Repositories Evan Moritz 1, Mario Linares-Vásquez 1, Denys Poshyvanyk 1, Mark Grechanik 2, Collin McMillan 3, Malcom Gethers 4 1 The College
More informationSOA and Cloud in practice - An Example Case Study
SOA and Cloud in practice - An Example Case Study 2 nd RECOCAPE Event "Emerging Software Technologies: Trends & Challenges Nov. 14 th 2012 ITIDA, Smart Village, Giza, Egypt Agenda What is SOA? What is
More informationAn Overview of Challenges of Component Based Software Engineering
An Overview of Challenges of Component Based Software Engineering Shabeeh Ahmad Siddiqui Sr Lecturer, Al-Ahgaff University, Yemen Abstract Nowadays there is trend of using components in development of
More informationOptimizing Service Levels in Public Cloud Deployments
WHITE PAPER OCTOBER 2014 Optimizing Service Levels in Public Cloud Deployments Keys to Effective Service Management 2 WHITE PAPER: OPTIMIZING SERVICE LEVELS IN PUBLIC CLOUD DEPLOYMENTS ca.com Table of
More informationUmbrella: A New Component-Based Software Development Model
2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.
More informationSOA and API Management
SOA and API Management Leveraging Your Investment in Service Orientation Version 1.0 December 2013 John Falkl General Manager, Technology, Strategy & Integration Haddon Hill Group, Inc. Contents Introduction...
More informationTowards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where
More informationFRAUNHOFER INSTITUTE FOR EXPERIMENTAL SOFTWARE ENGINEERING IESE VARIATION MANAGEMENT: USER EXPERIENCE FOR EFFICIENCY IN PROVIDING SOLUTIONS
FRAUNHOFER INSTITUTE FOR EXPERIMENTAL SOFTWARE ENGINEERING IESE VARIATION MANAGEMENT: USER EXPERIENCE FOR EFFICIENCY IN PROVIDING BUSINESS CUSTOMIZED APPLICATIONS SOLUTIONS 2 Do you need to develop variation-rich
More informationTOGAF usage in outsourcing of software development
Acta Informatica Pragensia 2(2), 2013, 68 76, DOI: 10.18267/j.aip.25 Section: Online: aip.vse.cz Peer-reviewed papers TOGAF usage in outsourcing of software development Aziz Ahmad Rais 1, Rudolf Pecinovsky
More informationLeveraging an On-Demand Platform for Enterprise Architecture Preparing for the Change
Leveraging an On-Demand Platform for Enterprise Architecture Preparing for the Change David S. Linthicum david@linthicumgroup.com The notion of enterprise architecture is changing quickly. What was once
More informationAchieve Economic Synergies by Managing Your Human Capital In The Cloud
Achieve Economic Synergies by Managing Your Human Capital In The Cloud By Orblogic, March 12, 2014 KEY POINTS TO CONSIDER C LOUD S OLUTIONS A RE P RACTICAL AND E ASY TO I MPLEMENT Time to market and rapid
More informationModel-Driven Cloud Data Storage
Model-Driven Cloud Data Storage Juan Castrejón 1, Genoveva Vargas-Solar 1, Christine Collet 1, and Rafael Lozano 2 1 Université de Grenoble, LIG-LAFMIA, 681 rue de la Passerelle, Saint Martin d Hères,
More informationwww.pwc.com Scale agile throughout the enterprise A PwC point of view
www.pwc.com Scale agile throughout the enterprise A PwC point of view December 2013 Overview Today it s rare to speak with a company that is not adopting some form of agile development practice. However,
More informationXIDE: EXPANDING END-USER WEB DEVELOPMENT
XIDE: EXPANDING END-USER WEB DEVELOPMENT Evgenia Litvinova, Markku Laine and Petri Vuorimaa Department of Media Technology, Aalto University, P.O. Box 15400, FI-00076 Aalto, Finland {evgenia.samochadina,
More informationPERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM
PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM Akmal Basha 1 Krishna Sagar 2 1 PG Student,Department of Computer Science and Engineering, Madanapalle Institute of Technology & Science, India. 2 Associate
More informationCloud Computing-Software as Service
Cloud Computing-Software as Service Gurudatt Kulkarni 1, Jayant Gambhir 2, Rajnikant Palwe 3 1, 2, 3 S.No. 4/17, Sector No 34, Off Kalewadi Road, Thergaon, Pune, Maharashtra, India Marathwada Mitra Mandal
More informationThe Oregon Software Development Process
The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany Till.Schuemmer@fernuni-hagen.de
More informationCurriculum Vitae. Zhenchang Xing
Curriculum Vitae Zhenchang Xing Computing Science Department University of Alberta, Edmonton, Alberta T6G 2E8 Phone: (780) 433 0808 E-mail: xing@cs.ualberta.ca http://www.cs.ualberta.ca/~xing EDUCATION
More informationBusiness Intelligence
Transforming Information into Business Intelligence Solutions Business Intelligence Client Challenges The ability to make fast, reliable decisions based on accurate and usable information is essential
More informationAgile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
More informationCLOUD COMPUTING IN HIGHER EDUCATION
Mr Dinesh G Umale Saraswati College,Shegaon (Department of MCA) CLOUD COMPUTING IN HIGHER EDUCATION Abstract Technology has grown rapidly with scientific advancement over the world in recent decades. Therefore,
More informationAgile Offshore Outsourcing
Agile Offshore Outsourcing Concepts and Practices for Flexible Integration of Offshore Development Services Agile Business Conference 2006 Joachim Sauer Agenda Challenges and common solutions of applying
More informationperspective Microservices A New Application Paradigm Abstract
perspective Microservices A New Application Paradigm Abstract Microservices Architecture is introducing the concept of developing functionality as a number of small self-contained services. This paper
More informationUnderstanding Cloud Requirements - A Supply Chain Lifecycle Approach
Understanding Cloud Requirements - A Supply Chain Lifecycle Approach Maik A. Lindner SAP Research SAP Labs, LLC Palo Alto, CA m.lindner@sap.com Fiona McDonald SAP Research SAP (UK) Ltd. Belfast, Northern
More informationCloud Computing. Technologies and Types
Cloud Computing Cloud Computing Technologies and Types Dell Zhang Birkbeck, University of London 2015/16 The Technological Underpinnings of Cloud Computing Data centres Virtualisation RESTful APIs Cloud
More informationC2C: An Automated Deployment Framework for Distributed Applications on Multi-Clouds
C2C: An Automated Deployment Framework for Distributed Applications on Multi-Clouds Flora Karniavoura, Antonis Papaioannou, and Kostas Magoutis Institute of Computer Science (ICS) Foundation for Research
More informationAvoiding the Accidental SOA Cloud Architecture
A UBM WHITE PAPER NOVEMBER 2011 Avoiding the Accidental SOA Cloud Architecture Prior to the hybrid cloud, IT determined how an enterprise infrastructure grew. With the introduction of Software-as-a- Service
More informationIntroduction to Track on Engineering Virtualized Services
Introduction to Track on Engineering Virtualized Services Reiner Hähnle 1 and Einar Broch Johnsen 2 1 Technical University of Darmstadt, Germany haehnle@cs.tu-darmstadt.de 2 Dept. of Informatics, University
More informationSCADA Cloud Computing
SCADA Cloud Computing Information on Cloud Computing with SCADA systems Version: 1.0 Erik Daalder, Business Development Manager Yokogawa Electric Corporation Global SCADA Center T: +31 88 4641 360 E: erik.daalder@nl.yokogawa.com
More informationRapid Development of Smart and Self-Adaptive Cloud, Mobile & IoT Applications - Accelerating the Last Mile of Cloud Computing
Rapid Development of Smart and Self-Adaptive Cloud, Mobile & IoT Applications - Accelerating the Last Mile of Cloud Computing Jesse Shiah CEO and Co-founder Jesse.shiah@agilepoint.com 2013 AgilePoint,
More informationReview of Computer Engineering Research CURRENT TRENDS IN SOFTWARE ENGINEERING RESEARCH
Review of Computer Engineering Research ISSN(e): 2410-9142/ISSN(p): 2412-4281 journal homepage: http://www.pakinsight.com/?ic=journal&journal=76 CURRENT TRENDS IN SOFTWARE ENGINEERING RESEARCH Gayatri
More informationCLOUD MIGRATION STRATEGIES
CLOUD MIGRATION STRATEGIES Faculty Contributor: Dr. Rahul De Student Contributors: Mayur Agrawal, Sudheender S Abstract This article identifies the common challenges that typical IT managers face while
More informationA Cloud Monitoring Framework for Self-Configured Monitoring Slices Based on Multiple Tools
A Cloud Monitoring Framework for Self-Configured Monitoring Slices Based on Multiple Tools Márcio Barbosa de Carvalho, Rafael Pereira Esteves, Guilherme da Cunha Rodrigues, Lisandro Zambenedetti Granville,
More informationNewsletter LATEST NEWS. www.celarcloud.eu CELAR: THE CHALLENGE
Newsletter Automatic, Multi-Grained Elasticity-provisioning for the Cloud NUMBER 1 LATEST NEWS CELARCLOUD.EU REACHES 350 MONTHLY VISITS CELAR: OUTCOME AND IMPACT CELAR: THE CHALLENGE Cloud computing as
More informationASCETiC Whitepaper. Motivation. ASCETiC Toolbox Business Goals. Approach
ASCETiC Whitepaper Motivation The increased usage of ICT, together with growing energy costs and the need to reduce greenhouse gases emissions call for energy-efficient technologies that decrease the overall
More informationA Process View on Architecture-Based Software Development
A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany
More informationMarket Maturity. Cloud Definitions
HRG Assessment: Cloud Computing Provider Perspective In the fall of 2009 Harvard Research Group (HRG) interviewed selected Cloud Computing companies including SaaS (software as a service), PaaS (platform
More informationDevOps: Roll out new software and functionality quicker with high velocity DevOps
DevOps: Roll out new software and functionality quicker with high velocity DevOps As software becomes more central, companies are looking for ways to shorten software development cycles and push new functionality
More informationRiding the Advanced Cloud Deployment Roadmap. Creationline, Inc. Team Dr. Riad Hartani, Rolf Lumpe (Xona Partners)
Riding the Advanced Cloud Deployment Roadmap Creationline, Inc. Team Dr. Riad Hartani, Rolf Lumpe (Xona Partners) August 15 th, 2014 Page 2 Table of Contents 1 SYNOPSIS 3 2 RATIONALE FOR A CLOUD INFRASTRUCTURE
More informationSoftware Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
More informationSoftware-as-a-Service: Managing Key Concerns and Considerations
Software-as-a-Service: Managing Key Concerns and Considerations A research report Publication sponsored by: TABLE OF CONTENTS Introduction: Cloud IT, including SaaS, is Real IT Managing The Key Concerns
More informationModule 6 Essentials of Enterprise Architecture Tools
Process-Centric Service-Oriented Module 6 Essentials of Enterprise Architecture Tools Capability-Driven Understand the need and necessity for a EA Tool IASA Global - India Chapter Webinar by Vinu Jade
More informationApplying Agile Methods in Rapidly Changing Environments
Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen
More informationHave We Really Understood the Cloud Yet?
1 Have We Really Understood the Cloud Yet? Plethora of Definitions Hype? Range of Technologies and business models What really clicks in the Cloud? Pay per use no capex only opex! Meet seasonal loads elasticity
More informationBest Practices in Leveraging a Staging Area for SaaS-to-Enterprise Integration
white paper Best Practices in Leveraging a Staging Area for SaaS-to-Enterprise Integration David S. Linthicum Introduction SaaS-to-enterprise integration requires that a number of architectural calls are
More informationSoftware Engineering
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
More information2.1 The RAD life cycle composes of four stages:
2.1 The RAD life cycle composes of four stages: A typical RAD life cycle is composed of the following Stages 2.1.1. Requirements Planning; 2.1.2 User Design; 2.1.3 Rapid Construction; 2.1.4 Transition.
More informationCloud Computing Readiness - Background
IT Best Practices Audit Cloud Computing Readiness - Background Cloud based offerings are maturing and finally taking off after a long period (e.g. Software as a Service offerings have been available for
More informationService Oriented Architectures in the Delivery of Capability
Service Oriented Architectures in the Delivery of Capability Abstract Duncan Russell, Jie Xu {duncanr jxu}@comp.leeds.ac.uk School of Computing, University of Leeds, UK Service oriented architecture (SOA)
More informationComparing Agile Software Processes Based on the Software Development Project Requirements
CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical
More informationPaaS market moves beyond deployment and scaling
PaaS market moves beyond deployment and scaling David S. Linthicum April 30, 2014 This report is underwritten by Restlet. TABLE OF CONTENTS Executive Summary... 3 State of the PaaS Market... 4 While PaaS
More informationCS4507 Advanced Software Engineering
CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development
More informationThe Impact of Cloud Computing on Saudi Organizations: The Case of a Telecom Company
International Journal of Computing Academic Research (IJCAR) ISSN 2305-9184 Volume 3, Number 6(December 2014), pp. 126-130 MEACSE Publications http://www.meacse.org/ijcar The Impact of Cloud Computing
More informationMake the Leap from ecommerce to Omni- Channel
Iaodesign/Shutterstock An ecommerce platform is the foundation for a successful Omni- Channel business model arvato Systems North America 6 East 32nd Street, New York, New York 10016 United States All
More informationTales of Empirically Understanding and Providing Process Support for Migrating to Clouds
Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds M. Ali Babar Lancaster University, UK & IT University of Copenhagen Talk @ MESOCA, Eindhoven, the Netherlands September,
More informationRealize More Success with Software-plus-Services. Cloud-based software from Microsoft Dynamics ERP
Realize More Success with Software-plus-Services Cloud-based software from Microsoft Dynamics ERP Cloud computing is Internet-based development and use of computer technology. Large central data centers
More informationArchitecting enterprise BPM systems for optimal agility
Architecting enterprise BPM systems for optimal agility Dr Alexander Samarin www.samarin.biz About me An enterprise solutions architect From a programmer to a systems architect Experience in scientific,
More informationTEN TIPS FOR A SUCCESSFUL INFOR IMPLEMENTATION
TEN TIPS FOR A SUCCESSFUL INFOR IMPLEMENTATION Copyright 2015 Panorama Consulting Solutions. All Rights Reserved. 720.515.1377 Panorama- Consulting.com Successfully implementing an Infor ERP system involves
More informationStructural Complexity Evolution in Free Software Projects: A Case Study
Structural Complexity Evolution in Free Software Projects: A Case Study Antonio Terceiro and Christina Chavez Computer Science Department Universidade Federal da Bahia {terceiro,flach}@dcc.ufba.br Abstract.
More informationTeCReVis: A Tool for Test Coverage and Test Redundancy Visualization
TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization Negar Koochakzadeh Vahid Garousi Software Quality Engineering Research Group University of Calgary, Canada Acknowledging funding and
More informationV. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919
Software Quality Assurance in CMM and XP- A Comparative Study CH.V. Phani Krishna and Dr. K.Rajasekhara Rao CSE Department, KL University, Guntur dt., India. Abstract Software Quality Assurance is a planned
More informationWhitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan
YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile
More informationCertified Cloud Computing Professional VS-1067
Certified Cloud Computing Professional VS-1067 Certified Cloud Computing Professional Certification Code VS-1067 Vskills Cloud Computing Professional assesses the candidate for a company s cloud computing
More informationUnderstanding and Addressing Architectural Challenges of Cloud- Based Systems
Understanding and Addressing Architectural Challenges of Cloud- Based Systems M. Ali Babar CREST Centre for Research on Engineering Software Technologies University of Adelaide, Australia Keynote Talk
More informationMapping and Geographic Information Systems Professional Services
Mapping and Geographic Information Systems Professional Services G-Cloud Services RM 1557 Service Definition Esri UK GCloud 5 Lot 4 Specialist Services Government Procurement Service Acknowledgement Esri
More informationCOMP 354 Introduction to Software Engineering
COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course
More informationInternational Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Engineering, Business and Enterprise
More informationA Review On SLA And Various Approaches For Efficient Cloud Service Provider Selection Shreyas G. Patel Student of M.E, CSE Department, PIET Limda
A Review On SLA And Various Approaches For Efficient Cloud Service Provider Selection Shreyas G. Patel Student of M.E, CSE Department, PIET Limda Prof. Gordhan B. Jethava Head & Assistant Professor, Information
More informationA Management Tool for Component-Based Real-Time Supervision and Control Systems
A Management Tool for Component-Based Real-Time Supervision and Control Systems Sandro Santos Andrade, Raimundo José de Araújo Macêdo Distributed Systems Laboratory (LaSiD) Post-Graduation Program on Mechatronics
More informationThis is an author-deposited version published in : http://oatao.univ-toulouse.fr/ Eprints ID : 15447
Open Archive TOULOUSE Archive Ouverte (OATAO) OATAO is an open access repository that collects the work of Toulouse researchers and makes it freely available over the web where possible. This is an author-deposited
More informationAdvanced Software Engineering. Software Development Processes
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development
More informationGenerating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
More informationA Study of Infrastructure Clouds
A Study of Infrastructure Clouds Pothamsetty Nagaraju 1, K.R.R.M.Rao 2 1 Pursuing M.Tech(CSE), Nalanda Institute of Engineering & Technology,Siddharth Nagar, Sattenapalli, Guntur., Affiliated to JNTUK,
More informationI D C V E N D O R S P O T L I G H T
I D C V E N D O R S P O T L I G H T L e ve r a g i n g N e x t - Generation Servi c e D e l i ve r y: T h e M o ve t o C l o ud Servi c e s November 2011 Adapted from CSC Innoventure 2011: Good Things
More informationA Framework for Integrating Software Usability into Software Development Process
A Framework for Integrating Software Usability into Software Development Process Hayat Dino AFRICOM Technologies, Addis Ababa, Ethiopia hayudb@gmail.com Rahel Bekele School of Information Science, Addis
More informationRealizing the Value Proposition of Cloud Computing
Realizing the Value Proposition of Cloud Computing CIO s Enterprise IT Strategy for Cloud Jitendra Pal Thethi Abstract Cloud Computing is a model for provisioning and consuming IT capabilities on a need
More informationWinery A Modeling Tool for TOSCA-based Cloud Applications
Institute of Architecture of Application Systems Winery A Modeling Tool for TOSCA-based Cloud Applications Oliver Kopp 1,2, Tobias Binz 2, Uwe Breitenbücher 2, and Frank Leymann 2 1 IPVS, 2 IAAS, University
More informationIntroduction to OpenUP (Open Unified Process)
Introduction to OpenUP (Open Unified Process) Different projects have different process needs. Typical factors dictate the needs for a more formal or agile process, such as team size and location, architecture
More informationCloud Computing For Distributed University Campus: A Prototype Suggestion
Cloud Computing For Distributed University Campus: A Prototype Suggestion Mehmet Fatih Erkoç, Serhat Bahadir Kert mferkoc@yildiz.edu.tr, sbkert@yildiz.edu.tr Yildiz Technical University (Turkey) Abstract
More informationA Framework for Self-Regulated Learning of Domain-Specific Concepts
A Framework for Self-Regulated Learning of Domain-Specific Concepts Bowen Hui Department of Computer Science, University of British Columbia Okanagan and Beyond the Cube Consulting Services Inc. Abstract.
More informationA DSL-based Approach to Software Development and Deployment on Cloud
2010 24th IEEE International Conference on Advanced Information Networking and Applications A DSL-based Approach to Software Development and Deployment on Cloud Krzysztof Sledziewski 1, Behzad Bordbar
More informationSoftware Development Process
Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software
More informationA Secure System Development Framework for SaaS Applications in Cloud Computing
A Secure System Development Framework for SaaS Applications in Cloud Computing Eren TATAR, Emrah TOMUR AbstractThe adoption of cloud computing is ever increasing through its economical and operational
More informationCloud Computing-Software as Service
International Journal of Cloud Computing and Services Science (IJ-CLOSER) Vol.1, No.1, Mar ch 2012, pp. 11~16 ISSN: 2089-3337 11 Cloud Computing-Software as Service Gurudatt Kulkarni*, Jayant Gambhir*,
More informationMENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER
MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER TABLE OF CONTENTS Market Demand for Enterprise Mobile Mobile App Development Approaches Native Apps Mobile Web Apps Hybrid Apps Mendix Vision for Mobile App
More informationCordys Business Operations Platform
SERVICE DEFINITION Cordys Business Operations GCloud IV - PaaS Copyright 2012 Cordys B.V. All rights reserved. Table of Content Cordys Business Operations... 1 Table of Content... 2 Introduction... 4 Document
More informationAgile Software Engineering, a proposed extension for in-house software development
Journal of Information & Communication Technology Vol. 5, No. 2, (Fall 2011) 61-73 Agile Software Engineering, a proposed extension for in-house software development Muhammad Misbahuddin * Institute of
More informationCloud deployment model and cost analysis in Multicloud
IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) ISSN: 2278-2834, ISBN: 2278-8735. Volume 4, Issue 3 (Nov-Dec. 2012), PP 25-31 Cloud deployment model and cost analysis in Multicloud
More informationSoftware Service Engineering Architect s Dream or Developer s Nightmare?
Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 gregor@hohpe.com Abstract. Architectural principles such
More information