Computer programming / software engineering Books

2176 products


  • Lean Architecture for Agile Software Development

    John Wiley & Sons Inc Lean Architecture for Agile Software Development

    Book SynopsisMore and more Agile projects are seeking architectural roots as they struggle with complexity and scale - and they're seeking lightweight ways to do it. This book helps you to find your own path.Trade Review'...a book of advice that is broad, enabling, and concrete. (Lean Magazine, January 2010).Table of ContentsAbout the Authors xii Preface xiii 1 Introduction 1 1.1 The Touchstones: Lean and Agile 1 1.2 Lean Architecture and Agile Feature Development 4 1.3 Agile Production 7 1.3.1 Agile Builds on Lean 7 1.3.2 The Scope of Agile Systems 8 1.3.3 Agile and DCI 9 1.4 The Book in a Very Small Nutshell 10 1.5 Lean and Agile: Contrasting and Complementary 11 1.5.1 The Lean Secret 14 1.6 Lost Practices 14 1.6.1 Architecture 15 1.6.2 Handling Dependencies between Requirements 15 1.6.3 Foundations for Usability 16 1.6.4 Documentation 16 Code Does Not Stand Alone 17 Capturing the ‘‘Why’’ 19 1.6.5 Common Sense, Thinking, and Caring 19 1.7 What this Book is Not About 21 1.8 Agile, Lean – Oh, Yeah, and Scrum and Methodologies and Such 22 1.9 History and Such 24 2 Agile Production in a Nutshell 27 2.1 Engage the Stakeholders 27 2.2 Define the Problem 29 2.3 Focusing on What the System Is: The Foundations of Form 30 2.4 Focusing on What the System Does: The System Lifeblood 32 2.5 Design and Code 33 2.6 Countdown: 3, 2, 1. . . 34 3 Stakeholder Engagement 35 3.1 The Value Stream 35 3.1.1 End Users and Other Stakeholders as Value Stream Anchors 36 3.1.2 Architecture in the Value Stream 37 3.1.3 The Lean Secret 38 3.2 The Key Stakeholders 41 3.2.1 End Users 43 Psyching Out the End Users 44 Don’t Forget Behavior 46 The End User Landscape 47 3.2.2 The Business 47 A Special Note for Managers 48 3.2.3 Customers 50 . . . As Contrasted with End Users 50 ‘‘Customers’’ in the Value Stream 52 3.2.4 Domain Experts 52 No Ivory Tower Architects 53 Experts in Both Problemand Solution Domains 54 3.2.5 Developers and Testers 55 3.3 Process Elements of Stakeholder Engagement 57 3.3.1 Getting Started 58 3.3.2 Customer Engagement 60 3.4 The Network of Stakeholders: Trimming Wasted Time 61 3.4.1 Stovepipe Versus Swarm 61 3.4.2 The First Thing You Build 64 3.4.3 Keep the Team Together 65 3.5 No Quick Fixes, but Some Hope 66 4 Problem Definition 67 4.1 What’s Agile about Problem Definitions? 68 4.2 What’s Lean about Problem Definitions? 68 4.3 Good and Bad Problem Definitions 70 4.4 Problems and Solutions 72 4.5 The Process Around Problem Definitions 73 4.5.1 Value the Hunt Over the Prize 73 4.5.2 Problem Ownership 74 4.5.3 Creeping Featurism 75 4.6 Problem Definitions, Goals, Charters, Visions, and Objectives 76 4.7 Documentation? 77 5 What the System Is, Part 1: Lean Architecture 79 5.1 Some Surprises about Architecture 80 5.1.1 What’s Lean about This? 82 Deliberation and ‘‘Pull’’ 83 Failure-Proof Constraints or Poka-Yoke 83 The Lean Mantras of Conservation, Consistency, and Focus 84 5.1.2 What’s Agile about Architecture? 84 It’s All About Individuals and Interactions 84 Past Excesses 85 Dispelling a Couple of Agile Myths 86 5.2 The First Design Step: Partitioning 88 5.2.1 The First Partition: Domain Form Versus Behavioral Form 89 5.2.2 The Second Partitioning: Conway’s Law 90 5.2.3 The Real Complexity of Partitioning 93 5.2.4 Dimensions of Complexity 94 5.2.5 Domains: A Particularly Interesting Partitioning 94 5.2.6 Back to Dimensions of Complexity 96 5.2.7 Architecture and Culture 100 5.2.8 Wrap-Up on Conway’s Law 100 5.3 The Second Design Step: Selecting a Design Style 100 5.3.1 Contrasting Structuring with Partitioning 102 5.3.2 The Fundamentals of Style: Commonality and Variation 104 5.3.3 Starting with Tacit Commonality and Variation 105 5.3.4 Commonality, Variation, and Scope 108 5.3.5 Making Commonalities and Variations Explicit 111 Commonality Categories 112 Next Steps 114 5.3.6 The Most Common Style: Object Orientation 114 Just What is Object Orientation? 115 5.3.7 Other Styles within the Von NeumannWorld 117 5.3.8 Domain-Specific Languages and Application Generators 120 The State of the Art in DSLs 121 DSLs’ Place in Architecture 121 5.3.9 Codified Forms: Pattern Languages 122 5.3.10 Third-Party Software and Other Paradigms 124 5.4 Documentation? 127 5.4.1 The Domain Dictionary 128 5.4.2 Architecture Carryover 128 5.5 History and Such 129 6 What the System Is, Part 2: Coding It Up 131 6.1 The Third Step: The Rough Framing of the Code 131 6.1.1 Abstract Base Classes 133 6.1.2 Pre-Conditions, Post-Conditions, and Assertions 137 Static Cling 142 6.1.3 Algorithmic Scaling: The Other Side of Static Assertions 144 6.1.4 Form Versus Accessible Services 146 6.1.5 Scaffolding 147 6.1.6 Testing the Architecture 149 Usability Testing 149 Architecture Testing 149 6.2 Relationships in Architecture 153 6.2.1 Kinds of Relationship 153 6.2.2 Testing the Relationships 155 6.3 Not Your Old Professor’s OO 155 6.4 How much Architecture? 159 6.4.1 Balancing BUFD and YAGNI 159 6.4.2 One Size Does Not Fit All 160 6.4.3 When Are You Done? 160 6.5 Documentation? 162 6.6 History and Such 163 7 What the System Does: System Functionality 165 7.1 What the System Does 166 7.1.1 User Stories: A Beginning 166 7.1.2 Enabling Specifications and Use Cases 167 7.1.3 Helping Developers, Too 169 7.1.4 Your Mileage may Vary 170 7.2 Who is Going to Use Our Software? 171 7.2.1 User Profiles 171 7.2.2 Personas 171 7.2.3 User Profiles or Personas? 172 7.2.4 User Roles and Terminology 173 7.3 What do the Users Want to Use Our Software for? 173 7.3.1 Feature Lists 173 7.3.2 Dataflow Diagrams 174 7.3.3 Personas and Scenarios 174 7.3.4 Narratives 174 7.3.5 Behavior-Driven Development 175 7.3.6 Now that We’re Warmed Up. . . 175 Prototypes 176 Towards Foundations for Decisions 176 Known and Unknown Unknowns 176 Use Cases as a Decision Framework 177 7.4 Why Does the User Want to Use Our Software? 177 7.5 Consolidation of What the System Does 178 7.5.1 The Helicopter View 181 Habits: The Developer View and the User View 182 Trimming the Scope 185 7.5.2 Setting the Stage 186 7.5.3 Play the Sunny Day Scenario 187 Business Rules 191 7.5.4 Add the Interesting Stuff 193 7.5.5 Use Cases to Roles 200 Roles from the Use Case 201 Bridging the Gap between the Business and the Programmer 202 7.6 Recap 203 7.6.1 Support the User’s Workflow 203 7.6.2 Support Testing Close to Development 203 7.6.3 Support Efficient Decision-Making about Functionality 204 7.6.4 Support Emerging Requirements 204 7.6.5 Support Release Planning 204 7.6.6 Support Sufficient Input to the Architecture 205 7.6.7 Support the Team’s Understanding of What to Develop 205 7.7 ‘‘It Depends’’: When Use Cases are a Bad Fit 206 7.7.1 Classic OO: Atomic Event Architectures 206 7.8 Usability Testing 208 7.9 Documentation? 209 7.10 History and Such 211 8 Coding It Up: Basic Assembly 213 8.1 The Big Picture: Model-View-Controller-User 214 8.1.1 What is a Program? 214 8.1.2 What is an Agile Program? 215 8.1.3 MVC in More Detail 217 8.1.4 MVC-U: Not the End of the Story 217 A Short History of Computer Science 218 Atomic Event Architectures 219 DCI Architectures 220 8.2 The Form and Architecture of Atomic Event Systems 220 8.2.1 Domain Objects 221 8.2.2 Object Roles, Interfaces, and the Model 221 Example 223 8.2.3 Reflection: Use Cases, Atomic Event Architectures, and Algorithms 224 8.2.4 A Special Case: One-to-Many Mapping of Object Roles to Objects 225 8.3 Updating the Domain Logic: Method Elaboration, Factoring, and Re-factoring 226 8.3.1 Creating New Classes and Filling in Existing Function Placeholders 227 Example 228 8.3.2 Back to the Future: This is Just Good Old-Fashioned OO 229 8.3.3 Analysis and Design Tools 229 8.3.4 Factoring 231 8.3.5 A Caution about Re-Factoring 231 8.4 Documentation? 231 8.5 Why All These Artifacts? 232 8.6 History and Such 233 9 Coding it Up: The DCI Architecture 235 9.1 Sometimes, Smart Objects Just Aren’t Enough 235 9.2 DCI in a Nutshell 236 9.3 Overview of DCI 238 9.3.1 Parts of the User Mental Model We’ve Forgotten 239 9.3.2 Enter Methodful Object Roles 240 9.3.3 Tricks with Traits 242 9.3.4 Context Classes: One Per Use Case 243 9.4 DCI by Example 246 9.4.1 The Inputs to the Design 246 9.4.2 Use Cases to Algorithms 247 9.4.3 Methodless Object Roles: The Framework for Identifiers 250 9.4.4 Partitioning the Algorithms Across Methodful Object Roles 253 Traits as a Building Block 253 In Smalltalk 253 In C++ 254 In Ruby 256 Coding it Up: C++ 257 Coding Up DCI in Ruby 259 9.4.5 The Context Framework 261 The Ruby Code 263 The C++ Code 265 Making ContextsWork 267 Habits: Nested Contexts in Methodful Object Roles 277 9.4.6 Variants and Tricks in DCI 283 Context Layering 283 Information Hiding 283 Selective Object Role Injection 284 9.5 Updating the Domain Logic 285 9.5.1 Contrasting DCI with the Atomic Event Style 286 9.5.2 Special Considerations for Domain Logic in DCI 287 9.6 Context Objects in the User Mental Model: Solution to an Age-Old Problem 290 9.7 Why All These Artifacts? 294 Why not Use Classes Instead of ‘‘Methodful Object Roles’’? 295 Why not Put the Entire Algorithm Inside of the Class with which it is Most Closely Coupled? 295 Then Why not Localize the Algorithm to a Class and Tie it to Domain Objects as Needed? 296 Why not Put the Algorithm into a Procedure, and Combine the Procedural Paradigm with the Object Paradigm in a Single Program? 296 If I Collect Together the Algorithm Code for a Use Case in One Class, Including the Code for All of its Deviations, Doesn’t the Context Become Very Large? 296 So, What do DCI and Lean Architecture Give Me? 297 And Remember. . . 297 9.8 Beyond C++: DCI in Other Languages 297 9.8.1 Scala 298 9.8.2 Python 299 9.8.3 C# 299 9.8.4 . . . and Even Java 299 9.8.5 The Account Example in Smalltalk 300 9.9 Documentation? 300 9.10 History and Such 301 9.10.1 DCI and Aspect-Oriented Programming 302 9.10.2 Other Approaches 302 10 Epilog 305 Appendix A Scala Implementation of the DCI Account Example 307 Appendix B Account Example in Python 311 Appendix C Account Example in C# 315 Appendix D Account Example in Ruby 321 Appendix E Qi4j 327 Appendix F Account Example in Squeak 331 F.1 Testing Perspective 333 F.2 Data Perspective 333 F.2.1 BB5Bank 333 F.2.2 BB5SavingsAccount 334 F.2.3 BB5CheckingAccount 334 F.3 Context Perspective 335 F.3.1 BB5MoneyTransferContext 335 F.4 Interaction (RoleTrait) Perspective 336 F.4.1 BB5MoneyTransferContextTransferMoneySource 336 F.4.2 BB5MoneyTransferContextMyContext 337 F.4.3 BB5MoneyTransferContextTransferMoneySink 337 F.5 Support Perspective (Infrastructure Classes) 337 F.5.1 BB1Context (common superclass for all contexts) 337 F.5.2 BB1RoleTrait (all RoleTraits are instances of this class) 339 Bibliography 341 Index 351

    £23.99

  • Mobile Middleware

    John Wiley & Sons Inc Mobile Middleware

    1 in stock

    Book SynopsisThis book offers a unified treatment of mobile middleware technology Mobile Middleware: Architecture, Patterns and Practiceprovides a comprehensive overview of mobile middleware technology. The focus is on understanding the key design and architectural patterns, middleware layering, data presentation, specific technological solutions, and standardization. The author addresses current state of the art systems including Symbian, Java 2 Micro Edition, W3C technologies and many others, and features a chapter on widely deployed middleware systems. Additionally, the book includes a summary of relevant mobile middleware technologies, giving the reader an insight into middleware architecture design and well-known, useful design patterns. Several case studies are included in order to demonstrate how the presented patterns, solutions, and architectures are applied in practice. The case studies pertain to mobile service platforms, mobile XML processing, thin clients, rich clientTable of ContentsAbout the Authors. List of Contributors. Preface. 1. Introduction. 1.1 Mobile Middleware. 1.2 Mobile Applications and Services. 1.3 Middleware Services. 1.4 Transparencies. 1.5 Mobile Environment. 1.6 Context-Awareness. 1.7 Mobility. 1.8 Example Use Case. 1.9 Requirements for Mobile Computing. 1.10 Mobile Platforms. 1.11 Organization of the Book. Bibliography. 2. Architectures and Platforms. 2.1 Overview. 2.2 Networking. 2.3 Naming and Addressing. 2.4 Middleware and Platforms. 2.5 Overview of Platforms. 2.6 Mobile Platforms. Bibliography. 3. Support Technologies. 3.1 Session Initiation Protocol (SIP). 3.2 IP Multimedia Subsystem (IMS). 3.3 Web Services. 3.4 Other Technologies. 3.5 Service Discovery. 3.6 Mobility Solutions. 3.7 Advanced Topics. 3.8 Fuego: Example Middleware Platform. Bibliography. 4. Principles and Patterns. 4.1 Definitions. 4.2 Principles. 4.3 Cross-layer design. 4.4 Model Driven Architecture. 4.5 Architectural Patterns. 4.6 General Patterns. 4.7 Patterns for Mobile Computing. 4.8 Summary. Bibliography. 5. Interoperability and Standards. 5.1 Interoperability. 5.2 Standardization. 5.3 Wireless Communications Standards. 5.4 W3C Standards. 5.5 IETF Standards. 5.6 Emerging Internet Standards. Bibliography. 6. Mobile Messaging. 6.1 Messaging Fundamentals. 6.2 Messaging Architectures. 6.3 Mobile and Wireless Communication. 6.4 Security. 6.5 Reliability. 6.6 Java Message Service. 6.7 CORBA and CORBA Messaging. 6.8 XMPP. 6.9 Web Services. 6.10 The Web and REST. Bibliography. 7. Publish/Subscribe. 7.1 Overview. 7.2 Router Topologies. 7.3 Interest Propagation. 7.4 Routing Decision. 7.5 Standards. 7.6 Research Systems. 7.7 Advanced Topics. Bibliography. 8. Data Synchronization. 8.1 Synchronization Models. 8.2 File Systems and Version Control. 8.3 Synchronization in Middleware. 8.4 Case Studies. Bibliography. 9. Security. 9.1 Basic Principles. 9.2 Cryptography. 9.3 Public Key Infrastructure. 9.4 Network Security. 9.5 802.11X. 9.6 AAA, RADIUS, Diameter. 9.7 Transport-layer Security. 9.8 Web Services Security. 9.9 Security Tokens. 9.10 SAML. 9.11 XACML. 9.12 Single Sign-On (SSO). 9.13 Generic Bootstrapping Architecture (GBA). 9.14 Trusted Platform Module. 9.15 OpenID, OAuth, MicroID. 9.16 Spam. 9.17 Downloaded Code. Bibliography. 10. Application and Service Case Studies. 10.1 Mobile Services. 10.2 Mobile Server. 10.3 Mobile Advertisement. 10.4 Mobile Push Email. 10.5 Mobile Video. 10.6 Mobile Widgets and WidSets. 10.7 Airline Services. 10.8 Revisiting Mobile Patterns. 10.9 Summary. Bibliography. 11. Conclusions. Index.

    1 in stock

    £67.46

  • Adapting Configuration Management for Agile Teams

    John Wiley & Sons Inc Adapting Configuration Management for Agile Teams

    Book SynopsisAdapting Configuration Management for Agile Teams provides very tangible approaches on how Configuration Management with its practices and infrastructure can be adapted and managed in order to directly benefit agile teams. Written by Mario E.Table of ContentsPublisher’s Acknowledgements xv Preface xvii Acknowledgements xix About the Author xxi Contributor Biography xxiii 1 Introduction: Racing with Confidence 1 1.1 Focus of this Book 4 1.2 Who should Use this Book 4 1.3 Navigation through this Book 5 1.4 Value of this Book 7 2 CM Primer 9 2.1 Brief History of CM 10 2.2 CM Values 11 2.2.1 Identification 12 2.2.2 Control 12 2.2.3 Audit 14 2.2.4 Report 15 2.3 CM Practices 15 2.3.1 CM Planning Practice 16 2.3.2 Version Control Practice 18 2.3.3 Change Control Practice 19 2.3.4 Build Management Practice 20 2.3.5 Release Practice 21 2.3.6 Problem Management Practice 21 2.3.7 Audit Practice 22 2.3.8 Report Practice 23 2.3.9 Other Practices 24 2.4 Benefits of CM 24 2.4.1 Benefits of CM to Management 24 2.4.2 Benefits of CM to Development Staff 24 2.4.3 Benefits of CM for CM and QA/Test Personnel 25 2.5 CM Roles 25 2.6 CM Mindset 29 2.6.1 Thinking Modular 29 2.6.2 Thinking Integrity 29 2.6.3 Thinking ‘‘Get It Done’’ 30 2.6.4 Thinking Improvement 30 2.7 Relationship of CM to Culture, Methods, & Governance 30 2.7.1 Relationship of Culture to CM 31 2.7.2 Relationship of Governance to CM 33 2.7.3 Relationship of Methods to CM 33 2.7.4 Avoiding Mistakes in CM Adoption 34 2.8 CM Resource Guide 35 2.8.1 CM Books 35 2.8.2 CM websites 35 3 Agile Primer 37 3.1 Brief History of Agile 40 3.2 Agile Values (a.k.a., Manifesto) 41 3.3 Agile Methods 42 3.3.1 Scrum 42 3.3.1.1 Scrum Roles 43 3.3.1.2 Scrum Practices and Artifacts 43 3.3.2 Extreme Programming (XP) 45 3.3.2.1 XP Roles 45 3.3.2.2 XP Practices and Rules 45 3.3.3 Other Methods that Support Agile 47 3.3.3.1 DSDM 47 3.3.3.2 Feature-Driven Development (FDD) 48 3.3.3.3 Agile Unified Process 48 3.4 Benefits of Agile 49 3.5 Agile Personality Types 50 3.5.1 Innovator 51 3.5.2 Champion 51 3.5.3 Workhorse 52 3.5.4 Bandwagon 53 3.5.5 Cowboy 53 3.5.6 Deceiver 54 3.5.7 Denier 55 3.5.8 Summarizing the Types 55 3.6 Agile Roles 55 3.6.1 Agile Coach 56 3.6.2 Agile Project Manager/ScrumMaster 56 3.6.3 Agile Project Team 57 3.6.4 Product Owner/Manager 57 3.6.5 Customer 58 3.7 Agile Mindset 58 3.7.1 Thinking Small 59 3.7.2 Thinking Business Value 59 3.7.3 Thinking Continuous 59 3.7.4 Thinking Self-Empowered Team 59 3.7.5 Thinking Collaboration 60 3.8 Moving to an Agile Culture 61 3.8.1 Targeting the Sweet Spot 61 3.8.2 Targeting the Product Level 62 3.8.3 Actions for Agile Change 63 3.8.3.1 Promoting a Dedicated Team 63 3.8.3.2 Ensure Continuous Customer Participation 63 3.8.3.3 Advocating for an Agile Coach 64 3.8.3.4 Promoting Co-Location 64 3.8.3.5 Introducing Agile Terminology 64 3.8.3.6 Promoting Agile Practices 65 3.8.3.7 Minimizing Project Reporting 65 3.8.3.8 Embracing Change 65 3.8.3.9 Praising Cancelled Projects 65 3.8.3.10 Removing Formality and Ceremony 66 3.8.4 Determining Agile Readiness 66 3.8.5 Measuring your Move Toward Agile 67 3.8.6 Avoiding Mistakes in Agile Adoption 68 3.9 Agile Resource Guide 69 3.9.1 Agile Books 69 3.9.2 Agile Websites 70 4 How CM and Agile Values Work Together 71 4.1 Aligning Agile and CM Mindsets 72 4.1.1 Challenges of Aligning the Minds 73 4.2 Supporting Agile and CM Values without Sacrifice 74 4.3 Value of Retrospective to CM 75 4.4 Agile Perspective of CM Practices 76 4.4.1 Value Ranking of CM Practices by CM Professionals 76 4.4.2 Value Rating of CM Practices by Agile Professionals 77 4.4.2.1 Agile Perspective of CM Tools in General 78 4.4.2.2 Agile Perspective of CM Planning 79 4.4.2.3 Agile Perspective for Version Control 81 4.4.2.4 Agile Perspective for Build Management 81 4.4.2.5 Agile Perspective of Change Control 82 4.4.2.6 Agile Perspective of Problem Management 82 4.4.2.7 Agile Perspective of CM Audit 82 4.4.2.8 Agile Perspective of CM Reporting 83 4.4.2.9 Agile Perspective of Release Engineering 83 5 Approaching Infrastructure for Agile 85 5.1 Guiding Principles for Approaching Infrastructure 86 5.2 Considerations for Approaching Infrastructure 87 5.2.1 Iteration 0 87 5.2.2 Agile Team as Customer of Infrastructure 87 5.2.3 Architecture Envisioning 88 5.2.4 To Envision or to Refactor 90 5.3 Infrastructure Envisioning 90 5.3.1 Initiating an Iteration 0 at the Beginning 91 5.3.2 Thinking Iterations 91 5.3.3 Tasks in Product Backlog or Infrastructure Backlog 93 5.3.4 Reflections on Infrastructure Envisioning 94 5.4 Infrastructure Refactoring 94 5.4.1 Iteration Planning or Iteration 0 96 5.4.2 Thinking in Iterations 96 5.4.3 Tasks in Product Backlog or Infrastructure Backlog 97 5.4.4 Reflections on Infrastructure Refactoring 98 5.5 Owning on Premises or Renting in the Clouds 99 5.5.1 Renting in the Clouds 100 5.5.2 Owning Server and Renting Space (a.k.a., Co-location as a Service) 102 5.5.3 Owning on Premises 103 5.5.4 Reflections on Premises or in the Clouds 104 6 Approaching the CM Implementation for Agile 105 6.1 CM Envisioning 105 6.1.1 Strategizing for the Whole with Iteration 0 106 6.1.1.1 Owning CM Infrastructure on Premises 107 6.1.1.2 Renting CM Infrastructure in the Clouds 107 6.1.1.3 Sharing through CM Co-op Environments 108 6.1.2 Implementing Incrementally 109 6.1.3 CM in Product Backlog or CM Backlog 110 6.2 CM Refactoring 110 6.2.1 Iteration Planning or Iteration 0 111 6.2.2 Think in Iterations 112 6.2.3 CM in Product Backlog or CM Backlog 112 6.3 Automate, Automate, Automate for Agile 112 6.3.1 Benefits of CM Automation to Agile 114 6.3.2 Chunks, Iterations, and Increments 116 6.3.2.1 Advantages of Smaller Chunks and Increments 116 6.3.2.2 Disadvantages of Smaller Chunks and Increments 117 6.3.3 Location, Location, Location 118 6.3.3.1 Co-location of Team 118 6.3.3.2 Co-location of Infrastructure 120 6.3.3.3 Co-location of Functionality 121 6.3.3.4 CM Considerations for Co-location and Agile 122 7 Adapting CM Practices for Agile 125 7.1 Adapting to Continuous Integration and Build 126 7.1.1 The ‘‘Continuous’’ Cultural Shift 128 7.1.1.1 How ‘‘Continuous’’ Adds Stress and Load to CM 130 7.1.2 Right-Size Branching for Agile 131 7.1.2.1 ABCs of Branching 131 7.1.2.2 Private Workspace 135 7.1.2.3 Factors for an Agile Branching Strategy 138 7.1.2.4 Understanding Codelines 141 7.1.2.5 Branching Scenarios 142 7.1.2.6 Branching Challenges 145 7.1.2.7 Branching Summary 146 7.1.3 Shifting Responsibilities for Merge and Build Activities 147 7.1.4 Effective Merge for Agile 147 7.1.4.1 Merge Challenges 149 7.1.5 Effective Build for Agile 150 7.1.5.1 Build Levels 150 7.1.5.2 Build Automation for Continuous Integration 152 7.1.6 Continuous Testing with Teeth 153 7.1.6.1 Unit Testing 153 7.1.6.2 Smoke Testing 153 7.1.7 Reflections on Continuous Integration and Build 154 7.2 Adapting CM Planning 155 7.2.1 Balancing Agile Values with Organization Needs 155 7.2.2 Getting Started with Iteration 0 156 7.2.3 Evolutionary CM Plan 157 7.2.4 Reusable CM Plan 158 7.2.5 Inherited CM Plan 159 7.2.6 Types of CM Planning Formats 160 7.2.7 Adapting CM Roles and Responsibilities for Agile 164 7.2.7.1 CM as Holistic Part of the Agile Team 165 7.2.7.2 Adjusting CM Responsibilities 166 7.2.8 Reflections on CM Planning for Agile 168 7.3 Adapting to Support Refactoring 168 7.3.1 Reflections on Refactoring 170 7.4 Adapting to Support Pair Programming 170 7.4.1 Reflections on Pair Programming 173 7.5 Adapting to Support Test Driven Development (TDD) 173 7.5.1 Reflections on Test-Driven Development 175 7.6 Adapting to Support Agile Distributed Teams 175 7.6.1 Distributed Analysis for Distributed Teams 175 7.6.2 Code Access Approaches 176 7.6.3 Reflections on Approaching Agile Distributed Teams 180 7.7 Adapting Change Control, Traceability, and Baselines 180 7.7.1 Tracking Requirements or Stories and their Changes 181 7.7.2 Adjusting the Notion of Baseline 182 7.7.2.1 Baseline Considerations for Agile 183 7.7.2.2 Baselines for Agile 183 7.7.3 Approaching Traceability for Agile 185 7.7.3.1 Traceability for the Right Reasons 185 7.7.3.2 Traceability Considerations for Agile 186 7.7.4 Reflections on Change Control, Traceability, and Baselines for Agile 187 7.8 Adapting CM Audit 187 7.8.1 Agile Considerations for Audit 188 7.8.1.1 Trust or Verification 188 7.8.1.2 What Baselines to Audit Against 188 7.8.1.3 Challenges with BEUF Specifications 189 7.8.1.4 Audit after the Third Iteration 189 7.8.2 Approaching Audit for Agile 189 7.8.2.1 Automating Code to Build Baselines 189 7.8.2.2 Move the Process Audit to the Retrospective 190 7.8.2.3 Move the Baseline Audit to the Review 190 7.8.2.4 Giving Cadence to Industry Standards 190 7.8.3 Reflections on CM Audit for Agile 191 7.9 Adapting Problem Management 192 7.9.1 Establishing Problem Management Upfront 192 7.9.2 From Phase to Iteration 192 7.9.3 Problem Management for Pair Programming 193 7.9.4 Problem Management Automation 193 7.9.5 Reflections on Problem Management for Agile 193 7.10 Adapting CM Report and Review 194 7.10.1 Moving CM Report and Review into the Retrospective 194 7.10.2 Adjusting CM Metrics that Help Deliver Value 195 7.10.3 Constructing a Value-Added Metric 195 7.10.3.1 Metric Building Blocks 196 7.10.3.2 Considering the Benefit of the Metric 196 7.10.3.3 Determining Effort to Collect the Metric 197 7.10.3.4 Assessing the Value of the Metric 198 7.10.3.5 Comparing amongst Potential Metrics 199 7.10.3.6 Monitoring of the Metric 199 7.10.4 Waste and Examples of Value-Added CM Metrics 200 7.10.5 Reflections on Adapting CM Report and Review for Agile 202 8 CM Tool as a Strategic Agile Partner 203 8.1 CM Tool Support for Software Development 204 8.2 The Agile Practices that Impact a CM Tool 208 8.2.1 Whole Team 208 8.2.2 Retrospectives 209 8.2.3 Backlog 209 8.2.4 Short Iterations 209 8.2.5 Iteration Review 210 8.2.6 One Piece Flow 210 8.2.7 Continuous Integration (CI) 210 8.2.8 Refactoring 210 8.2.9 Collective Code Ownership 211 8.2.10 Frequent Releases 211 8.2.11 Traceability vs. Variance 211 8.3 Evaluating Your Situation 212 8.3.1 Homegrown Tools 212 8.3.2 Outdated Tools 212 8.4 CM Tool Features that Facilitate Agile Development 213 8.4.1 High Performance 213 8.4.2 Fast Configuration Creation (a.k.a. Branching and Labeling) 213 8.4.3 Native Internet Support 213 8.4.4 Replication for Distributed Team Continuous Integration 214 8.4.5 All Writeable Files 214 8.4.6 Codelines (a.k.a. Streams, Lines of Development) 214 8.4.7 Change Tracking 215 8.4.7.1 Refactoring: Rename, Merge, and Patch Tracking 216 8.4.7.2 Transactions (a.k.a. Change Lists or Change Sets) 216 8.4.7.3 Change Packages 217 8.4.8 Private Branches 218 8.5 Integration with Your Agile Ecosystem 218 8.5.1 Integration with the Agile Project Management Tool 219 8.5.2 Integration with the Continuous Integration and Build Tool 219 8.5.3 Integration with the Test Automation Tool 219 8.5.4 Configuration vs. Customization 220 8.6 Conclusion 220 9 Evaluating Tools Suited for Agile 221 9.1 Looking for Tools out there and in here 221 9.1.1 Using a Vendor Tool Specific for Agile 222 9.1.2 Using a Freeware Tool Specific for Agile 224 9.1.3 Using a Homegrown Tool for Agile 225 9.1.4 Tool Classification Comparison 226 9.2 Levels of Technology Evaluation 226 9.2.1 Research Evaluation 227 9.2.2 Demonstration Evaluation 227 9.2.3 Pilot/Full Evaluation 228 9.2.4 Considerations on Levels 228 9.3 Perform a Technology Evaluation 229 9.3.1 Investigating a CM Tool for Your Needs 230 9.3.1.1 Version Control 230 9.3.1.2 Build Management 231 9.3.1.3 Change Control/Problem Management 231 9.3.1.4 Release Engineering 232 9.3.1.5 The CM Tool (or Tools) for You 232 9.3.2 Investigating Agile Tools 232 9.3.3 Evaluation Process 233 9.3.3.1 Establishing Evaluation Team 234 9.3.3.2 Determining Evaluation Level 235 9.3.3.3 Conducting a Research Evaluation 235 9.3.3.4 Conducting a Demo Evaluation 236 9.3.3.5 Conducting a Pilot/Full Evaluation 237 9.3.3.6 Considering a Request for Proposal (RfP) 238 9.3.3.7 Acquisition Process – Owning or Renting 240 10 Using CM Standards and Frameworks to Support Agile 241 10.1 Importance of CM 242 10.2 Compliance and IT Governance Requirements 242 10.3 Communicating Your Approach to Senior Management 243 10.4 Which Standards Should Be Considered? 245 10.5 Configuration Management Functions that are most Essential 247 10.5.1 Continuous Integration without the Required Version ID 247 10.6 How do Frameworks such as Cobit, ITIL, CMMI, and RUP support Agile? 249 10.6.1 ISACA Cobit 250 10.6.2 itSMF ITIL Framework 250 10.6.3 CMMI and Agile 251 10.6.4 Rational Unified Process (RUP) and Agile Unified Process (AUP) 251 10.7 Achieving Synergy through Harmonization and Tailoring 252 10.7.1 Change Control on Your Standards Tailoring 252 10.7.2 Overcoming Resistance to Change 253 10.8 Conclusion 253 Bibliography 255 Index 259

    £23.99

  • Server Component Patterns Component

    John Wiley & Sons Inc Server Component Patterns Component

    Book SynopsisA detailed exploration of the basic patterns underlying todaya s component infrastructures. The latest addition to this best--selling series opens by providing an "Alexandrian--style" pattern language covering the patterns underlying EJB, COM+ and CCM.Table of ContentsPreface. Foreword by Frank Buschmann. Foreword by Clemens Szyperski. Foundations. Part I: A Server Component Patterns Language. Core Infrastructure Elements. Component Implementation Building Blocks. Container Implementation Basics. A Component and its Environment. Identifying and Managing Instances. Remote Access to Components. More Container Implementation. Component Deployment. Part II: The Patterns Illustrated with EJB. EJB Core Infrastructure Elements. EJB Component Implementation Building Blocks. EJB Container Implementation Basics. A Bean and its Environment. Identifying and Managing Bean Instances. Remote Access to Beans. More EJB Container Implementation. Bean Deployment. Part III: A Story. Literature and Online Resources. Glossary. Index.

    £30.40

  • ObjectOriented Programming in C

    John Wiley & Sons Inc ObjectOriented Programming in C

    Book SynopsisC++ is established as the leading industry programming language for object-oriented software development. This book provides a step-by-step approach to all language features, explains their practical usage, provides intuitive examples that are not too complex or easy, and provides advice for implementing classes and libraries to develop programs.Trade Review"...technically solid, excellent introduction to C++..." (Cvu, December 2002)Table of ContentsPreface. 1. About this Book. Why Did Write this Book? Prerequisites. Organization of the Book. How Should You Read this Book? Example Code and Additional Informations. Feedback. 2. Introduction: C++ and Object-Oriented Programming. The C++ Language. C++ as an Object-Oriented Programming Language. Other Concepts of C++. Teminology. 3. Basic Concepts of C++ Programs. The First Program. Types, Operators, and Control Constructs. Functions and Modules. Strings. Collections. Exception Handling. Pointers, Arrays, and C-Strings. Memory Management Using new and delete. Communication with the Outside World. 4. Class Programming. The First Class: Fraction. Operators for Classes. Running Time and Code Optimization. References and Constants. Input and Output Using Streams. Friends and Other Types. Exception Handling for Classes. 5. Inheritance and Polymorphism. Virtual Functions. Polymorphism. Multiple Inheritance. Design Pitfalls with Inheritance. 6. Dynamic and Static Members. Dynamic Members. Other Aspects of Dynamic Members. Inheritance of Classes with Dynamic Members. Classes Containing Classes. Static Members and Auxiliary Types. 7. Templates. Why Templates? Function Templates. Class Templates. Non-Type Template Parameters. Additional Aspects of Templates. Templates in Practice. 8. The Standard I/O Library in Detail. The Standard Stream Classes. File Access. Stream Classes for Strings. 9. Other Language Features and Details. Additional Details of the Standard Library. Defining Special Operators. Additional Aspects of new and delete. Function Pointers and Member Pointers. Combining C++ with C Code. Additional Keywords. 10. Summary. Hierarchy of C++ Operators. Class-Specific Properties of Operations. Rules for Automatic Type Conversion. Useful Programming Guidelines and Conventions. Bibliography. Glossary. Index.

    £56.00

  • Symbian OS Communications Programming 2 Symbian

    Wiley Symbian OS Communications Programming 2 Symbian

    Book SynopsisA developera s guide to the Symbian OS (Operating System) Communications Architecture. The Symbian OS Communications Architecture is the cornerstone of Symbian OS -- enabling the combination of voice communications, wireless Internet access and computing functionality.Trade Review"...clear and detailed...the supporting text is lucid and clear..." (www.wirelessdevnet.com, 5 July 2002) "…something useful for everyone…the writing is clear, and the structure makes it easy to learn…" (Forum Nokia, 6 March 12003) "…written in a clear and accessible manner…" (CVu, June 2003)Table of ContentsPreface. Foreword. Section 1: The Basics of Symbian OS Communication. Introduction. Introduction to the Symbian Communication Architecture. Several Introductions to the Architecture Infrastructure. Transport Technologies. Look at Content Technologies. Security and Communication. Section 2: Programming using Symbian OS Communication. Getting Started with Communications Programming. Serial Communications. Communicating via Infrared: Serial Communications. Using Sockets. Communicating via Infrared: Using Sockets. Communicating with TCP/IP. Bluetooth Communications. Telephony. Sending and Receiving Messages. Browsable Content Technologies. Section 3: Miscellaneous Topics. Synchronization: PLP and SyncML. The Communications Database. Looking Ahead. Appendix A Developer Resources and Bibliography. Index.

    £29.59

  • LargeScale Software Architecture

    John Wiley & Sons Inc LargeScale Software Architecture

    Book SynopsisThe purpose of large--scale software architecture is to capture and describe practical representations to make development teams more effective. In this book the authors show how to utilise software architecture as a tool to guide the development instead of capturing the architectural details after all the design decisions have been made.Trade Review“…a welcome addition…recommended…” (CVU, June 04)Table of ContentsPreface. Acknowledgements. Introduction. Roles of the Software Architect. Software Architecture and the Development Process. Example System Overview. UML Quick Tour. System Context and Domain Analysis. Component Design and Modeling. Subsystem Design. Transaction and Data Design. Process and Deployment Design. Architecture Techniques. Applying the Viewpoints. Summary of Architectural Viewpoints. Bibliography.

    £28.00

  • Agile Documentation

    John Wiley & Sons Inc Agile Documentation

    Book SynopsisSoftware documentation forms the basis for all communication relating to a software project. To be truly effective and usable, it should be based on what needs to be known. Agile Documentation provides sound advice on how to produce lean and lightweight software documentation.Trade Review??many (Test Documents) would benefit from this treatment?? (Professional Tester, October 03) "...applicable to documentation for any project...highly recommended..." (CVu, Vol 16(4), August 2004)Table of ContentsForeword ix Preface xi Acknowledgements xvii Introduction 1 Project Background 11 1 Finding the Right Topics 19 Target Readers 24 Focused Information 26 Individual Documentation Requirements 28 Documentation Portfolio 30 Focus on Long-Term Relevance 34 Specification as a Joint Effort 36 Design Rationale 39 The Big Picture 40 Separation of Description and Evaluation 42 Realistic Examples 44 Experience Reports 46 2 Structuring Individual Documents 61 Structured information 66 Judicious Diagrams 70 Unambiguous Tables 73 Guidelines for Readers 75 Thumbnail Sketches 77 Traceable References 78 Glossary 79 Document History 81 Experience Reports 82 3 Layout and Typography 93 Text on 50% of a Page 98 Two Alphabets per Line 100 120% Line Spacing 102 Two Typefaces 104 Careful Use of Type Variations 106 Careful Ruling and Shading 108 Adjacent Placement 109 Coherent Pages 111 Experience Reports 112 4 Infrastructure and Technical Organisation 117 Document Landscape 120 Document Archive 123 Wiki 125 Code-Comment Proximity 126 Reader-Friendly Media 128 Separation of Contents and Layout 131 Single Source and Multiple Targets 133 Import by Reference 136 Separation of Processing and Printing 138 Document Templates 139 Few Tools 142 Annotated Changes 144 Notification upon Update 145 Reorganisation upon Request 147 Experience Reports 149 5 Management and Quality Assurance 159 A Distinct Activity 161 One Responsible Author 164 Continuing Documentation 166 Writing and Reflection 168 Review Culture 170 Review Before Delivery 174 Customer Review 175 A Distant View 177 Information Marketplace 179 Knowledge Management 180 Experience Reports 182 Final Remarks 193 Pattern Thumbnails 197 Finding the Right Topics 197 Structuring Individual Documents 198 Layout and Typography 200 Infrastructure and Technical Organisation 201 Management and Quality Assurance 203 Glossary 205 References 211 Index 221

    £21.25

  • Developing Intelligent Agent Systems A Practical Guide

    Wiley Developing Intelligent Agent Systems A Practical Guide

    Book SynopsisHere is the first book to include a step--by--step process of how to design intelligent agents. Providing a full life--cycle methodology for developing intelligent agent systems, Developing Autonomous Agent Systems present a thoroughly developed and tested methodology to developing intelligent agent technologies.Table of ContentsForeword from the Series Editor. Preface. Acknowledgements. 1. Agents and Multi-Agent Systems. 2. Concepts for Building Agents. 3. Overview of the Prometheus Methodology. 4. System Specification. 5. Architectural Design: Specifying the Agent Types. 6. Architectural Design: Specifying the Interactions. 7. Finalizing the Architectural Design. 8. Detailed Design: Agents, Capabilities and Processes. 9. Detailed Design: Capabilities, Plans and Events. 10. Implementing Agent Systems. Appendix A: Electronic Bookstore. Appendix B: Descriptor Forms. Appendix C:The AUML Notaton. Bibliography. Index.

    £64.55

  • Scenarios Stories Use Cases

    John Wiley & Sons Inc Scenarios Stories Use Cases

    Book Synopsis Extending the scenario method beyond interface design, this important book shows developers how to design more effective systems by soliciting, analyzing, and elaborating stories from end-users Contributions from leading industry consultants and opinion-makers present a range of scenario techniques, from the light, sketchy, and agile to the careful and systematic Includes real-world case studies from Philips, DaimlerChrysler, and Nokia, and covers systems ranging from custom software to embedded hardware-software systems Trade Review"...this book is a breath of fresh air, providing practical guidance on incorporating techniques and approaches to the development cycle." - Usability ConsultantTable of ContentsPreface xiii Biographies and Photographs xvii Part I Overview Chapter 1 Introduction: Scenarios in System Development Context 3 Through the Life Cycle 17 Types of System 18 Scenarios for Systems—Not Necessarily Software 19 The Way Ahead 21 Keywords 21 References 21 Recommended Reading 22 Chapter 2 Scenario-based Approaches Overview: The Crews Scenario Framework 25 The Framework 26 The Scenario Approaches Described in this Book 28 Conclusion 32 Keywords 32 References 32 Part II Scenarios Through the System Life-cycle: Techniques Chapter 3 Scenarios in Requirements Discovery Applicability 39 Position in the Life Cycle 40 Key Features 40 Strengths 40 Weaknesses 41 What Is a Requirements Scenario? 41 From Scenarios to Atomic Requirements 51 Keeping Track of the Investigation 54 Who Produces the Scenarios? 54 Techniques for Building Scenarios 55 When to Use Scenarios 58 Keywords 59 References 59 Chapter 4 Scenarios for Innovation: Developing Scenario-based User Needs Analysis (Suna) Applicability 61 Position in the Life Cycle 62 Key Features 62 Strengths and Weaknesses 63 Technique 64 Worked Example 73 Comparisons 77 Keywords 79 References 79 Recommended Readings 79 Chapter 5 Running a Use Case/scenario Workshop Applicability 81 Position in the Life Cycle 82 Key Features 82 Strengths 83 Weaknesses 84 Technique 85 Worked Example 93 Comparisons 99 Keywords 100 References 100 Recommended Reading 101 Chapter 6 Alternative World Scenarios to Assess Requirement Stability Applicability 103 Position in the Life Cycle 104 Key Features 104 Strengths 104 Weaknesses 104 Technique 105 Worked Example 110 Comparisons 115 Keywords 116 References 116 Recommended Reading 117 Chapter 7 Cases Negative Scenarios and Misuse Applicability 119 Roles in the Life Cycle 119 Key Features 120 Strengths 120 Weaknesses 120 Technique 120 Worked Example 128 Comparisons 131 Keywords 138 References 138 Recommended Reading 139 Chapter 8 Authoring Use Cases Applicability 141 Position in the Life Cycle 141 Key Features 142 Strengths 143 Weaknesses 143 Technique 143 Comparisons 158 Keywords 159 References 159 Recommended Reading 160 Chapter 9 Systematic Scenario Walkthroughs with Art-scene Position in the Life Cycle 161 Applicability 161 Key Features 162 Strengths 162 Weaknesses 162 The Art-Scene Process and Environment 162 Art-Scene’s Research Provenance 163 The Art-Scene Approach 164 The Structure and Representation of an Art-Scene Scenario 164 The Art-Scene Software Environment 166 Facilitating Scenario Walkthroughs 171 The Scenario Workshop Environment 173 Worked Example 173 Comparisons 176 Keywords 177 References 177 Recommended Reading 178 Chapter 10 The role of scenarios In Contextual Design: From User Observations to Work Redesign To Use Cases Applicability 180 Position in the Life Cycle 180 Key Features 181 Strengths 181 Weaknesses 185 Technique 185 Techniques and Worked Example 186 Lessons Learnt 205 Comparisons 206 Keywords 207 References 207 Recommended Readings 208 Chapter 11 A Scenario-based Design Method for Human-centred Interaction Design Overview 211 Applicability 211 Position in the Life Cycle 212 Key Features 212 Strengths 213 Weaknesses 213 The Method 213 Other Artifacts in the Method 218 Processes of the Method 220 Summary 223 Worked Example 224 User Story 225 Comparisons 232 Acknowledgements 233 Keywords 234 References 234 Recommended Reading 234 Chapter 12 Use Case-based Software Development Applicability 237 Position in the Life Cycle 238 Key Features 238 Strengths 238 Weaknesses 238 Technique and Worked Example 239 Summary and Comparisons 262 Keywords 263 References 263 Recommended Reading 264 Chapter 13 User Stories in Agile Software Development Applicability 265 Applicability II—Why User Stories? 266 Position in Life Cycle 267 Key Features 267 Strengths 268 Weaknesses 268 Technique 269 Worked Example 275 Comparisons 278 Keywords 279 References 279 Recommended Reading 279 Chapter 14 Use Cases, Test Cases Applicability 281 Position in the Life Cycle 281 Key Features 282 Strengths 282 Weaknesses 282 Background: The V-Model 283 Technique 284 Worked Example 290 Comparisons 296 Keywords 297 References 297 Recommended Reading 298 Chapter 15 Project Stories: Combining Life-cycle Process Models Applicability 299 Position in the Life Cycle 299 Key Features 300 Strengths 300 Weaknesses 300 Technique 300 Conclusion 323 Keywords 324 References 324 Recommended Reading 324 Part III Scenarios in Action: Case Studies Chapter 16 Story Use and Reuse in Automotive Systems Engineering Type of Project 329 Applicability 329 Position in the Life Cycle 330 Roles Played by Scenarios 330 Strengths 330 Weaknesses 330 Introduction 330 Automotive Software Development 331 Stories in Automotive Software Development 334 Lessons Learnt 342 Keywords 345 References 346 Chapter 17 Systems Use and Misuse Cases in Railway A: Use Cases for Train Control Requirements Discovery 347 Type of Project 347 Applicability 348 Position in the Life Cycle 348 Roles Played by Scenarios 348 Strengths 348 Weaknesses 348 Case Study 349 Methods and Tools 350 Approach 350 Lessons Learnt 352 Keywords 353 B: Misuse Cases for a Seats Trade-Off 354 Type of Project 354 Applicability 354 Position in the Life Cycle 354 Roles Played by Scenarios 354 Strengths 355 Weaknesses 355 Case Study 355 Lessons Learnt 360 Summary 361 Keywords 362 References 362 Chapter 18 Scenarios in Air Traffic Control (ATC) Applicability 363 Roles in the Life Cycle 364 Key Features 364 Strengths 364 Weaknesses 365 Background 366 Results 372 Keywords 376 References 376 Chapter 19 Scenarios and Quality Requirements in Telecommunications Type of Project 379 Applicability 379 Position in the Life Cycle 380 Roles Played by Scenarios 380 Strengths 380 Weaknesses 380 Case Study 381 Lessons Learnt 389 Acknowledgements 391 Keywords 391 References 391 Chapter 20 Scenarios in Rail Rolling Stock with Reveal Applicability 393 Position in the Life Cycle 394 Key Features 394 Strengths 394 Weaknesses 395 Case Study 396 Lessons Learnt 408 Keywords 409 References 409 Chapter 21 Evaluating Scenarios by Simulation Type of Project 411 Applicability 412 Position in the Life Cycle 412 Roles Played by Scenarios 412 Strengths 412 Weaknesses 412 Case Study 413 Lessons Learnt 425 Keywords 426 References 426 Part IV The Way Ahead Chapter 22 Putting Scenarios Into Practice Which Kind of Scenario, When? 431 Which Scenario Technique, When? Conclusions from Part 2 432 Who, and Why? 435 Scenarios Everywhere? 436 How Does Project Scale Affect Scenario Usage? 437 Into Practice: Conclusions from the Part 3 Case Studies 439 Do Scenarios Replace Requirements? 440 Getting Started 443 Keywords 444 References 444 Chapter 23 Teaching Computer Scientists To Make Use Challenges in Teaching Students to Make Use 445 Comparisons—Scenarios for Making Use 446 Using Cases to Teach Scenario-Based Usability Engineering 449 Strengths and Weaknesses 458 Discussion and Future Directions 459 Acknowledgements 461 Keywords 461 References 462 Recommended Readings 463 Chapter 24 What Scenarios (Still) Aren’t Good for Continuous Behaviour 465 Very Large Systems 466 Fragmentary Models 466 Episodic, Allusory 467 Domain-Specific? 467 Which Representation? 467 Open-Ended 468 Tacit Knowledge 468 Non-Functional Requirements (NFRs) 468 Summary 468 References 469 Chapter 25 The Future of Scenarios Introduction: Horses for Courses 471 Towards a Framework 471 Representation 471 Process 472 Domain Knowledge 473 COTS 473 Dissemination 473 Summary 474 References 474 Appendix 1 Scenario-based System Development Templates 475 Appendix 2 Exercises 499 Appendix 3 Answers to Exercises 501 Glossary 507 Index 513

    £30.40

  • Android Development with Flash

    John Wiley & Sons Inc Android Development with Flash

    Book SynopsisThe visual guide to developing for one of the world s hottest new mobile platforms, the Android OS The Android operating system works on phones that combine a camera, Web browser, e-mail, GPS, and mapping tool into a single accessible pocket-sized unit, and can function on computers, as well.Table of ContentsHOW TO USE THIS VISUAL BLUEPRINT BOOK. 1 GETTING STARTED WITH ANDROID DEVELOPMENT. Introducing Android Devices. Introducing the Development Tools. Introducing the Available APIs. Check What APIs Are Not Available. Become an Android Developer. Get the Android SDK. Get the Android Eclipse Plug-in. Enable USB Debugging. Create an Android Virtual Device. Start the Emulator. 2 GETTING STARTED WITH FLASH CS5. Using the Actions Panel. Create a Skeleton Custom Class. Set the Source Path. Create MovieClips. Create Buttons. Edit Properties in Flash. Add Objects to the Stage with Code. Remove Objects from the Stage with Code. Work with Events. Using the Drawing API. Using Flash CS5 Help. 3 DEVELOPING YOUR FIRST APPLICATION. Create a New Project. Configure Publish Settings. Set Your Application Output. Create a P12 Certificate. Compile from Flash Professional CS5. Compile from the Command Line. Install Your Application on Your Device. Update Your Version Number. Set Application Permissions. Set a Custom Application URI. 4 DESIGNING YOUR APPLICATION. Mobile User Interface Guidelines. Understanding Screen Resolutions. Create Full-Screen Applications. Understanding Screen Orientation. Create Usable Hit States. Understanding Layout. 5 HANDLING INTERACTION. Create Button States. Respond to Touch Events. Track Multiple Touches. Respond to Zoom Events. Respond to Rotate Events. Respond to Pan Events. Respond to Swipe Events. Listen for Accelerometer Events. Determine If the Accelerometer Is Available. Determine Device Orientation. Detect Which Way Is Up. Filter Accelerometer Data. 6 WORKING WITH IMAGES. Prepare Your Images. Import Images. Display Images. Bundle Images with Your Application. Load Images at Runtime. Create Images Dynamically. Save Images to the Camera Roll. Select Images from the Camera Roll. Display the Camera. 7 WORKING WITH SOUND. Import Audio into Your Project. Choose an Audio Codec. Bundle Sounds with Your Application. Load Sounds at Runtime. Play Sounds. Stop Sounds. Set the Volume of a Sound. Visualize the Sound Spectrum. Access the Microphone. 8 WORKING WITH VIDEO. Explore Available Video Formats and Encode a Video File. Convert Videos. Embed a Video. Bundle a Video with Your Application. Load a Video. Buffer a Video. Control a Video. Set the Volume of a Video. 9 WORKING WITH TEXT. Embed Fonts in Your Application. Create an Input TextField. Create a Password TextField. Using TLF TextFields. Create a Scrollable TextField. 10 SAVING STATE. Create a Local SharedObject. Write to a SharedObject. Load Data from a SharedObject. Connect to a SQLite Database. Create a SQLite Table. Insert Data into a SQLite Table. Select Data from a SQLite Table. Update Data in a SQLite Table. Delete Data from a SQLite Table. Handle Application Exits. Save Application States. Handle Back and Menu Button Presses. Handle Application Deactivation. 11 WORKING WITH FILES. Reference Files and Directories. Write Files. Read Files. Update Files. Append Files. Handle Files Synchronously. Copy Files. Load SWF files. 12 USING THE LOCATION AND WIFI FEATURES. Retrieve Your Current Location. Map Your Location with Yahoo! Map Your Location with Google. Determine Your Speed. Check for an Internet Connection. Set the System Idle Mode. Display Web Pages. 13 USING SPECIAL URL PROTOCOLS. Make Phone Calls. Open the Mail Application. Open the Maps Application. Open the Messaging Application. Play a YouTube Video. 14 INTEGRATING WITH THIRD-PARTY SERVICES. Submit Updates to Twitter. Display Ads with Smaato. Track with Google Analytics. Display Ads with AdMob. 15 OPTIMIZING PERFORMANCE. Optimize Your Display List. Manage Mouse Events. Understanding cacheAsBitmap. Understanding cacheAsBitmapMatrix. 16 DEBUGGING YOUR APPLICATION. Show Your Trace Statements. Create Breakpoints. Using the Flash CS5 Debugger. Understanding the Debug Console. Understanding the Variables Panel. Debug with the Android Eclipse Plug-in. 17 DEPLOYING YOUR APPLICATION. Take Screenshots of Your Application on Your Device. Create an Application Icon. Publish Your Application for the Android Market. Upload Your Application to the Android Market. APPENDIX A ACTIONSCRIPT CLASS REFERENCE. INDEX.

    £22.94

  • Compiler Construction Using Java Javacc and Yacc

    John Wiley & Sons Inc Compiler Construction Using Java Javacc and Yacc

    Book SynopsisBroad in scope, involving theory, the application of that theory, and programming technology, compiler construction is a moving target, with constant advances in compiler technology taking place. Today, a renewed focus on do-it-yourself programming makes a quality textbook on compilers, that both students and instructors will enjoy using, of even more vital importance. This book covers every topic essential to learning compilers from the ground up and is accompanied by a powerful and flexible software package for evaluating projects, as well as several tutorials, well-defined projects, and test cases.Trade Review"Compiler Construction Using Java, JavaCC, and Yacc covers every topic essential to learning compilers from the ground up and is accompanied by a powerful and flexible software package for evaluating projects, as well as several tutorials, well-defined projects, and test cases." (Ulitzer, 5 December 2011) Table of ContentsPreface xv Chapter 1 Strings, Languages, and Compilers 1 1.1 Introduction 1 1.2 Basic Language Concepts 1 1.3 Basic Compiler Concepts 3 1.4 Basic Set Theory 4 1.5 Null String 6 1.6 Concatenation 7 1.7 Exponent Notation 7 1.8 Star Operator 8 1.9 Concatenation of Sets of Strings 9 1.10 Plus Operator 11 1.11 Question Mark Operator 11 1.12 Shorthand Notation for a Set Containing a Single String 12 1.13 Operator Precedence 12 1.14 Regular Expressions 13 1.15 Limitations of Regular Expressions 15 Problems 16 Chapter 2 Context-Free Grammars, Part 1 19 2.1 Introduction 19 2.2 What is a Context-Free Grammar? 20 2.3 Derivations Using a Context-Free Grammar 21 2.4 Language Defined by a Context-Free Grammar 23 2.5 Different Ways of Representing Contet-Free Grammars 25 2.6 Some Simple Grammars 26 2.7 Techniques for Generating Languages with Context-Free Grammars 29 2.8 Regular and Right Linear Grammars 35 2.9 Counting with Regular Grammars 37 2.0 Grammars for Lists 39 2.10 An Important Language that is Not Context Free 44 Problems 45 Chapter 3 Context-Free Grammars, Part 2 49 3.1 Introduction 49 3.2 Parse Trees 49 3.3 Leftmost and Rightmost Derivations 51 3.4 Substitution 52 3.5 Ambiguous Grammars 54 3.6 Determining Nullable Nonterminals 59 3.7 Eliminating Lambda Productions 60 3.8 Eliminating Unit Productions 64 3.9 Eliminating Useless Nonterminals 66 3.10 Recursion Conversions 71 3.11 Adding the Null String to a Language 76 Problems 77 Chapter 4 Context-Free Grammars, Part 3 83 4.1 Introduction 83 4.2 Grammars for Arithmetic Expressions 83 4.3 Specifying Associativity and Precedence in Grammars 90 4.4 Backus-Naur Form 92 4.5 Syntax Diagrams 94 4.6 Abstract Syntax Trees and Three-Address Code 96 4.7 Noncontracting Grammars 97 4.8 Essentially Noncontracting Grammars 97 4.9 Converting a Context-Free Grammar to an Essentially Noncontracting Grammar 98 4.10 Pumping Property of Context-Free Languages 101 Problems 104 Chapter 5 Chomsky’s Hierarchy 107 5.1 Introduction 107 5.2 Context-Sensitive Productions 107 5.3 Context-Sensitive Grammars no 5.4 Unrestricted Grammars 111 Problems 112 Chapter 6 Top-Down Parsing 115 6.1 Introduction 115 6.2 Top-Down Construction of a Parse Tree 115 6.3 Parses that Fail 117 6.4 A Bad Grammar for Top-Down Parsing 118 6.5 Deterministic Parsers 119 6.6 A Parser that Uses a Stack 120 6.7 Table Representation of a Stack Parser 124 6.8 Handling Productions with Nonleading Terminal 126 6.9 Writing a Stack Parser in Java 127 Problems 134 Chapter 7 LL(1) Grammars 137 7.1 Introduction 137 7.2 FIRST Set of the Right Side of a Production 137 7.3 Determining Operation Sequences 140 7.4 Determining Selection Sets of Lambda Productions 142 7.5 Whatever-Follows-Left-Follows-Rightmost Rule 145 7.6 Selection Sets for Productions with Nullable Right Sides 147 7.7 Selection Sets Containing End-of-Input Symbol 149 7.8 A Stack Parser for a Grammar with Lambda Productions 152 7.9 Converting a Non-LL( 1) Grammar to an LL( 1) Grammar 153 7.10 Parsing with an Ambiguous Grammar 160 7.11 Computing FIRST and FOLLOW Sets 163 Problems 165 Chapter 8 Table-Driven Stack Parser 171 8.1 Introduction 171 8.2 Unifying the Operations of a Stack Parser 172 8.3 Implementing a Table-Driven Stack Parser 175 8.4 Improving Our Table-Driven Stack Parser 180 8.5 Parsers that are Not Deterministic—A Digression on Theory 181 Problems 183 Chapter 9 Recursive-Descent Parsing 185 9.1 Introduction 185 9.2 Simple Recursive-Descent Parser 185 9.3 Handling Lambda Productions 192 9.4 A Common Error 197 9.5 Java Code for Productions 198 9.6 Left Factoring in a Recursive-Descent Parser 199 9.7 Eliminating Tail Recursion 204 9.8 Translating the Star, Plus, and Question Mark Operators 108 9.9 Doing Things Backward 210 Problems 211 Chapter 10 Recursive-Descent Translation 215 10.1 introduction 215 10.2 A Simple Translation Grammar 215 10.3 Converting a Translation Grammar to Java Code 217 10.4 Specifications for a Translation Grammar 218 10.5 Passing Information During a Parse 231 10.6 L-Attributed Grammars 236 10.7 New Token Manager 238 10.8 Solving the Token Lookahead Problem 241 10.9 Code for the New Token Manager 241 10.10 Translation Grammar for Prefix Expression Compiler 253 10.11 An Interesting Use of Recursion 257 Problems 261 Chapter 11 Assembly Language 265 11.1 Introduction 265 11.2 Structure of the J1 Computer 265 11.3 Machine Language Instructions 266 11.4 Assembly Language Instructions 268 11.5 Pushing Characters 269 11.6 aout Instruction 270 11.7 Using Labels 270 11.8 Using the Assembler 272 11.9 stav Instruction 275 11.10 Compiling an Assignment Statement 277 11.11 Compiling print and printin 280 11.12 Outputting Strings 28, 11.13 Inputting Decimal Numbers 283 11.14 Entry Directive 284 11.15 More Assembly Language 285 Problems 285 Chapter 12 SI—A Simple Compiler 289 12.1 Introduction 289 12.2 The Source Language 289 12.3 Grammar for Source Language 290 12.4 The Target Language 291 12.5 Symbol Table 292 12.6 Code Generator 293 12.7 Token Class 293 12.8 Writing the Translation Grammar 294 12.9 Implementing the SI Compiler 299 12.10 Trying Out SI 315 12.11 Advice on Extending the SI Compiler 318 12.12 Specifications for S2 320 Problems 324 Chapter 13 JavaCC 331 13.1 Introduction 331 13.2 JavaCC Extended Regular Expressions 333 13.3 JavaCC Input File 337 13.4 Specifying Actions for Regular Expressions 344 13.5 JavaCC Input File for Slj 348 13.6 Files Produced by JavaCC 355 13.7 Using the Star and Plus Operators 359 13.8 Choice Points and the Lookahead Directive 362 13.9 JavaCC’s Choice Algorithm 367 13.10 Syntactic and Semantic Lookahead 371 13.11 Using JavaCC to Create a Token Manager Only 372 13.12 Using the Token Chain 373 13.13 Suppressing Warning Messages 377 Problems 387 Chapter 14 Building on S2 383 14.1 Introduction 383 14.2 Extending println and print 383 14.3 Cascaded Assignment Statement 388 14.4 Unary Plus and Minus 313 14.5 readint Statement 393 14.6 Controlling the Token Trace from the Command Line 395 14.7 Specifications for S3 396 Problems 396 Chapter 15 Compiling Control Structures 399 15.1 Introduction 399 15.2 while Statement 399 15.3 if Statement 403 15.4 do-while Statement 407 15.5 Range Checking of Numerical Constants 408 15.6 Handling Backslash-Quote in a String 410 15.7 Handling Backslash-Quote with JavaCC 411 15.8 Universal Blocks in JavaCC 416 15.9 Handling Strings that Span Lines 418 15.10 Handling Strings that Span Lines Using JavaCC 419 15.11 SPECIAL_TOKEN Block in JavaCC 422 15.12 Error Recovery 424 15.13 Error Recovery in JavaCC 429 15.14 Specifications for S4 430 Problems 431 Chapter 16 Compiling Programs in Functional Form 435 16.1 Introduction 435 16.2 Separate Assembly and Linking 435 16.3 Calling and Returning from Fuctions 439 16.4 Source Language for S5 443 16.5 Symbol Table for S5 445 16.6 Code Generator for S5 446 16.7 Translation Grammar forS5 447 16.8 Linking with a Library 457 16.9 Specifications for S5 458 16.10 Extending S5 458 Problems 461 Chapter 17 Finite Automata 465 17.1 Introduction 465 17.2 Deterministic Finite Automata 466 17.3 Converting a DFA to a Regular Expression 468 17.4 Java Code for a DFA 472 17.5 Nondeterministic Finite Automata 474 17.6 Using an NFA as an Algorithm 476 17.7 Converting an NFA to a DFA with the Subset Algorithm 478 17.8 Converting a DFA to a Regular Grammar 479 17.9 Converting a Regular Grammar to an NFA 482  17.10 Converting a Regular Expression to an NF A 484 17.11 Finding the Minimal DFA 488 17.12 Pumping Property of Regular Languages 493 Problems 495 Chapter 18 Capstone Project: Implementing Grep Using Compiler Technology 499 18.1 Introduction 499 18.2 Regular Expressions for Our Grep Program 501 18.3 Token Manager for Regular Expression 501 18.4 Grammar for Regular Expressions 503 18.5 Target Language for Our Regular Expression Compiler 503 18.6 Using an NFA for Pattern Matching 508 Problems 513 Chapter 19 Compiling to a Register-Oriented Architecture 515 19.1 Introduction 515 19.2 Using the Register Instruction Set 516 19.3 Modifications to the Symbol Table for R1 517 19.4 Parser and Code Generator for R1 518 Problems 526 Chapter 20 Optimization 529 20.1 Introduction 529 20.2 Using the ldc Instruction 531 20.3 Reusing Temporary Variables 532 20.4 Constant Folding 535 20.5 Register Allocation 537 20.6 Peephole Optimization 540 Problems 543 Chapter 21 Interpreters 547 21.1 Introduction 547 21.2 Converting SI to 11 549 21.3 Interpreting Statements that Transfer Control 552 21.4 Implementing the Compiler-Interpreter Cl 1 553 21.5 Advantages of Interpreters 558 Problems 559 Chapter 22 Bottom-Up Parsing 561 22.1 Introduction 561 22.2 Principles of Bottom-Up Parsing 561 22.3 Parsing with Right- versus Left-Recursive Grammars 565 22.4 Bottom-Up Parsing with an Ambiguous Grammar 566 22.5 Do-Not-Reduce Rule 569 22.6 SLR(l) Parsing 570 22.7 Shift/Reduce Conflicts 577 22.8 Reduce/Reduce Conflicts 579 22.9 LR(1) Parsing 579 Problems 584 Chapter 23 yacc 587 23.1 Introduction 587 23.2 yacc Input and Output Files 587 23.3 A Simple yacc-Generated Parser 588 23.4 Passing Values Using the Value Stack 596 23.5 Using yacc With an Ambiguous Grammar 602 23.6 Passing Values down the Parse Tree 604 23.7 Implementing Sly 606 23.8 jflex 612 Problems 618 Appendix A Stack Instruction Set 621 Appendix B Register Instruction Set 625 References 629 Index

    £86.36

  • Introduction to Engineering Programming

    John Wiley & Sons Inc Introduction to Engineering Programming

    Book SynopsisClick here to read ACCU''s review of this book.This text is an indispensable collection of four tutorials covering concepts in modern engineering computations, and engineering programming in ANSI C, MATLAB Version 5 and Java 1.1.Table of ContentsCONCEPTS IN MODERN ENGINEERING COMPUTATIONS. Introduction to Engineering Computations. Principles of Engineering Software Development. C PROGRAMMING TUTORIAL. Getting Started. Basic Data Types and Variables. Operators and Expressions. Control of Flow. Functions I. Arrays and Pointers. Functions II. Dynamic Allocation of Memory. The C Preprocessor. Input and Output. MATLAB PROGRAMMING TUTORIAL. Introduction to MATLAB. MATLAB Graphics. Solution of Linear Matrix Equations. JAVA PROGRAMMING TUTORIAL. Introduction to Java. Object-Oriented Program Design. The Java Language. Java Graphics. Appendices. References. Index.

    £163.76

  • Programming 3e

    John Wiley & Sons Inc Programming 3e

    Book SynopsisThis book explains and illustrates key concepts of programming by taking a breadth approach to programming languages. It uses C++ as the primary language throughout, demonstrating imperative, functional and object--oriented language concepts.Table of ContentsSyntax and Semantics. Structuring the Data. Structuring the Computation. Structuring the Program. Object-Oriented Languages. Functional Programming Languages. Logic and Rule-Based Languages. Languages in Context. Appendix. Bibliography. Index.

    £154.76

  • Karel

    John Wiley & Sons Inc Karel

    Book SynopsisUsing the same format that has become so popular in Pascal, Karel the Robot has now become object-oriented. This book is intended to teach novice programmers the fundamentals of object-oriented programming. It accomplishes this goal with an analog equivalent of C++ that allows introductory computer science students to work through a programming project from start to finish.The book opens by explaining the elaborate Robot world that Karel lives in, a world filled with objects. The text continues this strong metaphor throughout. Through the metaphor, students learn the art of solving programming problems in an object-oriented paradigm.This text is suitable for any introductory or second course in computer science where C++ is used.Table of ContentsThe Robot World. Primitive Instructions and Simple Programs. Extending the Robot Programming Language. Conditionally Executing Instructions. Instructions That Repeat. Advanced Techniques for Robots. Appendices.

    £72.15

  • Antipatterns

    John Wiley & Sons Inc Antipatterns

    Book SynopsisPatterns are popular in software development and used to identify different types of procedures, designs, or codes that work. AntiPatterns are the exact opposite, targeting common errors and issues that can cause a project to fail. This book provides practical guidelines on detecting AntiPatterns and the refactored solutions that correct them.Table of ContentsINTRODUCTION TO ANTIPATTERNS. Introduction to Patterns and AntiPatterns. AntiPatterns Reference Model. Templates for Patterns and AntiPatterns. Advice for Using AntiPatterns. ANTIPATTERNS Software Development AntiPatterns. Software Architecture AntiPatterns. Software Project Management AntiPatterns. CONCLUSIONS AND RESOURCES. Appendices. Index.

    £41.60

  • Agile Modeling

    John Wiley & Sons Inc Agile Modeling

    Book SynopsisAgile Modeling (AM) is a collection of techniques for modeling software that can be applied on an eXtreme Programming (XP) project. Because XP is fast-moving software development, modeling an XP project needs to be quick as well. Traditional modeling techniques based on the UML do not work.Trade Review“…I would not hesitate in recommending this book…” (CVu, October 2004) “…easy-to-follow…enjoyable writing style…overall the book is impressive…valuable reading…” (Software Testing, Verification & Reliability, March 2003)Table of ContentsForeword xi Preface xiii Part One Introduction to Agile Modeling 1 Chapter 1 Introduction 3 Enter Agile Software Development 6 Agile Modeling 8 The SWA Online Case Study 17 A Brief Overview of this Book 18 Chapter 2 Agile Modeling Values 19 Communication 20 Simplicity 21 Feedback 22 Courage 23 Humility 25 Beyond Motherhood and Apple Pie 26 Chapter 3 Core Principles 27 Software Is Your Primary Goal 28 Enabling the Next Effort Is Your Secondary Goal 28 Travel Light 29 Assume Simplicity 29 Embrace Change 30 Incremental Change 31 Model with a Purpose 31 Multiple Models 32 Quality Work 34 Rapid Feedback 35 Maximize Stakeholder Investment 37 Why Core Principles? 37 Chapter 4 Supplementary Principles 38 Content Is More Important Than Representation 38 Everyone Can Learn from Everyone Else 41 Know Your Models 41 Local Adaptation 42 Open and Honest Communication 42 Work with People’s Instincts 42 Benefiting from These Principles 43 Chapter 5 Core Practices 44 Practices for Iterative and Incremental Modeling 45 Practices for Effective Teamwork 52 Practices That Enable Simplicity 56 Practices for Validating Your Work 58 Chapter 6 Supplementary Practices 60 Practices to Improve Your Productivity 61 Practices for Agile Documentation 64 Practices Concerning Your Motivation 68 Really Good Ideas 71 How to Schedule AM Practices on Your Project 72 Chapter 7 Order from Chaos: How the AM Practices Fit Together 73 The Core Practices 73 The Supplementary Practices 76 How the Categories Relate to One Another 77 Chaos and Order: Chaordic 79 Looking Ahead 80 Part Two Agile Modeling in Practice 81 Chapter 8 Communication 83 How Do We Communicate? 84 Factors That Affect Communication 85 Communication and Agile Modeling 86 Effective Communication 87 Chapter 9 Nurturing an Agile Culture 89 Overcome the Misconceptions That Surround Modeling 89 Think Small 95 Loosen Up a Bit 96 Rigidly Support Rights and Responsibilities 97 Rethink Presentations to Project Stakeholders 98 Chapter 10 Using the Simplest Tools Possible? 101 Agile Modeling with Simple Tools? 102 The Evolution of a Model 107 Agile Modeling with CASE Tools 111 Use the Media 115 The Effect of Tools on Models 116 Using the Simplest Tools In Practice 117 Chapter 11 Agile Work Areas 118 Agile Modeling Room 118 Effective Work Areas 122 Making This Work in the Real World 122 Chapter 12 Agile Modeling Teams 124 Recruit a Few Good Developers 124 Recognize That There Is No “I” in Agile 128 Require that Everyone Actively Participates 130 Model in Teams 130 Making This Work in the Real World 132 Chapter 13 Agile Modeling Sessions 134 Modeling Session Duration 134 Types of Modeling Sessions 136 Participants in Modeling Sessions 138 The Formality of Modeling Sessions 140 How to Make This Work in the Real World 142 Chapter 14 Agile Documentation 143 Why Do People Document? 144 When Does a Model Become Permanent? 147 Chapter 15 The UML and Beyond 168 The UML Is Not Sufficient 169 The UML Is Too Complex 171 The UML Is Not a Methodology or Process 171 Forget about Executable UML (for Now) 172 Making the UMLWork in Practice 173 Part Three Agile Modeling and eXtreme Programming (XP) 175 Chapter 16 Setting the Record Straight 177 Modeling Is a Part of XP 178 Documentation Happens 179 XP and the UML? 181 And the Verdict Is? 183 Chapter 17 Agile Modeling and eXtreme Programming 184 The Potential Fit between AM and XP 185 Refactoring and AM 185 Test-First Development and AM 188 Which AM Practices Should You Adopt? 189 Chapter 18 Agile Modeling Throughout the XP Lifecycle 190 Exploration Phase 191 Planning Phase 192 Iterations to Release Phase 194 Productionizing 196 Maintenance 197 How Do You Make This Work? 198 Chapter 19 Modeling During the XP Exploration Phase 199 Initial Requirements Up Front (IRUF) 199 Metaphors, Architectures, and Spikes 203 Setting the Foundation for Your Project 206 Chapter 20 Modeling During an XP Iteration: Searching for Items 207 The Task 208 Modeling the Physical Database Schema 209 Observations 212 Chapter 21 Modeling During an XP Iteration: Totaling an Order 214 The Task 214 Requirements Modeling to the Rescue 215 Help from an Outside Expert 217 A Quick Design Session 218 Formalizing a Contract Model 220 What about Changes in the Future? 220 Observations 222 How to Make This Work in the Real World 222 Part Four Agile Modeling and the Unified Process 223 Chapter 22 Agile Modeling and the Unified Process 225 How Modeling Works in the Unified Process 226 How Good Is the Fit? 227 Choose To Be Agile 231 Chapter 23 Agile Modeling throughout the Unified Process Lifecycle 232 The Modeling Disciplines 232 Non-Modeling Disciplines 242 How Do You Make This Work? 245 Chapter 24 Agile Business Modeling 246 A Business/Essential Use Case Model 247 A Simple Business Object Model 248 An Agile Supplementary Business Specification 249 A Business Vision 252 How to Make This Work in Practice 253 Chapter 25 Agile Requirements 254 The Context Model 255 Use Case Model 258 Use Case Story Board 262 Supplementary Specification 265 How to Make This Work in Practice 267 Chapter 26 Agile Analysis and Design 269 Rethinking Analysis and Design Models in the UP 270 Architectural Modeling 272 Creating Use Case Realizations 277 Time to Update Our Use Case? 281 Time to Use a CASE Tool? 284 Design Class Modeling 284 Data Modeling 287 Embracing Change 290 How Does This Work in Practice? 291 Chapter 27 Agile Infrastructure Management 292 Infrastructure Models 293 Infrastructure Modeling 294 Setting Modeling Standards and Guidelines 297 Core Infrastructure Teams 299 Scaling AM with Core Architecture Teams 301 How to Make This Work in the Real World 302 Chapter 28 Adopting AM on an UP Project 304 How Does This Work? 308 Part Five Looking Ahead 309 Chapter 29 Adopting Agile Modeling or Overcoming Adversity 311 Evaluate the Fit 312 Keep It Simple 315 Overcome Organizational and Cultural Challenges 316 Consider Alternatives to Full Adoption of AM 324 How to Make This Work in Practice 324 Chapter 30 Conclusion: Choose to Succeed 325 Common Misconceptions Regarding Agile Modeling 325 When Is(n’t) it Agile Modeling? 326 Agile Modeling Resources 328 A Few Parting Thoughts . . . 329 Appendix A Modeling Techniques 330 Glossary of Definitions and Abbreviations 358 References and Suggested Reading 369 Index 375

    £34.00

  • Software Design

    John Wiley & Sons Inc Software Design

    Book SynopsisUML (the Unified Modeling Language), design patterns, and software component technologies are three new advances that help software engineers create more efficient and effective software designs. Now Eric Braude pulls these three advances together into one unified presentation.Table of ContentsPrologue: The Software Process Part I: Design Principles, The Unified Modeling Language, and Code-Level Design Part II: Design Patterns Part III: Components Part IV: Object-Oriented Analysis and Design

    £131.05

  • C and UNIX

    John Wiley & Sons Inc C and UNIX

    Book SynopsisSome things just naturally fit together. Such is the case for C and UNIX: these software tools have been developed in tandem -- C is an excellent programming language, UNIX is an excellent operating system. They work well together and many software developers choose to take advantage of the symbiotic relationship between C and UNIX. In this book the essential features of C and UNIX are introduced, and readers are shown how to write more powerful and more efficient programs. The book is divided into four parts: Basic Program Syntax and Control, Program Design and Control of Input/Output, Data Structure Design and Management, and Advanced Features of C and UNIX.Table of ContentsPrograms. Flow of Control. Functions. Input/Output. Program Design. Arrays. Strings. Structures. Dynamic Memory Management. Data Structure Design. Specialized Tools. Advanced Programming Topics. Advanced Design Methods. Appendices. Index.

    £140.35

  • Fortran 90 For Engineers

    John Wiley & Sons Inc Fortran 90 For Engineers

    Book SynopsisFive-step problem solving process. A five-step methodology for solving problems is used throughout the text. Each step is clearly identified to help students focus on the process of breaking a problem into smaller components and then addressing the smaller components throughout the text. The five steps are: State the problem clearly.Table of ContentsSolving Problems with Fortran 90 Arithmetic Computations and Simple Programs Control Constructs Engineering and Scientific Data Files Array Processing External Procedures Additional Data Types An Introduction to Pointers Appendix A: Fortran 90 Intrinsic Functions Solutions to Try It! Exercises Answers to Selected Problems

    £81.65

  • Algorithm Design

    John Wiley & Sons Inc Algorithm Design

    Book Synopsis Are you looking for something different in your Algorithms text? Are you looking for an Algorithms text that offers theoretical analysis techniques as well as design patterns and experimental methods for the engineering of algorithms? Michael Goodrich and Roberto Tamassia, authors of the successful, Data Structures and Algorithms in Java, 2/e, have written Algorithm Design, a text designed to provide a comprehensive introduction to the design, implementation and analysis of computer algorithms and data structures from a modern perspective. Written for an undergraduate, junior-senior algorithms course this text offers several implementation case studies and uses Internet applications to motivate many topics such as hashing, sorting and searching. Table of ContentsI Fundamental Tools 1 1 Algorithm Analysis 3 1.1 Methodologies for Analyzing Algorithms 5 1.2 Asymptotic Notation 13 1.3 A Quick Mathematical Review 21 1.4 Case Studies in Algorithm Analysis 31 1.5 Amortization 34 1.6 Experimentation 42 1.7 Exercises 47 2 Basic Data Structures 55 2.1 Stack sand Queues 57 2.2 Vectors, Lists, and Sequences 65 2.3 Trees 75 2.4 Priority Queues and Heaps 94 2.5 Dictionaries and Hash Tables 114 2.6 Java Example: Heap 128 2.7 Exercises 131 3 Search Trees and Skip Lists 139 3.1 Ordered Dictionaries and Binary Search Trees 141 3.2 AVL Trees 152 3.3 Bounded-Depth Search Trees 159 3.4 Splay Trees 185 3.5 Sk i p Lists 195 3.6 Java Example: AVL and Red-Black Trees 202 3.7 Exercises 212 4 Sorting, Sets, and Selection 217 4.1 Merge-Sort 219 4.2 The Set Abstract Data Type 225 4.3 Quick -Sort 235 4.4 A Lower Bound on Comparison-Based Sorting 239 4.5 Buck et-Sort and Radix-Sort 241 4.6 Comparison of Sorting Algorithms 244 4.7 Selection 245 4.8 Java Example: In-Place Quick -Sort 248 4.9 Exercises 251 5 Fundamental Techniques 257 5.1 The GreedyMethod 259 5.2 Divide-and-Conquer 263 5.3 Dynamic Programming 274 5.4 Exercises 282 II Graph Algorithms 285 6 Graphs 287 6.1 The Graph Abstract Data Type 289 6.2 Data Structures for Graphs 296 6.3 Graph Traversal 303 6.4 Directed Graphs 316 6.5 Java Example: Depth-First Search 329 6.6 Exercises 335 7 Weighted Graphs 339 7.1 Single-Source Shortest Paths 341 7.2 All-Pairs Shortest Paths 354 7.3 Minimum Spanning Trees 360 7.4 Java Example: Dijk stra’s Algorithm 373 7.5 Exercises 376 8 Network Flow and Matching 381 8.1 Flows and Cuts 383 8.2 Maximum Flow 387 8.3 Maximum BipartiteMatching 396 8.4 Minimum-Cost Flow 398 8.5 Java Example: Minimum-Cost Flow 405 8.6 Exercises 412 III Internet Algorithmics 415 9 Text Processing 417 9.1 Strings and PatternMatching Algorithms 419 9.2 Tries 429 9.3 Text Compression 440 9.4 Text Similarity Testing 443 9.5 Exercises 447 10 Number Theory and Cryptography 451 10.1 Fundamental Algorithms Involving Numbers 453 10.2 Cryptographic Computations 471 10.3 Information Security Algorithms and Protocols 481 10.4 The Fast Fourier Transform 488 10.5 Java Example: FFT 500 10.6 Exercises 508 11 Network Algorithms 511 11.1 ComplexityMeasures and Models 513 11.2 Fundamental Distributed Algorithms 517 11.3 Broadcast and Unicast Routing 530 11.4 Multicast Routing 535 11.5 Exercises 541 IV Additional Topics 545 12 Computational Geometry 547 12.1 Range Trees 549 12.2 Priority Search Trees 556 12.3 Quadtrees and k-D Trees 561 12.4 The Plane Sweep Technique 565 12.5 Convex Hulls 572 12.6 Java Example: Convex Hull 583 12.7 Exercises 587 13 NP-Completeness 591 13.1 P and NP 593 13.2 NP-Completeness 599 13.3 Important NP-Complete Problems 603 13.4 Approximation Algorithms 618 13.5 Back track i ng and Branch-and-Bound 627 13.6 Exercises 638 14 Algorithmic Frameworks 643 14.1 External-Memory Algorithms 645 14.2 Parallel Algorithms 657 14.3 Online Algorithms 667 14.4 Exercises 680 A Useful Mathematical Facts 685 Bibliography 689 Index 698

    £155.66

  • Enterprise Integration

    John Wiley & Sons Inc Enterprise Integration

    Book SynopsisAs enterprise integration typically consumes huge portions of IT budgets, companies increasingly turn to component technologies such as Enterprise JavaBeans and CORBA to streamline business processes for corporate-wide decision support.Table of ContentsForeword. Introduction. Acknowledgments. Assessing the Technology Landscape. Setting Enterprise Integration Design Objectives. Defining the Enterprise Architecture. Establishing the Enterprise Infrastructure. Creating a Business System Domain. Providing the Messaging Infrastructure. Integrating Workflow Management. Providing Web-Based User Access. Integrating with XML. Using Component Technology. Ensuring Enterprise System Security. Supporting Enterprise Intelligence. Implementing the Architecture. References. Index.

    £61.75

  • Software Paradigms

    John Wiley & Sons Inc Software Paradigms

    Book SynopsisSoftware Paradigms provides the first complete compilation of software paradigms commonly used to develop large software applications, with coverage ranging from discrete problems to full-scale applications.Trade Review"...an excellent course reference for someone with significant but varied...software development ideas...a handy reference for identifying the similarities between...software development elements…" (IEEE Software Magazine, January/February 2006) "…useful to some programmers." (CHOICE, October 2005) "This is a good survey of the various topics…quite relevant to the CSQE body of knowledge architecture topic." (Software Quality Professional, September 2005) "…a timely work that helps put recent advances in software architecture and framework development in context with earlier software design concepts." (Computing Reviews.com, July 29, 2005) "…a welcome…addition to the literature on software development paradigm." (Computing Reviews.com, May 3, 2005)Table of ContentsADVICE FOR THE INSTRUCTOR. ACKNOWLEDGMENTS. 1 Introduction. 1.1 The Meaning of Paradigm. 1.2 Software Solves Problems. 1.3 Designing and Developing Software. 1.4 Understanding Problem Paradigms. 1.5 Overview of Book. 1.6 Conventions. 1.7 Exercises. 2 Paradigm Overview. 2.1 Problem Paradigms. 2.2 A Functional Classification of Problems. 2.3 Programming Languages. 2.4 Design Patterns. 2.5 Components. 2.6 Software Architectures. 2.7 Frameworks. 2.8 Further Reading. 2.9 Exercises. I DESIGN PATTERNS. 3 Overview of Design Patterns. 3.1 A Brief History of Patterns. 3.2 Why Patterns? 3.3 Pattern Spaces. 3.4 Types of Software Patterns. 3.5 Describing Patterns. 3.6 How Do We Discover Patterns? 3.7 Using Patterns. 3.8 Further Reading. 3.9 Exercises. 4 Software Patterns. 4.1 Singleton. 4.2 The Wrapper Pattern. 4.3 The Abstract Factory Pattern. 4.4 Observer Pattern. 4.5 Exercises. 5 Human–Computer Interface Patterns. 5.1 Style Guides. 5.2 An HCI Pattern Language. 5.3 Web Design Patterns. 5.4 Further Reading. 5.5 Exercises. 6 Other Pattern Domains. 6.1 Coplien’s Patterns. 6.2 Object-Oriented Patterns. 6.3 Antipatterns. 6.4 Further Reading. 6.5 Exercises. 7 Pattern Design. 7.1 Design Pattern Issues. 7.2 Some Simple Pattern Design Principles. 7.3 Limitations of Design Patterns. 7.4 Further Reading. 7.5 Exercises. II COMPONENTS. 8 Component Concepts. 8.1 What Are Software Components? 8.2 Why Use Components? 8.3 Component Models. 8.4 Using Components. 8.5 Component Reuse. 8.6 Exercises. 9 Types of Components. 9.1 Event-Based Components. 9.2 Java Events. 9.3 Distributed Components. 9.4 Transaction Processing. 9.5 Further Reading. 9.6 Exercises. 10 Component Technologies. 10.1 CORBA. 10.2 System Object Model. 10.3 Microsoft’s COM/DCOM. 10.4 JavaBeans. 10.5 Further Reading. 10.6 Exercises. 11 Component-Based Software Engineering. 11.1 Defining CBSE. 11.2 Problems with CBSE. 11.3 Problems in Using Components. 11.4 Problems with Glue Code. 11.5 Exercises. III SOFTWARE ARCHITECTURES. 12 Overview of Software Architectures. 12.1 Software Architecture Elements and Description. 12.2 Why Do We Need a Software Architecture? 12.3 Software Architecting Versus Software Engineering. 12.4 Domain-Specific Software Architectures. 12.5 Roles and Benefits. 12.6 Software Architecture Models. 12.7 What To Look For. 12.8 Further Reading. 12.9 Exercises. 13 Data Flow Systems. 13.1 The Data Flow Model. 13.2 Batch Sequential Systems. 13.3 Pipe and Filter Architecture. 13.4 Further Reading. 13.5 Exercises. 14 Call-and-Return Systems. 14.1 Main Program and Subroutines. 14.2 Client–Server Systems. 14.3 Object-Oriented Systems. 14.4 Hierarchically Layered Systems. 14.5 Further Reading. 14.6 Exercises. 15 Virtual Machines. 15.1 Interpreters. 15.2 Virtual Machine Examples. 15.3 Rule-Based Systems. 15.4 Advantages and Disadvantages. 15.5 Further Reading. 15.6 Exercises. 16 Independent Component Systems. 16.1 Communicating Sequential Processes. 16.2 Event-Based Systems. 16.3 Event System Issues. 16.4 Broker Systems. 16.5 Further Reading. 16.6 Exercises. 17 Data-Centric Systems. 17.1 Database Systems. 17.2 Blackboard Systems. 17.3 The Linda Model and Language. 17.4 Further Reading. 17.5 Exercises. 18 Concurrent Software Architectures. 18.1 Basic Concepts. 18.2 Parallel Programming. 18.3 Data Parallel Systems. 18.4 Message Passing Systems. 18.5 A Parallel Programming Methodology. 18.6 Further Reading. 18.7 Exercises. 19 Software Architecture Challenges. 19.1 Software Architecture Description. 19.2 Design Issues. 19.3 Analysis of Software Architectures. 19.4 Further Reading. 19.5 Exercises. IV FRAMEWORKS. 20 Framework Concepts. 20.1 Types of Frameworks. 20.2 Framework Elements. 20.3 Using Frameworks. 20.4 Documenting Frameworks. 20.5 Designing Frameworks. 20.6 Problems with Frameworks. 20.7 Framework Domains. 20.8 Further Reading. 20.9 Exercises. 21 GUI Frameworks. 21.1 Smalltalk-80 Programming Environment. 21.2 MacApp Framework. 21.3 The Taligent Framework. 21.4 Other Frameworks. 21.5 Further Reading. 21.6 Exercises. 22 Development Frameworks. 22.1 Java as a Framework. 22.2 Microsoft’s .NET Framework. 22.3 IBM’s San Francisco Project. 22.4 POOMA. 22.5 Further Reading. 22.6 Exercises. 23 Challenges in Frameworks. 23.1 Developing Frameworks. 23.2 Application Development Using a Framework. 23.3 Testing Frameworks. 23.4 Issues in Framework Usage. 23.5 Exercises. BIBLIOGRAPHY. GLOSSARY. INDEX.

    £128.66

  • Java in Distributed Systems

    John Wiley & Sons Inc Java in Distributed Systems

    Book SynopsisLarge and complex software systems, such as Internet applications, depend on distributed applications. Although Java has helped reduce the complexity of distributed systems, developers still have to contend with diverse hardware platforms, remote communication over networks, and system failures. Java in Distributed Systems provides a comprehensive guide for anyone wishing to deepen their knowledge of Java in distributed applications. Beginning with a tutorial guide to distributed programming in the Java environment, it shows you how building blocks from threads to Jini can help you to fulfil Sun''s vision, that ''the Network is the Computer''. It then goes on to focus on aspects that are still challenging researchers such as concurrency, distribution, and persistence. Key Features: - One of the few books to focus specifically on Java for building distributed applications - Coverage includes threads & sockets, RMI, CORBA, Voyager, Mobile agents, JDBC, objTrade Review"...has a nice layout and reads well..." (CVu, June 2006)Table of ContentsPreface. Introduction. JAVA IN DISTRIBUTED SYSTEMS. Concurrency in Java. Java Sockets. RMI. CORBA. Voyager. Mobile Agents. JDBC. Object-Oriented Databases. A Persistent Programming Language. Tuplespaces in Java. Jini. A DISTRIBUTED JAVA. Distributed Programming Languages and Concurrency. Virtual Processors. Dejay: A Distributed Java. Examples. Appendix A: The Chat Interface. Appendix B: The BulletinBoard Interface. List of Figures. Bibliography. Index.

    £56.00

  • Techniques of PROLOG Programming with

    John Wiley & Sons Inc Techniques of PROLOG Programming with

    1 in stock

    Book SynopsisApproaches the subject by applying the format used in successful language courses. Offers a comprehensive exhibition of Prolog programming techniques in four stages--declarative, procedural, advanced and meta-programming. Presents simple and efficient implementation of logical negation and quantified goals which are necessary in expert systems.Trade Review"This book has the possibility of being The Prolog Reference Book I would recommend the book for all the high quality examples alone. " Roy Freedman, Inductive Solutions, Inc. "This is the strongest book (in Prolog programming) on the market, by virtue of its coverage. The author hits a lot of the tried and true stuff in Prolog as well as some new departures. " Kevin Reilly, University of Alabama at Birmingham "The writing style is very clear and the explanations are logically presented. Students with no background in Prolog should be able to read the first two-thirds of this book and understand all of it. " Clint Smullen, University of Tennessee "The overall balance of the work is reasonable and appropriate. The organization is good, the examples and problems are excellent I believe it will be an excellent book for Prolog and AI courses. " Quang van Tran, Oklahoma State University "There seems to be hardly any programming problem which is not dealt with in one place or another. This should enable a very rich range of courses to be developed around the book. " Christopher Hogger, Imperial College, LondonTable of ContentsDeclarative Prolog Programming. Procedural Prolog Programming. Control and Side-Effect Features of Prolog. Development of Prolog Programs. Advanced Programming Techniques and Data Structures. Search Techniques. Meta-Programming in Prolog. Building Expert Systems in Prolog. Natural Language Processing in Prolog. System Simulation in Prolog. Appendices. Bibliography. Index.

    1 in stock

    £136.80

  • C for Programmers

    John Wiley & Sons Inc C for Programmers

    Book SynopsisOne of the attractive aspects of C++ is that it offers good facilities for object-oriented programming (OOP), but, as a hybrid language, it also supports procedural programming. The significance of this for programmers is that it offers more flexibility allowing them to shift to object-oriented programming if and when they feel the need to do so. In this regard, C++ differs from some purely object-oriented languages, such as Smalltalk, Eiffel and Java. This book offers practical guidance on how to programme in both styles. The C++ language and its standard library have gone through a good many improvements and extensions during their evolution. This third edition has therefore been completely revised in accordance with the C++ language revision, which is embodied in the ANSI/ISO C++ Standard. For example, the new, important type string is used throughout the book and the Standard Template Library (STL) is introduced to readers at an early stage and discussed in more dTable of ContentsExpressions and Statements. More Operators. Functions and Program Structure. Arrays, Pointers, and Strings. Classes and Objects. Templates. Exception Handling. Introduction to STL. Stream I/O. Some Older Library Functions. Appendices. Bibliography. Index.

    £56.00

  • Concurrent and Realtime Systems

    John Wiley & Sons Inc Concurrent and Realtime Systems

    Book SynopsisThe CSP approach has been widely used in the specification, analysis and verification of concurrent and real-time systems, and for understanding the particular issues that can arise when concurrency is present. It provides a language which enables specifications and designs to be clearly expressed and understood, together with a supporting theory which allows them to be analyzed and shown to be correct. This book supports advanced level courses on concurrency covering timed and untimed CSP. The first half introduces the language of CSP, the primary semantic models (traces, failures, divergences and infinite traces), and their use in the modelling, analysis and verification of concurrent systems. The second half of the book introduces time into the language, brings in the timed semantic model (timed failures) and finally presents the theory of timewise refinement which links the two halves together. Accompanying website: http://www.cs.rhbnc.ac.uk/books/concurreTable of ContentsPreface ix Acknowledgements xv Part 1 The language of CSP 1 Sequential processes 3 1.1 Events and processes 3 1.2 Performing events 8 1.3 Recursion 13 1.4 Choice 20 2 Concurrency 31 2.1 Alphabetized parallel 31 2.2 Interleaving 44 2.3 Interface parallel 50 3 Abstraction and control flow 55 3.1 Hiding 55 3.2 Event renaming 62 3.3 Sequential composition 69 3.4 Interrupt 72 3.5 Notes 74 Part II Analysing processes 4 Traces 87 4.1 Sequences 87 4.2 Trace semantics 91 4.3 Recursion 117 4.4 Testing 133 4.5 Congruence 136 5 Specification and verification with traces 141 5.1 Property-oriented Specification 141 5.2 Verification 143 5.3 Recursion induction 155 5.4 Case study: Distributed sum 160 5.5 Process-oriented specification 168 6 Stable failures 173 6.1 Observing processes 174 6.2 Process semantics 178 6.3 Recursion 188 7 Specification and verification with failures 195 7.1 Property-oriented specification 195 7.2 Verification 197 7.3 Recursion induction 206 7.4 Process-oriented specification 209 7.5 Case study: Distributed sum 212 8 Failures, divergences, and infinite traces 221 8.1 Observing processes 221 8.2 Process semantics 229 8.3 Recursion 242 8.4 Specification and verification 248 8.5 Recursion induction 253 8.6 Case study: Distributed sum 256 8.7 Must testing and FDI equivalence 257 8.8 Notes 258 Part III Introducing time 9 The timed language 267 9.1 Timed computational model 268 9.2 Transitions 269 9.3 Performing events 270 9.4 Choice 275 9.5 Recursion 286 9.6 Concurrency 290 9.7 Abstraction 297 9.8 Flow of control 304 10 Timed transition systems 313 10.1 Evolution 313 10.2 Executions 315 10.3 Well-timed processes 327 10.4 Notes 329 Part IV Timed analysis 11 Semantics of timed CSP 335 11.1 Timed observations 336 11.2 Timed failures semantics 347 11.3 Recursion 358 11.4 Testing and timed failures equivalence 363 12 Timed specification and verification 369 12.1 Specification 369 12.2 Verification 375 12.3 Recursion induction 385 12.4 Ill-timed processes 388 12.5 Case study: Fischer’s protocol 390 13 Timewise refinement 399 13.1 Trace timewise refinement 400 13.2 Failures timewise refinement 410 13.3 Refinement and parallel composition 413 13.4 Case study: a railway crossing 431 13.5 FDI timewise refinement 436 13.6 Testing and timewise refinement 439 13.7 Notes 442 Appendix A: Event-based time 447 A.1 Standard CSP and took 448 A.2 Translating from timed CSP 454 A.3 Notes 465 Appendix B: Model-checking with FDR 469 B.1 Interacting with FDR 470 B.2 How FDR checks refinement 473 B.3 Machine readable CSP 478 References 485 Notation 493 Index 498 Index of Processes 507

    £56.00

  • ComponentOriented Programming

    John Wiley & Sons Inc ComponentOriented Programming

    Book SynopsisComponent Oriented Programming offers a unique programming-centered approach to component-based software development that delivers the well-developed training and practices you need to successfully apply this cost-effective method. Following an overview of basic theories and methodologies, the authors provide a unified component infrastructure for building component software using JavaBeans, EJB, OSGi, CORBA, CCM, .NET, and Web services. You''ll learn how to develop reusable software components; build a software system of pre-built software components; design and implement a component-based software system using various component-based approaches. Clear organization and self-testing features make Component Oriented Programming an ideal textbook for graduate and undergraduate courses in computer science, software engineering, or information technology as well as a valuable reference for industry professionals.Trade Review"…a hands-on, experimental approach to component-oriented programming." (Computing Reviews.com, February 27, 2006)Table of ContentsPreface. 1. Introduction. 1.1 What is COP? 1.2 Why is COP important? 1.3 What is a component? 1.4 Hardware components and software components. 1.5 From OOP to COP. 1.6 Component-based software engineering. 1.7 Summary. 1.8 Self-review questions. 1.9 Exercises. 2. A Theory of Components. 2.1 Principles of COP. 2.2 Infrastructures of COP. 2.3 Component models. 2.4 Connection models. 2.5 Deployment models. 2.6 Unifying component technologies. 2.7 Summary. 2.8 Self-review questions. 2.9 Exercises. 3. COP with JavaBeans. 3.1 Overview of JavaBeans technology. 3.2 The component model of JavaBeans. 3.3 The connection model of JavaBeans. 3.4 The deployment model of JavaBeans. 3.5 Examples and lab practice. 3.6 Summary. 3.7 Self-review questions. 3.8 Exercises. 4. Enterprise JavaBeans Components. 4.1 The EJB a rchitecture. 4.2 The component model of EJB. 4.3 The connection model of EJB. 4.4 The deployment model of EJB. 4.5 Examples and lab practice. 4.6 Summary. 4.7 Self-review questions. 4.8 Exercises. 4.9 Programming exercises. 5. CORBA Components. 5.1 The COBRA component infrastructure. 5.2 The CORBA component model (CCM). 5.3 The connection model of CORBA and CCM. 5.4 The deployment model of CORBA and CCM. 5.5 Examples and lab practice. 5.6 Summary. 5.7 Self-review questions. 5.8 Exercises. 5.9 Programming exercises. 6. .NET Components. 6.1 The .NET framework. 6.2 The component model of .NET. 6.3 The connection model of .NET. 6.4 .NET component deployments. 6.5 Visual Studio .NET. 6.6 Examples and lab practice. 6.7 Summary. 6.8 Self-review questions. 6.9 Exercises. 6.10 Programming exercises. 7. COP with OSGi Components. 7.1 Overview of OSGi technology. 7.2 The component model of OSGi. 7.3 The connection model of OSGi. 7.4 The deployment model of OSGi. 7.5 Examples and lab practice. 7.6 Summary. 7.7 Self-review questions. 7.8 Exercises. 8. Web Services Components. 8.1 The Web Services framework. 8.2 The component model of Web Services. 8.3 The connection model of Web Services. 8.4 Web Services component deployment. 8.5 Examples and lab practice. 8.6 Summary. 8.7 Self-review questions. 8.8 Exercises. 8.9 Programming exercises. Appendix.

    £109.76

  • IEEE Computer Society RealWorld Software

    John Wiley & Sons Inc IEEE Computer Society RealWorld Software

    Book SynopsisKey problems for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program IEEE Computer Society Real-World Software Engineering Problems helps prepare software engineering professionals for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program. The book offers workable, real-world sample problems with solutions to help readers solve common problems. In addition to its role as the definitive preparation guide for the IEEE Computer Society Certified Software Development Professional (CSDP) Certification Program, this resource also serves as an appropriate guide for graduate-level courses in software engineering or for professionals interested in sharpening or refreshing their skills. The book includes a comprehensive collection of sample problems, each of which includes the problem''s statement, the solution, an explanation, and references. Topics covered include:Trade Review"…this book provides a valuable resource to help software professionals prepare for the CSDP exam, as well as a study aid for software engineering students in general." (Computing Reviews.com, November 8, 2006)Table of ContentsPreface: How was this book developed? What is the Computer Society's Software Development Professional Exam? What are the target audiences? How is this book structured? How are problems and their answers structured? How to use this book. A.Engineering Economics. B.Ethics. C.Professional Practice. D.Standards. A.Requirements. B.Software Design. C.Coding. D.Test. E.Maintenance. F.Software COnfiguration. G.QA. H.Metrics. I.Tools and Methods. J.SQA and V&V.

    £73.76

  • Modern Multithreading Implementing Testing and

    John Wiley & Sons Inc Modern Multithreading Implementing Testing and

    Book SynopsisMaster the essentials of concurrent programming,including testing and debugging This textbook examines languages and libraries for multithreaded programming. Readers learn how to create threads in Java and C++, and develop essential concurrent programming and problem-solving skills.Trade Review"…an excellent work on concurrent programming, examining languages and libraries for developing multithreaded programs." (CHOICE, April 2006)Table of ContentsPreface. 1 Introduction to Concurrent Programming. 1.1 Processes and Threads: An Operating System’s View. 1.2 Advantages of Multithreading. 1.3 Threads in Java. 1.4 Threads in Win32. 1.5 Pthreads. 1.6 C++ Thread Class. 1.7 Thread Communication. 1.8 Testing and Debugging Multithreaded Programs. 1.9 Thread Synchronization. Further Reading. References. Exercises. 2 The Critical Section Problem. 2.1 Software Solutions to the Two-Thread Critical Section Problem. 2.2 Ticket-Based Solutions to the n-Thread Critical Section Problem. 2.3 Hardware Solutions to the n-Thread Critical Section Problem. 2.4 Deadlock, Livelock, and Starvation. 2.5 Tracing and Replay for Shared Variables. 2.5.6 Note on Shared Memory Consistency. Further Reading. References. Exercises. 3 Semaphores and Locks. 3.1 Counting Semaphores. 3.2 Using Semaphores. 3.3 Binary Semaphores and Locks. 3.4 Implementing Semaphores. 3.5 Semaphore-Based Solutions to Concurrent Programming Problems. 3.6 Semaphores and Locks in Java. 3.7 Semaphores and Locks in Win32. 3.7.6 Example: C++/Win32 Bounded Buffer. 3.8 Semaphores and Locks in Pthreads. 3.9 Another Note on Shared Memory Consistency. 3.10 Tracing, Testing, and Replay for Semaphores and Locks. Further Reading. References. Exercises. 4 Monitors. 4.1 Definition of Monitors. 4.2 Monitor-Based Solutions to Concurrent Programming Problems. 4.3 Monitors in Java. 4.4 Monitors in Pthreads. 4.5 Signaling Disciplines. 4.6 Using Semaphores to Implement Monitors. 4.7 Monitor Toolbox for Java. 4.8 Monitor Toolbox for Win32/C++/Pthreads. 4.9 Nested Monitor Calls. 4.10 Tracing and Replay for Monitors. 4.11 Testing Monitor-Based Programs. Further Reading. References. Exercises. 5 Message Passing. 5.1 Channel Objects. 5.2 Rendezvous. 5.3 Selective Wait. 5.4 Message-Based Solutions to Concurrent Programming Problems. 5.5 Tracing, Testing, and Replay for Message-Passing Programs. Further Reading. References. Exercises. 6 Message Passing in Distributed Programs. 6.1 TCP Sockets. 6.3 Timestamps and Event Ordering. 6.4 Message-Based Solutions to Distributed Programming Problems. 6.5 Testing and Debugging Distributed Programs. Programs. Further Reading. References. Exercises. 7 Testing and Debugging Concurrent Programs. 7.1 Synchronization Sequences of Concurrent Programs. 7.2 Paths of Concurrent Programs. 7.3 Definitions of Correctness and Faults for Concurrent Programs. 7.4 Approaches to Testing Concurrent Programs. 7.5 Reachability Testing. Further Reading. References. Exercises. Index.

    £89.06

  • John Wiley & Sons Inc PL I Structured Programming

    1 in stock

    Book SynopsisA complete course in the PL/I programming language, presented in a simple and logical manner with many features to help the reader grasp the material quickly: checkpoint questions interspersed throughout each chapter; a detailed index to help locate references to technical points and answers to questions; a glossary of terms, and more.Table of ContentsIntroduction to PL/I. Top-Down Structured Programming. Data Types and Data Manipulation. Subroutines and Functions. Logical Testing. DOs and Arrays. File Declarations and Stream I/O. Record I/O, Structures, Pictures. Storage Classes and List Processing. File Processing. Appendixes. Index.

    1 in stock

    £149.35

  • Java Collections An Introduction to Abstract Data

    John Wiley & Sons Inc Java Collections An Introduction to Abstract Data

    Book SynopsisConcentrates on the in-built collection classes in Java 2, enabling more emphasis on software design and less on theory. This book gives programmers the ability to choose the best collection classes for each application. The authors explore abstract data types (ADTs) that turn up again and again in software design.Trade Review"A lovely book.... I will use this book a lot in the next few months on a Java project I'm just starting." (CVu, December 2001)Table of ContentsIntroduction 1 Part I: Ready, Set, Go with VMware Infrastructure 3 9 Chapter 1: Exploring VMware Infrastructure 3 as Your Virtual Solution 11 Chapter 2: Getting the Scoop on Capacity Planning 23 Chapter 3: Knowing Your Storage Options 39 Part II: Setting Up ESX Hosts 55 Chapter 4: ESX: The Brawn Behind the Brains 57 Chapter 5: ESX Installation — Now the Fun Begins 67 Part III: Connecting the Physical to Your Virtual Environment 81 Chapter 6: Embracing the Look and Feel of VMware Infrastructure Client 83 Chapter 7: Virtual Networking 95 Chapter 8: Connecting to Storage 119 Part IV: Fault Tolerance and Data Centers 137 Chapter 9: Getting VMware Virtual Center Running 139 Chapter 10: Making Virtual Machines 161 Chapter 11: Managing Virtual Machines 175 Chapter 12: Keeping Things Running with Virtual Clusters 193 Part V: Playing Virtual Adminstrator 209 Chapter 13: Securing Your System 211 Chapter 14: Swimming in Resource Pools 229 Chapter 15: Monitoring Your System 243 Chapter 16: Preparing for Disaster 259 Chapter 17: Troubleshooting 271 Part VI: The Part of Tens 281 Chapter 18: Ten Places to Discover More 283 Chapter 19: Ten Other VMware Products 295 Chapter 20: Ten Cool Virtual Appliances 307 Index 319

    £51.29

  • Z

    John Wiley & Sons Inc Z

    Book SynopsisOffers a thorough and comprehensive tutorial introduction to Z. Uses standard notation with practical exercises and clear descriptions and explanations. Contains information on how to relate Z specifications to actual program code and is enhanced to reflect the most current language standards.Table of ContentsTUTORIAL. First-Order Logic. Set Theory. Internal Telephone Directory. More About Relations and Schemas. Functions. Sequences. Bags. Free Types. METHODS OF REASONING. Formal Proof. Rigorous Proof. Immanent Reasoning. Reification and Decomposition. Floyd-Hoare Logic. Getting to Program Code. CASE STUDIES. Two Small Case Studies. Wing's Library Problem. Partial Specification of a Text-Editor. SPECIFICATION ANIMATION. Animation Using Miranda. REFERENCE MANUAL. Methods of Definition. Formal Definitions. Rules and Obligations. Appendices. Bibliography. Index.

    £56.00

  • Practical Risk Assessment for Project Management

    John Wiley & Sons Inc Practical Risk Assessment for Project Management

    Book SynopsisThis handbook presents simple techniques for the analysis and management of risk and uncertainty. Primarily for those in IT but of relevance to any project-based business, the text assumes no more than a basic knowlege of Lotus 123 or Excel.Table of ContentsProject Risk Assessment. Modelling and Simulation. Cost Risk. Schedule Risk. Business Forecast Risk. Alternative Techniques and Tools. References. Index.

    £56.00

  • Programming in Fortran 90

    John Wiley & Sons Inc Programming in Fortran 90

    Book SynopsisFortran 90 is the most radical revision ever of this popular language, bringing it up to date with current thinking in programming language development. This is the first book aimed directly at problem solving for Engineers and Scientists using the new features of Fortran 90.Table of ContentsGetting Going: Names, TYPEs, Simple Input/Output and ProgramStructure. Simple Arithmetic. Simple Intrinsic Procedures. Repetition. Conditions. More on Input/Output: CHARACTERs and FORMAT Specifications. Arrays. Yet More on Input/Output: FILEs. Subprograms: FUNCTIONs and SUBROUTINEs. Additional Language Features. Libraries of External SUBROUTINEs. Case Studies. Appendices. Index.

    £70.06

  • Algorithms and Data Structures in C

    John Wiley & Sons Inc Algorithms and Data Structures in C

    Book SynopsisThe aim of this work is to give breadth and depth to the C++ programmer's existing experience of the language. It presents a large number of algorithms, each of them implemented as ready-to-run (and standalone) programs.Table of ContentsSome Aspects of Programming in C++. Arithmetic. Sorting Arrays and Files. Stacks, Queues and Lists. Searching and String Processing. Binary Trees. B-trees. Tries, Priority Queues and File Compression. Graphs. Some Combinatorial Algorithms. Fundamentals of Interpreters and Compilers. Appendix. Bibliography. Index.

    £56.00

  • STL for C Programmers

    John Wiley & Sons Inc STL for C Programmers

    Book SynopsisIt is the first book that I have read that makes STL quickly usable by working programmers Francis Glassborow, Chair of The Association of C & C++ Users (ACCU) STL for C++ programmers Leen Ammeraal The Standard Template Library (STL) provides many useful and generally applicable programming tools. This book combines reference material and a well-paced tutorial to get you past the basics quickly. Small, complete programs illustrate the key STL features such as containers, algorithms, iterators and function objects. A section is devoted to the new string data type. All STL algorithms are formally presented by their prototypes and then informally described to show how to use them in practice. Concepts are well illustrated with a large number of example programs all of which are available via ftp (for access details please refer to the preface of the book or Wiley''s website). Finally, special examples are given to explain the advanced notions of function objects and function adaptors, incTable of ContentsSTL for Beginners. More Algorithms and Containers. Sequence Containers. Associative Containers. Container Adaptors. Function Objects and Adaptors. Generic Algorithms. An Application: Very Large Numbers. Bibliography. Index.

    £56.00

  • Requirements Engineering

    John Wiley & Sons Inc Requirements Engineering

    Book SynopsisRequirements Engineering Processes and Techniques Why this book was written The value of introducing requirements engineering to trainee software engineers is to equip them for the real world of software and systems development.Table of ContentsTHE REQUIREMENTS ENGINEERING PROCESS. Requirements Engineering Processes. Requirements Elicitation and Analysis. Requirements Validation. Requirements Management. REQUIREMENTS ENGINEERING TECHNIQUES. Methods for Requirements Engineering. Viewpoint-Oriented Requirements Methods. Non-functional Requirements. Interactive System Specification. Case Study. Index.

    £58.85

  • Feminist in a Software Lab

    Harvard University Press Feminist in a Software Lab

    15 in stock

    Book SynopsisTara McPherson asks what might it mean to designfrom conceptiondigital tools and applications that emerge from contextual concerns of cultural theory and from a feminist concern for difference. This question leads to the Vectors Lab, which for a dozen years has experimented with digital scholarship at the intersection of theory and praxis.Trade ReviewTara McPherson’s digital work is a model of intelligent design in a crazed world; her projects are bold and innovative. This is a fascinating account of the emancipatory drive she invests into those projects and an even bolder look at the genealogy of computing from the 1960s. She seeks to link the abstract universe of software design with ongoing ideologies of race and gender, and suggests even the algorithm is not immune from its cultural context. A must-read in every way. -- Daniel Herwitz, University of MichiganA beautifully nuanced and wide-ranging elaboration of the creative energy and possibilities that reverberate from the messy entanglements of the humanities, computational technologies, digital aesthetics, cultural histories, and feminist theory. McPherson does what few can: she moves into the messiness, not to settle the matter, but rather to expand our thinking about how to understand what matters. There is no one better at navigating the span between critical modes of theoretical inquiry and the creative cultural production of digital tools. -- Anne Balsamo, The New SchoolTara McPherson has been at the heart of the digital humanities for the last decade as a much-admired critical scholar and tool-maker. This book is a letter from the trenches of that discipline as well as an impassioned and sophisticated argument for why digital humanists must concern themselves with both praxis and theory. This book radicalizes the digital humanities, persuasively arguing for the centrality of difference in parts of the field that ignore it. Richly illustrated with digital scholarly projects on race, gender, and social justice that her lab helped to build, as well as a retelling of the history of code and computing using a feminist lens, this book is deeply generous and generative. -- Lisa Nakamura, University of Michigan

    15 in stock

    £32.26

  • Coding Freedom

    Princeton University Press Coding Freedom

    1 in stock

    Book SynopsisExploring the rise and political significance of the free and open source software (F/OSS) movement in the US and Europe, this title details the ethics behind hackers' devotion to F/OSS, the social codes that guide its production, and the political struggles through which hackers question the scope and direction of copyright and patent law.Trade ReviewOne of Choice's Outstanding Academic Titles for 2013 "Coding Freedom is insightful and fascinating, a superbly observed picture of the motives, divisions and history of the free software and software freedom world."--Cory Doctorow, BoingBoing "Anyone who thinks about programmers, open source, online communities, or the politics of intellectual property should have a copy of Coding Freedom on the shelf. It is an invaluable portrait of how free-software coders work, individually and collectively."--James Grimmelmann, Jotwell "The hacker ethic may be peculiar to outsiders. But it stems from a deep commitment to justice, fairness, and freedom. Anthropologist Gabriella Coleman describes in her phenomenal book Coding Freedom how hacker ethic gets encoded into both technical and political practice."--Danah Boyd, Wired "Though occasionally she uses academic jargon, her book is an intriguing read and connects the dots... Reading this book will help you to understand the conflict, as well as hacker culture."--David Hutchinson, io9.com "[S]triking and important... Coleman has captured a great deal of the essential spirit of the free- and open-software movement... I strongly suggest that you buy a copy of the book."--John Gilbey, Times Higher Education "[I]t is well-written and the analyses really get to the heart of some deeply ethical questions about individual, group and political relationships in voluntary groups which are rarely considered in such detail."--John R. Hudson, Briefing Bradford "This work by Coleman is at once history, ethnography, cultural criticism, and storytelling... Once can read the book as a narrative of the free software and open source movements, or as a sympathetic description of the behavior norms of hackers... Some readers will likely not consider hackers' aesthetic appreciation of good or clever coding as beauty, nor hackers' humor as funny, but these are Coleman's courageous attempts to provide a rounded depiction of this subculture. This book seems likely to be one of the defining works of cultural anthropology."--Choice "Coding Freedom is a persuasive piece of writing that tackles some of the questions central to the current political climate."--Sebastian Kubitschko, Culture Machine "Coding Freedom is an important analysis of F/OSS that offers deep ethnographic detail and creates a complex appreciation of this phenomenon. Coleman is also able to take this rich detail and extend it into the ethics and politics of F/OSS, connecting internal community principles to wider political effects, of which she provides a unique analysis. This book is compulsory reading for anyone interested in the cultural and social meaning of F/OSS and will powerfully repay anyone interested in the nature of ethics and society in the 21st century."--Tim Jordan, American Journal of SociologyTable of ContentsAcknowledgments ix Introduction - A Tale of Two Worlds 1 PART I - HISTORIES Chapter 1: The Life of a Free Software Hacker 25 Chapter 2: A Tale of Two Legal Regimes 61 PART II - CODES OF VALUE Chapter 3: The Craft and Craftiness of Hacking 93 Chapter 4:Two Ethical Moments in Debian 123 PART III - THE POLITICS OF AVOWAL AND DISAVOWAL Chapter 5: Code Is Speech 161 Conclusion: The Cultural Critique of Intellectual Property Law 185 Epilogue: How to Proliferate Distinctions, Not Destroy Them 207 Notes 211 References 225 Index 249

    1 in stock

    £27.00

  • Statistical and Thermal Physics

    Princeton University Press Statistical and Thermal Physics

    3 in stock

    Book Synopsis

    3 in stock

    £71.40

  • VisualBASIC .Net for Dummies

    John Wiley & Sons Inc VisualBASIC .Net for Dummies

    Book SynopsisWould you like to write Windows programs but don't know where to start? Visual Basic. NET, the latest distribution of Microsoft's programming language was designed to let anybody-even people with no prior programming experience-create sophisticated programs with stunning user interfaces, quickly and easily.Table of ContentsIntroduction 1 Part I: Creating a Visual Basic .NET Program 7 Chapter 1: How Visual Basic .NET Works 9 Chapter 2: Using the Visual Basic .NET User Interface 15 Chapter 3: Designing Your First User Interface 25 Chapter 4: Writing BASIC Code 35 Part II: Creating User Interfaces 49 Chapter 5: User Interface Design 101 51 Chapter 6: Designing Forms 73 Chapter 7: Boxes and Buttons for Making Choices 87 Chapter 8: Text Boxes and Labels for Typing and Showing Words 95 Chapter 9: Showing Choices with List and Combo Boxes 105 Chapter 10: Fine-Tuning the Appearance of Your User Interface 115 Part III: Making Menus 121 Chapter 11: Creating and Editing Pull-Down Menus 123 Chapter 12: Submenus, Growing Menus, and Pop-Up Menus 137 Chapter 13: Showing Dialog Boxes 147 Part IV: The Basics of Writing Code 165 Chapter 14: Writing Event-Handling Procedures 167 Chapter 15: Using Variables 181 Chapter 16: Getting Data from the User 195 Chapter 17: Math 101: Arithmetic, Logical, and Comparison Operators 203 Chapter 18: Strings and Things 219 Chapter 19: Defining Constants and Using Comments 233 Chapter 20: Storing Stuff in Data Structures 245 Chapter 21: Killing Bugs 257 Part V: Making Decisions and Getting Loopy 269 Chapter 22: Making Decisions with If-Then Statements 271 Chapter 23: The Select Case Statement 281 Chapter 24: Repeating Yourself with Loops 287 Chapter 25: For-Next Loops That Can Count 295 Chapter 26: Nested Loops and Quick Exits 301 Part VI: Writing Subprograms (So You Don’t Go Crazy All at Once) 305 Chapter 27: General Procedures (Subprograms That Everyone Can Share) 307 Chapter 28: Passing Arguments 317 Chapter 29: Function, a Unique Type of Subprogram 325 Part VII: Understanding Object-Oriented Programming 335 Chapter 30: What the Heck Is Object-Oriented Programming? 337 Chapter 31: Getting Some Class with Object-Oriented Programming 345 Chapter 32: Using Inheritance and Overloading 355 Part VIII: The Part of Tens 365 Chapter 33: Ten Visual Basic .NET Topics That Didn’t Fit Anywhere Else 367 Chapter 34: (Almost) Ten Tips for Using the Visual Basic .NET User Interface 375 Index 379

    £24.79

  • XML AllinOne Desk Reference For Dummies

    John Wiley & Sons Inc XML AllinOne Desk Reference For Dummies

    Book Synopsis* The complete solution! This revolution in product design incorporates 6 books in 1 straightforward desk reference. Provides in depth coverage of the many features and specifications of XML, the data interchange standard of choice. * XML All in One For Dummies is a true desk reference designed to guide readers through the features and specifications of the leading edge XML dialects and help them develop their own custom Web applications all under one cover. * Covers XML basics, using DTD''s with XML, XML namespaces, XML schemas, styling XML documents, XML''s linking languages, XML tools, using XML in the real world, and more. * The first two editions of XML For Dummies have sold more than 85,000 units. * According to Microsoft''s CEO Steve Ballmer XML will become the universal medium by which Web sites and users of Web sites communicate. * Written by NIIT a global training, IT consulting and software development organization. NIIT trains over 150,000 indiTable of ContentsIntroduction. Book I: Describing Data with XML. Chapter 1: Introducing XML. Chapter 2: Dissecting an XML Document. Chapter 3: Creating Well-Formed XML Documents. Chapter 4: Namespaces — Avoiding Naming Conflicts. Book II: Validating XML. Chapter 1: Validating XML Documents. Chapter 2: Creating Document Type Definitions. Chapter 3: Creating XML Schemas. Chapter 4: XML Schema Data Types. Chapter 5: Designing XML Schemas. Chapter 6: Validating Documents Using DTDs and XML Schemas. Chapter 7: Working with XML-Data Reduced. Book III: Presenting XML. Chapter 1: Styling XML with Stylesheets. Chapter 2: Cascading Style Sheets — Displaying XML in a Browser. Chapter 3: Printing XML Using XSL-FO. Book IV: Transforming XML. Chapter 1: XML’s Swiss Army Knife — XSLT. Chapter 2: Powered by Template Rules. Chapter 3: XPath — Scouting Out XML Data. Chapter 4: Adding Logic to Your XSLT. Chapter 5: Variables and Parameters. Chapter 6: The Output Side of XSLT. Book V: Working with the Rest of the X-Team. Chapter 1: XLink — Linking XML Documents. Chapter 2: XPointer — Pointing to Resources. Chapter 3: XForms — Processing Forms. Chapter 4: XHTML — Next-Generation HTML. Book VI: Processing XML. Chapter 1: Introduction to XML APIs. Chapter 2: Reading XML with SAX and XMLReader. Chapter 3: Understanding the XML DOM. Chapter 4: Processing XML Using the DOM. Book VII: XML Web Services. Chapter 1: Introduction to XML Web Services. Chapter 2: XML-RPC — Simple Distributed Computing. Chapter 3: SOAP — Accessing Web Services the Clean and Slippery Way. Chapter 4: WSDL — Telling the World about Your Web Services. Chapter 5: UDDI — Finding Web Services. Chapter 6: Voice and Wireless Services. Chapter 7: Web Services Security. Chapter 8: Implementing Web Services. Index.

    £23.79

  • Effective Software Project Management

    John Wiley & Sons Inc Effective Software Project Management

    Book SynopsisWhy another book on software project management? For some time, the fields of project management, computer science, and software development have been growing rapidly and concurrently.Table of ContentsForeword. Introduction. Part One: The Evolving State of ESPM. Chapter 1: The Changing Landscape of Software Development. Chapter 2: SDPM Roadmap. Part Two: Linear ESPM. Chapter 3: Linear SDPM Strategy. Chapter 4: The Linear SDPM Scoping Phase. Chapter 5: The Linear SDPM Planning Phase. Chapter 6: The Linear SDPM Launching Phase. Chapter 7: The Linear SDPM Monitoring and Controlling Phase. Chapter 8: The Linear SDPM Closing Phase. Chapter 9: The Linear SDPM Strategy Summary. Part Three: Incremental ESPM. Chapter 10: Incremental SDPM Strategy. Chapter 11: The Incremental SDPM Scoping Phase. Chapter 12: The Incremental SDPM Planning Phase. Chapter 13: The Incremental SDPM Launching Phase. Chapter 14: The Incremental SDPM Monitoring and Controlling Phase. Chapter 15: The Incremental SDPM Closing Phase. Chapter 16: The Incremental SDPM Strategy Summary. Part Four: Iterative ESPM. Chapter 17: Iterative SDPM Strategy. Chapter 18: The Iterative SDPM Scoping Phase. Chapter 19: The Iterative SDPM Planning Phase. Chapter 20: The Iterative SDPM Launching Phase. Chapter 21: The Iterative SDPM Monitoring and Controlling Phase. Chapter 22: The Iterative SDPM Closing Phase. Chapter 23: The Iterative SDPM Strategy Summary. Part Five: Adaptive ESPM. Chapter 24: Adaptive SDPM Strategy. Chapter 25: The Adaptive SDPM Scoping Phase. Chapter 26: The Adaptive SDPM Planning Phase. Chapter 27: The Adaptive SDPM Launching Phase. Chapter 28: The Adaptive SDPM Monitoring and Controlling Phase. Chapter 29: The Adaptive SDPM Closing Phase. Chapter 30: The Adaptive SDPM Strategy Summary. Part Six: Extreme ESPM. Chapter 31: Extreme SDPM Strategy. Chapter 32: The Extreme SDPM Scoping Phase. Chapter 33: The Extreme SDPM Planning Phase. Chapter 34: The Extreme SDPM Launching Phase. Chapter 35: The Extreme SDPM Monitoring and Controlling Phase. Chapter 36: The Extreme SDPM Closing Phase. Chapter 37: The Extreme SDPM Strategy Summary. Part Seven: In Summary. Chapter 38: Where Are You? Chapter 39: Where Do You Want To Go and How Can You Get There? Appendix A: What’s on the Web Site? Appendix B: Bibliography. Appendix C: The Project Overview Statement. Appendix D: Requirements Gathering. Appendix E: The Work Breakdown Structure. Appendix F: Estimation. Appendix G: The Project Network Diagram. Appendix H: The Resource Schedule. Appendix I :Organizing the Project Team. Appendix J: Project Performance Reporting. Appendix K: Business Process Flow Diagramming. Index.

    £40.38

  • Microsoft Rising Other Tales Silicon Val

    IEEE Computer Society Press,U.S. Microsoft Rising Other Tales Silicon Val

    Book SynopsisTed Lewis delivers a first-hand account of the changing computer industry, a story of Microsoft and the Silicon Valley. Lewis maps the history of computing from 1990 to 2000, a tale of greed and emotion in the fastest growing, mainline industry of the world. In this compilation of columns from Computer, IEEE Internet Computing, and Scientific American, Lewis tries to predict and explain the chaos of Silicon Valley. This book reports the author''s personal history through the early 1990''s to the end of the decade. These stories often try to predict or explain the chaos of Silicon Valley. Lewis analyzes the high-technology industry and its constant change amid turmoil and upheaval. He also examines the art of software development and deals with innovation and the emergence of a techno-society. The book does not promise any answers, but rather concludes this short journey into the recent past with a number of provoking ideas about the future of hi-tech.

    £66.56

  • Debugging and Performance Tuning for Parallel

    I.E.E.E.Press Debugging and Performance Tuning for Parallel

    1 in stock

    Book Synopsis

    1 in stock

    £71.06

  • Unified Objects

    Wiley Unified Objects

    1 in stock

    Book Synopsis

    1 in stock

    £71.06

  • TclTk for Programmers

    IEEE Computer Society Press,U.S. TclTk for Programmers

    Book Synopsis

    £84.56

© 2026 Book Curl

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Maestro
    • Mastercard
    • PayPal
    • Shop Pay
    • Union Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account