The Dynamic Business Object Pattern

Total Page:16

File Type:pdf, Size:1020Kb

The Dynamic Business Object Pattern The Dynamic Business Object Pattern Russ Rubis Dr. Ionut Cardei Dept. of Computer Science and Eng. Dept. of Computer Science and Eng. Florida Atlantic University Florida Atlantic Universit Boca Raton, FL 33431 Boca Raton, FL 33431 [email protected] [email protected] ABSTRACT department handles purchase orders, invoices to procure goods and services for the business, while the warehouse A business object is an object which is used often by business receives and distributes the goods. Each organization or applications and services and is a widely acceptable entity in department needs applications specific to their functional area. the running of the business. For example, a purchase order, an These applications are implemented on a web-based invoice, and a customer profile could be considered business infrastructure using standard web technologies and rely on objects, as these are parts of day-to-day business activity, but “business objects” such as purchase orders, invoices, and more importantly these have well-established and commonly accounts. These business objects have a common set of accepted attributes and behavior. Developing business objects properties at the design level and different implementation from scratch each and every time one is needed is a resource- solutions [.NET, J2EE, Spring, CORBA, etc.] as well as intensive, highly repetitive, and unnecessary undertaking. One custom architectures [Ariba, SAP, SmartClient, etc.]. The of the challenges faced by today’s enterprise application business objects reveal similarity in the overall approach developers is the lack of a generic approach for specifying the without a systematic effort to build a reusable specification design, delivery, and processing of business objects. In and infrastructure. general, a business object may contain one or more of the This paper introduces the Dynamic Business Object Pattern , following: dynamic data object, static document, and our attempt to address specification, design, and code reuse workflow. Each time a custom application requires the use of when building business objects for specific problem domains. a business object, the developers either have to design it themselves, or use some language and/or platform and/or A Dynamic Business Object refers to an abstract software dependent solution/library which might or might not generalization of these various application specific objects that address the needs of their application. This paper proposes a provides a uniform and reusable specification. The Dynamic new pattern for specifying Dynamic Business Objects for Business Object Pattern describes a generic and systematic business applications. The objective of this pattern is to approach to organize the business objects and to describe provide a generic approach to design extensible Business them. It structures business objects in static documents, Objects and their frameworks for business applications. workflows, and dynamic data. Business objects have the typical properties of object-oriented systems, such as composition, inheritance, polymorphism, plus they promote Keywords reuse at several levels. Business data object, business document, workflow, common For example, a generic Accounting Module aggregates business object, dynamic object business objects involved in supporting accounting applications. A typical Accounting Module could contain Dynamic Business Object such as General Ledger, Project Account, Expense Account and others. The module's business object specification includes the basic elements necessary to 1. INTRODUCTION AND OVERVIEW create, update and maintain the data, and functions needed to perform accounting tasks for a business. Business objects Just about every business is comprised of multiple from this Accounting Module can be extended to organizations and or departments, each specializing in their accommodate specific attributes and behaviors customized for area of function. An accounting department deals with various an individual company or industry. When a new module is customers, distributors, and partner accounts, the procurement extended from an existing one, it inherits all of the parent module’s objects and attributes, including dynamic data Permission to make digital or hard copies of all or part of this work objects, static documents, and workflows. for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage The Dynamic Business Object Pattern also describes an and that copies bear this notice and the full citation on the first page. architecture to implement and support business objects. For To copy otherwise, to republish, to post on servers or to redistribute to example, a dynamic data object implies that a storage solution lists, requires prior specific permission. A preliminary version of this is required; it also implies that a custom user interface will be paper was presented in a writers' workshop at the 20th Conference on necessary to present the dynamic data object. A static Pattern Languages of Programs (PLoP). PLoP'13, October 23-26, document, on the other hand, is assumed to have a widely Monticello, Illinois, USA. Copyright 2013 is held by the author(s). accepted form of viewing software (i.e. MS Word, PDF, HILLSIDE 978-1-941652-00-8 Notepad, etc.). Finally, a workflow is a process which used in the software industry to model data and logic for supports the life cycle of a dynamic business object. business applications. Business objects should have the flexibility and simplicity to solve diverse business problems. Another benefit of a modularized approach is that each existing module is not static, and can be enhanced over time. Businesses also require a unified approach to designing and For example, the Common Module (see below) has three main building business objects. Developers of commercial parts: Dynamic Data Object, Static Document, and Workflow. application frameworks and custom web applications benefit If another entity needs to be added to the Common Module in from a portable and reusable business object specification. the future, it can be done so safely, without affecting the The Dynamic Business Object Pattern could also be applied existing functionality. to environments that do not involve distributed computing. There are a number of patterns that deal with web However, we believe that it is best suited for web-based, applications and web object specifications and architectures. distributed and heterogeneous computing architectures with a Among them are Document-View-Presentation [8], variety of client devices (PCs, smartphones) and service Model/View/Controller [9], Presentation/ Abstraction / platforms. Control [10], and others. In addition to these, there are also analysis patterns which address specific business domains [4]. 2.4 Problem The Dynamic Business Object Pattern is a new approach to Business applications involve complex distributed operations abstracting business objects using the three basic elements: orchestrated on client and server side. Applications rely on a dynamic data objects, static documents, and workflows. variety of documents with static and dynamic content for The intended audience for this article includes business presentation and for data storage. Document structure and application architects and developers at the early stage of application behavior require a platform-neutral and reusable Dynamic Business Object design. specification that can be specialized further for particular business cases. The specification must exhibit object-oriented 2. THE DYNAMIC BUSINESS OBJECT properties, such as modularization, inheritance, and polymorphism. The object specification must include data, PATTERN format (presentation), behavior, and various constraints. Business objects must be based on proven business practices. 2.1 Intent At the same time, business objects should have the flexibility The Dynamic Business Object Pattern describes an to alter their behavior based on the changing needs of a extensible design for business objects used for business business. applications and a structure for their platform-neutral specification. 2.5 Solution The Dynamic Business Object Pattern presents an approach 2.2 Example for specification and design of business objects. The pattern's Consider a simple customer request process, which consists top-level specification element is the Common Module (see of a customer initiating a request, and the request being Figure 1), comprised of three main elements that are the received and processed by a a business. Lastly, notification of minimum needed to support the description and behavior of a completion is sent to the customer and is the final step in the dynamic business object: customer request process. 1. Dynamic Data Object The abstract customer request process can now be extended 2. Static Document to formulate a more complex example reflecting a specific business process. Consider a shopping cart. At its base, it is a 3. Workflow customer request for goods or services performed using a web A dynamic business object specification may include any based application. After selecting items and adding them to a combination of the above elements. For example, a shopping shopping cart, the customer provides the billing and shipping cart contains items that the user wishes to order (incidentally, information, then submits the request for processing. The these items are also dynamic data objects). The shopping cart vendor then receives the shopping
Recommended publications
  • Learning Javascript Design Patterns
    Learning JavaScript Design Patterns Addy Osmani Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Learning JavaScript Design Patterns by Addy Osmani Copyright © 2012 Addy Osmani. All rights reserved. Revision History for the : 2012-05-01 Early release revision 1 See http://oreilly.com/catalog/errata.csp?isbn=9781449331818 for release details. ISBN: 978-1-449-33181-8 1335906805 Table of Contents Preface ..................................................................... ix 1. Introduction ........................................................... 1 2. What is a Pattern? ...................................................... 3 We already use patterns everyday 4 3. 'Pattern'-ity Testing, Proto-Patterns & The Rule Of Three ...................... 7 4. The Structure Of A Design Pattern ......................................... 9 5. Writing Design Patterns ................................................. 11 6. Anti-Patterns ......................................................... 13 7. Categories Of Design Pattern ............................................ 15 Creational Design Patterns 15 Structural Design Patterns 16 Behavioral Design Patterns 16 8. Design Pattern Categorization ........................................... 17 A brief note on classes 17 9. JavaScript Design Patterns .............................................. 21 The Creational Pattern 22 The Constructor Pattern 23 Basic Constructors 23 Constructors With Prototypes 24 The Singleton Pattern 24 The Module Pattern 27 iii Modules 27 Object Literals 27 The Module Pattern
    [Show full text]
  • The Dzone Guide to Volume Ii
    THE D ZONE GUIDE TO MODERN JAVA VOLUME II BROUGHT TO YOU IN PARTNERSHIP WITH DZONE.COM/GUIDES DZONE’S 2016 GUIDE TO MODERN JAVA Dear Reader, TABLE OF CONTENTS 3 EXECUTIVE SUMMARY Why isn’t Java dead after more than two decades? A few guesses: Java is (still) uniquely portable, readable to 4 KEY RESEARCH FINDINGS fresh eyes, constantly improving its automatic memory management, provides good full-stack support for high- 10 THE JAVA 8 API DESIGN PRINCIPLES load web services, and enjoys a diverse and enthusiastic BY PER MINBORG community, mature toolchain, and vigorous dependency 13 PROJECT JIGSAW IS COMING ecosystem. BY NICOLAI PARLOG Java is growing with us, and we’re growing with Java. Java 18 REACTIVE MICROSERVICES: DRIVING APPLICATION 8 just expanded our programming paradigm horizons (add MODERNIZATION EFFORTS Church and Curry to Kay and Gosling) and we’re still learning BY MARKUS EISELE how to mix functional and object-oriented code. Early next 21 CHECKLIST: 7 HABITS OF SUPER PRODUCTIVE JAVA DEVELOPERS year Java 9 will add a wealth of bigger-picture upgrades. 22 THE ELEMENTS OF MODERN JAVA STYLE But Java remains vibrant for many more reasons than the BY MICHAEL TOFINETTI robustness of the language and the comprehensiveness of the platform. JVM languages keep multiplying (Kotlin went 28 12 FACTORS AND BEYOND IN JAVA GA this year!), Android keeps increasing market share, and BY PIETER HUMPHREY AND MARK HECKLER demand for Java developers (measuring by both new job 31 DIVING DEEPER INTO JAVA DEVELOPMENT posting frequency and average salary) remains high. The key to the modernization of Java is not a laundry-list of JSRs, but 34 INFOGRAPHIC: JAVA'S IMPACT ON THE MODERN WORLD rather the energy of the Java developer community at large.
    [Show full text]
  • Java Server Face
    Java Server Face From the specification 2.0 JSF sources ● JSF specification 2.0 ● JSF sun tutorials EE6 ● Core Java server face (http://horstmann.com/corejsf/) ● http://jsftutorials.net/ ● JSF Lectures from Pascal URSO (Mcf Nancy) ● JSF Lectures from François Charoy (Mcf Nancy) ● Intro à JSF : [email protected] ● JSF and ICEFaces (?? anonymous) My Source ?? Overview and motivations ● JavaServer Faces (JSF) is a user interface (UI) framework for Java web applications. It is designed to significantly ease the burden of writing and maintaining applications that run on a Java application server and render their UIs back to a target client. JSF provides ease-of-use in the following ways: ● Makes it easy to construct a UI from a set of reusable UI components ● Simplifies migration of application data to and from the UI ● Helps manage UI state across server requests ● Provides a simple model for wiring client-generated events to server-side application code ● Allows custom UI components to be easily built and re-used Solving pratical problems of the web ● Managing UI component state across request ● Supporting encapsulation of the differences in markup across different browsers and clients ● Supporting form processing (multi-page, more than one per page, and so on) ● Providing a strongly typed event model that allows the application to write server- side handlers (independent of HTTP) for client generated events ● Validating request data and providing appropriate error reporting ● Enabling type conversion when migrating markup values (Strings) to and from application data objects (which are often not Strings) ● Handling error and exceptions, and reporting errors in human-readable form back to the application user ● Handling page-to-page navigation in response to UI events and model interactions.
    [Show full text]
  • Course Title
    "Charting the Course ... ... to Your Success!" JavaScript Advanced Course Summary Description This course will review the basics of JavaScript and provide instruction on advanced topics such as advanced features of JavaScript functions, Object-Oriented programming in JavaScript (Inheritance, encapsulation) with prototypes, using closures, understanding JavaScript promises and advanced best practices. Objectives At the end of this course, students will be able to: Review Learn function expressions/function declarations/immediately executable functions Use JavaScript objects to implement Inheritance and encapsulation Understand JavaScript closures Learn JavaScript promises Discuss how to best use the advanced topics in this course in your JavaScript projects. Topics Basics Review Object-Oriented Programming Function Expressions Error Handling And Debugging Advanced Techniques Audience This course is intended for JavaScript programmers Prerequisites JavaScript introduction Duration Two days Due to the nature of this material, this document refers to numerous hardware and software products by their trade names. References to other companies and their products are for informational purposes only, and all trademarks are the properties of their respective companies. It is not the intent of ProTech Professional Technical Services, Inc. to use any of these names generically "Charting the Course ... ... to Your Success!" JavaScript Advanced Course Outline I. Basics Review IV. Error Handling And Debugging A. Browser Error Reporting II. Object-Oriented Programming B. Internet Explorer A. Understanding Objects C. Firefox B. Types of Properties D. Chrome C. Defining Multiple Properties E. Error Handling D. Reading Property Attributes F. The try-catch Statement E. Object Creation G. Throwing Errors F. The Factory Pattern H. The error Event G. The Constructor Pattern I.
    [Show full text]
  • Icefaces Getting Started Guide V1.7 Iii Prerequisites
    Getting Started Guide Version 1.7 Copyright Copyright 2005-2008. ICEsoft Technologies, Inc. All rights reserved. The content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by ICEsoft Technologies, Inc. ICEsoft Technologies, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide. ICEfaces is a registered trademark of ICEsoft Technologies, Inc. Sun, Sun Microsystems, the Sun logo, Solaris and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. All other trademarks mentioned herein are the property of their respective owners. ICEsoft Technologies, Inc. Suite 200, 1717 10th Street NW Calgary, Alberta, Canada T2M 4S2 Toll Free: 1-877-263-3822 (USA and Canada) Telephone: 1-403-663-3322 Fax:1-403-663-3320 For additional information, please visit the ICEfaces web site: http://www.icefaces.org ICEfaces v1.7 April 2008 About this Guide The ICEfaces® Getting Started Guide will help you quickly get started building ICEfaces applications. By reading through this guide, you will: • Gain a basic understanding of what ICEfaces is and what it can do for you. • Install ICEfaces and run the sample applications on your local application server. • Work through a basic ICEfaces tutorial that transforms a standard JSF application into a rich web application powered by ICEfaces.
    [Show full text]
  • Ajax, State of The
    AjAjaax,x, ststaattee ooff tthhee aarrtt Tarek Ziadé, Nuxeo [email protected] WWhhoo aamm ii ● I am engineer at Nuxeo ● I work on CPS, the famous ECM Plateform ;) ● I©ve been lately in charge of Ajax stuff in CPS ● I read Ajax related feeds before I go to bed WWhhaatt iiss AAjjaaxx ?? A dutch football club (a good one) A cleanser (really works) AA WWeebb 22..00 tteechchnnoollooggyy Asynchronous Javascript And XML WWhhaatt©©ss WWeebb 22..00 ?? TTiimm OO©©RReeiillllyy©©ss ©©ccoommppaacctt©© ddeeffiinniittiioonn:: Web 2.0 is the network as platform, spanning all connected devices; Web 2.0 applications are those that make the most of the intrinsic advantages of that platform: delivering software as a continually-updated service that gets better the more people use it, consuming and remixing data from multiple sources, including individual users, while providing their own data and services in a form that allows remixing by others, creating network effects through an "architecture of participation," and going beyond the page metaphor of Web 1.0 to deliver rich user experiences. MMaarrkkuuss AAnnggeerrmmeeiieerr©©ss vviieeww ooff WWeebb 22..00:: (courtesy of Markus Angermeier) WWeebb 22..00 AAppppss ✔ del.icio.us ✔ flickr ✔ Voo2do ✔ Digg ✔ Google Mail (Gmail) ✔ Writely ✔ Basecamp ✔ ... AjAjaaxx bbiigg ppiictctuurere 11//22 (courtesy of J. J. Garett) AjAjaaxx bbiigg ppiictctuurere 22//22 (courtesy of J. J. Garett) TThhee LLiistst ooff tthhiinnggss AjAjaaxx rereaallllyy bbririnnggss ✔ Increases interactivity ✔ Save bandwidth ✔ Helps avoiding some interactive
    [Show full text]
  • Third-Party License Acknowledgments
    Symantec Privileged Access Manager Third-Party License Acknowledgments Version 3.3.5 Symantec Privileged Access Manager Third-Party License Acknowledgments Broadcom, the pulse logo, Connecting everything, and Symantec are among the trademarks of Broadcom. Copyright © 2019 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. For more information, please visit www.broadcom.com. Broadcom reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Broadcom is believed to be accurate and reliable. However, Broadcom does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others. 2 Symantec Privileged Access Manager Third-Party License Acknowledgments Contents Activation 1.1.1 ..................................................................................................................................... 7 Adal4j 1.1.2 ............................................................................................................................................ 7 AdoptOpenJDK 1.8.0_272-b10 ............................................................................................................ 7 Aespipe 2.4e aespipe ........................................................................................................................
    [Show full text]
  • Plasticité Des IHM & Web2.0
    IHM du Web 2.0 & plasticité Module Plasticité SI5 – Master IFI http://users.polytech.unice.fr/~pinna/MODULEIHM/Plasticite/ (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 1 - Plan du cours • Nouveaux usages d'Internet => naissance du Web2.0 • Impacts sur les IHM => naissance des interfaces dites “riches”, les RIA (Rich Internet Applications) • Vers un Web3.0 ? Analyse des besoins Evaluation ergonomique Tests Utilisateurs Espace de conception Conception Propriétés ergonomiques Tests d’intégration Conception logicielle Modèle d’architecture Tests Unitaires logicielle Boîtes à outils Codage Mécanismes généraux (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 2 - IHM du web2.0 & plasticité . Plasticité ? capacité d’adaptation d’une IHM : à la conception / exécution au contexte d’usage : langage, plate-forme logicielle/matérielle, utilisateur, environement, ... dans le respect de la valeur attendue par l’utilisateur cible : utilisabilité, ergonomie . Quelles formes de plasticité pour les IHM du web2.0 ? (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 3 - Web2.0 : nouveaux usages (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 4 - Evolution d'Internet : point de vue des usages Web1.0Web1.0 Web2.0Web2.0 Admin Admin Admin Admin publie publie gère gère Interagissent (RSS, services web, mashups) consultent consultent contribuent contribuent Utilisateurs Utilisateurs Utilisateurs/communauté Utilisateurs/communauté (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 5 - Évolution des IHMs source: adobe.org (c) 2009, Occello Audrey, Plasticité IHM / Web2.0 - 6 - Web2.0, définition et points clé . Met l'accent sur l'agilité et la réutilisabilité des applis : Focalisation sur les services rendus et sur les données mais pas sur les applications Faiblement couplé pour faciliter l’assemblage de services en applications Faciliter la réutilisabilité des contenus .
    [Show full text]
  • Evaluating Presentation Layer Development Frameworks for EJB Applications in J2EE Architecture
    International Conference on Computer Science and Information Technology (ICCSIT'2011) Pattaya Dec. 2011 Evaluating Presentation Layer Development Frameworks for EJB Applications in J2EE Architecture Ohm Samkoses, Dipl. -Inform. Matthias Vianden, Prof. Dr. rer. nat. Horst Lichter gathering and analysis, multiple rounds of frameworks Abstract—For medium to large organizations, information selection with different criteria, prototype implementations, systems play an important role for information storage and retrieval. and results evaluation. The chosen frameworks for prototype They are used to support business processes such as decision-making. development should fulfill most of the requirement and the In information systems, huge amountof data needs to be manipulated prototypes implementation should reflect the solution for each and visualized. One way to handle this complexity is to use Enterprise JavaBeans (EJB) [1] in a J2EE architecture. Since EJB has requirement clearly, and must be able to work with the not been designed to work in the Presentation Layer, suitable existing system's environment: the back-end is managed by Presentation Layer Development frameworks are introduced to EJB 3.0, and IBM Websphere Application Server 7.0. enhanced thepresentation layer of the information systems. The MeDIC (Metric Definition Integration Calculation) system and XAM II. TASKS / STEPS (eXam Assignment and Management) system [2] are typical representatives of such information system. A. First frameworks selection Nowadays, many frameworks, such as Java Server Faces (JSF), First step was to narrow-down the scope of the focused Wicket, and Tapestry, exist to cover the Presentation Layer. They framework based mainly on framework popularity. Other provide a variety of features and architecture enhancements.
    [Show full text]
  • Icefaces Developer's Guide, Community Edition
    Developer’s Guide Version 1.7 Beta Copyright Copyright 2005-2008. ICEsoft Technologies, Inc. All rights reserved. The content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by ICEsoft Technologies, Inc. ICEsoft Technologies, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide. ICEfaces is a registered trademark of ICEsoft Technologies, Inc. Sun, Sun Microsystems, the Sun logo, Solaris and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. All other trademarks mentioned herein are the property of their respective owners. ICEsoft Technologies, Inc. Suite 200, 1717 10th Street NW Calgary, Alberta, Canada T2M 4S2 Toll Free: 1-877-263-3822 (USA and Canada) Telephone: 1-403-663-3322 Fax:1-403-663-3320 For additional information, please visit the ICEfaces web site: http://www.icefaces.org ICEfaces Developer’s Guide v1.7 Beta February 2008 About this Guide The ICEfaces® Developer’s Guide is your manual to developing ICEfaces applications. By reading through this guide, you will: • Gain a basic understanding of what ICEfaces is and what it can do for you. • Understand key concepts related to the ICEfaces Rich Web Presentation Environment. • Examine the details of the ICEfaces architecture. • Access reference information for the following: — ICEfaces system configuration —JSF Page Markup — Java API reference — JavaScript API reference — Custom Component TLD • Learn to use advanced ICEfaces development features.
    [Show full text]
  • Business Object Life Cycle Pattern
    PATTERNS FOR ENTERPRISE APPLICATION DESIGN AND DEVELOPMENT by Ruslan Rubis A Dissertation Submitted to the Faculty of The College of Engineering and Computer Science In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy Florida Atlantic University Boca Raton, FL December 2017 Copyright by Ruslan Rubis 2017 ii ACKNOWLEDGEMENTS I would like to thank from the bottom of my heart my advisor, Dr. Ionut Cardei, for his persistent guidance, patience and countless advice. Without his continuous support and encouragement this project would not have been possible. I would also like to express my deepest gratitude to my committee members, Dr. Mihaela Cardei, Dr. Eduardo B. Fernandez, and Dr. Daniel Raviv. Your continuous feedback, knowledge sharing, and advice has been invaluable and immensely appreciated. iv ABSTRACT Author: Ruslan Rubis Title: Patterns for Enterprise Application Design and Development Institution: Florida Atlantic University Dissertation Advisor: Ionut Cardei, Ph.D. Degree: Doctor of Philosophy Year: 2017 Designing and developing enterprise applications is a complex and resource intensive process, as it often must address thousands of requirements. At the same time, the software architecture of most enterprise applications at their core have many features and structures in common. Designers from different teams do not normally share design elements because of the competitive and proprietary nature of development, and enterprise applications design and development teams end up re-inventing the wheel when tackling a new product. My objective is to formulate new design patterns for enterprise application architectures that assist software architects with reusable solutions to improve design quality and productivity. I achieve this by presenting seven patterns, each providing a solution to a specific challenge or a problem that is common to many enterprise applications.
    [Show full text]
  • Rationales and Approaches for Automated Testing of Javascript and Standard ML
    UPTEC IT 14 002 Examensarbete 30 hp Februari 2014 Rationales and Approaches for Automated Testing of JavaScript and Standard ML Emil Wall Abstract Rationales and Approaches for Automated Testing of JavaScript and Standard ML Emil Wall Teknisk- naturvetenskaplig fakultet UTH-enheten The ever increasing complexity of web applications has brought new demands on automated testing of JavaScript, requiring test-driven development to achieve Besöksadress: maintainable code. A contrasting area is testing of Standard ML, another functional Ångströmlaboratoriet Lägerhyddsvägen 1 language but with important differences. Hus 4, Plan 0 The aim of this thesis is to highlight the main problems with testing behaviour of Postadress: applications written in these two programming languages, and how these problems Box 536 751 21 Uppsala relate to development tools and practises. This has been investigated based on the following research questions: What are the testability issues of client-side JavaScript Telefon: and Standard ML? Which considerations need to be made in order to write stable and 018 – 471 30 03 maintainable tests? How does testing culture affect productivity and quality of Telefax: software? 018 – 471 30 00 Through quantitative interviews, implementation of the DescribeSML testing Hemsida: framework and development with tests in different scenarios, answers to these http://www.teknat.uu.se/student questions have been sought. The dynamic nature of JavaScript makes it more important to test whereas there are limitations on how Standard ML can be tested imposed by its static type system and immutability. The conclusion was drawn that the main issues for testability are dependency management, how to test graphical interfaces, and maintaining separation of concerns.
    [Show full text]