IBM® Rational® Software Analyzer is an automated code quality framework that helps you measure and improve the quality of applications through the development lifecycle. The high costs associated with field software defects are driving companies to identify and address defects earlier, while the software is still in development, because fixing problems later costs more.
Rational Software Analyzer includes a central framework that can integrate third-party code analysis tools with reporting capabilities for governance and compliance, as well as automated integrations with other IBM Rational products, such as IBM® Rational® Application Developer Version 7.5 and IBM® Rational® AppScan® Developer Edition. It is a simple but powerful tool for teams that want to automate code quality analysis and deliver better-quality software. Version 7.1 is enhanced by several significant new features:
- Integration with IBM Rational Team Concert, which runs on the Jazz platform
- Deeper analysis for C/C++ languages
- Technology support updates
Integration with Rational Team Concert
Rational Software Analyzer seamlessly integrates with Rational Team Concert and adds continuous quality checks, automated code scans, and visibility into overall code quality for improved enforcement of best practices. This assists in optimizing agile development and achieving other goals:
- Optimize development and ensure code quality policy adherence through the integration of automated code quality reviews throughout the development lifecycle
- Improve management visibility into the health of development projects by leveraging the ability to manage code reviews, metrics, and measurements
- Break down barriers and improve communication between developers and business stakeholders through the collaboration benefits of Rational Team Concert
- Improve end-user satisfaction, while driving down maintenance and development costs
- Increase team performance through learned best practices and team collaboration
Optimize development by automating code quality reviews early
Timely, accurate communication among disparate teams is critical to controlling project timelines, risks and costs. That's why it is critical to implement governance and compliance as early as possible and to make sure that consistent code review processes are followed throughout the organization.
Rational Software Analyzer, coupled with Rational Team Concert, provides those stakeholders with an automated way to insert code quality policies and standards throughout the development and delivery processes. This, in turn, helps development teams detect — and, in most cases, correct — problems during the coding phase. Think of it as spelling and grammar checking for people who write code. Using these two tools together adds these capabilities:
- A rich set of included programming rules that development teams can use to review code
- An extensible framework for development teams to create custom rules and reports to help enforce your company's coding practices (see Figure 1), as well as to plug in other analysis products for centralized management of third-party products
- Automated and centralized code scans that incorporate code quality analysis into existing build processes, thereby adding an additional layer of static analysis quality checks
- Greater ability to manage code review, measurements, and metrics to determine overall health of development projects
Figure 1. Rational Team Concert view of Rational Software Analyzer enforcing a configured rule
Enhance collaboration between developers and stakeholders
Integrating Rational Software Analyzer and Rational Team Concert encourages collaboration. By making it easier to share best practices and adhere to quality policies, you also improve the performance of the team. Aside from the likelihood of improving the quality of the code, using this combination provides several benefits:
- Automated monitoring of the code review process. Teams can insert code quality reviews into the software development process, and then use Rational Software Analyzer to configure code quality rules in their own integrated development environments (IDEs). This simplifies the process and enables developers to produce higher-quality code, regardless of their levels of development expertise. Plus, managers can track the progress of each developer's adherence to code policies by using preconditions set by the Rational Team Concert administrator through rules configured in Rational Software Analyzer (see Figure 2).
- Collaboration. By using shared data rule sets, teams can better collaborate and share information that is essential for meeting corporate coding standards.
- Incremental analysis. This approach looks at previous scans and analyzes only the code that has been changed since the previous analysis, thereby dramatically reducing the time required to identify code quality issues.
Figure 2. Integration helps teams collaborate and share preconfigured rule sets
Deeper analysis for C/C++ languages
With the addition of more C/C++ rule sets, the multi-language analysis capabilities are stronger in Version 7.1, too. This means that Rational Software Analyzer now delivers a strong set of analysis capabilities across the most widely used languages. The use of one tool to effectively analyze multiple language code bases results in substantial advantages:
- Increased quality
- Reduced development and testing costs
- Faster time to market
- Increased customer revenues
If you are looking for broader and deeper analysis of your C/C++ code can now dive even deeper into the analysis of your code through automated scans, without having to make any changes to your code. This deep analysis for C/C++ provides parity with the Java™ rules and produces a complete understanding of your C/C++ source code, as Figure 3 shows. This deep analysis includes these categories:
- Data flow analysis examines compiled code to identify potential memory and resource problems. Data flow analysis can examine problems that span multiple classes. For example, one class may open a stream and pass it to another class to read information from a file. If neither class closes the stream, the result will be a file resource leak. (See Figure 3.)
- Architectural discovery examines the relationships between different source files (typically classes) to build a map of the overall architecture of a program. Dependency tools are commonly used to discover known design patterns (good) or common anti-patterns (bad).
- Software metrics and complexity analysis tools compare program code to established software metrics to determine whether it is unnecessarily complex. If a particular piece of source code exceeds a given threshold, it is flagged as a candidate for refactoring to improve maintainability.
Figure 3. C/C++ Data flow analysis snapshot
Technology support updates
Operating system support updates
Rational Software Analyzer 7.1 now supports the following operating systems:
- Microsoft® Windows® XP Professional with Service Pack 1 or 2
- Microsoft® Windows Vista® Business, Windows Vista Enterprise, and Windows Vista Ultimate
- Microsoft Windows 2003 Server with Service Pack 2 (32-bit mode)
- Microsoft Windows 2008 Server with Service Pack 2 (32-bit mode)
- Red Hat Enterprise Linux® Server Versions 4.0 and 5.0 (32-bit mode)
- Red Hat Enterprise Linux Desktop Versions 4.0 and 5.0 (32-bit mode)
- SUSE Linux Enterprise Server (SLES) Versions 9 and 10 (32-bit mode)
- SUSE Linux Enterprise Desktop (SLED) Versions 9 and 10 (32-bit mode)
- IBM® AIX® Version 5.3
These operating systems support all of the languages that Rational Software Analyzer supports.
Software requirements for extending an existing Eclipse IDE
IBM Rational Software Analyzer 7.1 was developed for use with Version 3.4.2 of the Eclipse IDE. Therefore, you can extend only an existing Eclipse Version 3.4.2 IDE with the latest updates from eclipse.org.
To enable Windows Vista users who do not have Administrator privileges to work with Rational Software Analyzer, do not install SUSE Linux Enterprise Service 10, Service Pack 2 (see IBM® System z®: S390x).
- Browse the Rational Software Analyzer Information Center and compare the Enterprise and Developer editions.
- Explore the Rational Software Analyzer on IBM® developerWorks® for more about how this extensible software can help you review software code, identify bugs, and enforce policy early in the software development cycle.
- Learn how Rational Team Concert enables real-time collaboration that makes software teams more transparent and productive by providing work item, change management (SCM), and build management support, in addition to all of the capabilities of the Jazz platform.
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Learn about other applications in the IBM Rational Software Delivery Platform, including collaboration tools for parallel development and geographically dispersed teams, plus specialized software for architecture management, asset management, change and release management, integrated requirements management, process and portfolio management, and quality management.
- Explore Rational computer-based, Web-based, and instructor-led online courses. Hone your skills and learn more about Rational tools with these courses, which range from introductory to advanced. The courses on this catalog are available for purchase through computer-based training or Web-based training. Additionally, some "Getting Started" courses are available free of charge.
- Subscribe to the Rational Edge newsletter for articles on the concepts behind effective software development.
- Subscribe to the IBM developerWorks newsletter, a weekly update on the best of developerWorks tutorials, articles, downloads, community activities, webcasts and events.
- Browse the technology bookstore for books on these and other technical topics.
Get products and technologies
- Download the free trial version of Rational Software Analyzer.
- Download trial versions of other IBM Rational software.
- Download these IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Tivoli®, and WebSphere®.