Software Quality Attributes

 

 

The difference between an amateur product and a carrier grade product is not much in functionality; it is in Quality. For any serious business to depend on a piece of software to continue to function and evolve as needed, a long list of quality attributes or 'abilities' are required. The list seems to be long, but each ability is vital. If you get stuck with something that doesn't have any one of the required abilities, that inability manifests itself in different problematic ways.

 

To take examples, just imagine working with a product that isn't scalable? Or isn't reliable? Or isn't easily usable? Or isn't upgradeable? Or isn't Interoperable with something new that you want to put in? Or isn't configurable with your network changes? Or isn't always available? Or isn't auditable? Or isn't secure? ....

 

It is imperative for operators to look at the products they are purchasing from all the quality attributes that may affect them in future. While most products claim to have similar functionality, it is important for the prudent buyer to ask tough questions about each individual required quality attribute and look under the hood on to the building blocks to see if the product they are buying really has the required quality attributes to deliver on all areas.

 

Following is a list of commonly expected quality attributes with an introduction on how AdvOSS uses its technology and architecture to achieve them.These quality attributes are categorized with respect to the roles that typically have an interest in learning about these aspects of carrier grade software.

 

 

Engineering

  • High Availability
  • High Availability is the measure of the quality of a software to keep functioning in spite of problems. Since the 'problems' can be of many types, different technologies work in tandem to achieve high availability for the overall system.

 

  • Redundancy
  • AdvOSS uses different technologies in combination to achieve redundancy in the system and make sure that the redundancy is used towards availability when needed.

 

  • Disaster Recovery
  • Disaster Recovery is the ability of the software to continue to function when a Disaster occurs.

 

  • Security
  • Security is the ability of the software to remain protected from unauthorized access. This includes both change access and view access.

 

  • Flexibility
  • Flexibility is the ability of a software to adapt when external changes occur.

 

  • Traceability
  • Traceability is the ability of the Software to offer insight into the inner processing when required. A higher level of traceability is required at time of debugging a problem or at times of new interoperability testing. AdvOSS Switching and AAA products offer layers of traceability that can be turned on by a Maintenance engineer. Going from normal error only traces, to warning traces, to activity traces to full verbose tracing, AdvOSS products make it easy for the engineer to be able to see what is going under the hood.

 

  • Maintainability
  • Maintainability is the ability of a software to adapt to changes, improve over time, correct any bugs and be proactively fixed through preventive maintenance.

 

  • Testability
  • Testability is the ability of a software to be tested thoroughly before putting into production. Although AdvOSS does internal testing before releasing any new versions, they can never be sure to work at an Operator's production systems without testing. AdvOSS offers a SandBox environment for each of its products. The Debugging Sandbox can be configured against given rules to siphon selected traffic to staging servers for real production simulated testing. This gets very useful in testing the new releases before production.

 

 

 

Technology

  • Reliability
  • High Reliability is the measure of how a product behaves in varying circumstances.

 

  • Robustness
  • Robustness is defined as the ability of a software product to cope with unusual situation.

 

  • Efficiency
  • Efficiency is the ability of the software to do the required processing on least amount of hardware.

 

  • Resilience
  • Resilience is the ability of a software to absorb sudden bursts of legitimate loads. AdvOSS uses different techniques of Resilience for different types of loads.

 

  • Compatibility
  • Compatibility is the ability of the software to work with other systems. All AdvOSS products strictly comply to industry standards where possible. All Switching range complies to SIP with all its new standards, all AAA range complies to the Radius and Diameter protocols. All monitoring complies to the SNMP protocol .

 

  • Modularity
  • Modularity is the measure of the extent to which software is composed of separate, interchangeable components, each of which accomplishes one function and contains everything necessary to accomplish this. Modularity increases cohesion and reduces coupling and makes it easier to extend the functionality and maintain the code.

 

 

 

CIO and IT

  • Extensibility (Data model)
  • Extensibility is the ability of the software to be extended beyond the functionality of the original product. AdvOSS uses its technology and architectures in multiple ways to make sure its products remain extensible where required.

 

  • Customizability
  • Customizability is the ability of a software to offer extensions to existing functionality to better suite the needs of a user.

 

 

  • Integrity
  • Integrity is the ability of a software to maintain correctness and harmony among all related pieces of data. AdvOSS delegates the responsibility of integrity to its Transactional API layer which looks at all cases and ensures that it maintains integrity of data by either committing a transaction in full at all places or doing a roll back from all places always leaving the network in a clean state with integrity. A second integrity verification layer is added through multiple Analytical Processes running in Background. These processes to designed to identify data integrity violations and raise appropriate alarms.

 

 

 

Operations

  • Manageability
  • Manageability is the ability of a software to be managed from different perspectives.

 

  • Usability
  • Usability is the ability of a software to offer its interfaces in a user friendly and elegant way.

 

  • Accessibility
  • Accessibility is the ability of a software to be accessible from a multitude of devices and for a number of different types of users. All AdvOSS Products offer multiple interface each of them is configurable by the Operator. A work flow can be attached to each of the methods running behind these interfaces.

  • Web based interfaces
  • IVR Interfaces
  • SMS Interfaces

 

  • Auditability
  • Auditability is the ability of a software to keep track of what happened, who did it, from where, how and when. AdvOSS offers military grade auditability of its systems. All access to the systems goes through AdvOSS Provisioning Engine if it is modifying any data or through AAA Applications if it is coming from the network. They are both designed to insert a complete audit trail before making any changes. Auditability has many dimensions to it.

 

 

 

Commercial

  • Affordability
  • Affordability is the ability of a software to keep its total cost within the range of affordability of an Operator. It is mainly about the ability to 'pay as you grow' and It has many dimensions to it .

 

  • Scalability
  • Scalability is the ability of the software to cater for heavier processing loads as the needs arise. In addition to its usual meaning of how heavier loads can be handled, scalability also means 'how small can you start'. Scalable architectures allow both the vendor and the operator to follow a 'Pay as your grow' model. Horizontal Scalability is the ability to be able to add more resources to get higher processing. Vertical Scalability is the ability to be able to add bigger resources to get higher processing.