Full description [Brief description]:

New client/server development products on the market today are allowing us to develop on-line business systems that we could only dream of a few years ago. Many companies are replacing their mainframe business systems with an architecture where (typically) much of the application resides on users’ desktop workstations and is served by a database on the host.

However, the rapid trend towards client/server systems now confronts many IT departments with the formidable task of retooling their hardware, software and management skills. If this challenge faces your shop, then this practical new seminar/workshop comes to your rescue. It explains powerful analysis and design techniques for creating successful business applications using GUIs (graphical user interfaces) and relational databases in a client/server environment. It teaches the skills of writing clear requirements, process modeling, data modeling, event modeling and the skills necessary to design both the client and the server sides of the system.

In this course, you will learn the fundamental analysis techniques that have been proven critical for client/server projects. You will learn how and why this new technology will change the order and emphasis of analysis tasks. You will learn too why the specification of client/server systems needs to use the best of both structured and object-oriented techniques.

Moving beyond analysis, the course takes an “evolutionary” approach to design. This means that you don’t need to throw away everything that you’ve learned about systems design in order to design client/server systems. You will learn how to convert the analysis models into a client/server design, using techniques ranging from the traditional to object-oriented. You will learn how to choose what resides on the client versus what resides on the server, how to convert the data model into a relational database, how to design windows instead of screens and how to specify both the external and internal aspects of the design.

In addition to the technical considerations, the migration to a client/server environment often changes the business process and organization more than anticipated. You will learn what makes this environment so different and how to avoid many common development pitfalls.

The course includes interactive, hands-on (paper-based) workshops and exercises in a facilitated format. The agenda is built on the premise that skills must be practiced to be learned and that participants benefit most by doing rather than merely listening. The curriculum also includes realistic, challenging and entertaining case studies. By the end of the week, you will have practiced each of the new skills introduced.

This seminar is for analysts, application designers, programmers and project managers who want experience with proven analysis and design methods for building client/server applications with GUIs. It assumes the student’s shop has already decided to move to client/server and does not dwell on the benefits of such a migration.

Detailed contents:

In this course you will learn:
Overview
  • Overview of course
  • Overview of client/server systems
Software engineering concepts
  • The evolution of analysis and design techniques
  • General principles of software engineering
  • The impact of client/server — GUI technology on modern methods
Project charters
  • Understanding the problem and the need
  • Goals and objectives
  • The project decision framework
  • The scope document
Analysis objectives
  • Essential modeling
  • Data model
  • Event model
  • Process model
Context modeling
  • Data flow diagramming constructs
  • System scope
Event modeling
  • What is an event?
  • Five components of events
  • Event lists
  • Event dictionaries
Data modeling
  • Data modeling constructs
  • Entities
  • Attributes
  • Relationships
  • Cardinality
Process modeling techniques
  • Leveled data flow diagrams
  • Decomposition diagrams
  • Process specification
Prototyping
  • Window and report layout
  • Prototyping as an analysis tool
How each model relates to the others
  • Using the models together to understand the business
  • Using the models together to guide system development
The impact of client/server on the business environment — Redefining the business process
Overview of design
  • Purpose, prerequisites, activities and deliverables
  • Bridging the gap between analysis and design techniques
  • Consuming the process, event and data models
Partitioning the essential model for the client/server architecture
  • Relational database design
  • Relational database constructs
  • Translating the data model into a relational database
  • Qualities of a good data modeling CASE tool
Windows design considerations
  • What is user-friendly?
  • Subsets and standards
  • Defining the user’s unit of work
  • Window cohesion
  • Managing SQL effectively
  • Optimization
Window-navigation diagramming
  • Window design for GUIs
  • Menus
  • Embedded objects
  • Buttons and check boxes
  • Drop-down lists and find fields
  • Multiple-window environment
Object-oriented modeling techniques
  • Inheritance diagramming
  • Object-communication diagramming
Testing a client/server system — The five levels of testing
Specifying functions & procedures
  • The structure chart
  • Criteria for good design
  • Factoring
  • Low coupling
  • High cohesion
  • Module specifications — pseudocode
Managing client/server projects
  • What’s different about managing in a client/server environment
  • Staffing your project for success
  • Hacking your way to Hades
  • Issues documentation
  • Resolution strategies
  • Radical versus conservative development strategies