Albert Fleischmann
Distributed Systems
Software Design and Implementation
Mitarbeit: Tischer, J.; Bell, R.
Albert Fleischmann
Distributed Systems
Software Design and Implementation
Mitarbeit: Tischer, J.; Bell, R.
- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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…mehr
Andere Kunden interessierten sich auch für
- VDM '90. VDM and Z - Formal Methods in Software Development39,99 €
- Programming and Mathematical Method77,99 €
- SOFSEM '96: Theory and Practice of Informatics39,99 €
- John R. CorbinThe Art of Distributed Applications77,99 €
- BertranTransformation-Based Reactive Systems Development39,99 €
- BroyFormal Systems Specification39,99 €
- Proof and Computation74,99 €
-
-
-
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.
Produktdetails
- Produktdetails
- Verlag: Springer / Springer Berlin Heidelberg / Springer, Berlin
- Artikelnr. des Verlages: 978-3-642-78614-3
- Softcover reprint of the original 1st ed. 1994
- Seitenzahl: 412
- Erscheinungstermin: 16. Dezember 2011
- Englisch
- Abmessung: 235mm x 155mm x 23mm
- Gewicht: 621g
- ISBN-13: 9783642786143
- ISBN-10: 3642786146
- Artikelnr.: 36116071
- Verlag: Springer / Springer Berlin Heidelberg / Springer, Berlin
- Artikelnr. des Verlages: 978-3-642-78614-3
- Softcover reprint of the original 1st ed. 1994
- Seitenzahl: 412
- Erscheinungstermin: 16. Dezember 2011
- Englisch
- Abmessung: 235mm x 155mm x 23mm
- Gewicht: 621g
- ISBN-13: 9783642786143
- ISBN-10: 3642786146
- Artikelnr.: 36116071
The book is one of the first publications on distributed software design. It provides an introduction to software engineering for distributed systems. The book explains how software engineering methods for both non-distributed and distributed programs can be combined in order to use their advantages. It is targeted at the software engineering market and at the graduate student market in computer science.
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.- 6.3.4.1 Communication and Synchronisation Concepts in SREM.- 6.3.4.2 Communication and Synchronisation Concepts in SDL.- 6.3.4.3 Communication and Synchronisation Concepts in Estelle.- 6.3.4.4 Communication and Synchronisation Concepts in LOTOS.- 6.3.4.5 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.- 6.4.5.1 Behaviour Description in SREM.- 6.4.5.2 Behaviour Description in SDL.- 6.4.5.3 Behaviour Description in Estelle.- 6.4.5.4 Behaviour Description in LOTOS.- 6.4.5.5 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.
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.- 6.3.4.1 Communication and Synchronisation Concepts in SREM.- 6.3.4.2 Communication and Synchronisation Concepts in SDL.- 6.3.4.3 Communication and Synchronisation Concepts in Estelle.- 6.3.4.4 Communication and Synchronisation Concepts in LOTOS.- 6.3.4.5 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.- 6.4.5.1 Behaviour Description in SREM.- 6.4.5.2 Behaviour Description in SDL.- 6.4.5.3 Behaviour Description in Estelle.- 6.4.5.4 Behaviour Description in LOTOS.- 6.4.5.5 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.