A Legacy System Migration and Software Evolution

Total Page:16

File Type:pdf, Size:1020Kb

A Legacy System Migration and Software Evolution Die approbierte Originalversion dieser Diplom-/ Masterarbeit ist in der Hauptbibliothek der Tech- nischen Universität Wien aufgestellt und zugänglich. http://www.ub.tuwien.ac.at The approved original version of this diploma or master thesis is available at the main library of the Vienna University of Technology. http://www.ub.tuwien.ac.at/eng A Legacy System Migration and Software Evolution DIPLOMARBEIT zur Erlangung des akademischen Grades Diplom-Ingenieur im Rahmen des Studiums Software Engineering & Internet Computing eingereicht von Andreas Fürnweger Matrikelnummer 0626472 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Ao.Univ.Prof. DI Mag. Dr. Stefan Biffl Mitwirkung: Dr. DI Mag. MA Martin Auer Wien, 20.04.2017 (Unterschrift Verfasser) (Unterschrift Betreuung) Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Erklärung zur Verfassung der Arbeit Andreas Fürnweger Industriestraße 135/1/29, 1220 Wien Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwende- ten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit - einschließlich Tabellen, Karten und Abbildungen -, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Ent- lehnung kenntlich gemacht habe. (Ort, Datum) (Unterschrift Verfasser) i Abstract Software ages. Maintenance costs tend to increase, and modifications to an application make future adaptions more difficult. As the surrounding software components are updated and mod- ernized, static software becomes even more outdated relative to them. As soon as a system notably resists modification and evolution, it becomes legacy software and the stakeholders, such as architects and managers, have to decide whether to preserve or redesign the system. The main research questions are: • What software evolution approaches are feasible and how to evaluate their cost and risk criteria? • How do these criteria affect an actual migration based on a large, real-world software package? The chosen evaluation methods are: • Research software evolution and related topics to identify different evolution approaches, and create a list of software evolution criteria for them. • Apply those criteria to a real-world application to find an appropriate evolution approach; break it down to milestones; implement and evaluate the success of the implementation. The results are: • The evolution can be preservation or migration driven; many offsetting costs/benefits and risk/reward profiles must be considered. • As for real-world instances of migrations, there exist several tools to ease migrations and enable cross-platform application development. A code analysis is a useful way to quan- tify the success of the implementation. This work is the extended version of the paper Software Evolution of Legacy Systems: A Case Study of Soft-Migration [38]. iii Kurzfassung Software altert. Die Wartungskosten steigen tendenziell an und Änderungen an einer Anwen- dung machen zukünftige Anpassungen schwieriger. Wenn Softwarekomponenten im Umfeld aktualisiert und modernisiert werden, wirkt statische Software relativ dazu noch stärker veraltet. Sobald sich die Änderung und Weiterentwicklung eines Systems deutlich erschwert, be- zeichnet man es als Legacy System (Altsystem). Interessengruppen wie Architekten und Mana- ger müssen dann entscheiden, ob das System präserviert oder redesigned werden soll. Die wichtigsten Forschungsfragen sind: • Welche Ansätze zur Software Evolution sind machbar und wie kann man die Kosten- und Risikofaktoren beurteilen? • Wie beeinflussen diese Faktoren eine tatsächliche Migration basierend auf einem umfang- reichen, realen Softwarepaket? Die gewählten Bewertungsverfahren sind: • Software Evolution und verwandte Themengebiete recherchieren, um verschiedene Evo- lutionsansätze herauszuarbeiten; daraus eine Liste an möglichen Software Evolutions Kri- terien erstellen. • Diese Kriterien auf eine reale Softwareanwendung umlegen, um einen passenden Evolu- tionsansatz zu finden; auf Meilensteine herunterbrechen; implementieren und den Erfolg der Implementierung beurteilen. Die Ergebnisse sind: • Die Evolution kann in Richtung Präservierung oder Migration gehen; das Kosten/Nutzen und das Ertrags/Risiko Verhältnis diverser Ansätze muss beachtet werden. • Es gibt viele Werkzeuge, um die Migration von realen Softwareprojekten zu erleichtern und um plattformübergreifende Anwendungen zu entwickeln. Eine Codeanalyse ist ein praktischer Weg, um den Erfolg der Umsetzung zu messen. Diese Diplomarbeit ist die erweiterte Fassung des Papers Software Evolution of Legacy Sys- tems: A Case Study of Soft-Migration [38]. v Contents 1 Introduction 1 1.1 Motivation . 1 1.2 Research Questions . 2 1.3 Actual Migration . 2 1.4 Stakeholders . 3 1.5 Related Work . 4 1.6 Structure of the Work . 5 2 Software Evolution 7 2.1 Software Evolution as Scientific and Engineering Discipline . 7 2.2 Software Aging . 9 2.3 Legacy Systems . 9 2.4 Maintenance . 11 2.5 Software Evolution Approaches . 12 2.6 Software Evolution Criteria . 13 2.7 Soft Migration . 15 3 State of the Art 19 3.1 Portability . 19 3.2 Java . 21 3.3 Web Applications . 23 3.4 Google Web Toolkit (GWT) . 28 3.5 Unified Modeling Language (UML) . 29 3.6 UMLet . 30 3.7 Web Based UML Tools . 34 4 UMLet Evolution Approach 37 4.1 Decision Drivers . 37 4.2 Evaluation of Software Evolution Criteria . 38 4.3 Results of the Evaluation . 39 4.4 Current High-Level Architectural Model . 39 4.5 GridElement Architectural Model . 42 4.6 UMLetino (Web) High-Level Architectural Model . 49 vii 5 Project Modularization 51 5.1 Functions (Facets) as Central Concept . 51 5.2 New Properties Parser . 54 5.3 Platform Independent Drawing API (DrawHandler) . 59 5.4 Platform Independent Basic Classes . 61 5.5 Separate Eclipse Project for Shared Code . 62 5.6 Encapsulation of Element Behavior . 62 5.7 Results . 63 6 Web Version Implementation 67 6.1 Reuse Java Code with GWT . 67 6.2 UI Design Goals . 68 6.3 Application Menu . 68 6.4 Diagram Tab Bar . 71 6.5 Palette and Properties . 72 6.6 Saving and Opening Diagrams . 72 6.7 Importing and Exporting Diagrams . 73 6.8 Clipboard . 76 6.9 Keyboard Shortcuts . 76 6.10 Zoom . 78 6.11 Performance Improvements for HTML5 Canvas . 78 6.12 Major Development Version Snapshots . 79 7 Code Analysis 85 7.1 UMLet Eclipse Projects . 85 7.2 Findbugs Analysis . 86 7.3 Lines of Code . 87 7.4 Project and Package Dependencies . 90 8 Maven Build 99 8.1 Improving Build Structure and Management . 99 8.2 Migration to a Multi-Module Maven Project . 100 8.3 Build Artifacts . 102 8.4 Continuous Integration with Travis . 103 9 Discussion of Results 105 9.1 Research Questions . 105 9.2 Milestones . 107 9.3 Lessons Learned . 108 9.4 Benefits of the New Architecture . 110 9.5 Java Based Core Component . 111 9.6 Current Metrics of Code Reuse . 112 9.7 Conclusion . 113 viii 10 Future Work 115 10.1 General Improvements . 115 10.2 UMLet Standalone and Eclipse Plugin . 117 10.3 UMLetino (Web) Future . 118 A UMLet Terminology 125 Bibliography 127 ix CHAPTER 1 Introduction 1.1 Motivation Software development is still a fast-changing environment, driven by new and evolving hard- ware, operating systems, frameworks, programming languages, and user interfaces. While this seemingly constant drive for modernization offers many benefits, it also requires dealing with legacy software that—while working—slowly falls out of step with the surrounding components that are being updated—for example, if a certain version of an operating system is no longer sup- ported by its vendor. There are various ways to handle such “aging” software: one can try to keep it up and running; to carefully refactor it to various degrees to make it blend in better; to port its code; to rewrite it from scratch; etc. The main stakeholders in deciding on a course of action are managers, which must allocate resources to and consider the risks and maintenance cost profiles of the various options (e.g., will affordable developers with specific skills still be available?), as well as software developers, which should be aware of the long-term implications of their choices (e.g., will a certain programming language be around in five years’ time?). To provide some software evolution guidelines, this thesis gives an overview of the state of the art of software evolution, as well as maintenance, reengineering, and whether to preserve or redesign legacy systems. It looks into different aspects of software maintenance and shows that the classic meaning of maintenance as some final development phase after software delivery is outdated. Instead, it is best seen as an ongoing effort. Then costs and benefits of various evolution approaches are outlined. These approaches are either legacy-based, essentially trying to preserve as much as possible of the existing system, or migration-based, where the software is transferred, to various degrees, into a new setup. After that, so-called “soft” migration approaches are discussed. Those approaches aim to fa- cilitate traditional migration methods like porting or rewriting code via support tools and frame- works. 1 Special focus is given to the Java programming language and a specific variant of a soft- migration approach is presented, which is using a Java-based program core with several platform- specific branches. The approach is explained in detail, starting with its scope, the basic idea, a step by step execution, and a description of tools that can greatly facilitate the migration effort. Finally, a case study of an actual soft migration is described and the benefits and drawbacks of the suggested approach are discussed. The results are also published in the paper Software Evolution of Legacy Systems: A Case Study of Soft-Migration [38]. 1.2 Research Questions The two main research questions of this thesis are: • (R1) What software evolution approaches are feasible and how to evaluate their cost and risk criteria? R1 is addressed by a comprehensive literature study in the scientific fields of software evolu- tion and maintenance.
Recommended publications
  • Interactive Applications for Digital TV Using Internet Legacy – a Successful Case Study
    Interactive Applications for Digital TV Using Internet Legacy – A Successful Case Study Márcio Gurjão Mesquita, Osvaldo de Souza B. The Big Players Abstract—This paper describes the development of an interactive application for Digital TV. The architectural Today there are three main Digital TV standards in the decisions, drawbacks, solutions, advantages and disadvantages world. DVB is the European standard, ATSC is the of Interactive Digital TV development are discussed. The American one and ISDB is the Japanese standard. Each one application, an e-mail client and its server, are presented and has its own characteristics, advantages and disadvantages. the main considerations about its development are shown, The European standard offers good options for interactive especially a protocol developed for communication between Internet systems and Digital TV systems. applications, the Japanese is very good on mobile applications and the American is strong on high quality Index Terms—Protocols, Digital TV, Electronic mail, image. Interactive TV C. The Brazilian Digital Television Effort Television is one of the main communication media in I. INTRODUCTION Brazil. More than 90% of Brazilian homes have a TV set, EVEOLOPING software applications has always been a most of which receive only analog signals [1]-[2]. The TV D hard task. When new paradigms appear, new plays an important role as a communication medium difficulties come along and software designers must deal integrator in a country of continental size and huge social with it in order to succeed and, maybe, establish new design differences as Brazil, taking information, news and and programming paradigms. This paper describes the entertainment to the whole country.
    [Show full text]
  • Xtuml: Current and Next State of a Modeling Dialect
    xtUML: Current and Next State of a Modeling Dialect Cortland Starrett [email protected] 2 Outline • Introduc)on • Background • Brief History • Key Players • Current State • Related Modeling Dialects • Next State • Conclusion [email protected] 3 Introduc)on [email protected] 4 Background • Shlaer-Mellor Method (xtUML) – subject maers, separaon of concerns – data, control, processing – BridgePoint • data modeling (Object Oriented Analysis (OOA)) • state machines • ac)on language • interpre)ve execu)on • model compilaon [email protected] 5 History • 1988, 1991 Shlaer-Mellor Method published by Stephen Mellor and Sally Shlaer. • 2002 Executable UML established as Shlaer-Mellor OOA using UML notation. • 2004 Commercial Corporate Proprietary Licensed. • 2013 BridgePoint xtUML Editor goes open source under Apache 2.0. • 2014 all of BridgePoint (including Verifier and model compilers) goes open source under Apache and Creative Commons. • 2015 Papyrus Industry Consortium and xtUML/BridgePoint contribution • 2015 OSS of alternate generator engine (community building) • 2016 Papyrus-xtUML (BridgePoint) Eclipse Foundation governance • 2016 OSS contributions from industry, university and individuals [email protected] 6 Key Players • Saab • UK Crown • Agilent • Ericsson • Fuji-Xerox • Academia [email protected] 7 Current State • body of IP • self-hosng • Papyrus (and Papyrus Industry Consor)um) [email protected] 8 Related Dialects • MASL • Alf • UML-RT [email protected]
    [Show full text]
  • VI. the Unified Modeling Language UML Diagrams
    Conceptual Modeling CSC2507 VI. The Unified Modeling Language Use Case Diagrams Class Diagrams Attributes, Operations and ConstraintsConstraints Generalization and Aggregation Sequence and Collaboration Diagrams State and Activity Diagrams 2004 John Mylopoulos UML -- 1 Conceptual Modeling CSC2507 UML Diagrams I UML was conceived as a language for modeling software. Since this includes requirements, UML supports world modeling (...at least to some extend). I UML offers a variety of diagrammatic notations for modeling static and dynamic aspects of an application. I The list of notations includes use case diagrams, class diagrams, interaction diagrams -- describe sequences of events, package diagrams, activity diagrams, state diagrams, …more... 2004 John Mylopoulos UML -- 2 Conceptual Modeling CSC2507 Use Case Diagrams I A use case [Jacobson92] represents “typical use scenaria” for an object being modeled. I Modeling objects in terms of use cases is consistent with Cognitive Science theories which claim that every object has obvious suggestive uses (or affordances) because of its shape or other properties. For example, Glass is for looking through (...or breaking) Cardboard is for writing on... Radio buttons are for pushing or turning… Icons are for clicking… Door handles are for pulling, bars are for pushing… I Use cases offer a notation for building a coarse-grain, first sketch model of an object, or a process. 2004 John Mylopoulos UML -- 3 Conceptual Modeling CSC2507 Use Cases for a Meeting Scheduling System Initiator Participant
    [Show full text]
  • Proceedings of the 2Nd Annual Digital TV Applications Software Environment
    NISTIR 6740 Proceedings of the 2nd Annual Digital TV Applications Software Environment (DASE) Symposium 2001: End-to-End Data Services, Interoperability & Applications Edited by: Alan Mink Robert Snelick Information Technology Laboratory June 2001 National Institute of Standards and Technology Technology Administration, U.S. Deportment of Commerce U.S. Department of Commerce Donald L Evans, Secretary National Institute of Standards and Technology Karen H. Brown, Acting Director Table of Contents Foreword ..................................................................................…………………………………………… vi Symposium Committee ................................................................................................................................ vii Opening Remarks Welcome to NIST Alan Mink A TSC Introduction Marker Richer, Executive Director. Advanced Television Systems Committee (ATSC) 1st Day Keynote Gloria Tristani, Commissioner, Federal Communications Commission (FCC) ATP at NIST Marc Stanley, Acting Director, Advanced Technology Program (ATP) 2nd Day Keynote Christopher Atienza. Associate Director of Technology, Public Broadcasting System (PBS) Session 1: DASE Components DASE Overview, Architecture & Common Content Types...............................................................1 Glenn Adams (ATSC T3/SI7 Acting Chair), XFSI, Inc DASE Declarative Applications & Environment .............................................................................31 Glenn Adams (ATSC T3/SI7 Acting Chair), XFSI, Inc DASE API Object Model
    [Show full text]
  • A Dynamic Analysis Tool for Textually Modeled State Machines Using Umple
    UmpleRun: a Dynamic Analysis Tool for Textually Modeled State Machines using Umple Hamoud Aljamaan, Timothy Lethbridge, Miguel Garzón, Andrew Forward School of Electrical Engineering and Computer Science University of Ottawa Ottawa, Canada [email protected], [email protected], [email protected], [email protected] Lethbridge.book Page 299 Tuesday, November 16, 2004 12:22 PM Abstract— In this paper, we present a tool named UmpleRun 4 demonstrates the tool usage. Subsequent sections walk that allows modelers to run the textually specified state machines through an example of instrumenting our example system and under analysis with an execution scenario to validate the model's performing dynamic analysis. dynamic behavior. In addition, trace specification will output Section 8.2 State diagrams 299 execution traces that contain model construct links. This will permit analysis of behavior at the model level. II. EXAMPLE CAR TRANSMISSION MODEL TO BE EXECUTED In this section, we will present the car transmission model Keywords— UmpleRun; Umple; UML; MOTL; stateNested machine; substates that and will guard be conditions our motivating example through this paper. It will execution trace; analysis Aalso state be diagram used to can explain be nested Umple inside and a state.MOTL The syntax. states of The the innerCar diagram are calledtransmission substates model. was inspired by a similar model in I. INTRODUCTION LethbridgeFigure 8.18 and shows Lagani a stateère’s diagram book [4] of. anThe automatic model consists transmission; of at the top one class with car transmission behavior captured by the state Umple [1,2] is a model-oriented programming language level this has three states: ‘Neutral’, ‘Reverse’ and a driving state, which is not machine shown in Fig.
    [Show full text]
  • The Implementation of Large Video File Upload System Based on the HTML5 API and Ajax Yungeng Xu , Sanxing
    Joint International Mechanical, Electronic and Information Technology Conference (JIMET 2015) The Implementation of Large Video File Upload System Based on the HTML5 API and Ajax Yungeng Xu1, a, Sanxing Cao2, b 1 Department of Science and Engineering, Communication University of China, Beijing 2 New Media Institute, Communication University of China, Beijing a b [email protected], [email protected] Keywords: HTML5; File upload; Shell; XMLHttpRequest Abstract. The function of upload file is an important web page designs. Traditional file upload function for file upload function by HTML form and $_FILES system function, has the advantages of convenience, can cope with a relatively small file upload. The traditional HTML way has been difficult to meet the upload of the oversized file. Service not only to open a link waiting for this file is uploaded, but also to allocate the same size of memory to save this file. In the case of large concurrency may cause a great pressure on the server. This article is the use of HTML5 File API to upload video files in the original form on the basis of form, use the function of slice inside the HTML5 file API for the split file upload, to achieve the result of no refresh upload files. Have a valid practical significance. Introduction With the development of web technology, watch videos on the website has become an important forms of entertainment in the people's daily life. Internet video give people a great deal of freedom to choose the way of entertainment, not limited to the live TV mode. People can watch the video on the webpage.
    [Show full text]
  • State and Activity Diagrams in UML Last Revised December 4, 2018 Objectives: 1
    CPS122 Lecture: State and Activity Diagrams in UML last revised December 4, 2018 Objectives: 1. To show how to create and read State Diagrams 2. To introduce UML Activity Diagrams Materials: 1. Answers to quick check questions from chapter 7 plus chapter 8 a, b, g 2. Demonstration of “Racers” program 3. Handout and Projectable on Web: State diagram for Session 4. Handout: Code for Session class performSession() method 5. Projectable of text figures 7.12, 7.13 6. Handout of Activity diagram for Racers 7. Projectable of text figure 8.10 I. Introduction A.Go over quick check questions chapter 7 + chapter 8 a, b, g only B. We have drawn a distinction between the static aspects of a system and its dynamic aspects. The static aspects of a system have to do with its component parts and how they are related to one another; the dynamic aspects of a system have to do with how the components interact with one another and/or change state internally over time. C. We have been looking at one aspect of the dynamic behavior of a system - the way various objects interact to carry out the various use cases. We have looked at two ways of describing this: 1. Sequence diagrams 2. Communication diagrams D.We now want to look two additional aspects of dynamic behavior !1 1. How an individual object changes state internally over time. a) Example: As part of doing the domain analysis of a traffic light system, it is important to note that individual signals go through a series of states in a prescribed order - modeled by the following state diagram: ! (Note: this is correct for the US but not for all countries in the world!) An important “business rule” that any traffic light system must obey is that the light must be yellow for a certain minimum period of time (related to vehicle speed in the intersection) between displaying green and displaying red.
    [Show full text]
  • Part I Environmental Diagrams
    Adaptive Software Engineering G22.3033-007 Session 3 – Sub-Topic Presentation 1 Use Case Modeling Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Part I Environmental Diagrams 2 1 What it is • Environmental Diagram Rent Video Video Store Pay Information System Employees Clerk Customer Payroll Clerk 3 What it is • A picture containing all the important players (Actors) • Includes players both inside and outside of the system • Actors are a critical component • External events are a second critical component 4 2 Creating the Diagram • To create an environmental diagram • 1. Identify all the initiating actors • 2. Identify all the related external events associated with each actor 5 Why it is used • A diagram is needed to show the context or scope of the proposed system • At this time actors and external events are the critical components • It is helpful to include all the participants as well 6 3 Creating the Diagram • 3. Identify all the participating Actors • These actors may be inside (internal) or outside (external) to the system 7 Creating the Diagram • Examples of an internal actor – Clerk who enters the purchase into a Point of Sale terminal – Clerk who places paper in the printer – Accountant who audits report 8 4 Creating the Diagram • Examples of an external actor – Accountant who audits report – A credit authorizing service – A DMV check for renting a car 9 Creating the Diagram •4.Draw a cloud • 5. Then draw initiating actors on the left of the cloud • 6. Then draw participating external actors outside the cloud • 7.
    [Show full text]
  • Verification of UML State Diagrams Using a Model Checker
    Verification of UML State Diagrams using a Model Checker A Manuscript Submitted to the Department of Computer Science and the Faculty of the University of Wisconsin-La Crosse La Crosse, Wisconsin by Yiwei Zou in Partial Fulfillment of the Requirements for the Degree of Master of Software Engineering August, 2013 Verification of UML State Diagrams using a Model Checker By Yiwei Zou We recommend acceptance of this manuscript in partial fulfillment of this candidates re- quirements for the degree of Master of Software Engineering in Computer Science. The candidate has completed the oral examination requirement of the capstone project for the degree. Dr.Kasi Periyasamy Date Examination Committee Chairperson Dr.Mao Zheng Date Examination Committee Member Dr.Tom Gendreau Date Examination Committee Member ii Abstract Zou, Yiwei, Verification of UML State Diagrams using a Model Checker, Master of Software Engineering, August 2013. (Advisor: Kasi Periyasamy, Ph.D). This manuscript describes the process of verifying the UML state diagrams by using model checker. A UML state diagram describes the behavior of an object which includes a sequence of states that the object visits during its lifetime. Verification of UML state dia- gram is important because if one state diagram is incorrect, the object’s behavior will not be displayed correctly which leads to incorrect coding and eventually may lead to the possible failure of the system. However, it is hard to verify UML state diagram without the aid of other tools. Therefore, model checker is introduced to verify the UML state diagram. Since model checkers use different syntax, one needs to convert state diagrams from UML tools to the syntax used by the model checker.
    [Show full text]
  • Semi-Automated Mobile TV Service Generation
    > IEEE Transactions on Broadcasting < 1 Semi-automated Mobile TV Service Generation Dr Moxian Liu, Member, IEEE, Dr Emmanuel Tsekleves, Member, IEEE, and Prof. John P. Cosmas, Senior Member, IEEE environments from both hardware and software perspectives. The development results on the hardware environment and Abstract—Mobile Digital TV (MDTV), the hybrid of Digital lower layer protocols are promising with reliable solutions Television (DTV) and mobile devices (such as mobile phones), has (broadcast networks such as DVB-H and mobile convergence introduced a new way for people to watch DTV and has brought networks such as 3G) being formed. However the new opportunities for development in the DTV industry. implementation of higher layer components is running Nowadays, the development of the next generation MDTV service relatively behind with several fundamental technologies has progressed in terms of both hardware layers and software, (specifications, protocols, middleware and software) still being with interactive services/applications becoming one of the future MDTV service trends. However, current MDTV interactive under development. services still lack in terms of attracting the consumers and the The vast majority of current commercial MDTV service service creation and implementation process relies too much on applications include free-to-air, Pay Television (PayTV) and commercial solutions, resulting in most parts of the process being Video-on-Demand (VoD) services. When contrasted with the proprietary. In addition, this has increased the technical demands various service types of conventional DTV, MDTV services for developers as well as has increased substantially the cost of are still unidirectional, offering basic services that lack in producing and maintaining MDTV services.
    [Show full text]
  • Downloads and Documentation Are 12 Implementation Details
    Java™ Technology Concept Map SM 2 Sun works with companies become members of the JCP by signing JSPA has a is which What is Java Technology? onthe represented are supports the development of ... Java 0 within the context of the Java Community Process, Java Community Process The Java Specification Participation Programming language Java object model that is an that by is organized defines This diagram is a model of Java™ technology. The diagram begins with members join the JCP by signing the provides ... documentation 42 may function as ... developers 23 Agreement is a one-year renewable is defined by the ... Java Language Specification 43 logo owns the ... Java trademark 1 support the development of ... Java 0 agreement that allows signatories to is used to write ... programs 24 make(s) ... SDKs 29 make ... SDKs 29 Class libraries are An application programming interface is the Particular to Java, Abstract classes permit child explains Java technology by placing it in the context of related Java forums often discuss Java in Java developer become members of the JCP. is used to write ... class libraries 10 organized collections written or understood specification of how a interfaces are source code classes to inherit a defined method makes versions of a ... JVM 18 make versions of a ... JVM 18 Companies include Alternatively, developers can sign the syntax and 4 of prebuilt classes piece of software interacts with the outside files that define a set of or to create groups of related communities provides certify Java applications using IBM, Motorola, more limited Individual Expert The Java language has roots in C, Objective C, and functions used to world.
    [Show full text]
  • Sessionstorage
    Offline First HTML5 technologies for a faster, smarter, more engaging web © 2014 John Allsopp, Web Directions draft 1 intro-1 Offline Apps with HTML5 What if I told you that you don’t have to be online to use the Web? There’s a general (and understandable) belief by many developers, not to mention most users, that websites and web applications have a very serious limitation – they can only be used when the browser has a web connection. Indeed, this is routinely cited as one of the real advantages of so-called native apps over the Web. As counter-intuitive as it sounds, in almost every modern browser on any device (including IE10 and up), it’s no longer the case that users need to be connected to the Web to use our websites and applications, provided we developers do a little extra work to make our site or application persist when a browser is offline. This opens up a whole range of opportunities, leveling the field with native apps that can be installed on the user’s phone, tablet, laptop or desktop computer, or indeed any other device capable of running apps. But there are many more benefits to offline technologies than simply allowing websites and apps to work offline, as we’ll soon discover. Offline First Recently the team behind the “Hoodie” framework published “Offline first”1 a new way of thinking about developing for the Web. They observe that even in the developed world, mobile bandwidth and connectivity, increasingly the primary way in which people connect to the Web, are not always guaranteed to be there, or be reliable, and, they state: “We can’t keep building apps with the desktop mindset of permanent, fast connectivity, where a temporary disconnection or slow service is regarded as a problem and communicated as an error.” And when we think of offline and online, we typically only focus on the client, but servers go offline as well, both for routine maintenance, or in times of crisis, or under heavy stress.
    [Show full text]