SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Speed delivery of Android devices and applications
      with model-driven development
      Skill Level: Intermediate


      Beery D. Holstein (Beery.Holstein@il.ibm.com)
      Senior Manager, Rhapsody Product Development
      IBM



      06 Jun 2011


      Along with the Android software stack rapidly gaining market share for applications
      on a variety of devices, embedded product designs are becoming more complex and
      product lifecycles are shrinking. Efficient development has become essential. This
      article presents several situations where using model-driven development (MDD) can
      help developers speed the delivery of Android-based devices and applications.
      The Android software stack is rapidly gaining market share for applications on a
      variety of devices, such as smart phones, tablets, televisions, and in-vehicle
      information and entertainment systems. The diversity of market segments, an
      explosion in the number of new devices, and the demands of heterogeneous users
      are forcing device manufacturers and application providers to introduce high-quality,
      innovative products in shorter time frames. At the same time, shrinking development
      budgets and a tough economic environment make efficient use of development
      resources a critical necessity.

      With embedded product designs becoming more complex and product lifecycles
      shrinking, efficient development has become essential. The emergence of
      model-driven development (MDD) has made it possible to accelerate the
      development process. With MDD, software engineers can more clearly understand
      and analyze requirements, define design specifications, test system concepts using
      simulation, and automatically generate code for direct deployment on the target
      hardware. This article presents several scenarios where using MDD can help
      developers speed the delivery of Android-based devices and applications.


      About the Android stack

Speed delivery of Android devices and applications with model-driven development         Trademarks
© Copyright IBM Corporation 2011                                                        Page 1 of 14
developerWorks®                                                                    ibm.com/developerWorks



      Android is a software stack for mobile devices. It includes an operating system,
      middleware, and key applications (see the link to "What is Android" in Resources for
      more information). The Android SDK provides the tools and APIs necessary to begin
      developing applications on the Android platform, using the Java programming
      language. These include a device emulator, tools for debugging, memory and
      performance profiling, and a plug-in for the Eclipse development environment.
      Figure 1 shows the major components of the Android operating system within the
      application framework, libraries, Android runtime, and Linux kernel.

      Figure 1. Major components of the Android software stack




      Larger view of Figure 1.

      Android software developers can be classified into two kinds: platform vendors and
      application developers.

                • Platform vendors are the companies that combine software and hardware
                  to produce the actual devices. These devices serve as the hosting

Speed delivery of Android devices and applications with model-driven development               Trademarks
© Copyright IBM Corporation 2011                                                              Page 2 of 14
ibm.com/developerWorks                                                                  developerWorks®



                   environment for smart device applications, at least for the "on-device"
                   portion of the application. (Many such applications also include a server
                   component.)
                • Application developers are the organizations that create the software that
                  calls upon the services exposed by the Android device ("the platform"). In
                  this categorization, it is important to note that platform vendors frequently
                  want to deliver their devices preloaded with a set of applications so that
                  the devices are useful immediately, as delivered Consequently, it is
                  common for platform vendors to develop applications and to ensure that
                  applications developed by third parties work properly with the device the
                  vendor intended to provide.


      Model-driven development for embedded systems
      Models are used to represent a system at higher levels of abstraction, while
      promoting consistency, accuracy, and precision. Because the models are at a higher
      level of abstraction than the source code, they permit the construction of views that
      can answer specific questions about the functionality, structure, or behavior of the
      system or software. It is important to distinguish between "pictures" and semantic
      models. A disconnected picture showing a vague concept can be useful, but a
      semantically deep model that represents details of the relevant aspects of the
      software can provide huge benefits to the developer and other stakeholders.
      Specifically, good models are connected to the software so they always represent
      the actual content of the source, which increases consistency across views and
      improves communication of the software.

      The most popular modeling language in the world is the Unified Modeling Language
      (UML), which has been in use for over a decade with huge success. UML is based
      on a relatively formal definition, known as a metamodel, which gives the language
      both precision and scope. UML diagrams provide a view of system aspects by
      graphically representing the model elements and their relationships. A model that
      focuses on the functionality and behavior of the application can be used to generate
      a fully executable application that is ready to be deployed on a specific target,
      RTOS, middleware, and communication mechanisms (see the two books by Bruce
      Powell Douglass cited in Resources.

      Note:
      IBM® Rational® Rhapsody® is a visual development environment for systems
      engineers and software developers who are creating real-time or embedded
      systems and software. The author uses this software to demonstrate some of the
      concepts involved in model-driven development (MDD) in convergence with the
      Android SDK for this article.




Speed delivery of Android devices and applications with model-driven development             Trademarks
© Copyright IBM Corporation 2011                                                            Page 3 of 14
developerWorks®                                                                    ibm.com/developerWorks




      Converging MDD with Android software development
      MDD provides several ways to speed up the development of Android devices. This
      is accomplished through a deeper understanding of Android applications and the
      Android framework, by updating and creating Android applications, and by
      connecting the software development to requirements, testing, and planning. These
      benefits are leveraged from within Eclipse, which is the primary development
      environment for Android hosts, both the Android SDK and the MDD tools for
      Android.

      The Android API as part of the model

      UML is a powerful language for modeling, but it provides only a generic template of
      information for systems. Over the years, UML has spawned a number of variants,
      known as profiles, for specific areas of development. Modeling closer to the relevant
      domain reduces ambiguity and provides a clearer view of the design intention for
      colleagues and customers.

      To facilitate development in the Android domain, the Android Framework is being
      visualized through a model library that consists of the various packages, classes,
      and public interfaces found in the Android API and through a profile that
      encapsulates some of the main Android building blocks as stereotypes. Developers
      can drag elements from the profile and from the model library into UML diagrams.
      This enriches the design with API use and guides Android application generation
      from the model. Figure 2 shows a UML profile and a model library based on the
      Android API. The profile and the model library are used during visualization,
      creation, and update of Android applications from within the MDD tooling. This
      enables developers to use the Android terminology in designs.

      Figure 2. The Android API visualized through a model library and a UML profile




Speed delivery of Android devices and applications with model-driven development               Trademarks
© Copyright IBM Corporation 2011                                                              Page 4 of 14
ibm.com/developerWorks                                                                     developerWorks®




      Developing an Android device involves new code, modifications to existing code,
      existing code that does not change, and third-party libraries. Existing code and
      third-party libraries can be visualized in the model, resulting in a graphical
      representation of their structure and relations using UML class diagrams. Such
      visualization allows developers to understand different aspects of an existing
      Android application and to communicate them to various stakeholders, such as
      customers, managers, architects, other developers, and testers. They can also
      extract documentation from the model, thereby providing a different aspect of
      communication.

      During visualization of an application (and parts of its associated
      AndroidManifest.xml file), the Android profile and model library are automatically
      used to identify Android-specific elements, such as activities and services. This
      results in visualizing not only the application itself, but also its relationship to and its
      use of the Android API, as shown in Figure 3. Also shown is how MDD is integrated
      as a plug-in for the Eclipse environment (see the link to Paul Urban's article in
      Resources), facilitating modeling, coding, and simulation alongside the Android
      Development Tools (ADT).

      Figure 3. Visualizing the structure and algorithm of an Android application




Speed delivery of Android devices and applications with model-driven development                 Trademarks
© Copyright IBM Corporation 2011                                                                Page 5 of 14
developerWorks®                                                                    ibm.com/developerWorks




      Larger view of Figure 3.

      In addition to providing graphical representation, MDD tools can depict execution of
      the application inside the graphical environment, which enables a better
      understanding of the application's runtime behavior. Figure 4 shows how the runtime
      interactions between elements in an Android application that was instrumented with
      a code agent are automatically captured during its execution. The interactions are
      captured to a UML sequence diagram in which the vertical lines in the sequence
      diagram are elements from the Android application, and the horizontal lines show
      the invocation of operations between elements. By showing the higher-level
      abstraction of interactions between several elements in the Android application, the
      runtime behavior of an application is better understood and better communicated to
      various stakeholders.

      Figure 4. Graphical environment provides insight into runtime behavior




Speed delivery of Android devices and applications with model-driven development               Trademarks
© Copyright IBM Corporation 2011                                                              Page 6 of 14
ibm.com/developerWorks                                                                  developerWorks®




      Larger view of Figure 4.

      Creation and updating

      It is of very little practical value to have diagrams that are not directly connected to
      the source code. Experience has clearly shown that having two representations of
      the system semantics, one in the model and the other in the code, quickly diverges
      so that the model and the code no longer match.

      Starting with a fresh model or from a model used to visualize an existing Android
      application, a matched Eclipse-Android project is created by the MDD plug-in, and
      the project is populated with code generated from the model. This includes the static
      portion of the models (for example, packages, classes, and operations) and the
      behavior modeling (state machine). During this process, the Android profile and
      model library are automatically used to create some of the "glue" code needed to
      connect the user code to the Android framework.

      Figure 5 shows code generated from a structural model representation. As
      developers change the model, the source code is automatically updated. Similarly, if
      the source code is updated, the model is automatically changed to reflect the new
      source code contents. This ability to associate the model code associativity
      promotes agility, because the developer can choose to work either in the model or in
      the source code, and synchronicity between the two is automatically maintained.

      Figure 5. Code generated from the structural model




Speed delivery of Android devices and applications with model-driven development              Trademarks
© Copyright IBM Corporation 2011                                                             Page 7 of 14
developerWorks®                                                                    ibm.com/developerWorks




      Debugging and testing

      Although defects are most likely introduced early in the process, they are often found
      only later on. Moreover, the cost for repairing defects goes up exponentially the later
      they are discovered. As a result, the challenge is how to find defects closer to the
      time that they are introduced. If the model correctly depicts the intended functionality
      and behavior of the application, the model can be brought to life and used to enable
      early testing and debugging at the model level of abstraction.

      In Figure 6, an Android simulator is used to execute an application generated from a
      model. You can simultaneously see the active state highlighted in UML state charts
      (created by the developer and used earlier in generating the application) and view
      the UML sequence diagrams that were automatically generated during execution.
      You can then compare the sequence diagrams to the application's expected
      behavior, so you can validate proper design operation. You can also compare the
      automatically generated sequence diagrams to those from a previous execution of
      the application to identify changes in behavior that might indicate regressions. A
      model-based testing (MBT) tool can further use the automatically generated
      sequence diagrams to execute them automatically, thus both driving and monitoring
      testing.

      Figure 6. Debugging can be done at the code level and model level




Speed delivery of Android devices and applications with model-driven development               Trademarks
© Copyright IBM Corporation 2011                                                              Page 8 of 14
ibm.com/developerWorks                                                             developerWorks®




      Larger view of Figure 6.

      Collaboration

      Developing Android devices and applications can involve managing host system
      development, legacy application maintenance, hardware development, and more.
      Managing the integration of these different domains introduces complexity and
      requires that a holistic view of the architecture be available to development teams
      working independently on these different domains. The complexity of Android
      devices leads to increasing challenges in managing joint development lifecycles,
      testing sequences, and rollouts, and in monitoring and managing these systems
      after they are delivered. The challenge is further expanded by the large number of
      distributed teams, which often include agencies, contractors, OEMs, and suppliers.

      Continuous validation and verification is fostered by combining requirements,
      models, quality management, and project monitoring, as shown in Figure 7. The
      models are made centrally accessible to the entire team and become the source of
      the entire design. A demo on YouTube (see references) shows how Rational Team
      Center is leveraged for project planning and monitoring.

      Figure 7. Collaboratively managing delivery of a smart device or application


Speed delivery of Android devices and applications with model-driven development         Trademarks
© Copyright IBM Corporation 2011                                                        Page 9 of 14
developerWorks®                                                                    ibm.com/developerWorks




      For example, as Figure 8 shows, MDD can be used to better understand
      requirements by visualizing them in the model. The requirements are stored in the
      model, and their relationship to design elements and test cases can be created,
      thereby helping to provide traceability information within the model. This, in turn, can
      be used during testing to produce requirements a coverage matrix and reports. The
      information from the requirements, such as the ID or specification, can be
      automatically generated into the Android application code to enable traceability from
      requirements, design in the model, and implementation in code.

      Figure 8. Requirements as part of the model




Speed delivery of Android devices and applications with model-driven development              Trademarks
© Copyright IBM Corporation 2011                                                             Page 10 of 14
ibm.com/developerWorks                                                              developerWorks®




      Larger view of Figure 8.


      Conclusions
      Combining MDD capabilities with the Android development environment can help
      improve productivity, as well as time to market, plus reduce costs. Aside from
      providing a convenient single environment for both Android coding and modeling, it
      offers developers visual specification of design requirements. Moreover, the
      framework can be used to visualize existing Android applications, thereby offering
      insight into their structure and behavior. The use of models that connect the
      requirements, design, and code also simplifies documentation and enables the
      document to be automatically generated.

      After the model has been created within the Android development environment,
      Android applications can be automatically delivered. In addition, the model can be
      used to execute the design, providing validation and allowing defects to be
      discovered early in the design's lifecycle. This execution also offers automated
      software unit and regression testing for improved quality of code. The integrated
      environment is also a vital factor in enabling collaboration among distributed teams
      and across development organizations.




Speed delivery of Android devices and applications with model-driven development         Trademarks
© Copyright IBM Corporation 2011                                                        Page 11 of 14
developerWorks®                                                                    ibm.com/developerWorks




      Resources
      Learn
         • Cited in this article:
                • Krasner, Jerry. What Do You Do When the Horse You're Riding Drops
                  Dead? Why Model Driven Design is Emerging as a Preferred Best
                  Practice. A white paper published by Embedded Market Forecasters, a
                  division of American Technology, Inc. (2007).
                • What is Android? Android Developers website. The Android Architecture
                  diagram in Figure 2 is from the Android Open Source Project and used
                  according to terms described in the Creative Commons 2.5 Attribution
                  License.
                • The Eclipse Foundation.
                • Getting Started with UML, UML Resource Page, Object Management
                  Group website.
                • Douglass, Bruce Powell. Real-Time UML Workshop for Embedded
                  Systems. Newnes (2006).
                • Douglass, Bruce Powell. Real Time UML: Advances in the UML for
                  Real-Time Systems (3rd Edition). Addison-Wesley Professional (2004).
                • Urban, Paul. Combining Code Development, Modeling, and Simulation
                  with Eclipse, Dr. Dobb's Journal (October 2009).

         • To learn more about using Rational Rhapsody Developer for collaborative,
           model-driven development for embedded systems, start with these overviews:
           Introduction to Rational Rhapsody, the Rational Rhapsody Developer product
           page, and the Rational Rhapsody page on IBM developerWorks. Explore the
           various versions, too:
                • IBM® Rational® Rhapsody® Architect for Software, a visual development
                  environment for embedded systems and software
                • IBM® Rational® Rhapsody® Architect for Systems Engineers
                • IBM® Rational® Rhapsody® Designer for Systems Engineers
                • IBM® Rational® Rhapsody® Developer edition. This edition is required for
                  Eclipse users and editions are available to create specialized projects in C,
                  C++, Java, and Ada languages.

         • Visit the Rational software area on developerWorks for technical resources and
           best practices for Rational Software Delivery Platform products.



Speed delivery of Android devices and applications with model-driven development              Trademarks
© Copyright IBM Corporation 2011                                                             Page 12 of 14
ibm.com/developerWorks                                                                developerWorks®



         • Stay current with developerWorks technical events and webcasts focused on a
           variety of IBM products and IT industry topics.
                • Attend a free developerWorks Live! briefing to get up-to-speed quickly on
                  IBM products and tools, as well as IT industry trends.
                • Watch developerWorks on-demand demos, ranging from product
                  installation and setup demos for beginners to advanced functionality for
                  experienced developers.

         • Watch the Rational Solution for Android mobile application development demo
           on YouTube.
         • Improve your skills. Check the Rational training and certification catalog, which
           includes many types of courses on a wide range of topics. You can take some
           of them anywhere, any time, and many of the "Getting Started" ones are free.
      Get products and technologies
         • Download Rational Rhapsody Developer and try it free for 30 days.
         • Evaluate IBM software in the way that suits you best: Download it for a trial, try
           it online, use it in a cloud environment, or spend a few hours in the SOA
           Sandbox learning how to implement service-oriented architecture efficiently.
      Discuss
         • Join the discussion in the Rational Rhapsody forum.
         • Share your knowledge and help others who use Rational software by writing a
           developerWorks article. You'll get worldwide exposure, RSS syndication, a
           byline and a bio, and the benefit of professional editing and production on the
           developerWorks Rational website. Find out what makes a good
           developerWorks article and how to proceed. Start by finding out what makes a
           good developerWorks Rational article.
         • Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube,
           and add your comments and requests.
         • Ask and answer questions and increase your expertise when you get involved
           in the Rational forums, cafés, and wikis.
         • Connect with others who share your interests by joining the developerWorks
           community and responding to the developer-driven blogs.



      About the author
      Beery D. Holstein


Speed delivery of Android devices and applications with model-driven development          Trademarks
© Copyright IBM Corporation 2011                                                         Page 13 of 14
developerWorks®                                                                    ibm.com/developerWorks



                      Beery Holstein has more than 20 years experience in developing
                      software engineering tools and over a decade of experience with
                      developing Rhapsody, an MDD tool for the embedded, real-time
                      software development industry. He was one of the first members of the
                      team that developed Rhapsody, before it became part of IBM Rational
                      software (i-Logix and then Telelogic). Beery is now managing the
                      development of the core product, including among other things, the
                      code generation, reverse engineering, and round-trip capabilities that
                      underlie support for Android.




Speed delivery of Android devices and applications with model-driven development              Trademarks
© Copyright IBM Corporation 2011                                                             Page 14 of 14

Mais conteúdo relacionado

Mais procurados

Mais procurados (17)

Os eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdfOs eclipse-androidwidget-pdf
Os eclipse-androidwidget-pdf
 
480 483
480 483480 483
480 483
 
Ii 1100-android development for fun and profit
Ii 1100-android development for fun and profitIi 1100-android development for fun and profit
Ii 1100-android development for fun and profit
 
Wecreate
WecreateWecreate
Wecreate
 
Kony Development Cloud
Kony Development CloudKony Development Cloud
Kony Development Cloud
 
Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015
 
Overview visual studio
Overview visual studioOverview visual studio
Overview visual studio
 
VoiceGate corporate profile
VoiceGate corporate profileVoiceGate corporate profile
VoiceGate corporate profile
 
Windows phone
Windows phoneWindows phone
Windows phone
 
GlenUnderwoodResume
GlenUnderwoodResumeGlenUnderwoodResume
GlenUnderwoodResume
 
Multichannel User Interfaces
Multichannel User InterfacesMultichannel User Interfaces
Multichannel User Interfaces
 
Shankar
ShankarShankar
Shankar
 
Windows 8
Windows 8Windows 8
Windows 8
 
Metro Style Apps - Whats there for Developers
Metro Style Apps - Whats there for DevelopersMetro Style Apps - Whats there for Developers
Metro Style Apps - Whats there for Developers
 
Multi channel advantage
Multi channel advantageMulti channel advantage
Multi channel advantage
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
 
WPF
WPFWPF
WPF
 

Destaque

Infectious Disease
Infectious DiseaseInfectious Disease
Infectious DiseaseDeep Deep
 
RECURSOS REPOSITORIOS
RECURSOS REPOSITORIOSRECURSOS REPOSITORIOS
RECURSOS REPOSITORIOSUNEFEM
 
En búsqueda de un modelo pedagógico para adolescentes privados de libertad A...
En búsqueda de un modelo pedagógico para adolescentes privados de libertad  A...En búsqueda de un modelo pedagógico para adolescentes privados de libertad  A...
En búsqueda de un modelo pedagógico para adolescentes privados de libertad A...Francisco J. Estrada Vásquez
 
E-Education in Civil Engineering
E-Education in Civil EngineeringE-Education in Civil Engineering
E-Education in Civil EngineeringMartin Ebner
 
Resumen Vision 3º Medio
Resumen Vision 3º MedioResumen Vision 3º Medio
Resumen Vision 3º Medioexpocollege
 
Calentamiento global
Calentamiento globalCalentamiento global
Calentamiento globalpacheco
 
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...Victor Gridnev
 
окинавская хартия глобального информационного общества
окинавская хартия глобального информационного обществаокинавская хартия глобального информационного общества
окинавская хартия глобального информационного обществаVictor Gridnev
 
La innovació dels enginyers: pot tenir una millor retribució?
La innovació dels enginyers: pot tenir una millor retribució?La innovació dels enginyers: pot tenir una millor retribució?
La innovació dels enginyers: pot tenir una millor retribució?© Gian-Lluis Ribechini
 
GSISI Organizational Chart
GSISI Organizational ChartGSISI Organizational Chart
GSISI Organizational Chartiangobi
 
Preço mesa sagitarius tubular
Preço mesa sagitarius tubularPreço mesa sagitarius tubular
Preço mesa sagitarius tubularAgua Boa EM Foco
 

Destaque (20)

PE certificate
PE certificatePE certificate
PE certificate
 
Infectious Disease
Infectious DiseaseInfectious Disease
Infectious Disease
 
Pasos Para Una Buena Monografia
Pasos Para Una Buena MonografiaPasos Para Una Buena Monografia
Pasos Para Una Buena Monografia
 
RECURSOS REPOSITORIOS
RECURSOS REPOSITORIOSRECURSOS REPOSITORIOS
RECURSOS REPOSITORIOS
 
2014 1 dglm-1ll
2014 1 dglm-1ll2014 1 dglm-1ll
2014 1 dglm-1ll
 
Cirugia plástica
Cirugia plásticaCirugia plástica
Cirugia plástica
 
En búsqueda de un modelo pedagógico para adolescentes privados de libertad A...
En búsqueda de un modelo pedagógico para adolescentes privados de libertad  A...En búsqueda de un modelo pedagógico para adolescentes privados de libertad  A...
En búsqueda de un modelo pedagógico para adolescentes privados de libertad A...
 
E-Education in Civil Engineering
E-Education in Civil EngineeringE-Education in Civil Engineering
E-Education in Civil Engineering
 
Resumen Vision 3º Medio
Resumen Vision 3º MedioResumen Vision 3º Medio
Resumen Vision 3º Medio
 
Calentamiento global
Calentamiento globalCalentamiento global
Calentamiento global
 
Abc graph
Abc graphAbc graph
Abc graph
 
Esci centro remolinos
Esci centro remolinosEsci centro remolinos
Esci centro remolinos
 
Ana imagen
Ana imagenAna imagen
Ana imagen
 
Andre bloques egggonómicos
Andre bloques egggonómicosAndre bloques egggonómicos
Andre bloques egggonómicos
 
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...
План мероприятий, обеспечивающий оказание госуслуг и межведомственное взаимод...
 
окинавская хартия глобального информационного общества
окинавская хартия глобального информационного обществаокинавская хартия глобального информационного общества
окинавская хартия глобального информационного общества
 
UST
USTUST
UST
 
La innovació dels enginyers: pot tenir una millor retribució?
La innovació dels enginyers: pot tenir una millor retribució?La innovació dels enginyers: pot tenir una millor retribució?
La innovació dels enginyers: pot tenir una millor retribució?
 
GSISI Organizational Chart
GSISI Organizational ChartGSISI Organizational Chart
GSISI Organizational Chart
 
Preço mesa sagitarius tubular
Preço mesa sagitarius tubularPreço mesa sagitarius tubular
Preço mesa sagitarius tubular
 

Semelhante a Speed delivery of Android devices and applications with model-driven development

Android app development SEO Expert Bangladesh LTD.pdf
Android app development  SEO Expert Bangladesh LTD.pdfAndroid app development  SEO Expert Bangladesh LTD.pdf
Android app development SEO Expert Bangladesh LTD.pdfTasnim Jahan
 
Android app development SEO Expert Bangladesh LTD.pdf
Android app development  SEO Expert Bangladesh LTD.pdfAndroid app development  SEO Expert Bangladesh LTD.pdf
Android app development SEO Expert Bangladesh LTD.pdfTasnim Jahan
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfLaura Miller
 
Getting started with android
Getting started with androidGetting started with android
Getting started with androidamitgb
 
Unit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assUnit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assARVIND SARDAR
 
Experience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaExperience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaVishakhaTalmale
 
Phonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidPhonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidABHISHEK DINKAR
 
Best Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfBest Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfchristiemarie4
 
Learn Android app development in easy steps
Learn Android app development in easy stepsLearn Android app development in easy steps
Learn Android app development in easy stepsMobile Pundits
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
Jaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationJaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationAI Publications
 
Jaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationJaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationAI Publications
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 
Best Frameworks for Android App Development in 2022.pdf
Best Frameworks for Android App Development in 2022.pdfBest Frameworks for Android App Development in 2022.pdf
Best Frameworks for Android App Development in 2022.pdfMarie Weaver
 
Evolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s VersionsEvolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s Versionsijtsrd
 
Top 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfTop 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfsuryamahathi1
 
Blending Creativity and Technology With Android App Development
Blending Creativity and Technology With Android App DevelopmentBlending Creativity and Technology With Android App Development
Blending Creativity and Technology With Android App Developmentamanraza23
 
Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Awardpravinmali2191
 

Semelhante a Speed delivery of Android devices and applications with model-driven development (20)

Android app development SEO Expert Bangladesh LTD.pdf
Android app development  SEO Expert Bangladesh LTD.pdfAndroid app development  SEO Expert Bangladesh LTD.pdf
Android app development SEO Expert Bangladesh LTD.pdf
 
Android app development SEO Expert Bangladesh LTD.pdf
Android app development  SEO Expert Bangladesh LTD.pdfAndroid app development  SEO Expert Bangladesh LTD.pdf
Android app development SEO Expert Bangladesh LTD.pdf
 
Best android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdfBest android frameworks for app development in 2023.pdf
Best android frameworks for app development in 2023.pdf
 
Getting started with android
Getting started with androidGetting started with android
Getting started with android
 
Unit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-assUnit 1-android-and-its-tools-ass
Unit 1-android-and-its-tools-ass
 
Android
AndroidAndroid
Android
 
Experience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW IndiaExperience The Best Android Programming Training Here | LW India
Experience The Best Android Programming Training Here | LW India
 
Phonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidPhonebook Directory or Address Book In Android
Phonebook Directory or Address Book In Android
 
Best Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdfBest Android Frameworks For App Development In 2023.pdf
Best Android Frameworks For App Development In 2023.pdf
 
Learn Android app development in easy steps
Learn Android app development in easy stepsLearn Android app development in easy steps
Learn Android app development in easy steps
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Jaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationJaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based Application
 
Jaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based ApplicationJaipur Bus Finder - An Android-based Application
Jaipur Bus Finder - An Android-based Application
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 
Android article
Android articleAndroid article
Android article
 
Best Frameworks for Android App Development in 2022.pdf
Best Frameworks for Android App Development in 2022.pdfBest Frameworks for Android App Development in 2022.pdf
Best Frameworks for Android App Development in 2022.pdf
 
Evolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s VersionsEvolution of Android Operating System and it’s Versions
Evolution of Android Operating System and it’s Versions
 
Top 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdfTop 10 Android Frameworks for Modern.pdf
Top 10 Android Frameworks for Modern.pdf
 
Blending Creativity and Technology With Android App Development
Blending Creativity and Technology With Android App DevelopmentBlending Creativity and Technology With Android App Development
Blending Creativity and Technology With Android App Development
 
Outstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement AwardOutstanding Improvement Award Outstanding Improvement Award
Outstanding Improvement Award Outstanding Improvement Award
 

Mais de Bill Duncan

Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...
Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...
Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...Bill Duncan
 
Ibm bluemix—from idea to application by karim abousedera
Ibm bluemix—from idea to application by karim abousederaIbm bluemix—from idea to application by karim abousedera
Ibm bluemix—from idea to application by karim abousederaBill Duncan
 
IBM Federal Systems Integrator Forum at InterConnect
IBM Federal Systems Integrator Forum at InterConnectIBM Federal Systems Integrator Forum at InterConnect
IBM Federal Systems Integrator Forum at InterConnectBill Duncan
 
Create software builds with jazz team build
Create software builds with jazz team buildCreate software builds with jazz team build
Create software builds with jazz team buildBill Duncan
 
How DOORS Helps JPL Get to Mars & Beyond
How DOORS Helps JPL Get to Mars & BeyondHow DOORS Helps JPL Get to Mars & Beyond
How DOORS Helps JPL Get to Mars & BeyondBill Duncan
 
Space Quarterly: September 2011
Space Quarterly:  September 2011Space Quarterly:  September 2011
Space Quarterly: September 2011Bill Duncan
 
Tutorial: Create a custom work item in Rational Team Concert
Tutorial: Create a custom work item in Rational Team ConcertTutorial: Create a custom work item in Rational Team Concert
Tutorial: Create a custom work item in Rational Team ConcertBill Duncan
 
How to implement access restrictions to your EA artifacts using Rational Syst...
How to implement access restrictions to your EA artifacts using Rational Syst...How to implement access restrictions to your EA artifacts using Rational Syst...
How to implement access restrictions to your EA artifacts using Rational Syst...Bill Duncan
 
Optimize load handling for high-volume tests with IBM Rational Performance Te...
Optimize load handling for high-volume tests with IBM Rational Performance Te...Optimize load handling for high-volume tests with IBM Rational Performance Te...
Optimize load handling for high-volume tests with IBM Rational Performance Te...Bill Duncan
 
Improve software development project success with better information
Improve software development project success with better informationImprove software development project success with better information
Improve software development project success with better informationBill Duncan
 
Automate document generation from SysML models with Rational Rhapsody Reporte...
Automate document generation from SysML models with Rational Rhapsody Reporte...Automate document generation from SysML models with Rational Rhapsody Reporte...
Automate document generation from SysML models with Rational Rhapsody Reporte...Bill Duncan
 
Automate document generation from sys ml models with rational rhapsody report...
Automate document generation from sys ml models with rational rhapsody report...Automate document generation from sys ml models with rational rhapsody report...
Automate document generation from sys ml models with rational rhapsody report...Bill Duncan
 
Inadequate Security Practices Expose Key NASA Network to Cyber Attack
Inadequate Security Practices Expose Key NASA Network to Cyber AttackInadequate Security Practices Expose Key NASA Network to Cyber Attack
Inadequate Security Practices Expose Key NASA Network to Cyber AttackBill Duncan
 
Integrate Rational DOORS and Rational Team Concert change management
Integrate Rational DOORS and Rational Team Concert change managementIntegrate Rational DOORS and Rational Team Concert change management
Integrate Rational DOORS and Rational Team Concert change managementBill Duncan
 
IBM Rational Harmony Deskbook rel 3.1.2
IBM Rational Harmony Deskbook rel 3.1.2IBM Rational Harmony Deskbook rel 3.1.2
IBM Rational Harmony Deskbook rel 3.1.2Bill Duncan
 
Advanced Rational Performance Tester reports
Advanced Rational Performance Tester reportsAdvanced Rational Performance Tester reports
Advanced Rational Performance Tester reportsBill Duncan
 
Developing service component architecture applications using rational applica...
Developing service component architecture applications using rational applica...Developing service component architecture applications using rational applica...
Developing service component architecture applications using rational applica...Bill Duncan
 
Managing requirements across Analysis and Design phases using System Architec...
Managing requirements across Analysis and Design phases using System Architec...Managing requirements across Analysis and Design phases using System Architec...
Managing requirements across Analysis and Design phases using System Architec...Bill Duncan
 
What's New in Rational Team Concert 3.0
What's New in Rational Team Concert 3.0What's New in Rational Team Concert 3.0
What's New in Rational Team Concert 3.0Bill Duncan
 
Automatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeAutomatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeBill Duncan
 

Mais de Bill Duncan (20)

Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...
Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...
Red Hat Accredited Professional - Red Hat Sales Specialist Infrastructure as ...
 
Ibm bluemix—from idea to application by karim abousedera
Ibm bluemix—from idea to application by karim abousederaIbm bluemix—from idea to application by karim abousedera
Ibm bluemix—from idea to application by karim abousedera
 
IBM Federal Systems Integrator Forum at InterConnect
IBM Federal Systems Integrator Forum at InterConnectIBM Federal Systems Integrator Forum at InterConnect
IBM Federal Systems Integrator Forum at InterConnect
 
Create software builds with jazz team build
Create software builds with jazz team buildCreate software builds with jazz team build
Create software builds with jazz team build
 
How DOORS Helps JPL Get to Mars & Beyond
How DOORS Helps JPL Get to Mars & BeyondHow DOORS Helps JPL Get to Mars & Beyond
How DOORS Helps JPL Get to Mars & Beyond
 
Space Quarterly: September 2011
Space Quarterly:  September 2011Space Quarterly:  September 2011
Space Quarterly: September 2011
 
Tutorial: Create a custom work item in Rational Team Concert
Tutorial: Create a custom work item in Rational Team ConcertTutorial: Create a custom work item in Rational Team Concert
Tutorial: Create a custom work item in Rational Team Concert
 
How to implement access restrictions to your EA artifacts using Rational Syst...
How to implement access restrictions to your EA artifacts using Rational Syst...How to implement access restrictions to your EA artifacts using Rational Syst...
How to implement access restrictions to your EA artifacts using Rational Syst...
 
Optimize load handling for high-volume tests with IBM Rational Performance Te...
Optimize load handling for high-volume tests with IBM Rational Performance Te...Optimize load handling for high-volume tests with IBM Rational Performance Te...
Optimize load handling for high-volume tests with IBM Rational Performance Te...
 
Improve software development project success with better information
Improve software development project success with better informationImprove software development project success with better information
Improve software development project success with better information
 
Automate document generation from SysML models with Rational Rhapsody Reporte...
Automate document generation from SysML models with Rational Rhapsody Reporte...Automate document generation from SysML models with Rational Rhapsody Reporte...
Automate document generation from SysML models with Rational Rhapsody Reporte...
 
Automate document generation from sys ml models with rational rhapsody report...
Automate document generation from sys ml models with rational rhapsody report...Automate document generation from sys ml models with rational rhapsody report...
Automate document generation from sys ml models with rational rhapsody report...
 
Inadequate Security Practices Expose Key NASA Network to Cyber Attack
Inadequate Security Practices Expose Key NASA Network to Cyber AttackInadequate Security Practices Expose Key NASA Network to Cyber Attack
Inadequate Security Practices Expose Key NASA Network to Cyber Attack
 
Integrate Rational DOORS and Rational Team Concert change management
Integrate Rational DOORS and Rational Team Concert change managementIntegrate Rational DOORS and Rational Team Concert change management
Integrate Rational DOORS and Rational Team Concert change management
 
IBM Rational Harmony Deskbook rel 3.1.2
IBM Rational Harmony Deskbook rel 3.1.2IBM Rational Harmony Deskbook rel 3.1.2
IBM Rational Harmony Deskbook rel 3.1.2
 
Advanced Rational Performance Tester reports
Advanced Rational Performance Tester reportsAdvanced Rational Performance Tester reports
Advanced Rational Performance Tester reports
 
Developing service component architecture applications using rational applica...
Developing service component architecture applications using rational applica...Developing service component architecture applications using rational applica...
Developing service component architecture applications using rational applica...
 
Managing requirements across Analysis and Design phases using System Architec...
Managing requirements across Analysis and Design phases using System Architec...Managing requirements across Analysis and Design phases using System Architec...
Managing requirements across Analysis and Design phases using System Architec...
 
What's New in Rational Team Concert 3.0
What's New in Rational Team Concert 3.0What's New in Rational Team Concert 3.0
What's New in Rational Team Concert 3.0
 
Automatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build ForgeAutomatic Proactive Troubleshooting with IBM Rational Build Forge
Automatic Proactive Troubleshooting with IBM Rational Build Forge
 

Último

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Último (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Speed delivery of Android devices and applications with model-driven development

  • 1. Speed delivery of Android devices and applications with model-driven development Skill Level: Intermediate Beery D. Holstein (Beery.Holstein@il.ibm.com) Senior Manager, Rhapsody Product Development IBM 06 Jun 2011 Along with the Android software stack rapidly gaining market share for applications on a variety of devices, embedded product designs are becoming more complex and product lifecycles are shrinking. Efficient development has become essential. This article presents several situations where using model-driven development (MDD) can help developers speed the delivery of Android-based devices and applications. The Android software stack is rapidly gaining market share for applications on a variety of devices, such as smart phones, tablets, televisions, and in-vehicle information and entertainment systems. The diversity of market segments, an explosion in the number of new devices, and the demands of heterogeneous users are forcing device manufacturers and application providers to introduce high-quality, innovative products in shorter time frames. At the same time, shrinking development budgets and a tough economic environment make efficient use of development resources a critical necessity. With embedded product designs becoming more complex and product lifecycles shrinking, efficient development has become essential. The emergence of model-driven development (MDD) has made it possible to accelerate the development process. With MDD, software engineers can more clearly understand and analyze requirements, define design specifications, test system concepts using simulation, and automatically generate code for direct deployment on the target hardware. This article presents several scenarios where using MDD can help developers speed the delivery of Android-based devices and applications. About the Android stack Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 1 of 14
  • 2. developerWorks® ibm.com/developerWorks Android is a software stack for mobile devices. It includes an operating system, middleware, and key applications (see the link to "What is Android" in Resources for more information). The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform, using the Java programming language. These include a device emulator, tools for debugging, memory and performance profiling, and a plug-in for the Eclipse development environment. Figure 1 shows the major components of the Android operating system within the application framework, libraries, Android runtime, and Linux kernel. Figure 1. Major components of the Android software stack Larger view of Figure 1. Android software developers can be classified into two kinds: platform vendors and application developers. • Platform vendors are the companies that combine software and hardware to produce the actual devices. These devices serve as the hosting Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 2 of 14
  • 3. ibm.com/developerWorks developerWorks® environment for smart device applications, at least for the "on-device" portion of the application. (Many such applications also include a server component.) • Application developers are the organizations that create the software that calls upon the services exposed by the Android device ("the platform"). In this categorization, it is important to note that platform vendors frequently want to deliver their devices preloaded with a set of applications so that the devices are useful immediately, as delivered Consequently, it is common for platform vendors to develop applications and to ensure that applications developed by third parties work properly with the device the vendor intended to provide. Model-driven development for embedded systems Models are used to represent a system at higher levels of abstraction, while promoting consistency, accuracy, and precision. Because the models are at a higher level of abstraction than the source code, they permit the construction of views that can answer specific questions about the functionality, structure, or behavior of the system or software. It is important to distinguish between "pictures" and semantic models. A disconnected picture showing a vague concept can be useful, but a semantically deep model that represents details of the relevant aspects of the software can provide huge benefits to the developer and other stakeholders. Specifically, good models are connected to the software so they always represent the actual content of the source, which increases consistency across views and improves communication of the software. The most popular modeling language in the world is the Unified Modeling Language (UML), which has been in use for over a decade with huge success. UML is based on a relatively formal definition, known as a metamodel, which gives the language both precision and scope. UML diagrams provide a view of system aspects by graphically representing the model elements and their relationships. A model that focuses on the functionality and behavior of the application can be used to generate a fully executable application that is ready to be deployed on a specific target, RTOS, middleware, and communication mechanisms (see the two books by Bruce Powell Douglass cited in Resources. Note: IBM® Rational® Rhapsody® is a visual development environment for systems engineers and software developers who are creating real-time or embedded systems and software. The author uses this software to demonstrate some of the concepts involved in model-driven development (MDD) in convergence with the Android SDK for this article. Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 3 of 14
  • 4. developerWorks® ibm.com/developerWorks Converging MDD with Android software development MDD provides several ways to speed up the development of Android devices. This is accomplished through a deeper understanding of Android applications and the Android framework, by updating and creating Android applications, and by connecting the software development to requirements, testing, and planning. These benefits are leveraged from within Eclipse, which is the primary development environment for Android hosts, both the Android SDK and the MDD tools for Android. The Android API as part of the model UML is a powerful language for modeling, but it provides only a generic template of information for systems. Over the years, UML has spawned a number of variants, known as profiles, for specific areas of development. Modeling closer to the relevant domain reduces ambiguity and provides a clearer view of the design intention for colleagues and customers. To facilitate development in the Android domain, the Android Framework is being visualized through a model library that consists of the various packages, classes, and public interfaces found in the Android API and through a profile that encapsulates some of the main Android building blocks as stereotypes. Developers can drag elements from the profile and from the model library into UML diagrams. This enriches the design with API use and guides Android application generation from the model. Figure 2 shows a UML profile and a model library based on the Android API. The profile and the model library are used during visualization, creation, and update of Android applications from within the MDD tooling. This enables developers to use the Android terminology in designs. Figure 2. The Android API visualized through a model library and a UML profile Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 4 of 14
  • 5. ibm.com/developerWorks developerWorks® Developing an Android device involves new code, modifications to existing code, existing code that does not change, and third-party libraries. Existing code and third-party libraries can be visualized in the model, resulting in a graphical representation of their structure and relations using UML class diagrams. Such visualization allows developers to understand different aspects of an existing Android application and to communicate them to various stakeholders, such as customers, managers, architects, other developers, and testers. They can also extract documentation from the model, thereby providing a different aspect of communication. During visualization of an application (and parts of its associated AndroidManifest.xml file), the Android profile and model library are automatically used to identify Android-specific elements, such as activities and services. This results in visualizing not only the application itself, but also its relationship to and its use of the Android API, as shown in Figure 3. Also shown is how MDD is integrated as a plug-in for the Eclipse environment (see the link to Paul Urban's article in Resources), facilitating modeling, coding, and simulation alongside the Android Development Tools (ADT). Figure 3. Visualizing the structure and algorithm of an Android application Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 5 of 14
  • 6. developerWorks® ibm.com/developerWorks Larger view of Figure 3. In addition to providing graphical representation, MDD tools can depict execution of the application inside the graphical environment, which enables a better understanding of the application's runtime behavior. Figure 4 shows how the runtime interactions between elements in an Android application that was instrumented with a code agent are automatically captured during its execution. The interactions are captured to a UML sequence diagram in which the vertical lines in the sequence diagram are elements from the Android application, and the horizontal lines show the invocation of operations between elements. By showing the higher-level abstraction of interactions between several elements in the Android application, the runtime behavior of an application is better understood and better communicated to various stakeholders. Figure 4. Graphical environment provides insight into runtime behavior Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 6 of 14
  • 7. ibm.com/developerWorks developerWorks® Larger view of Figure 4. Creation and updating It is of very little practical value to have diagrams that are not directly connected to the source code. Experience has clearly shown that having two representations of the system semantics, one in the model and the other in the code, quickly diverges so that the model and the code no longer match. Starting with a fresh model or from a model used to visualize an existing Android application, a matched Eclipse-Android project is created by the MDD plug-in, and the project is populated with code generated from the model. This includes the static portion of the models (for example, packages, classes, and operations) and the behavior modeling (state machine). During this process, the Android profile and model library are automatically used to create some of the "glue" code needed to connect the user code to the Android framework. Figure 5 shows code generated from a structural model representation. As developers change the model, the source code is automatically updated. Similarly, if the source code is updated, the model is automatically changed to reflect the new source code contents. This ability to associate the model code associativity promotes agility, because the developer can choose to work either in the model or in the source code, and synchronicity between the two is automatically maintained. Figure 5. Code generated from the structural model Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 7 of 14
  • 8. developerWorks® ibm.com/developerWorks Debugging and testing Although defects are most likely introduced early in the process, they are often found only later on. Moreover, the cost for repairing defects goes up exponentially the later they are discovered. As a result, the challenge is how to find defects closer to the time that they are introduced. If the model correctly depicts the intended functionality and behavior of the application, the model can be brought to life and used to enable early testing and debugging at the model level of abstraction. In Figure 6, an Android simulator is used to execute an application generated from a model. You can simultaneously see the active state highlighted in UML state charts (created by the developer and used earlier in generating the application) and view the UML sequence diagrams that were automatically generated during execution. You can then compare the sequence diagrams to the application's expected behavior, so you can validate proper design operation. You can also compare the automatically generated sequence diagrams to those from a previous execution of the application to identify changes in behavior that might indicate regressions. A model-based testing (MBT) tool can further use the automatically generated sequence diagrams to execute them automatically, thus both driving and monitoring testing. Figure 6. Debugging can be done at the code level and model level Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 8 of 14
  • 9. ibm.com/developerWorks developerWorks® Larger view of Figure 6. Collaboration Developing Android devices and applications can involve managing host system development, legacy application maintenance, hardware development, and more. Managing the integration of these different domains introduces complexity and requires that a holistic view of the architecture be available to development teams working independently on these different domains. The complexity of Android devices leads to increasing challenges in managing joint development lifecycles, testing sequences, and rollouts, and in monitoring and managing these systems after they are delivered. The challenge is further expanded by the large number of distributed teams, which often include agencies, contractors, OEMs, and suppliers. Continuous validation and verification is fostered by combining requirements, models, quality management, and project monitoring, as shown in Figure 7. The models are made centrally accessible to the entire team and become the source of the entire design. A demo on YouTube (see references) shows how Rational Team Center is leveraged for project planning and monitoring. Figure 7. Collaboratively managing delivery of a smart device or application Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 9 of 14
  • 10. developerWorks® ibm.com/developerWorks For example, as Figure 8 shows, MDD can be used to better understand requirements by visualizing them in the model. The requirements are stored in the model, and their relationship to design elements and test cases can be created, thereby helping to provide traceability information within the model. This, in turn, can be used during testing to produce requirements a coverage matrix and reports. The information from the requirements, such as the ID or specification, can be automatically generated into the Android application code to enable traceability from requirements, design in the model, and implementation in code. Figure 8. Requirements as part of the model Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 10 of 14
  • 11. ibm.com/developerWorks developerWorks® Larger view of Figure 8. Conclusions Combining MDD capabilities with the Android development environment can help improve productivity, as well as time to market, plus reduce costs. Aside from providing a convenient single environment for both Android coding and modeling, it offers developers visual specification of design requirements. Moreover, the framework can be used to visualize existing Android applications, thereby offering insight into their structure and behavior. The use of models that connect the requirements, design, and code also simplifies documentation and enables the document to be automatically generated. After the model has been created within the Android development environment, Android applications can be automatically delivered. In addition, the model can be used to execute the design, providing validation and allowing defects to be discovered early in the design's lifecycle. This execution also offers automated software unit and regression testing for improved quality of code. The integrated environment is also a vital factor in enabling collaboration among distributed teams and across development organizations. Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 11 of 14
  • 12. developerWorks® ibm.com/developerWorks Resources Learn • Cited in this article: • Krasner, Jerry. What Do You Do When the Horse You're Riding Drops Dead? Why Model Driven Design is Emerging as a Preferred Best Practice. A white paper published by Embedded Market Forecasters, a division of American Technology, Inc. (2007). • What is Android? Android Developers website. The Android Architecture diagram in Figure 2 is from the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. • The Eclipse Foundation. • Getting Started with UML, UML Resource Page, Object Management Group website. • Douglass, Bruce Powell. Real-Time UML Workshop for Embedded Systems. Newnes (2006). • Douglass, Bruce Powell. Real Time UML: Advances in the UML for Real-Time Systems (3rd Edition). Addison-Wesley Professional (2004). • Urban, Paul. Combining Code Development, Modeling, and Simulation with Eclipse, Dr. Dobb's Journal (October 2009). • To learn more about using Rational Rhapsody Developer for collaborative, model-driven development for embedded systems, start with these overviews: Introduction to Rational Rhapsody, the Rational Rhapsody Developer product page, and the Rational Rhapsody page on IBM developerWorks. Explore the various versions, too: • IBM® Rational® Rhapsody® Architect for Software, a visual development environment for embedded systems and software • IBM® Rational® Rhapsody® Architect for Systems Engineers • IBM® Rational® Rhapsody® Designer for Systems Engineers • IBM® Rational® Rhapsody® Developer edition. This edition is required for Eclipse users and editions are available to create specialized projects in C, C++, Java, and Ada languages. • Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products. Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 12 of 14
  • 13. ibm.com/developerWorks developerWorks® • Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics. • Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends. • Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers. • Watch the Rational Solution for Android mobile application development demo on YouTube. • Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the "Getting Started" ones are free. Get products and technologies • Download Rational Rhapsody Developer and try it free for 30 days. • Evaluate IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently. Discuss • Join the discussion in the Rational Rhapsody forum. • Share your knowledge and help others who use Rational software by writing a developerWorks article. You'll get worldwide exposure, RSS syndication, a byline and a bio, and the benefit of professional editing and production on the developerWorks Rational website. Find out what makes a good developerWorks article and how to proceed. Start by finding out what makes a good developerWorks Rational article. • Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests. • Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis. • Connect with others who share your interests by joining the developerWorks community and responding to the developer-driven blogs. About the author Beery D. Holstein Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 13 of 14
  • 14. developerWorks® ibm.com/developerWorks Beery Holstein has more than 20 years experience in developing software engineering tools and over a decade of experience with developing Rhapsody, an MDD tool for the embedded, real-time software development industry. He was one of the first members of the team that developed Rhapsody, before it became part of IBM Rational software (i-Logix and then Telelogic). Beery is now managing the development of the core product, including among other things, the code generation, reverse engineering, and round-trip capabilities that underlie support for Android. Speed delivery of Android devices and applications with model-driven development Trademarks © Copyright IBM Corporation 2011 Page 14 of 14