Abstract

Software quality attributes (Bass et al. 2013) refer to nonfunctional requirements of software, which can have a profound effect on the quality of a real-time embedded system. During requirements specification, software quality requirements are specified as nonfunctional requirements. Many software quality attributes can be addressed and evaluated at the time the software architecture is developed. Some quality attributes are actually system quality attributes because both hardware and software considerations are needed to achieve high quality. These system quality attributes include scalability, performance, availability, safety, and security. Other quality attributes are purely software in nature because they rely entirely on the quality of the software. These software quality attributes include maintainability, modifiability, testability, traceability, and reusability. This chapter provides an overview of system and software quality attributes, and discusses how they are supported by the COMET/RTE software design method. SCALABILITY Scalability is the extent to which the system is capable of growing after its initial deployment. There are system and software factors to consider in scalability. From a system perspective, there are issues of adding further hardware to increase the capacity of the system. In a centralized system, the scope for scalability is limited, such as adding more memory, more disk capacity, or an additional CPU. A distributed system offers much more scope for scalability by adding more nodes to the configuration. From a software perspective, the system needs to be designed in such a way that it is capable of growth. A distributed component-based software architecture is much more capable of scaling upward than a centralized design. Components are designed such that multiple instances of each component can be deployed to different nodes in a distributed configuration. A light rail control system that supports multiple trains and multiple stations can have a component-based software design, such that there is one instance of a train component for each train and one instance of a station component for each station. Such a software architecture can be deployed to execute in a small town, in a large city, or in a wide geographical region. A service-oriented architecture can be scaled up by adding more services or additional instances of existing services. New clients can be added to the system as needed. Clients can discover new services and take advantage of their offerings.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call