Distributed Systems: Software Design and Implementation

Distributed Systems: Software Design and Implementation

Paperback(Softcover reprint of the original 1st ed. 1994)

Choose Expedited Shipping at checkout for guaranteed delivery by Thursday, August 29


The purpose of this book is to make the reader famliar with software engineering for distributed systems. Software engineering is a valuable discipline in the develop­ ment of software. The reader has surely heard of software systems completed months or years later than scheduled with huge cost overruns, systems which on completion did not provide the performance promised, and systems so catastrophic that they had to be abandoned without ever doing any useful work. Software engi­ neering is the discipline of creating and maintaining software; when used in con­ junction with more general methods for effective management its use does reduce the incidence of horrors mentioned above. The book gives a good impression of software engineering particularly for dis­ tributed systems. It emphasises the relationship between software life cycles, meth­ ods, tools and project management, and how these constitute the framework of an open software engineering environment, especially in the development of distrib­ uted software systems. There is no closed software engineering environment which can encompass the full range of software missions, just as no single flight plan, airplane or pilot can perform all aviation missions. There are some common activities in software engi­ neering which must be addressed independent of the applied life cycle or methodol­ ogy. Different life cycles, methods, related tools and project management ap­ proaches should fit in such a software engineering framework.

Product Details

ISBN-13: 9783642786143
Publisher: Springer Berlin Heidelberg
Publication date: 12/16/2011
Edition description: Softcover reprint of the original 1st ed. 1994
Pages: 390
Product dimensions: 6.10(w) x 9.25(h) x 0.03(d)

Table of Contents

I.- 1 Introduction to Distributed Systems and Distributed Software.- 1.1 Changes in Computing Technology.- 1.2 Characteristics of Distributed Systems.- 1.3 Parallel or Concurrent Programs.- 1.4 Networked Computing.- 1.4.1 Network Structure and the Remote Procedure Call Concept.- 1.4.2 Distributed Computing Environment (DCE).- 1.5 Cooperative Computing.- 1.5.1 Communication Software Systems.- 1.5.2 Technical Process Control Software Systems.- 1.5.3 Electronic Data Interchange (EDI).- 1.5.4 Groupware.- 1.6 Combination of Network Computing and Cooperative Computing.- 2 Software Engineering.- 2.1 Milestones in Software Evolution.- 2.2 Software Engineering Activities.- 2.2.1 Software Requirement Engineering.- 2.2.2 Software Design.- 2.2.3 Implementation and Testing.- 2.2.4 Project Management.- 2.3 Software Engineering Environments.- 3 Classification of Software System Types.- 3.1 Relationship to the Environment.- 3.1.1 Domain Independent Software.- 3.1.2 Domain Dependent Software.- 3.2 General Behaviour.- 3.2.1 Time constraints.- 3.2.2 System Reliability.- 3.3 Program Types.- 3.4 Computer Architecture.- 3.5 Examples.- 3.6 Discussion.- 4 Software Life Cycles.- 4.1 The Conventional Life Cycle.- 4.2 Prototyping.- 4.2.1 Evolutionary Life Cycle.- 4.2.2 Incremental Life Cycle.- 4.3 Operational Life Cycle.- 4.4 The Transformational Life Cycle.- 4.5 Knowledge Based Life Cycle.- 4.6 Evaluation.- 5 Methods: Concepts.- 5.1 Function Oriented.- 5.1.1 Informal Functional Specification.- 5.1.2 Predicate Transformation.- 5.1.3 Algebraic Specification.- 5.2 Data Structure Oriented.- 5.2.1 Jackson Structured Programming (JSP).- 5.2.2 Warrier/Orr Program Design and Construction Method.- 5.2.3 Entity Relationship Diagrams.- 5.3 Data Flow Oriented.- 5.4 Control Flow Oriented.- 5.5 Object Oriented.- 5.5.1 Principles of Object Oriented Software System Development.- 5.5.2 Object Oriented Concurrent Systems.- 5.5.3 Object Oriented Distributed Systems.- 5.5.4 Example of an Object Oriented Development Method.- 6 Methods for Concurrent Software System Development.- 6.1 System Decomposition and Process Structure.- 6.1.1 Decomposition Concepts in SREM.- 6.1.2 Decomposition Concepts in SDL.- 6.1.3 Decomposition Concepts in Estelle.- 6.1.4 Decomposition Concepts in LOTOS.- 6.1.5 Decomposition Concepts in Other SEE’s or Programming Languages.- 6.2 Communication.- 6.2.1 Indirect Information Exchange.- 6.2.2 Remote Procedure Call.- 6.2.3 Direct Communication.- 6.2.4 Relationship between Communication Type and System Architecture.- 6.3 Synchronisation.- 6.3.1 Direct Process Control.- 6.3.2 Synchronisation Concepts for Indirect Communication.- 6.3.3 Synchronisation Methods for Direct Communication, Message Passing.- 6.3.4 Examples: Communication and Synchronisation.- Communication and Synchronisation Concepts in SREM.- Communication and Synchronisation Concepts in SDL.- Communication and Synchronisation Concepts in Estelle.- Communication and Synchronisation Concepts in LOTOS.- Communication and Synchronisation Concepts in Other SEE’s and Programming Languages.- 6.4 Specifications of Process Behaviour.- 6.4.1 General Remarks.- 6.4.2 State Oriented Explicit Specification of Process Behaviour.- 6.4.3 Transition-Oriented Explicit Specification of Process Behaviour.- 6.4.4 Implicit Behaviour Process Specifications.- 6.4.5 Examples.- Behaviour Description in SREM.- Behaviour Description in SDL.- Behaviour Description in Estelle.- Behaviour Description in LOTOS.- Behaviour Description in Other SEE’s and Programming Languages.- 6.5 Task Allocation.- 6.5.1 SREM.- 6.5.2 Others.- 6.6 Methods/Methodologies.- 6.6.1 SREM.- 6.6.2 Estelle, SDL, LOTOS.- 6.6.3 Others.- 7 The Management of Software Development.- 7.1 Defining a Project.- 7.2 Planning a Project.- 7.2.1 Work Breakdown Structure.- 7.2.2 Project Schedule.- 7.2.3 Resources and Budget.- 7.2.4 Software Quality.- 7.3 Project Control.- 7.4 Peopleware.- 7.4.1 Project Organisation and Team Structure.- 7.4.2 Productive Teams.- 8 Tools.- 8.1 Analysis and Design Tools.- 8.2 Implementation Tools.- 8.3 Project Management Tools.- 8.4 Integrated CASE Environments.- 8.4.1 Classification of CASE Environments.- 8.4.2 Types of Integration.- 8.5 Examples of Integrated CASE Environments.- 8.5.1 Cohesion of Digital Equipment Corporation.- 8.5.2 AD/Cycle of IBM.- 8.6 Method Oriented CASE Environments.- 8.6.1 SREM.- 8.6.2 Estelle.- 8.6.3 LOTOS.- 8.6.4 SDL.- II.- 9 Overview.- 9.1 Development Goals.- 9.2 Main Characteristics of the SAPP/PASS Methodology.- 9.2.1 Decomposition of Systems into Subsystems and Processes.- 9.2.2 Specification of Processes.- 9.3 SAPP/PASS Based Development Activities.- 9.4 SAPP/PASS Based Project Management.- 9.5 SAPP/PASS Based Tools.- 9.6 Experience.- 10 Decomposing a System.- 10.1 Decomposition of the System Context.- 10.2 Decomposition of Systems into Process Sets.- 10.3 Decomposing Process Sets into Processes.- 10.4 Shared Objects, Process Clusters, Process Groups.- 10.5 Process Clusters.- 10.6 Process Groups.- 11 Process Communication and Synchronisation.- 11.1 Direct Process Communication and Synchronisation.- 11.1.1 Maximum Size.- 11.1.2 Attributes.- 11.1.3 Structure.- 11.1.4 Time Restrictions.- 11.1.5 Application of Input Pools.- 11.2 Indirect Communication.- 12 Process Behaviour.- 12.1 The PASS Graph.- 12.1.1 Send Messages.- 12.1.2 Receive Messages.- 12.1.3 Internal Functions.- 12.1.4 Internal Operations.- 12.1.5 Process Pointer Variables.- 12.1.6 Time Requirements in PASS Graph.- 12.1.7 A Textual Notation for PASS Graphs.- 12.1.8 The Combined Use of Priorities and Structured Input Pools.- 12.2 PASS Graph Macros and PASS Graph Types.- 12.3 Behaviour Expressions instead of PASS Graphs.- 13 Refinements of a Process.- 13.1 PASS Graph Refinements.- 13.1.1 Receive Message Specifications.- 13.1.2 Send Message Specification.- 13.1.3 Internal Operation Specification.- 13.1.4 Internal Function Specification.- 13.2 Specification Techniques for Refinements.- 13.2.1 Hierarchy of Modules.- 13.2.2 Object Oriented Technologies.- 13.3 Shared Objects.- 13.4 Process Types.- 14 Implementation of SAPP/PASS Specifications.- 14.1 Parallel Programming Languages with Message Operations.- 14.1.1 Language Overview.- 14.1.2 Implementation of PASS Graphs, Input Pools and Message Exchange.- 14.2 Parallel Programming Languages with Common Objects.- 14.2.1 Language Overview.- 14.2.2 Implementation of Input Pools and Message Exchange.- 14.2.3 Implementation of PASS Graphs.- 14.3 Sequential Programming Languages.- 14.3.1 Simulation of Processes.- 14.3.2 Implementation of Input Pools and Message Exchange.- 14.3.3 Implementation of PASS Graphs.- 15 SAPP/PASS Based Project Management.- 15.1 SAPP/PASS Based Program Development Activities.- 15.1.1 Context Identification.- 15.1.2 Decomposition.- 15.1.3 Process Specification.- 15.1.4 Process Implementation and Test.- 15.2 Project Management Activities.- 15.2.1 Planning a Software Project.- 15.2.2 Project Organizing, Directing and, Controlling.- 15.3 Quality Assurance.- 16 PASS Based Computer Aided Software Engineering.- 16.1 Tool Concepts for Structured Decomposition.- 16.2 Tools for Describing Processes.- 16.2.1 Consitency Checking.- 16.2.2 Optimisation.- 16.2.3 Subsetting.- 16.3 Validation Tools.- 16.3.1 Prolog Based Validation Tools.- 16.3.2 Validation Tools Based on Graph Replacement System.- 16.4 Concepts for Implementation Tools.- 16.5 Concepts for Project Management Tools.- 17 A SAPP/PASS Based Software Engineering Environment.- 17.1 Basic Concepts of the 3C Tools.- 17.1.1 SYSMAN — The System Manager.- 17.1.2 PROCMAN — The Processtype Manager.- 17.1.3 SAGE — The Systems Analysis Graphical Editor.- 17.1.4 PAGE — The PASS Graph Editor.- 17.1.5 IPET — The Input Pool Editor.- 17.2 CASE Study — Software Project Using the 3C Tools.- 17.2.1 Description of the Brewery Project.- 17.2.2 The Use of SAPP/PASS to Implement this Concept.- 18 SAPP/PASS Applications and Experiences.- 18.1 Development of Communication Software.- 18.2 Development of Process Control Software.- 18.3 Experience.- 19 Discussion of SAPP/PASS.- 19.1 Relationship to Types of Software Life Cycles.- 19.1.1 Elements of Incremental Software Development.- 19.1.2 Elements of Evolutionary Software Development.- 19.1.3 Elements of Operational Software Development.- 19.1.4 Combinations of Software Development Paradigms.- 19.2 Reuse of Software.- 19.3 SAPP Descriptions of Systems.- 19.4 PASS Specifications of Processes.- 19.5 Project Management.- 19.6 Tools.- 19.7 Subject Oriented Programming.- Literature.

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews