Forward Engineering for Client/Server Architectures
30.5.1 Forward Engineering for Client/Server Architectures
Over the past decade many mainframe applications have been reengineered to accom-
modate client/server architectures. In essence, centralized computing resources Client/server software
XRef
engineering is (including software) are distributed among many client platforms. Although a vari- discussed in
ety of different distributed environments can be designed, the typical mainframe appli- Chapter 28.
cation that is reengineered into a client/server architecture has the following features:
• Application functionality migrates to each client computer. • New GUI interfaces are implemented at the client sites. • Database functions are allocated to the server. • Specialized functionality (e.g., compute-intensive analysis) may remain at the
server site. • New communications, security, archiving, and control requirements must be
established at both the client and server sites. It is important to note that the migration from mainframe to c/s computing requires
both business and software reengineering. In addition, an “enterprise network infra- In some cases, c/s or
structure” [JAY94] should be established. OO systems designed
Reengineering for c/s applications begins with a thorough analysis of the busi- to replace a legacy
ness environment that encompasses the existing mainframe. Three layers of abstrac- application should be
tion (Figure 30.4) can be identified. The database sits at the foundation of a client/server approached as a new
architecture and manages transactions and queries from server applications. Yet these development project.
Reengineering enters transactions and queries must be controlled within the context of a set of business the picture only when
rules (defined by an existing or reengineered business process). Client applications elements of an old
provide targeted functionality to the user community. system are to be
The functions of the existing database management system and the data archi- integrated with the
new architecture. In tecture of the existing database must be reverse engineered as a precursor to the some cases, you may
redesign of the database foundation layer. In some cases a new data model (Chap-
be better off rejecting ter 12) is created. In every case, the c/s database is reengineered to ensure that trans- the old and creating
actions are executed in a consistent manner, that all updates are performed only by identical new
authorized users, that core business rules are enforced (e.g., before a vendor record functionality.
is deleted, the server ensures that no related accounts payable, contracts, or com-
F I G U R E 30.4
Reengineering
Interface: GUI
mainframe applications to client/server
Client applications
Interface: process requests
Business rules
Interface: transactions and queries
Database
munications exist for that vendor), that queries can be accommodated efficiently, and that full archiving capability has been established.
The business rules layer represents software resident at both the client and the server. This software performs control and coordination tasks to ensure that trans- actions and queries between the client application and the database conform to the the established business process.
The client applications layer implements business functions that are required by specific groups of end-users. In many instances, a mainframe application is segmented into a number of smaller, reengineered desktop applications. Communication among the desktop applications (when necessary) is controlled by the business rules layer.
A comprehensive discussion of client/server software design and reengineering is best left to books dedicated to the subject. The interested reader should see [VAS93], [INM93], and [BER92].
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more