RSM Version History

As a service to our users, we provide a complete version history of Resource Standard Metrics. We strive to create the highest quality software and appreciate any feedback users may have about our products. Many of the features in RSM were influenced by either custom additions for end users or suggestions for which we saw a mutual benefit to the product.

6/24/2001
Version 6.01
- Parser enhancement for identifying missing scope for
  the "do" key word.

6/14/2001
Version 6.00
- Complete Extensive Regression Testing and code testing
  across Windows 2000, Solaris 8 and Red Hat 7.1
- Major functionality and Code Baseline Enhancements
- RSM, by default, no longer sorts by entity name, this
  now must be specified using the -k option.  This increases
  performance of the product.
- RSM parser algorithms enhanced for stability and speed.
  Performance increase of general parsing is increased by 12%.
- Modified User Interface, collapsing menus and adding 
  additional functionality.
  Effected Options, -A -h -k -R -T -w
  Added Menus Options: -wd, -wf -Tw
- Inheritance tree calculations modified to handler di-cyclic
  graphs of multiple inheritance.
- Added configuration File option to performs:
  Relative work file locations (default).
  Include or Not Equal Files in Work differential files.
- Reworked template scoping for highly complex template syntax
- Unified formatting of class template and function template lines
- Added new class and interface acquisition algorithm
- Reformatted inline methods
- Formatted Template lines
- Added active struct metrics similar to class metrics
- Updated Help Text
- Changed license decryption algorithm (requires new licenses
  for users with maintenance, email support)

1/15/2001
Version 5.59
- Added command line error indication
- Updated Visual Studio DSW/DSP parser for relative projects
- Fixed allocation of functions to nested classes when
  the nested classes did not exist in a namespace
- Removed the class header line from the class metrics to 
  match the metrics for the function. Metrics begin at scope
  and end at scope, inclusive.

1/10/2001
Version 5.58
- Copyright updates and parser table updates

12/20/2000
Version 5.57
- New Visual Studio Workspace and Project reader
- Enhanced user interface when using the -O mode 
- Maintenance release for anomalous operation

11/17/2000
Version 5.56
- Added progress meter when using -O for file output 
- Maintenance fix for MS specific syntax

11/14/2000
Version 5.55
- Bug fix for Java adjacent C comments of the form /*  *//*  */

11/01/2000
Version 5.54
- Added the capability to turn off file extension checks
  for RSM processing thus allowing RSM to process any 
  file via the RSM.cfg file.  However, RSM is designed
  to process C, C++ and Java compilable files.  Performance
  with other files like script, SQL and HTML is undefined
  and unsupported.

10/10/2000
Version 5.53
- Bug fix for function names when the prolog is in the 
  following form and there are non-printable ASCII characters
  following the function name.  This has been shown to be
  an issue with tool generated source code.
  void
  foo
  ( ...

9/1/2000
Version 5.52
- Added sorting by state (new, modified, equal, removed) for
  metrics differential report.

08/31/2000
Version 5.51
- Fixed a bug in parsing the MS Visual Studio .dsw file
- Enhanced the metrics differential report by adding a state
  profile      

08/23/2000
Version 5.50
- Added the -O option to route RSM output to a file.
- Added quality notice #43, Identifies the use of the keyword
  'continue' within the source code.
- Added quality notice #44, identify the use of the keyword
 'break' outside of the 'switch' block.
- Added the capability to read the MS Visual Studio DSW and
  DSP files associated with the VC++ workspace.  RSM
  processes all source active in the workspace.
- Added virtual function count to the -v report.
- File listings from -RL are left justified, removing leading spaces
- Fixed bug where ?? in code would yield ? quality notice

7/3/2000
Version 5.40
- Added the configuration file rsm_macro.cfg for user defined
  macro definitions that may show up in the code without a
  declaration for the macro.
- Modified parser to recognize case (1): syntax
- Modified parser to ignore macros after the function name
- Added Total Quality Notice Summary List
- Add the capability to create the inheritance tree from the
  class specifications with metrics
- Quality notice for maximum depth of inheritance tree
- Quality notice for maximum number for derived child classes
- Quality notice when multiple inheritance is encountered
- Added -D option where -Dt removes tabs from source code
  and -Dd append carriage returns to source code to create a
  DOS file, conversely -Du removes carriage returns from
  source code thus creating UNIX files.
- Added the capability of processing a list of directories and files
  from a text files.

5/5/2000
Version 5.34
- Bug fix for namespace total classes in the CSV output.

4/23/2000
No Version Change
- Added Kawa Integration and Code Analysis information to
  the user documentation.

2/25/2000
Version 5.33
- Maintenance release:  Added Support for the Microsoft
  keyword __declspec(..).

1/18/2000
Version 5.32
- Maintenance release:  Enhanced C++ parser for Microsoft
  specific macro syntax in class files.

12/28/1999
Version 5.31
- Maintenance release:  Fixed minor bug in compile date calculation.
  Enhanced C++ parser to adapt to embedded template syntax, thus
  providing correct metrics for C++ classes which contain std::map,
  etc..

12/1/1999
Version 5.30
- Added -TL mode for Totals Only with no listings of functions etc..
- Added Notice for Maximum Functions per Class
- Added Hyperlinks for File names in Totals mode
- Fixed bug for disabling Notice #38
- Expanded Capability for nested classes from 8 to 64

10/19/1999
Version 5.22
- Under the Windows operating system, file names are not case
  sensitive.  The default configuration file has been set to
  this setting.
- File extension case insensitivity is now supported.
  rsm -r h,cpp will retrieve file with H,h,CPP and cpp
  extensions
- Fixed a bug under NT and Windows 2000 where the 
  work files were not being written to the local directory.
  Version 5.20 supports an explicit directory for creating
  work files.
- Fixed bug where elipsis (...) were being captured as a
  notice in the catch(...) syntax.

9/25/1999
Version 5.21
- Added the -Rd option to stop recursion at the specified -r
  folder.  This option will allow the end user to process metrics
  from Windows folders which contain spaces in their names.  As
  the Windows Shell terminal cannot parse correctly folder names
  with spaces, the end user must user the modified 8.3 file
  name or use the -r option of RSM which directly opens the directory

9/20/1999
Version 5.20
- Added Visual Studio Interactive Mode
- Quality Notices can be interactive when RSM is
  integrated as a MS Visual Studio Tool.  A simple click
  will open the file and place the cursor at the
  line where the quality notice occurred.
- Quality Notice Format
  Visual Studio Interactive Format
  Summary Format
  Standard Verbose Format
- Additional Quality Notices
  Notice for public data within a class
  Notice for protected data within a class
  Notice for exception handling within a function
  Notice for the clause 'using namespace'
  Notice when a class definition is located within a function.
  Notice when a class contains a pointer to data
  Notice when a class with virtual methods does have a
  virtual destructor
- Class Metrics
  Counts for public, protected and private attributes
  Counts for public, protected and private methods
  Identification of Inheritance Base Classes
  Metrics are calculated for nested classes
- Comma Separated Variable Format Output
  MS Excel Import capability
- Project Metrics
  File Metrics
  Namespace/Package Metrics
  Interface Metrics
  Class Metrics
  Functional Metrics
  Code Differential Metrics
- New Total Only Reports
  Quality Notice Single Line Summary
  Quality Profile
  Work File Report
  Output can be limited by using the Totals mode
  with work files, thus limiting extensive output.
  Work files can be extracted to CSV output.
- Configuration Options
  Wrap long names of files, namespaces, classes
  and functions.
  Specify the path location of work files

7/19/1999
Version 5.10
- Change -A option to create CSV format output for MS Excel Import

6/16/1999
Version 5.0 
- Native Windows Compilation with Visual Studio 6.0 SP3
- Visual Studio Tool Integration
- Updated Runtime Options
- Extensive Update to Reporting
- Update to be compliant with McCabes Cyclomatic complexity
- Java Compliant with Package.Class.Function support
- Support Namespace, Class and Function Summaries
  sorted by name, LOC, eLOC, lLOC and Complexity
- Added many new quality notices
- Completely configurable through rsm.cfg
- Added User log administration functions
- Added Class nesting capability
- Many Many new features.

4/22/1999
Version 4.20
- Added a user log
- Reformatted On-Line manual

4/7/1999
No version change
- Added rsm.dll with no source changes
- New manual revision

3/17/1999
Version 4.15
- Fixed a bug for brace count notice when closing a file.
  This check is to insure that all scope is closed.

3/1/1999
Version 4.14
- Added a quality notice for the use of void *.
- fixed a bug where a quality notice was emitted when
  comparing file comment and white space below 10%.

2/9/1999
Version 4.13
- Added notices when code is not compilable by
  matching braces or parenthesis when file processing
  is complete.
- Fixed a bug when a C macro is defined within a
  function causing the function not to be emitted.

1/24/1999
Version 4.12
- ANSI C++ namespace is now active for class specification
  and implementation metrics.

1/11/1999
Version 4.11
- Expanded programs capability to handle very large code tokens
  equal to the length of the maximum line length relative to the
  operating system.
- Added 1999 in the copyright date range.

12/18/1998
Version 4.10
- Added "namespace" as a active scope in the class and
  function identification.
- Fixed bug in calculating estimation factors based
  on flow complexity.

12/7/1998
Version 4.07
- Software license with maintenance can run any version
  of RSM up to the software maintenance date. This will
  allow users with software maintenance to download and
  use the latest RSM from our web site.
- Fixed minor bug where a non-ANSI function was reported for an array
  declaration and initialization which spans multiple lines.

11/1/1998
Version 4.06
- Modified cyclomatic complexity metric to match McCabe's
  definition by including "for" loops into the metrics,
  but added a configuration parameter to prevent for loops
  from being included in the cyclomatic complexity.
- Added a new license file format for allowing those users
  with software maintenance to directly download the latest
  version from the web without the license version check.

10/1/1998
Version 4.05
- Added a configuration setting for RSM to create relative HTML
  hyperlinks.  The default setting is for RSM to create literal
  file names for HTML hyperlinks.
- Fixed a bug introduced which ignored non-ANSI function headers.

9/21/1998
Version 4.04
- Modified parser to make blank lines in C style comments to be
  represented as blank lines and not count as comment lines.
- Added configuration settings for the maximum line length and
  maximum function name length quality checks.

9/1/1998
Version 4.03
- Added HTML documentation to the base distribution.
  Text files, except for readme.txt, are eliminated. Enhanced
  parser to address minor parsing issues for single line functions.

8/9/1998
Version 4.02
- Visual C++ editor does not place end of line characters
  at the end of the last line in a source file. When the
  last line of code contains one character then an EOF
  instead of an EOL + EOF (end of line and end of file),
  RSM would miss the last character assuming it was a
  single '\n'. RSM now examines the last character of each
  line to ensure that an editor properly terminated each
  line and parses the source code accordingly.
- Fixed Java compatibility for assignments of arrays
  within class data structures.
- Fixed RSM trying to open txt, htm or html files from
  some shell interpreters using wild card arguments.
- Enhanced Java source code parsing.

6/24/1998
Version 4.01
- Fixed a bug in the HTML hyperlinks for relative
  file names like (./foo/star.cpp).
- Fixed a bug in the HTML hyperlinks for NT

5/17/1998
Version 4.00
- Added HTML reports with color and hyperlinks to code.
- Enhanced complexity metrics to include functional
  interface complexity which is the measure of input
  parameters and return state.
- Added metrics differential percent by file.
- Added estimation metrics from eloc and function metrics
  which mirror function point estimation.
- Metrics per class and class implementation.
- Added a license file for distributions called rsm.lic.
- Added configuration file called rsm.cfg.
- Reformatted reports.

1/17/1998
Version 3.06
- Added Notice for embedded classes.

01/07/1998
Version 3.05
- Added support for Java files and initialization
  in class specifications consistent with Java grammar.
- Modified parser constructs for Java.

12/03/1997
Version 3.00
- Added functionality for NT 4.0 long filename.
- Upgraded parser functionality.
- Added expanded template and class metric support.
- Added work files for metrics differentials.
- Added comment extraction for documentation export.

10/19/1997
Version 2.70
- Fixed a MSDOS anomaly when a file contains only a
  single carriage return. Rearranged function reports
  to be easier to read.

08/31/1997
Version 2.60
- Added enum counts to identify the enumeration use in the
  code. General cleanup and commenting of source code
  in preparation for next version.

08/25/1997
Version 2.52
- Structure counts now reflect actual data definitions,
  not the use of the key word "struct". This matches
  the use of the "class" keyword, where "class" identifies
  a data structure not a declaration.

08/22/1997
Version 2.51
- Fixed minor grammar error in 1 notice.
- Function summary reports physical lines instead
  of logical lines.

8/5/1997
Version 2.50
- Added more informative help
- Changed the configuration query to match help structure
- Added recursive descent of directories with the -r option.
- Added full C++ keyword checking for C files.
- Added -T mode for simple grand total output

7/28/1997
Version 2.41
- Fixed minor bug in parser for function names.

7/12/1997
Version 2.40
- Minor formatting fixes

7/10/1997
Version 2.31
- Fixed comparative complexity to only reflect the
  comparisons in the if and while conditions.

07/08/1997
Version 2.30
- Enabled Long File Names for Windows 95.
- Long file names for NT will be enabled in release 3.0
  of RSM ( Fall 97 ) do to the 32 FAT of NT.
- Added read from filelist capability with the -F
  option.

06/23/1997
Version 2.21
- Removed bitwise operations from comparison
  complexity measurements. Comparison complexity
  now indicate the complexity of the tests which

05/05/1997
Version 2.20
- Added class line emission and fixed some
  spelling errors.

04/14/1997
Version 2.17
- Add -i switch to report class names.

04/10/1997
Version 2.16
- Improved parsing algorithm for class names.

04/09/1997
Version 2.15
- Improved parsing algorithm for function names.

03/24/1997
Version 2.14
- Fixed a slight bug where on Solaris, passing
  rsm - or rsm -v with no file name caused a segv.

03/14/1997
Version 2.13
- Added the terse report for automated processing
- Changed logic complexity to be compliant with
  McCabe Cyclomatic complexity.

03/13/1997
Version 2.12
- Fixed spelling and help messages
- Fixed bug in getting the function name
- Fixed removal of whitespace for preprocessor directives

03/11/1997
Version 2.11
- Added the "?" operator for quality notices

02/26/1997
Version 2.10
- Added getopt for full Unix switch compliance

02/18/1997
Version 2.02
- Fixed minor formatting bugs

02/15/1997
Version 2.01
- Fixed ) = for beginning of keyword/functions
- Fixed paren count for scope determinations

1/20/1997
Version 2.0
- Added function counts and metrics
- Added file counts
- Restructured output and parameters
- Added variable output
- Added memory alloc/dealloc counts
- Added notices for common quality concerns
- Added query for quality notices
- Added functional and file complexity

10/28/1996
Version 1.6
- Added metrics for _exit() and abort()

09/25/1996
Version 1.4
- Correct statement count to compensate
  for the 2 semicolons in a for loops.

9/20/1996
Version 1.3
- Added goto keyword
- Added exit function
- Changed output format

07/26/1996
Version 1.2
- Added the check mode, added the current
  format with key words.

05/20/1996
Version 1.1
- Added a new parser and a few keywords

4/11/1996
Version 1.0
- Official Commercial Release
- Determined line counts

divider.jpg (1531 bytes)

(Last Update: June 22, 2001 )
Copyright 2001, M Squared Technologies