Ellemtel Standard

Rubric includes an implementation of Ellemtel's C++ standard. EnSoft can customize Rubric with an implementation of your organization's standard.

Rubric is designed to check for portions of a coding standard that are tedious and error-prone for a human to check. This allows engineers to spend their time on aspects of a standard that require human judgment and intelligence. The three examples below show this distinction.

Example 1

Rule 47: The code following a case label must always be terminated by a break statement.

This rule is straightforward for Rubric or a human to check. However, after looking at mountains of code, engineers often miss this simple rule. Rubric never misses this.

Example 2

Rec 53: Avoid the use of continue.

This recommendation requires human judgment . In many cases the use of continue may be inappropriate. However, there are some cases when this is a good or even the cleanest way to implement an algorithm. Rubric helps reviewers by flagging all the places in the code where continue is used. Reviewers can focus on judging the use of continue without wasting time finding where it is used.

Example 3

Rec 17: Choose variable names that suggest usage.

Clearly this recommendation is best suited for a human to check since the name must be tied to an engineer's understanding of the variable's role.

Ellemtel Rules and Recommendations implemented for Rubric

Rule 13 The names of variables, constants, and functions are to begin with a lowercase letter.
Rule 14 The names of abstract data types, structures, typedefs, and enumerated types are to begin with an uppercase letter.
Rule 16 Do not use identifiers which begin with one or two underscores.
Rule 20 The public, protected, and private sections of a class are to be declared in that order (the public section is declared before the protected section which is declared before the private section).
Rule 22 Never specify public or protected member data in a class.
Rule 31 Do not use unspecified function arguments (ellipsis notation).
Rule 32 The names of formal arguments to functions are to be specified and are to be the same both in the function declaration and in the function definition.
Rule 33 Always specify the return type of a function explicitly.
Rule 47 The code following a case label must always be terminated by a break statement.
Rule 48 A switch statement must always contain a default branch which handles unexpected cases.
Rule 49 Never use goto.
Rec. 3 An include file should not contain more than one class definition.
Rec. 19 Encapsulate global variables and constants, enumerated types, and typedefs in a class.
Rec. 25 The flow control primitives if, else, while, for and do should be followed by a block, even if it is an empty block.
Rec. 31 Constructors and destructors must not be inline.
Rec. 34 An assignment operator ought to return a const reference to the assigning object.
Rec. 36 When two operators are opposites (such as == and !=), it is appropriate to define both.
Rec. 41 Avoid functions with many arguments.
Rec. 47 A function should be no longer than 2 pages
Rec. 53 Avoid the use of continue.
Rec. 57 Avoid global data if at all possible.

About Ellemtel
Ericsson and the Royal Telegraph Board (TeliaSonera today) formed a jointly owned development company, Ellemtel, which created the AXE system. After entering the market in the late 1970s, AXE became the world's largest-selling telephone exchange system. Through its modular design, it also provided an important platform for the emergence of Ericsson's mobile phone business. AXE is still undergoing further refinements and is being sold, now as software. 1,2



The following copyright notice applies to the Ellemtel documentation:

Copyright © 1990-1992 by
Ellemtel Telecommunication Systems Laboratories
Box 1505
125 25 Älvsjö
Sweden
Tel: int + 46 8 727 30 00
Permission is granted to any individual or institution to use, copy, modify, and distribute this document, provided that this complete copyright and permission notice is maintained intact in all copies. Ellemtel Telecommunication Systems Laboratories makes no representations about the suitability of this document or the examples described herein for any purpose. It is provided "as is" without any expressed or implied warranty.


  1. Telecommunications and information technology in Sweden
  2. Ericsson History: 129 Years of Leadership
  3. EnSoft is in no way affiliated with Ellemtel, Ericsson, or TeliaSonera. Mention of companies or third-party products is for informational purposes only and constitutes neither an endorsement nor a recommendation.
Download Now
Programming in C++ Rules and Recommendation
Download
PDF Format
Demo

See Rubric in action, click here for a flash demo.

Request a beta evaluation. E-mail us at: info@ensoftcorp.com

Learn More

Request a Quote

Request a quote today. E-mail us at: info@ensoftcorp.com

  • Include a copy of your coding standard.
  • Tell us how many licenses you are interested in.

Contact Us

To learn more about Rubric, or any of our other tools, contact us:

+1 (515) 296-3253
contactus­@ensoftcorp.com

For full contact information, click here.