Rational - Taking Software Design and Development to the Next Level


Published on

A whitepaper commissed by IBM on software design and development, written by consultant Ron Gruia.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Rational - Taking Software Design and Development to the Next Level

  1. 1. Rational: Taking Software Design and Development to the Next Level Written by Ronald Gruia, Principal Analyst - Emerging Telecoms
  2. 2. TABLE OF CONTENTS INTRODUCTION: WHERE ARE WE? .............................................................. 3 Current Challenges in Software Development ................................................. 3 Why are These Challenges Important? ............................................................. 4 ADDRESSING THE CURRENT SOFTWARE DEVELOPMENT CHALLENGES ..................................................................... 5 Addressing Design Challenges .......................................................................... 5 Tackling Development Issues ........................................................................... 6 IBM’S APPROACH TO SOFTWARE DEVELOPMENT AND DESIGN ............. 7 Rational Software Architect ............................................................................ 7 Rational Application Developer....................................................................... 9 HOW IBM STACKS UP AGAINST THE COMPETITION ................................ 11 CONCLUSIONS .............................................................................................. 11 ABOUT THE AUTHOR.................................................................................... 13 2 Frost & Sullivan
  3. 3. INTRODUCTION: WHERE ARE WE? In the fast-paced world of software development, change is permanent as businesses constantly strive for competitive differentiation through software-driven innovation. Therefore, it is natural to see development teams strive to keep up with the latest technologies, methodologies and trends. In the quest to build solutions efficiently and rapidly deliver them to their customers, architects and developers are driven to considering and utilizing multiple technologies. A parallel trend to accelerating the pace of projects is pressure to reduce the cost of software development. With the advent of rapidly improving frameworks, tools, components and Web service APIs, software can be built not only faster, but also cheaper. The concurrent pursuit of faster and cheaper software development presents gaps between concept and realization, as there are many areas that require a substantial improvement in order to enable developers to attain these goals. Current Challenges in Software Development The current pain points being felt by the software developer community can be categorized in two groups, as shown in Figure 1 below: Figure 1—Current Challenges in Software Development 1. Architecture/design—concerns in this area include: • Management of complex software and IT: IT applications can be extremely complex, sometimes linking disjointed, heterogeneous back-end systems and producing a human consumable solution. Such complexity requires a structure and language to allow designers to simplify the development task. This is ideally done through the abstractions provided via software architecture practices. Deployment can often be an intricate and cost-intensive task that can be further aggravated by the knowledge gap between development and operations; this results in apps that do not fit the infrastructure in which they must run, known solutions that cannot be reused, and the fallback to manual deployments or home-grown scripts Frost & Sullivan 3
  4. 4. • Agile development: move toward agile development and short-term ROI, which draws away from a business’ focus on modeling and architecture bridging the gap between development and operations teams; the challenge is having a good tool to help enforce a small, controllable development/release/test cycle and to encourage good communication across the teams • Handling BSS evolution: managing the transition to next-gen large business support systems is sine-qua-non, with more business functions being automated; this requires defining engineering processes, information (in a common fashion), systems to implement processes, interfaces between the systems and the way these systems plug together (architecture) • Standards support: embedded support for industry-specific standards and the availability of packages enabling functionality such as real-time communications is also a key requirement that is lacking in some integrated development environments; there is a growing demand for support of specifications such as Parlay, protocols such as SIP, and frameworks such as TM Forum’s NGOSS 2. Construction/development—issues in this category include: • Cost effectiveness: software developer environments typically lack a good entry-level price, which hinders a wider adoption; most offerings are fully featured packages that have a higher initial price • Web 2.0 support: developers are increasingly in need of tools that offer a rich development, debugging and profiling experience designed for the Web; therefore, development environments need to be able to extend SOA and Java EE assets to the glass via JSF (JavaServer Faces) and DOJO Toolkit (open source JavaScript library) apps • Better service composition: solutions have to enable the assembly of Web services and SCA (Software Communications Architecture) components into heterogeneous business applications • Software code quality: developers need to rely on an environment that is conducive to a better coding consistency, being capable to perform automated quality checks, and behavior and performance analyses of software as it executes Why are These Challenges Important? A software development solution portfolio that addresses the above challenges can be instrumental in driving the following: • Higher developer productivity: up to eight times greater than the industry average • Lower project lead times: reductions of up to 70 percent are feasible • Reduction in total development cost: a drop of 70 percent in total costs can be attained • Improvement in software quality: 3 to 3.5 times better than the industry average Frost & Sullivan 4
  5. 5. • Increase in customer satisfaction: not uncommon to witness a satisfaction of 4.9/5 • Improve team morale/satisfaction: developers recognize the importance of their contributions More importantly, solutions tackling the key current issues in software development will certainly resonate well with the developer community, helping it keep current with the advent of the latest industry advances, including cloud computing, the Web as a platform and the agile development process, among others. ADDRESSING THE CURRENT SOFTWARE DEVELOPMENT CHALLENGES Addressing Design Challenges Looking from an architectural perspective, existing state-of-the-art modeling and development environments typically rely upon UML (Unified Modeling Language) for designing architecture for C++ and JEE (Java Enterprise Edition) applications. Modeling in UML can even be done for applications that will be implemented in Microsoft’s Visual Studio suite using C# .Net, as design teams look to start using more standardized methods of representing their solution. Model simulation is a key requirement in order to test and validate a developer’s architecture, and that can be achieved via model execution via UML behaviors, topology traces, ability to step through break points, restart/suspend/resume execution and to inject values. A feature that sets modeling and development environments apart is the ability to support vertical industry frameworks such as: • Telecom: SIP, Parlay X and NGOSS • Financial ser vices: IAA (Insurance Application Architecture) and IFW (IBM Information Framework) • Federal government: DoDAF 2 (U.S. Department of Defense Architecture Framework 2), including PES import-export The modeling for these vertical sectors is further aided by UPIA (UML Profile for Integrated Architectures) support, which enables rich graphical representations of business-level and environmental concerns that can be interconnected to requirements and representations of solution architectures. Data can be imported to UPIA from CSV (Comma Separated Value) files and spreadsheets. One key intangible for a modeling and development environment is the integration with other software configuration management and version control tools. Smarter IT deployment planning can be achieved via communication and validation of IT deployments to avoid costly problems late in the application lifecycle. It is important to also be able to reuse known solutions and define building blocks to speed up the creation of deployment topologies. Some of these topologies can be created from “live” configuration data. Frost & Sullivan 5
  6. 6. Another important area is the emerging practice of agile modeling. Although it was initially frowned upon by purists, just-enough-modeling or informal sketching is now accepted as the best way to ensure software development is undertaken with due diligence and the solution can withstand the vigor of software governance. Furthermore, a new domain where modeling is helping to address some challenges is the DevOps area, where the “deployment modeling” initiative strives to align and streamline the organization, enhance clear specifications and communication between architects and IT infrastructure teams and its processes to enable iterative application delivery more rapidly, and to support greater development and business agility. By embracing this philosophy, a model and development environment is better equipped to bridge the gap between the “development” and the “operations” sides of the IT family, and to quickly adapt to change in an efficient and cost-effective manner. Tackling Development Issues From a software construction/development standpoint, a fundamental requirement for current IDEs (Integrated Development Environments) is the reduction of repeatable tasks via wizards, visual programming and editors that can help during the software construction process. The rationale is to maximize programmer productivity by delivering tightly-knit components with similar user interfaces so that the developers perform less mode switching compared to when they utilize discrete development programs. Another aspect that is often overlooked is the ease of migration of software applications from one version to another. It is essential to be able to support the developer to migrate his/her application to a different technology specification or application server to make use of performance and efficiency enhancements. In other words, to empower the programmer to take advantage of the latest technology, while still supporting older versions of applications in production. Because an IDE is by its own nature a rather complex piece of software, a lot of the productivity gains only materialize after a prolonged learning process, so making the new improvements easier to learn, faster to implement and with fewer bugs is a key distinguishing factor among all IDE solutions. Most IDEs typically include tools for deploying an enterprise application to a local or remote server, including test environments that enable developers to test their applications locally before publishing it to a production server such as IBM WebSphere Application Server. A key feature is the tight integration with the production-hosting environment or application server, which is a sine-qua-non requirement to simplify complex implementations. Good visual tools not only simplify development but also promote a better code understanding and accelerate the completion of applications. Another differentiator is the support for frameworks such as OSGi, which relies on Java and is now used in applications such as fleet management, grid computing, and mobile phone value-added services, among others. Frost & Sullivan 6
  7. 7. Finally, a host of other important considerations include full solution support, including documentation, 24x7 one-on-one or self-help, and the provisioning of test servers (e.g., Ajax test server) to rapidly preview Web pages, including images, scripts, services and data, and ease the adoption of Web 2.0 technologies. IBM’S APPROACH TO SOFTWARE DEVELOPMENT AND DESIGN IBM is one vendor offering a software development and design solution set that addresses these key issues currently being faced by most programmers. The company is delivering a couple of recently upgraded products tackling the challenges discussed thus far in this paper. Rational Software Architect The latest release of Rational Software Architect V8 features a new pricing and packaging scheme, with a lower-priced entry-level product that can be enhanced with separately purchasable extension offerings. This reduces one of the barriers to adoption of modeling and development environments, which is cost, and enables developers to better match their purchases to the specific implementation they are trying to achieve. This is illustrated in Figure 2 below: Figure 2—Rational Software Architect New Pricing & Packaging Scheme Frost & Sullivan 7
  8. 8. V8 of Rational Software Architect also delivers a dramatic simplification of user experience, usability and performance improvements over prior versions. The resulting ease of use, improved performance on large models and the ability to install only the necessary features contribute to an improvement in productivity. The simplified UI does not expose as much of the underlying Eclipse platform by default, which allows users to configure a workbench environment that is better suited to the activities of creating and managing architectures and designs rather than Java code or Eclipse extensions. Rational Software Architect’s model simulation empowers developers to test and validate their architecture right at the design and conceptualization stage. This is a key differentiator as some other competitive products such as No Magic’s MagicDraw and Sparx Enterprise Architect only identify design errors later in the design cycle, when they are costlier, and the implementation ends up diverging from the design due to weak behavioral code generation. Another value-add is the integrated architecture framework delivered by Rational Software Architect, which includes: • UPIA profiles for representing business/mission-level concerns • Structured data importer—capture mission/business-level information from worksheets or CSV; generate UPIA models from it; generate diagrams and reports from those models for impactful, audience-appropriate communication of that information; and connect the business drivers to solution architectures to help ensure business-aligned IT delivery outcomes Rational Software Architect also embraces the DevOps philosophy, scaling to very large models and teams, and aiding a closer collaboration between developers and operations through deployment planning diagrams, which can be used as a first step toward automating and managing complex, cumbersome deployments. This compares favorably to Sparx Enterprise Architect and MagicDraw, which offer poor team collaboration (only on package level, with weak performance of configuration management operations via XMI). One strong suit for Rational Software Architect lies in its extensive focus on vertical industries, with various packages made available to support applications for telecoms, financial services and the government sector. These integrated architecture frameworks allow a developer to quickly ramp up on the different requirements for a particular segment and model complex processes via UPIA. In other words, Rational Software Architect provides an extensible environment capable of supporting additional architecture frameworks and their respective iconographies, queries, views and reports. Examples include the following: • Telcos: SIP, Parlay X and NGOSS • Financial services: Supports IBM industry models (IAA, IFW) • Federal/DoD: DoDAF 2, including PES import-export Frost & Sullivan 8
  9. 9. As an example, a developer can easily incorporate real-time communications functionality to his IT application via the Rational Software Architect package. He could, for instance, design call flows, servllets and tests, in addition to visualizing SIP network traffic for CEA-enabled products (e.g., VoIP and IPTV). Or he could add enablers such as texting, location, presence and other Web services in his CEA product via Parlay X support. Alternatively, he can also design SOA solutions geared toward helping telcos manage their business, based upon the TM Forum NGOSS specification. Rational Application Developer The latest release of V8.0 continues the tight integration with WebSphere Application Server that includes integrated test environments and special feature packs supporting Web 2.0, SCA (Service Component Architecture), CEA (Communications Enabled Applications), OSGi, XML and Web Services, among others. The migration process is seamless, and developers are able to port their apps to the latest servers and specs. Rational Application Developer simplifies the Web 2.0 development via source-level tools that aid with JavaScript and dojo development. It also exposes server-side assets as Web 2.0 consumable services and allows for the development of Web 2.0 pages. A lightweight Ajax test server can quickly preview Web pages that include images, scripts, services, and data. Rational Application Developer also increases productivity through editors that provide assistance as developers create their code by looking up APIs for what they’ve typed, suggesting ways to complete the code they are writing, validating the code before testing, and proposing solutions to errors in the code. Rational Application Developer provides a comprehensive set of testing tools for a complete development lifecycle, unlike competitors such as MyEclipse Blue. At the heart of Rational Application Developer is a tight integration with the WebSphere Application Server (WAS), via a variety of visual tools that simplify iterative and incremental development, as depicted by Figure 3 below. Programmers can run and test code at a click of a button, validate applications and enjoy team collaboration via integration with Rational Team Concert. More importantly, Rational Application Developer enforces best-practice and code quality rules and offers integrated middleware test environments that allow developers to conduct quick system integration testing. The fact that Rational Application Developer is optimized for WebSphere Application Server allows developers to leverage their investment with the tools pre-built for the targeted application server. Frost & Sullivan 9
  10. 10. Figure 3—Rational Application Developer: At the Core of Agile Development for the WebSphere App Server Rational Application Developer embraces agile development principles by integrating human collaboration with actual activity on machines, providing a way for businesses to bridge the communications gap. Rational Application Developer integrates with IBM’s collaborative application lifecycle management solution, Rational Team Concert, to provide industry-unique capabilities such as “collaborative debugging,” which allow geographically dispersed team members to troubleshoot applications at their convenience as they hand “debug sessions” back and forth. This is in addition to the IDE-integrated work management and source-code management capabilities that are brought about as a result of Rational Tem Concert and Rational Application Developer integration. Other Rational Application Developer benefits include support for the cloud, as the desktop IDE can provision and work with WebSphere Application Server instances on the cloud. A SaaS (Software as a Service) Tech Preview flavor of Rational Application Developer is available in the public cloud. Last but not least, Rational Application Developer is mission- critical ready, with 24x7 and 5+3 years of unparalleled support. This support, one of the strong suits for the product, is superior when compared to competitive open source products and lower-cost IDE alternatives that provide end-users only with minimal documentation and support consisting of only a FAQ list and community postings. Frost & Sullivan 10
  11. 11. HOW IBM STACKS UP AGAINST THE COMPETITION Key intangibles of IBM Rational Software Architect & Rational Application Developer Offerings The main differentiators for Rational Software Architect include: • UML: best in class, robust UML semantics and notation, open solution (based on Eclipse) • Deployment planning and automation • Model validation: strong, open and extensible • Code generation and extensibility: provides a wide array of built-in generators based on UML; extensive support for authoring custom model-to-model and model-to- text (code) transformations • Team modeling/scalability: scales to very large models and teams; comprehensive graphical model compare-merge • Heterogeneity: open standards-based platform-independent modeling as well as platform-specific MDD support for Java/JEE, (Linux-Unix) C++, .NET/C#, EGL… solutions deployable to a wide range of platforms The key differentiators for Rational Application Developer include: • Tight WebSphere Application Ser ver Integration: Rational Application Developer offers the most comprehensive development environment for WebSphere Application Server • Java EE, EJB, JPA and Web Services support: Rational Application Developer has best-of-breed tools for improving the developer productivity for Java EE • SOA: best-of-breed Web services support (JAX-WS, JAX-RPC), SCA tools • Web 2.0: adds support for dojo, content assist, validation, drag and drop in visual editor, support for WebSphere Web 2.0 Feature Pack • Code quality tools: static analysis, line level code coverage, runtime analysis and profiling support on WebSphere Application Server • Portal/Debugging/J2C: best-of-breed portal and portlet tools (including visual design), extensive debugging capabilities (mixed language, DB2, stored procedure, step- by-step, XSLT), support for accessing data and operations on EIS systems, and a host of WebSphere adapters • Documentation: comprehensive documentation delivered online or locally • Collaborative development: Rational Team Concert integration (Rational Team Concert views integrated into Rational Application Developer perspectives), collaborative debug CONCLUSIONS As Thomas Friedman wrote in his best-seller “The World is Flat,” “…Introducing new technology alone is never enough. The big spurts in productivity come when a new technology is combined with new ways of doing business.” Frost & Sullivan 11
  12. 12. In this white paper, we discussed the ongoing challenges faced by software developers from both an architecture/design standpoint and a construction/development perspective. We then examined the IBM approach to these issues and the key intangibles of its IDE and MDE products. In addition to these differentiators, we also highlighted how both solutions embrace the new “agile development” philosophy. This orchestration of both automated and human-centered tasks provides more consistency and predictability to the overall design and production process, leading to reduced error rates, less rework, shorter cycle time and lower expenses required to bring a software product to general availability. As software companies increasingly focus on new ways to drive programmer productivity, we believe IBM is well-positioned to capture a leading mind share in the IDE and MDE space by providing developers with its latest release of Rational Software Architect and Rational Application Developer. Frost & Sullivan 12
  13. 13. ABOUT THE AUTHOR Ronald Gruia is the Principal Analyst for Emerging Telecom at Frost & Sullivan. His main focus areas include NGN migration strategies, IMS (IP Multimedia Subsystems), 4G (LTE, WiMAX), FMC, VoIP, Next-Gen Carrier Messaging Platforms, IPTV, Triple Play Services, Application Enablement, Software Development, Enterprise Communications Systems and Unified Communications, among others. He has authored several reports, managed subscriptions, and has also led and played a key role in strategic consulting projects in these areas. Since joining Frost & Sullivan in February of 2001, Mr. Gruia has spoken at conferences such as Supercomm, VON, 3GSM, CTIA (IMS Summit), IMS Expo, Futurecom (Brazil), IP Comm, Fierce IPTV, Intel Communications Summit, IMS World Forum, TMIA, VMA, VON Canada, IP World Canada and Comdex Canada. He also writes articles for various publications (such as IMS Magazine, VoIP Magazine, Telecommunications Magazine and Telemanagement), has appeared on CNBC (U.S.), BNN, Report on Business Television and TechTV (Canada), Decision TV (Brazil) and Telecom TV (UK), and has been quoted in publications such as Business Week, Financial Times, Forbes, Wired, API, DJ Newswire, Reuters, MarketWatch, Network World, IT Business, IT World, Los Angeles Times, San Jose Mercury News, Wireless Week, National Post, San Jose Mercury News and CIO Magazine. Mr. Gruia is an MIT graduate in electrical engineering and has accumulated years of experience in the telecom industry, having held several roles at Nortel Networks' Enterprise Division, where he earned a U.S. patent. He also possesses years of experience in all aspects of the software development cycle, including programming, code review, unit/system testing, and SCM (Software Configuration Management). He fluently speaks Portuguese, Spanish and Romanian and has working knowledge of Italian and French. This paper is part of the ongoing coverage of worldwide ICT (Information and Communications Technologies) markets by Frost & Sullivan (www.frost.com), an international growth consulting company. Working closely with our clients, we use advanced market research methods to identify and analyze the critical market challenges they must address to become successful competitors in their industry. Frost & Sullivan 13
  14. 14. Silicon Valley 331 E. Evelyn Ave. Suite 100 Mountain View, CA 94041 C O N TAC T Tel 650.475.4500 Fax 650.475.1570 US San Antonio 7550 West Interstate 10, Suite 400, San Antonio, Texas 78229-5616 Tel 210.348.1000 Fax 210.348.1003 London 4, Grosvenor Gardens, London SWIW ODH,UK Auckland Tel 44(0)20 7730 3438 Bangkok Fax 44(0)20 7730 3343 Beijing Bengaluru 877.GoFrost Bogotá myfrost@frost.com Buenos Aires http://www.frost.com Cape Town Chennai Colombo Delhi / NCR Dhaka Dubai Frankfurt Hong Kong Istanbul Jakarta Kolkata Kuala Lumpur London Mexico City Milan Moscow Mumbai Manhattan Oxford Paris ABOUT FROST & SULLIVAN Rockville Centre San Antonio Frost & Sullivan, the Growth Partnership Company, partners with clients to accelerate their São Paulo growth. The company's TEAM Research, Growth Consulting, and Growth Team Seoul Membership™ empower clients to create a growth-focused culture that generates, Shanghai evaluates, and implements effective growth strategies. Frost & Sullivan employs over 50 Silicon Valley years of experience in partnering with Global 1000 companies, emerging businesses, and the Singapore investment community from more than 35 offices on six continents. For more information Sophia Antipolis about Frost & Sullivan’s Growth Partnership Services, visit http://www.frost.com. Sydney Taipei Tel Aviv For information regarding permission, write: Tokyo Frost & Sullivan Toronto 331 E. Evelyn Ave. Suite 100 Warsaw Mountain View, CA 94041 14