Software System Attributes

RequirementSoftware System Attributes
Section3.5
JIRA Task

EIR-43 - Getting issue details... STATUS

Introduction

Resolve Before Publication

Section Under Consideration

There are a number of attributes of software that can serve as requirements. It is important that required attributes be specified so that their achievement can be objectively verified. Subclauses 5.3.6.1 through 5.3.6.5 provide a partial list of examples. [IEEE830-1998, pg 17]


Target

IEEE Software Requirements Specifications Std 830-1998
5.3.6.1 Reliability
This should specify the factors required to establish the required reliability of the software system at time of
delivery.

5.3.6.2 Availability
This should specify the factors required to guarantee a defined availability level for the entire system such as
checkpoint, recovery, and restart.

5.3.6.3 Security
This should specify the factors that protect the software from accidental or malicious access, use, modification,
destruction, or disclosure. Specific requirements in this area could include the need to

  a) Utilize certain cryptographical techniques;
  b) Keep specific log or history data sets;
  c) Assign certain functions to different modules;
  d) Restrict communications between some areas of the program;
  e) Check data integrity for critical variables.

5.3.6.4 Maintainability
This should specify attributes of software that relate to the ease of maintenance of the software itself. There
may be some requirement for certain modularity, interfaces, complexity, etc. Requirements should not be
placed here just because they are thought to be good design practices.

5.3.6.5 Portability
This should specify attributes of software that relate to the ease of porting the software to other host
machines and/or operating systems. This may include the following:

  a) Percentage of components with host-dependent code;
  b) Percentage of code that is host dependent;
  c) Use of a proven portable language;
  d) Use of a particular compiler or language subset;
  e) Use of a particular operating system.