Chapter 28 Client/Server Software Engineering

Overview

This chapter discusses client/server (C/S) software engineering. Client/server software engineering blends conventional principles, concepts, and methods discussed earlier in the text with elements of object-oriented and component-based software engineering. C/S architectures dominate the landscape of computer-based systems. In C/S architectures, software residing on one computer (the client) requests services or data from another computer (the server). The process model used in C/S software engineering is evolutionary beginning with requirements elicitation. Functionality is allocated to subsystems of components that are assigned to either the client or the server side of the C/S architecture. Design focuses on integration of existing components and creation of new components. Implementation and testing must exercise both the client and server functionality within the context of the component integration standards and the C/S architecture. C/S software engineering relies on the same SQA practices as other software engineering processes. Formal technical reviews are used to assess the quality of the analysis and design models. Specialized reviews consider issues associated with component integration and middleware. Testing is used to uncover errors at the component, subsystem, client, and sever levels.

 

Representative Client/Server Systems

 

Software Components for C/S Systems

 

Representative C/S Configuration Options

 

Guidelines for Distributing Application Subsystems

 

Linking C/S Software Subsystems

 

Representative Middleware Architectures

 

Design Issues for C/S Systems

 

Architectural Design for Client/Server Systems

 

C/S Design Repository Information

 

Data Distribution and Management Techniques

 

C/S Design Approach

  1. For each elementary business process, identify the files created, updated, referenced, or deleted.
  2. Use the files from step 1 as basis for defining components or objects.
  3. For each component, retrieve the business rules and other business object information that has been established for the relevant file.
  4. Determine which rules are relevant to the process and decompose the rules down to the method level.
  5. As required, define any additional components that are needed to implement the methods.

 

Process Design Entities

 

C/S Testing Strategy

 

C/S Testing Tactics