Software Engineering Books
I.E.E.E.Press Iterative Computer Algorithms with Applications
Book Synopsis
£105.26
John Wiley & Sons Inc ObjectOriented Simulation
Book SynopsisThe second part of a yearly series on simulation technology, OBJECT-ORIENTED SIMULATION presents an outstanding variety of the very latest advances in simulation techniques. This leading-edge volume contains a cohesive selection of presentations written by the world-renowned experts in a broad range of topics. OBJECT-ORIENTED SIMULATION is a key resource for anyone involved in computer simulator research and design as well as developers, producers, scholars, and managers. It is an excellent tool for preparing proposals for simulation in commercial and military fields.Table of ContentsPreface. Object-Oriented Simulation and Operas (G. Yeh, et al.). Object-Oriented Simulation Languages and Environments: AFour-Level Architecture (J. Miller, et al.). The Object Flow Model for Object-Oriented Simulation andDatabase Application Modeling (L. Pollacia and L. Delcambre). Reusable Simulation Models in an Object-Oriented Framework (T. Kim and M. Ahn). Object-Oriented Frameworks for Multilevel Simulation Modeling (D. Popken and A. Sinha). Design Strategies for Object-Oriented Simulation Testbeds that Support Software Integration (M. Hilton and C. Anken). Automation of Transformation Schemas for Object-OrientedSimulations (C. Coomber). Steps to an Ecology of Actor Simulation (A. Senteni). Key Words. About the Editors.
£159.26
IEEE Computer Society Press,U.S. SPICE
Book SynopsisThe SPICE (Software Process Improvement and Capability dEtermination) Project is a joint effort by the ISO and IEC to create an international standard for software process assessment. This book covers both the theory of SPICE and its practical applications, including the lessons learned from the SPICE trials. It includes a valuable automated tool on CD-ROM to help you apply the concepts presented in the book. The text shows the evolution of the most recent developments in the SPICE project. It documents the major products and the empirical evaluations that have been conducted thus far. The book is jointly written by the key experts involved in the SPICE project. The theory chapters describe the rationale behind the architecture and the contents of the V1.0 and V2.0 document set and how to interpret them. The remaining chapters describe the applications and how that make use of the theory behind them.
£105.26
O'Reilly Media Continuous API Management
Book SynopsisOverplanning before an API matures is a wasted investment, while underplanning can lead to disaster. This practical guide provides maturity models for individual APIs and multi-API landscapes to help you invest the right human and company resources for the right maturity level at the right time
£39.74
O'Reilly Media Restful Web API Patterns and Practices Cookbook
Book SynopsisThis cookbook provides proven recipes to help you get those many disparate parts to work together in your network. These step-by-step solutions help you find, connect, and maintain applications designed and built by people outside the organization.
£39.74
John Wiley & Sons Inc Incremental Software Architecture
Book SynopsisThe best-practices solution guide for rescuing broken software systems Incremental Software Architecture is a solutions manual for companies with underperforming software systems. With complete guidance and plenty of hands-on instruction, this practical guide shows you how to identify and analyze the root cause of software malfunction, then identify and implement the most powerful remedies to save the system. You''ll learn how to avoid developing software systems that are destined to fail, and the methods and practices that help you avoid business losses caused by poorly designed software. Designed to answer the most common questions that arise when software systems negatively impact business performance, this guide details architecture and design best practices for enterprise architecture efforts, and helps you foster the reuse and consolidation of software assets. Relying on the wrong software system puts your company at risk of failing. It''s a question of when, Table of ContentsACKNOWLEDGMENTS ix ABOUT THE AUTHOR xi CHAPTER 1 The Need for Incremental Software Architecture 1 PART ONE—Why Do Enterprise Systems Fail? 11 CHAPTER 2 What Is a Failing Enterprise System? Is It Management’s Fault? 13 CHAPTER 3 Technological System-Level Failures 23 PART TWO—End-State Architecture Discovery and Analysis 35 CHAPTER 4 System Fabric Discovery and Analysis 39 CHAPTER 5 Application Discovery 55 CHAPTER 6 Application Mapping 67 PART THREE—End-State Architecture Decomposition 83 CHAPTER 7 End-State Architecture Structural Decomposition through Classification 85 CHAPTER 8 Business Analysis Drives End-State Architecture Structural Decomposition 103 CHAPTER 9 Technical Analysis Drives End-State Architecture Structural Decomposition 119 CHAPTER 10 Business Views Drive End-State Architecture Decomposition 145 CHAPTER 11 Environment Behavior Drives End-State Architecture Decomposition 161 PART FOUR—End-State Architecture Verification 179 CHAPTER 12 Design Substantiation 181 CHAPTER 13 Introduction to End-State Architecture Stress Testing 197 CHAPTER 14 End-State Architecture Stress Testing Driven by Pressure Points 223 CHAPTER 15 Enterprise Capacity Planning for End-State Architecture 235 INDEX 253
£36.09
John Wiley & Sons Inc Artificial Neural Network Applications for
Book SynopsisThis book provides a starting point for software professionals to apply artificial neural networks for software reliability prediction without having analyst capability and expertise in various ANN architectures and their optimization. Artificial neural network (ANN) has proven to be a universal approximator for any non-linear continuous function with arbitrary accuracy. This book presents how to apply ANN to measure various software reliability indicators: number of failures in a given time, time between successive failures, fault-prone modules and development efforts. The application of machine learning algorithm i.e. artificial neural networks application in software reliability prediction during testing phase as well as early phases of software development process are presented. Applications of artificial neural network for the above purposes are discussed with experimental results in this book so that practitioners can easily use ANN models for predicting software reliability iTable of ContentsPreface xi Acknowledgement xv Abbreviations xvii 1 Introduction 1 1.1 Overview of Software Reliability Prediction and Its Limitation 6 1.2 Overview of the Book 8 1.2.1 Predicting Cumulative Number of Software Failures in a Given Time 9 1.2.2 Predicting Time Between Successive Software Failures 11 1.2.3 Predicting Software Fault-Prone Modules 13 1.2.4 Predicting Software Development Efforts 15 1.3 Organization of the Book 17 2 Software Reliability Modelling 19 2.1 Introduction 19 2.2 Software Reliability Models 20 2.2.1 Classification of Existing Models 21 2.2.2 Software Reliability Growth Models 25 2.2.3 Early Software Reliability Prediction Models 27 2.2.4 Architecture based Software Reliability Prediction Models 29 2.2.5 Bayesian Models 31 2.3 Techniques used for Software Reliability Modelling 31 2.3.1 Statistical Modelling Techniques 31 2.3.2 Regression Analysis 35 2.3.3 Fuzzy Logic 37 2.3.3.1 Fuzzy Logic Model for Early Fault Prediction 38 2.3.3.2 Prediction and Ranking of Fault-prone Software Modules using Fuzzy Logic 39 2.3.4 Support Vector Machine 40 2.3.4.1 SVM for Cumulative Number of Failures Prediction 41 2.3.5 Genetic Programming 45 2.3.6 Particle Swarm Optimization 49 2.3.7 Time Series Approach 50 2.3.8 Naive Bayes 51 2.3.9 Artificial Neural Network 52 2.4 Importance of Artificial Neural Network in Software Reliability Modelling 54 2.4.1 Cumulative Number of Software Failures Prediction 55 2.4.2 Time Between Successive Software Failures Prediction 58 2.4.3 Software Fault-Prone Module Prediction 60 2.4.4 Software Development Efforts Prediction 64 2.5 Observations 67 2.6 Objectives of the Book 70 3 Prediction of Cumulative Number of Software Failures 73 3.1 Introduction 73 3.2 ANN Model 76 3.2.1 Artificial Neural Network Model with Exponential Encoding 77 3.2.2 Artificial Neural Network Model with Logarithmic Encoding 77 3.2.3 System Architecture 78 3.2.4 Performance Measures 80 3.3 Experiments 81 3.3.1 Effect of Different Encoding Parameter 82 3.3.2 Effect of Different Encoding Function 83 3.3.3 Effect of Number of Hidden Neurons 86 3.4 ANN-PSO Model 88 3.4.1 ANN Architecture 89 3.4.2 Weight and Bias Estimation Through PSO 91 3.5 Experimental Results 93 3.6 Performance Comparison 94 4 Prediction of Time Between Successive Software Failures 103 4.1 Time Series Approach in ANN 105 4.2 ANN Model 106 4.3 ANN- PSO Model 113 4.4 Results and Discussion 116 4.4.1 Results of ANN Model 116 4.4.2 Results of ANN-PSO Model 121 4.4.3 Comparison 125 5 Identification of Software Fault-Prone Modules 131 5.1 Research Background 133 5.1.1 Software Quality Metrics Affecting Fault-Proneness 134 5.1.2 Dimension Reduction Techniques 135 5.2 ANN Model 137 5.2.1 SA-ANN Approach 139 5.2.1.1 Logarithmic Scaling Function 139 5.2.1.2 Sensitivity Analysis on Trained ANN 140 5.2.2 PCA-ANN Approach 142 5.3 ANN-PSO Model 145 5.4 Discussion of Results 148 5.4.1 Results of ANN Model 149 5.4.1.1 SA-ANN Approach Results 149 5.4.1.2 PCA-ANN Approach Results 152 5.4.1.3 Comparison Results of ANN Model 155 5.4.2 Results of ANN-PSO Model 162 5.4.2.1 Reduced Data Set 162 5.4.2.2 Comparison Results of ANN-PSO Model 163 6 Prediction of Software Development Efforts 175 6.1 Need for Development Efforts Prediction 178 6.2 Efforts Multipliers Affecting Development Efforts 178 6.3 Artificial Neural Network Application for Development Efforts Prediction 179 6.3.1 Additional Input Scaling Layer ANN Architecture 181 6.3.2 ANN-PSO Model 183 6.3.3 ANN-PSO-PCA Model 186 6.3.4 ANN-PSO-PCA-GA Model 188 6.3.4.1 Chromosome Design and Fitness Function 189 6.3.4.2 System Architecture of ANN-PSOPCA-GA Model 190 6.4 Performance Analysis on Data Sets 192 6.4.1 COCOMO Data Set 194 6.4.2 NASA Data Set 202 6.4.3 Desharnais Data Set 206 6.4.4 Albrecht Data Set 209 7 Recent Trends in Software Reliability 215 References 219 Appendix Failure Count Data Set 231 Appendix Time Between Failure Data Set 235 Appendix CM1 Data Set 241 Appendix COCOMO 63 Data Set 283 Index 289
£152.06
John Wiley and Sons Ltd An Introduction to Selfadaptive Systems
Book SynopsisA concise and practical introduction to the foundations and engineering principles of self-adaptation Though it has recently gained significant momentum, the topic of self-adaptation remains largely under-addressed in academic and technical literature. This book changes that. Using a systematic and holistic approach, An Introduction to Self-adaptive Systems: A Contemporary Software Engineering Perspective provides readers with an accessible set of basic principles, engineering foundations, and applications of self-adaptation in software-intensive systems. It places self-adaptation in the context of techniques like uncertainty management, feedback control, online reasoning, and machine learning while acknowledging the growing consensus in the software engineering community that self-adaptation will be a crucial enabling feature in tackling the challenges of new, emerging, and future systems. The author combines cutting-edge technical research with bTable of ContentsForeword xi Acknowledgments xv Acronyms xvii Introduction xix 1 Basic Principles of Self-Adaptation and Conceptual Model 1 1.1 Principles of Self-Adaptation 2 1.2 Other Adaptation Approaches 4 1.3 Scope of Self-Adaptation 5 1.4 Conceptual Model of a Self-Adaptive System 5 1.4.1 Environment 5 1.4.2 Managed System 7 1.4.3 Adaptation Goals 8 1.4.4 Feedback Loop 8 1.4.5 Conceptual Model Applied 10 1.5 A Note on Model Abstractions 11 1.6 Summary 11 1.7 Exercises 12 1.8 Bibliographic Notes 14 2 Engineering Self-Adaptive Systems: A Short Tour in Seven Waves 17 2.1 Overview of the Waves 18 2.2 Contributions Enabled by the Waves 20 2.3 Waves Over Time with Selected Work 20 2.4 Summary 22 2.5 Bibliographic Notes 23 3 Internet-of-Things Application 25 3.1 Technical Description 25 3.2 Uncertainties 28 3.3 Quality Requirements and Adaptation Problem 29 3.4 Summary 29 3.5 Exercises 30 3.6 Bibliographic Notes 31 4 Wave I: Automating Tasks 33 4.1 Autonomic Computing 34 4.2 Utility Functions 35 4.3 Essential Maintenance Tasks for Automation 37 4.3.1 Self-Optimization 37 4.3.2 Self-Healing 38 4.3.3 Self-Protection 40 4.3.4 Self-Configuration 42 4.4 Primary Functions of Self-Adaptation 43 4.4.1 Knowledge 44 4.4.2 Monitor 46 4.4.3 Analyzer 47 4.4.4 Planner 49 4.4.5 Executor 51 4.5 Software Evolution and Self-Adaptation 52 4.5.1 Software Evolution Management 53 4.5.2 Self-Adaptation Management 54 4.5.3 Integrating Software Evolution and Self-Adaptation 55 4.6 Summary 56 4.7 Exercises 59 4.8 Bibliographic Notes 60 5 Wave II: Architecture-based Adaptation 63 5.1 Rationale for an Architectural Perspective 64 5.2 Three-Layer Model for Self-Adaptive Systems 66 5.2.1 Component Control 67 5.2.2 Change Management 67 5.2.3 Goal Management 68 5.2.4 Three-Layer Model Applied to DeltaIoT 68 5.2.5 Mapping Between the Three-Layer Model and the Conceptual Model for Self-Adaptation 70 5.3 Reasoning about Adaptation using an Architectural Model 70 5.3.1 Runtime Architecture of Architecture-based Adaptation 71 5.3.2 Architecture-based Adaptation of the Web-based Client-Server System 73 5.4 Comprehensive Reference Model for Self-Adaptation 75 5.4.1 Reflection Perspective on Self-Adaptation 76 5.4.2 MAPE-K Perspective on Self-Adaptation 78 5.4.3 Distribution Perspective on Self-Adaptation 79 5.5 Summary 83 5.6 Exercises 84 5.7 Bibliographic Notes 87 6 Wave III: Runtime Models 89 6.1 What is a Runtime Model? 90 6.2 Causality and Weak Causality 90 6.3 Motivations for Runtime Models 91 6.4 Dimensions of Runtime Models 92 6.4.1 Structural versus Behavioral 93 6.4.2 Declarative versus Procedural 94 6.4.3 Functional versus Qualitative 95 6.4.3.1 Functional Models 95 6.4.3.2 Quality Models 95 6.4.4 Formal versus Informal 98 6.5 Principal Strategies for Using Runtime Models 101 6.5.1 MAPE Components Share K Models 101 6.5.2 MAPE Components Exchange K Models 103 6.5.2.1 Runtime Models 103 6.5.2.2 Components of the Managing System 104 6.5.3 MAPE Models Share K Models 105 6.6 Summary 108 6.7 Exercises 109 6.8 Bibliographic Notes 114 7 Wave IV: Requirements-driven Adaptation 115 7.1 Relaxing Requirements for Self-Adaptation 116 7.1.1 Specification Language to Relax Requirements 116 7.1.1.1 Language Operators for Handling Uncertainty 116 7.1.1.2 Semantics of Language Primitives 118 7.1.2 Operationalization of Relaxed Requirements 118 7.1.2.1 Handing Uncertainty 118 7.1.2.2 Requirements Reflection and Mitigation Mechanisms 119 7.1.2.3 A Note on the Realization of Requirements Reflection 121 7.2 Meta-Requirements for Self-Adaptation 122 7.2.1 Awareness Requirements 123 7.2.2 Evolution Requirements 124 7.2.3 Operationalization of Meta-requirements 126 7.3 Functional Requirements of Feedback Loops 127 7.3.1 Design and Verify Feedback Loop Model 128 7.3.2 Deploy and Execute Verified Feedback Loop Model 130 7.4 Summary 131 7.5 Exercises 132 7.6 Bibliographic Notes 134 8 Wave V: Guarantees Under Uncertainties 137 8.1 Uncertainties in Self-Adaptive Systems 139 8.2 Taming Uncertainty with Formal Techniques 141 8.2.1 Analysis of Adaptation Options 141 8.2.2 Selection of Best Adaptation Option 143 8.3 Exhaustive Verification to Provide Guarantees for Adaptation Goals 144 8.4 Statistical Verification to Provide Guarantees for Adaptation Goals 149 8.5 Proactive Decision-Making using Probabilistic Model Checking 154 8.6 A Note on Verification and Validation 160 8.7 Integrated Process to Tame Uncertainty 160 8.7.1 Stage I: Implement and Verify the Managing System 161 8.7.2 Stage II: Deploy the Managing System 162 8.7.3 Stage III: Verify Adaptation Options, Decide, and Adapt 163 8.7.4 Stage IV: Evolve Adaptation Goals and Managing System 163 8.8 Summary 164 8.9 Exercises 165 8.10 Bibliographic Notes 168 9 Wave VI: Control-based Software Adaptation 171 9.1 A Brief Introduction to Control Theory 173 9.1.1 Controller Design 174 9.1.2 Control Properties 175 9.1.3 SISO and MIMO Control Systems 176 9.1.4 Adaptive Control 177 9.2 Automatic Construction of SISO Controllers 177 9.2.1 Phases of Controller Construction and Operation 178 9.2.2 Model Updates 179 9.2.3 Formal Guarantees 181 9.2.4 Example: Geo-Localization Service 183 9.3 Automatic Construction of MIMO Controllers 184 9.3.1 Phases of Controller Construction and Operation 184 9.3.2 Formal Guarantees 186 9.3.3 Example: Unmanned Underwater Vehicle 186 9.4 Model Predictive Control 189 9.4.1 Controller Construction and Operation 189 9.4.2 Formal Assessment 191 9.4.3 Example: Video Compression 192 9.5 A Note on Control Guarantees 194 9.6 Summary 194 9.7 Exercises 196 9.8 Bibliographic Notes 199 10 Wave VII: Learning from Experience 201 10.1 Keeping Runtime Models Up-to-Date Using Learning 203 10.1.1 Runtime Quality Model 204 10.1.2 Overview of Bayesian Approach 205 10.2 Reducing Large Adaptation Spaces Using Learning 208 10.2.1 Illustration of the Problem 208 10.2.2 Overview of the Learning Approach 210 10.3 Learning and Improving Scaling Rules of a Cloud Infrastructure 213 10.3.1 Overview of the Fuzzy Learning Approach 214 10.3.1.1 Fuzzy Logic Controller 214 10.3.1.2 Fuzzy Q-learning 217 10.3.1.3 Experiments 221 10.4 Summary 223 10.5 Exercises 225 10.6 Bibliographic Notes 226 11 Maturity of the Field and Open Challenges 227 11.1 Analysis of the Maturity of the Field 227 11.1.1 Basic Research 227 11.1.2 Concept Formulation 228 11.1.3 Development and Extension 229 11.1.4 Internal Enhancement and Exploration 229 11.1.5 External Enhancement and Exploration 230 11.1.6 Popularization 230 11.1.7 Conclusion 231 11.2 Open Challenges 231 11.2.1 Challenges Within the Current Waves 231 11.2.1.1 Evidence for the Value of Self-Adaptation 231 11.2.1.2 Decentralized Settings 232 11.2.1.3 Domain-Specific Modeling Languages 232 11.2.1.4 Changing Goals at Runtime 233 11.2.1.5 Complex Types of Uncertainties 233 11.2.1.6 Control Properties versus Quality Properties 234 11.2.1.7 Search-based Techniques 234 11.2.2 Challenges Beyond the Current Waves 235 11.2.2.1 Exploiting Artificial Intelligence 235 11.2.2.2 Dealing with Unanticipated Change 236 11.2.2.3 Trust and Humans in the Loop 236 11.2.2.4 Ethics for Self-Adaptive Systems 237 11.3 Epilogue 239 Bibliography 241 Index 263
£80.06
Apress EventBased Programming Taking Events to the Limit
Table of ContentsA table of contents is not available for this title.
£55.24
Apress Learn Java for Web Development
Table of Contents1. Introducing Java Web Development 2. Building Applications with Servlets and JSP 3. Best Practices in Java EE Web Development 4. Building Applications with Struts2 5. Building Applications with Spring Web MVC 6. Building Applications with JSF 7. Rapid Web Development with Grails 8. Play with Java and Scala Appendix A. Introduction to Java Appendix B. Introduction to Groovy Appendix C. Introduction to Scala
£42.74
O'Reilly Media Apache Oozie
Book SynopsisGet a solid grounding in Apache Oozie, the workflow scheduler system for managing Hadoop jobs. With this hands-on guide, two experienced Hadoop practitioners walk you through the intricacies of this powerful and flexible platform, with numerous examples and real-world use cases.
£25.59
Association for Computing Machinery John C ONeill Hardware and Software Perspectives
Book SynopsisHeterogeneous computing results in both challenges and opportunities. This book discusses both. It shows that we need to deal with these challenges at all levels of the computing stack: from algorithms all the way to process technology.Table of Contents Preface Why Are We Forced to Deal with Heterogeneous Computing? Different Players: Heterogeneity in Computing Architecture: Heterogeneity in Design Programmability Research Directions References Index Author's Biography
£46.80
Association for Computing Machinery ProcessTracing Methods Hardware and Software Perspectives ACM Books
Book SynopsisHeterogeneous computing results in both challenges and opportunities. This book discusses both. It shows that we need to deal with these challenges at all levels of the computing stack: from algorithms all the way to process technology.Table of Contents Preface Why Are We Forced to Deal with Heterogeneous Computing? Different Players: Heterogeneity in Computing Architecture: Heterogeneity in Design Programmability Research Directions References Index Author's Biography
£32.25
Morgan & Claypool Publishers Conversational UX Design
Book SynopsisAdapts formal knowledge from the field of Conversation Analysis (CA) to the design of natural language interfaces. The book outlines the Natural Conversation Framework (NCF), developed at IBM Research, a systematic framework for designing interfaces that work like natural conversation.Table of Contents Preface Introduction Conversation Analysis Conversation Authoring Natural Conversation Framework Conversational Activity UX Patterns Sequence Management UX Patterns Conversation Management UX Patterns Conversational UX Design Process Conclusion Appendix A Appendix B Appendix C Appendix D References Index Author Biographies
£69.30
Morgan & Claypool Publishers Code Nation Personal Computing and the Learn to
Book SynopsisExplores the rise of software development as a social, cultural, and technical phenomenon in American history. The book emphasizes the technical and business challenges that software developers faced when building applications for CP/M, MS-DOS, UNIX, Microsoft Windows, the Apple Macintosh, and other emerging platforms.Table of Contents Acknowledgments How important is programming? Four computing mythologies FORTRAN, Logo, and the Tower of Babel Advocating computer literacy Four million BASIC programmers Power users, tinkerers, and gurus Hackers and cyberpunks Computer magazines and historical research Developing for MS-DOS: authors and entrepreneurs C programming nation: from Tiny C to Microsoft Windows "Evangelism is sales done right": PCs and commercial programming culture Afterword: programming in the Internet age Index
£30.56
Association for Computing Machinery Code Nation
Book SynopsisExplores the rise of software development as a social, cultural, and technical phenomenon in American history. The book emphasizes the technical and business challenges that software developers faced when building applications for CP/M, MS-DOS, UNIX, Microsoft Windows, the Apple Macintosh, and other emerging platforms.Table of Contents Acknowledgments How important is programming? Four computing mythologies FORTRAN, Logo, and the Tower of Babel Advocating computer literacy Four million BASIC programmers Power users, tinkerers, and gurus Hackers and cyberpunks Computer magazines and historical research Developing for MS-DOS: authors and entrepreneurs C programming nation: from Tiny C to Microsoft Windows "Evangelism is sales done right": PCs and commercial programming culture Afterword: programming in the Internet age Index
£46.80
Morgan & Claypool Publishers Software
Book SynopsisBuilding on concepts from the history of science and technology, this volume examines such areas as fundamentals, operating systems, programming languages, programming environments, networking, and databases. Topics are covered from their earliest beginnings to their modern variants.
£28.45
O'Reilly Media Make FPGAs
Book SynopsisWith Make: FPGAs, you'll learn how to break down problems into something that can be solved on an FPGA, design the logic that will run on your FPGA, and hook up electronic components to create finished projects.
£999.99
Apress Pro Linux High Availability Clustering
Table of Contents High Availability Clustering and Its Architecture Configuring Storage Configuring the Membership Layer Understanding Pacemaker Architecture and Management Configuring Essential Cluster Settings Clustering Resources Clustering Storage Performing Daily Cluster Management Tasks Creating an Open Source SAN Use Case: Creating a Solution for Xen/KVM High Availability Use Case: Configuring a Load-Balanced Mail Front End with a Database Back End
£67.49
APress Programming LEGO EV3 My Blocks
Book SynopsisTable of Contents
£17.99
APress Implementing SAP S4HANA
Book Synopsis Gain a better understanding of implementing SAP S/4HANA-based digital transformations. This book helps you understand the various components involved in the planning and execution of successful SAP S/4HANA projects. Learn how to ensure success by building a solid business case for SAP S/4HANA up front and track business value generated throughout the implementation. Implementing SAP S/4HANA provides a framework for planning and executing SAP S/4HANA projects by articulating the implementation approach used by different components in SAP S/4HANA implementations. Whether you are mid-way through the SAP S/4HANA program or about to embark on it, this book will help you throughout the journey. If you are looking for answers on why SAP S/4HANA requires special considerations as compared to a traditional SAP implementation, this book is for you. What You Will Learn Table of ContentsChapter 1 – What is SAP S4HANA SolutioningEstimating/Budgeting and monitoring SAP S4HANA Projects. It expands on why traditional estimation models (like function point analysis in programming) does not apply to SAP S4HANA projects. It informs the reader about SAP S4HANA Solutioning framework and its uses whether its implementation/support or even small-time enhancements.Chapter 2 – Solutioning Components Starts with Process/Functional effort. Then takes it forward with Development, Data, Testing and Project Management. It delves also into, why clients should not ignore the Organization Change Management/Training area. It also touches upon the Technical Architecture/ Infrastructure area.Chapter 3 – Process/Functional Effort in SAP S4HANAIntroduces the reader to Factor-based estimations. What drives functional effort – module scope/process hierarchy, number of configurations. How do you solution for functional design effort? It also expands on the other areas where functional teams get involved – data conversion, testing, even delivery of the training. How to estimate for the effort where often functional teams get pulled into?Chapter 4 – Development Effort in SAP S4HANA It is a most industrialized method such as using RICEF list to drive this effort. Why should you not ignore efforts such as transport management, defect fixes or even in data migration done by Development teams or hyper care support?Chapter 5 – Data Effort in SAP S4HANAData is often biggest (and poorly solutioned) components of SAP S4HANA projects. It talks about data quality/profiling and why you should not ignore data cleansing effort. Why manual data loading effort often gets under-staffed/under solutioned? What factors drive data conversion solutions – the number of data conversion objects/cycles/mock conversions? Why should you have separate RACI for data, to properly allocate effort across streams as data is often parallel stream in the project?Chapter 6 – Testing Effort in SAP S4HANATesting is often outsourced/industrialized area of SAP S4HANA Projects. But it’s also most stressful activity due to poor solutioning. The client often underestimates their commitment to it. How a test scripts/test cycles drive the testing solution? How to accurately solution for system integration testing? Why client often underestimate on legacy integration testing? Why and how infrastructure/landscape manage effort should be considered during test cycles? Chapter 7 –Tech Arch/Infrastructure EffortWhy small items like setting up the printers/desktop configurations need to be considered upfront? With cloud/HEC scenarios prevalent in SAP S4HANA Projects, why a client should be clear on RACI with multiple partners operating in this area. What factors drive the solutions in this area?Chapter 8 – Organization Change Management (OCM)Why is OCM often seen just as training activity? It also includes – communications management, stakeholder analysis, job/role design. What factors drive this effort and why SAP S4HANA clients often underestimate for this effort?Chapter 9 – Miscellaneous Factors Terms such as governance, cutover, deployments – why it’s important to estimate/allocate effort to these buckets upfront?Chapter 10 – How it All Comes Together?How to combine all the above data points for solutioning purpose? How it affects client/vendor resources and ultimately price paid by the client for SAP S4HANA Implementation?Chapter 11 – Evolution of SAP S4HANA Solutioning approachesWould your solution separately for SaaS projects such as Concur/SuccessFactors or HEC Implementation? How has Fiori/SAP S4HANA Solutioning evolved over a few years?
£42.49
APress Pro .NET Benchmarking
Book Synopsis Use this in-depth guide to correctly design benchmarks, measure key performance metrics of .NET applications, and analyze results. This book presents dozens of case studies to help you understand complicated benchmarking topics. You will avoid common pitfalls, control the accuracy of your measurements, and improve performance of your software. Author Andrey Akinshin has maintained BenchmarkDotNet (the most popular .NET library for benchmarking) for five years and covers common mistakes that developers usually make in their benchmarks. This book includes not only .NET-specific content but also essential knowledge about performance measurements which can be applied to any language or platform (common benchmarking methodology, statistics, and low-level features of modern hardware). What You''ll Learn Be aware of the best practices for writing benchmarks and performance testsTable of Contents 1. Introducing Benchmarking 2. Common Benchmarking Pitfalls 3. How Environment Affects Performance 4. Statistics for Performance Engineers 5. Performance Analysis and Performance Testing 6. Diagnostics Tools 7. CPU-Bound Benchmarks 8. Memory-Bound Benchmarks 9. Hardware and Software Timers
£46.74
APress Practical C Design
Book SynopsisGo from competent C++ developer to skilled designer or architect using this book as your personal C++ design master class. Updated for the C++20 standard, this title will guide you through the design and implementation of an engaging case study that forms the backdrop for learning the art of applying design patterns and modern C++ techniques to create a high quality, robust application. Starting with a quick exploration of the requirements for building the application, you''ll delve into selecting an appropriate architecture, eventually designing and implementing all of the necessary modules to meet the project''s requirements. By the conclusion of Practical C++ Design, you''ll have constructed a fully functioning calculator capable of building and executing on any platform that supports both Qt and C++20. Access to the complete source code will help speed your learning. Utilize the Model-View-Controller pattern as the basis for the architecTable of ContentsPreface (5 pages)The preface details my motivation for writing the book, the target audience for the book, thegeneral structure of the book, and how to contact the author. Of particular importance is therationale behind choosing the case study, the target language (C++), and the GUI toolkit (Qt).Chapter 1: Defining the Case Study (6 pages)The first chapter describes, in detail, the case study to be examine in the book. The chapterdiscusses requirements in the abstract and then transitions to the calculator’s specific requirements.This sets the stage for the remainder of the book, which describes, in detail, the design andimplementation of the calculator, pdCalc, proposed in Chapter 1.1. A Brief Introduction2. A Few Words About Requirements3. Reverse Polish Notation (RPN)4. The Calculator’s Requirements5. The Source Code1The advice, information, and conclusions discussed in this book are those of the author and have not beenendorsed by, or reflect the opinions or practices of, ExxonMobil Corporation or its affiliates.5Chapter 2: Decomposition (18 pages)In this chapter, I explain the elements of a good decomposition and strategies for decomposing aproblem into manageable pieces. Subsequently, an architecture for pdCalc is selected, the calculatoris modularized, and use cases are used to develop interfaces for the high level calculator modules.The four high level modules are the stack, the command dispatcher, the user interface (subdividedinto a command line interface and a graphic user interface), and a plugin manager.1. The Elements of a Good Decomposition2. Selecting An Architecture3. Interfaces4. Assessment of Our Current Design5. Next StepsChapter 3: The Stack (20 pages)The stack is the first module discussed in detail. The stack is the fundamental data repositoryof the calculator. As part of the calculator’s design and implementation, the singleton pattern isexplored. The stack also affords the first opportunity to discuss an event system for the calculator,which provides a backdrop for exploration of the observer pattern, including the design andimplementation of reusable publisher and observer abstract classes.1. Decomposition of the Stack Module2. The Stack Class3. Adding Events4. A Quick Note on TestingChapter 4: The Command Dispatcher (32 pages)This chapter describes the design and implementation of the command dispatcher, the module ofthe calculator responsible for the creation, storage, and execution of commands. Of particular notein this chapter is the exposition on the command pattern and how it can be used to implement apractical undo/redo framework. In addition to exploring a traditional deep hierarchy method forimplementing commands, a C++11 alternative using lambda expressions and the standard functiontemplate are presented as a modern alternative design.1. The Decomposition of the Command Dispatcher2. The Command Class3. The Command Repository4. The Command Manager5. The Command Dispatcher6. Revisiting Earlier Decisions6Chapter 5: The Command Line Interface (14 pages)This chapter marks an important milestone, the creation of the first user executable program.In addition to building a simple command line interface, we’ll explore how to create an abstractsoftware interface suitable for both a command line interface and a graphical user interface. Withinthe context of the command line interface, we’ll learn techniques for simple parsing and tokenizingof input text streams.1. The User Interface Abstraction2. The Concrete CLI Class3. Tying It Together: A Working ProgramChapter 6: The Graphical User Interface (24 pages)In this chapter, we build the Qt-based graphical user interface for the calculator. Here, we’llexamine different strategies for building GUIs, abstraction of GUI elements, and modularization ofthe overall GUI design. Included in the discussion is design for the separation of on-screen widgetsfrom look-and-feel.1. Requirements2. Building GUIs3. Modularization4. A Working Program5. A Microsoft Windows Build NoteChapter 7: Plugins (38 pages)In this chapter, I describe how to build a cross-platform plugin system. This system includes theabstract interface for C++ plugins as well as the operating system specific mechanics involved withloading plugins and executing plugin functions. In the concrete case of the plugin loader, I explainthe many build tricks that can be used to handle cross-platform code and demonstrate how theabstract factory pattern provides an elegant design solution to this problem.1. What Is a Plugin?2. Problem 1: The Plugin Interface3. Problem 2: Loading Plugins4. Problem 3: Retrofitting pdCalc5. Incorporating Plugins6. A Concrete Plugin7. Next Steps7Chapter 8: New Requirements (24 pages)Any developer who has ever worked on a production software project quickly learns that newrequirements are always added late in the development cycle. In this chapter, we explore theaddition of new user requests after the original requirements have already been satisfied. Thediscussion progresses from fully implemented solutions to design only solutions to vague ideas forthe reader to explore on her own.1. Fully Designed New Features2. Designs Toward a More Useful Calculator3. Some Interesting Extensions for Self-ExplorationAppendix A: Acquiring, Building, and Executing pdCalc (4 pages)This appendix explains how to download the source code from GitHub and how to build the casestudy on Linux and Windows. Once the program is built, readers will want to execute the codeand its included test suite; execution instructions are therefore provided.1. Getting The Source Code2. Dependencies3. Building pdCalc4. Executing pdCalcAppendix B: Organization of the Source Code (6 pages)This appendix simply explains the organization of the source tree for pdCalc. This appendix isuseful for finding the locations for the source files referenced in the text.1. The src Directory2. The test DirectoryReferences (2 pages)This section lists twenty-nine references cited in the book.Index (3 pages)This section is a complete index for the book.
£35.99
APress SAP Enterprise Portfolio and Project Management
Book SynopsisLearn the fundamentals of SAP Enterprise Project and Portfolio management Project Systems (PS), Portfolio and Project Management (PPM) and Commercial Project Management (CPM) and their integration with other SAP modules. This book covers various business scenarios from different industries including the public sector, engineering and construction, professional services, telecom, mining, chemical, and pharmaceutical.Author Joseph Alexander Soosaimuthu will help you understand common business challenges and pain areas faced in portfolio, program and project management, and will provide suitable recommendations to overcome these challenges. This book not only suggests solutions within SAP, but also provides workarounds or integrations with third-party tools based on various Industry-specific business requirements.SAP Portfolio and Project Management addresses commonly asked questions regarding SAP EPPM implementation and deployment, and conveys a framework to facilTable of ContentsChapter 1: Project, Program and Portfolio Management - FundamentalsChapter Goal: To familiarise project, program and portfolio management structures, which subsequent chapters are based on. This chapter will act as building block for further concepts discussed in this book. Sub -Topics 1. Enterprise and Organisation Structure 2. Project Work Breakdown Structure 3. Portfolio and Program Structure 4. Synchronisation of Project, Program and Portfolio Structures 5. Prioritisation Framework Chapter 2: Project Life Cycle – Concept to Closure Chapter Goal: This chapter discusses in detail the various functionalities that will be used during the lifecycle of the project. Sub - Topics 1. Project Planning, Forecasting and Budgeting 2. Project Variation Management 3. Project Commentary 4. Project Issue, Risk and Action item Registers 5. Project Procurement 6. Project Resourcing 7. Project Billing 8. Project Capitalisation 9. Project Closure Chapter 3: Integration Chapter Goal: This chapter will cover critical integration touch points with 3rd party application and also other modules within SAP. Sub - Topics: 1. Detailed level planning of dates and schedules planning with integration to procurement and resourcing. 2. Integration with Schedule Management Applications such as MS project and Oracle Primavera 3. Integration with estimation and costing applications. 4. Integration with Forecasting Application or Excel Integration.Chapter 4: Industry Best Practise and RecommendationChapter Goal: The goal of this chapter is to provide the target audience with insight on business challenges faced during the implementation of Industry best practise and to discuss various solution options with recommendations. Sub - Topics: 1. Industry Best Practise 2. Business Challenges 3. Solution Options 4. Recommendation 5. Commonly asked questions 6. Standard RICEFW List by Industry 7. Standard Functionality List by Industry. Chapter 5: ReportingChapter Goal: This chapter covers reporting related to project, program and portfolio management. It also covers usage of standard ECC and BW Reports/Contents. Sub - Topics: 1. Operational Reporting 2. Month End Reporting 3. Strategic Reporting 4. Long Term Trend Analysis
£35.99
Apress System Firmware
Book SynopsisIntermediate user levelTable of ContentsPreface: This section to capture the author's personal experience about the current available bootloader solutions for target hardware and why authors think this book might be helpful for the target audience. Acknowledgement: This section acknowledges the contribution of domain expert(s) who has contributed into this book apart from the authors. Chapter 1: Introduction about the book: System Firmware: An Essential Guide to Open Source and Embedded Solutions book is a handbook for target audience to learn about the basics of system boot firmware, understand various different types of solutions available while designing system firmware for target embedded system. This book will help its reader to understand the minimal knowledge required to start the firmware journey, understanding the different system firmware architecture and find the right bootloader solution or combinations of firmware’s required to boot the platform. This section would cover: Motivation for this book Who is the Reader? Top reasons to migrate to open source firmware solution from close source What are the contents? Chapter 2: Starter: To provide the historical introduction about the boot firmware, its origin, what all different solutions available like closed soured boot firmware and open source boot firmware. Define the goals for readers to create their own open source boot firmware for target hardware, create hybrid work model if case SoC vendors still has some proprietary close source firmware to work with open source firmware to develop the target hardware along with non-goals like understanding the architecture of all possible bootloaders, payloads and firmware offerings, understand the bootloader security aspect while developing the product, scope of improving the quality of service for boot firmware using multi core environment, learn from the case study about optimizing boot firmware boot prints and boot time by introducing various concepts. Chapter 3: Knowing your Hardware: This section provides detailed understanding of hardware interfaces that firmware needs to manage prior to boot to an operating system. This is a very basic understanding section of system boot firmware without which one really can’t make progress further into their bootloader journey. A good understanding of hardware interfaces and how to program those interfaces is a minimum expectation from any BIOS engineer while working on any hardware project. Idea here is to provide ample details on any sample motherboard design and required programmable hardware interface at boot time, for example: UART, SPI, USB, SATA, Display etc. Chapter 4: Understanding Bootloader and its minimum requirements: There are many different types of firmware that exist based on underlying hardware requirements like system boot firmware, device firmware, platform security firmware, manageability firmware. Each firmware has its minimum requirements to complete its assigned task to initialize the underlying hardware and/or abstract the hardware to higher level applications. This section is to focus on system boot firmware and provide details about what is a bootloader, what are the basic characteristics a firmware must call it bootloader, finally understanding the minimum requirement to design a bootloader. This book would be like a handbook for the reader where the reader would be in a comfortable position to design its own bootloader at the end of this session. It won’t be possible to do so unless the reader has understood the basic expectation from the bootloader and upcoming chapters would guide readers to choose the appropriate bootloader for the target hardware. Chapter 5: Different types of bootloaders: BIOS as acronym suggest is responsible for Basic Input/ Output System. The BIOS in modern PCs initializes and tests the system hardware components and loads an operating system from a mass memory device. If a developer wants to write their own bootloader on any architecture, (ARM, IA, RISC etc.) then they must gather the appropriate documents (which aren’t always known), hence Chapter 3 is to provide those specific details about designing their own bootloader. And this section is to provide the architectural details about the popular or market leading bootloaders along with its applicable market segments because of its characteristics: idea here is to understand the Pros and Cons of each offering. EFI came during early development of the first Intel–HP Itanium systems in the mid-1990s. Then transform into UEFI and become widely used bootloaders for consumer electronic products in the modern era. UEFI has several implementations, with the EFI Developer Kit II (EDKII) being the most prominent. coreboot, formerly known as LinuxBIOS, is an open software project aimed at replacing proprietary firmware (BIOS or UEFI). So far widely used over specific areas like Chrome platforms like Chromebook, Chromebox, Chrome tablets/ slates, Govt. projects etc. Interestingly in the last few years coreboot has seen a major adaptation by several industry leaders for their product lines. Slim Bootloader is an open-source boot firmware, built from the ground up to be small, secure and optimized running on Intel x86 architecture. Chapter 6: Hybrid Work Model: Open source bootloader development has enormous dependency over SoC vendors for providing the documentation and reference code for CPU, memory and chipset initialization. A real desire to have an entire product developed with an open source concept, be it like SoC, hardware schematics, firmware and software. But the majority of silicon vendors are yet to adopt the open source development model for their products, resulting in sharing SoC reference code as part of license agreement among a small group typically known as Independent BIOS Vendors (IBVs). This section defines the possible hybrid work model where users can still build their open source bootloader solution while working with closed or restricted SoC, hardware platform. Firmware Support Package (FSP) - A new industry specification to work with all sorts of possible closed source SoC, CPU and/or hardware design using standard APIs to communicate with any bootloader. Over the last few years, industry has shown great adaptation towards FSP and this eventually helped many SoC vendors to migrate their reference code solutions from closed source code sharing among specific groups to API based open source binary blobs for interoperability with any bootloader. Chapter 7: Picking the correct payload: As salt is a very important ingredient for preparing good food, the same is also applicable for bootloaders as well, for any bootloader the payload is like salt. There are few bootloaders where payload is already integrated into it by default and one can’t likely replace it with other payload offerings. There is some boot firmware to allow selection of payload as per product need. The payload is a very essential entity in boot firmware due to various reasons like, an efficient payload can eventually reduce the boot firmware boot print and allow smooth transitions towards operating system, also provide early interactive interface or test framework to execute various utilities to measure hardware health. This section provides architecture details of all popular payloads and its current offerings to help users to choose the correct payload for their product. Tianocore – Mostly integrated with UEFI bootloader by default and widely used payload solution. Linuxboot – Perfect payload for simple bootloader like coreboot and allowing more runway for Linux like payload to load compatible operating system, Depthcharge – Payload with specific product requirements like Chromebooks. An idea to share the design principle for future proof concepts like Universal Payload where these payloads are getting mutual benefit from each other and define unified APIs expectations from boot firmware. Chapter 8: Case Studies: This section to capture the case study done on real hardware on below topics. This real-life example will help users to think through more innovation while designing their own open source boot firmware · Reduce Firmware boot time: To demonstrate the boot optimization done on a real hardware platform using open source firmware development model. · Supporting new CPU architecture migration with UEFI: Demonstrate an efficient evaluation board hardware design based on ARM SoC in a vision to reduce the firmware boundary. · Reducing the system firmware boundary with LinuxBoot: Highlighting the value of LinuxBoot in the future system firmware design, not only helps to shrink the firmware space but also brings the value of the boot kernel into firmware to do more powerful operation with ease. · Adopting Hybrid Firmware Development Model: Real life example from product development journey based on latest IA chipset platform to demonstrate hybrid firmware development model combining open source bootloader, payload solutions and closed source binary blobs. Apart from this Appendix sections for source code references based on Chapter 8 Case Study. Glossary and Index as applicable for connecting back the main topics.
£46.74
APress DevOps in Python
Book SynopsisTake advantage of Python to automate complex systems with readable code. This new edition will help you move from operations/system administration into easy-to-learn coding.You''ll start by writing command-line scripts and automating simple DevOps-style tasks followed by creating reliable and fast unit tests designed to avoid incidents caused by buggy automation. You''ll then move on to more advanced cases, like using Jupyter as an auditable remote-control panel and writing Ansible and Salt extensions.The updated information in this book covers best practices for deploying and updating Python applications. This includes Docker, modern Python packaging, and internal Python package repositories. You''ll also see how to use the AWS API, and the Kubernetes API, and how to automate Docker container image building and running. Finally, you''ll work with Terraform from Python to allow more flexible templating and customTable of ContentsChapter 1 (Installing Python) Different ways to install Python: • Compiling from source • OS packages • pyenv Chapter 2 (Packaging) (31 pages – 11 new pages) How pip works and how to build packages. The following sections need to change Section about pip (adds 4 pages) • Add explanation about how the resolver works • Explain pip-compile Poetry and pipenv (changes 2 pages, adds 2 pages) • Needs to be separated into two sections• Poetry section updated to reflect changes in Poetry • Pipenv section updated to reflect changes in Pipenv 4setup.py and wheel (rewritten, changes 1 page, adds 2 pages) • python -m build and setup.cfg • Add details about binary wheels and manylinux • Show a complete example Chapter 3: Interactive usage How to use the interactive interpreter, other text-mode interactive consoles, and Jupyter. Chapter 4: OS Automation (16 pages – 4 new pages) Automating OS-related things like files and processes. Section about files (2 pages added)• Cover using struct to parse binary data • Cover pathlib New section: low-level networking (2 pages) Cover socket, socket options, and how it relates to TCP networking. 5 Chapter 5: Testing (30 pages – 10 new pages) Writing unit tests for DevOps code. Section about testing files (4 pages added) • Improve performance of file testing using tmpfs and preloading libraries • Add information about temporary directory context manager Section about testing networking (4 pages added) • Show how to test httpx with the WSGI support • Show how to test low-level socket networking with DI Section about testing processes (2 pages changed) • Mention run and Popen • Show how to write tests with DI on run and Popen 6 Chapter 6: Text manipulation How to work with text: searching, modifiying, formatting, etc. Chapter 7: Requests -> httpx (rewritten – 10 new pages) • Focus on httpx instead • Cover async usage Chapter 8: Cryptography Symmetric and asymmetric encryption and digital signatures, and how to use them in DevOps code. Chapter 9: Paramiko Using paramiko to automate SSH use. Chapter 10: Salt Stack Using salt stack and writing new modules. Chapter 11: Ansible Using ansible and writing new modules. Chapter 12: Docker (5 new pages) • Clean up examples – they are hard to read • Show complete example of layering, not just talk in theory • Show complete example of running, not just talk in theory • Add section about how to build containers for Python applications Chapter 13: AWS Automating AWS using the boto3 library. New: Chapter 14: Kubernetes (10 pages) Chapter goal: Learn how to automate k8s with Python and how to run Python applications on k8s • Packaging Python applications for kubernetes – Using secrets – Thinking in Pods • Automating k8s from Python using the REST API • Writing k8s operators with Python New: Chapter 15: Terraform (5 pages) • Using the Terraform Python CDK • Generating Terraform JSON from Python
£46.74
APress Beginning Java Objects
Book SynopsisAs a programming language, Java's object-oriented nature is key to creating powerful, reusable code and applications that are easy to maintain and extend.That being said, many people learn Java syntax without truly understanding its object-oriented roots, setting them up to fail to harness all of the power of Java. This book is your key to learning both!This new third edition of Beginning Java Objects: From Concepts to Codediscusses Java syntax, object principles, and how to properly structure the requirements of an application around an object architecture. It is unique in that it uses a single case study of a Student Registration System throughout the book, carrying the reader from object concepts, to object modeling, to building actual code for a full-blown application. A new chapter covers a technology-neutral discussion of the principles of building a three-tier architecture using Java, introducing the notion of model layer presentation layer data layer separation. Coding eTable of ContentsPart I: The ABCs of ObjectsChapter 1: Abstraction and ModelingChapter Goal: Introducing the mechanism of abstraction as a natural way for humans to interpret the world, and how this relates to object modeling in the software realm.Subtopics:• Simplification through abstraction• Generalization through abstraction• Reusing abstractionsChapter 2: Some Java BasicsChapter Goal: Provide the reader with an immediate introduction to Java language fundamentals so that object concepts can be illustrated using Java code examples as soon as we begin introducing them in chapter 3.Subtopics:• Strengths of the Java language• Primitive Java types• The anatomy of a Java program• Mechanics of compiling and running a Java program• Java’s block structured nature• Elements of Java programming styleChapter 3: Objects and ClassesChapter Goal: Explain the basic building blocks of an OO application – classes as mini-abstractions aka templates for creating object instances.Subtopics:• Advantages of an OO approach to software development over a non-OO approach• How classes are used to specify a type of object’s data • How objects are created (instantiated) at run time• The use of reference variables to refer to objects symbolicallyChapter 4: Object InteractionsChapter Goal: Explain how object behaviors are defined as methods within classes, and how objects collaborate by invoking one another’s methods to accomplish the overall mission of the system.Subtopics:• How methods are used to specify an object’s behaviors• The anatomy of a Java method• How objects send messages to one another to accomplish collaboration• How classes use public and private visibility to publicize what services a type of object can perform while hiding both the logic for how the service is accomplished and the internal data structure needed to support the service• The use of constructors to instantiate the state of an object when first instantiated Chapter 5: Relationships Between ObjectsChapter Goal: Explains the notion of a structural relationship between two objects, wherein the data structures of the classes to which they belong are designed to maintain lasting relationships between objects once instantiated. The two main approaches to accomplishing this are (a) encoding associations between two classes of objects as reference variables within their data structures, (b) having one class inherit and extend the capabilities of another.Subtopics:• Types of structural relationships maintained by objects: associations, aggregations, inheritance• The inheritance mechanism, and guidelines for what we can and cannot achieve when deriving new classes via inheritance• Revisiting constructors regarding some complexities that must be understood when inheritance is involvedChapter 6: Collections of ObjectsChapter Goal: Introduce a special category of objects (classes) known as collections, to be used for efficiently managing an indefinite number of objects of the same type.Subtopics:• The properties of three generic collection types: ordered lists, sets, and dictionaries• The specifics of several different commonly-used built-in Java collection types• The concept of Java packages as logical groupings of classes, and the use of import statements• The power of collections in modeling very sophisticated real-world scenarios• Design techniques for programmer-defined collection typesChapter 7: Some Final Object ConceptsChapter Goal: Covers several key but often misunderstood advanced language features that are essential to taking full advantage of Java’s object-oriented nature: polymorphism (how a single line of code representing a method invocation can exhibit a variety of different behaviors at run time); abstract methods, classes, and interfaces; and static features (data/methods belonging to an entire class of objects versus objects individually).Subtopics:• The runtime mechanism of polymorphism• Abstract classes and methods• The incredible power of interfaces in streamlining Java code• Static featuresPart II: Object Modeling 101Chapter 8: The Object Modeling Process in a NutshellChapter Goal: A high-level overview of how to approach the requirements of a system so as to structure it from the ground up to take advantage of all of the strengths of an OO language like Java.Subtopics:• The goals of and philosophy begin object modeling• Flexibility in terms of selecting or devising a modeling methodology• The pros and cons of using object modeling software toolsChapter 9: Formalizing Requirements Through Use CasesChapter Goal: Explains the importance of developing use cases when establishing requirements for an application, to ensure that (a) all categories of intended user are identified, (b) all of the services that each user category will expect the system to provide, and (c) what their expectations are of the desired outcome for each of the service types.Subtopics:• Introduction to use cases• The notion of actors • Involving users in defining use cases• Approaches to documenting/diagramming use casesChapter 10: Modeling the Data Aspects of the SystemChapter Goal: Illustrate the process by which the types of classes, their respective data structures, and their interrelationships can be discovered and rendered graphically using UML notation.Subtopics:• Technique for identifying the appropriate classes and their respective attributes• Technique for determining the structural relationships that exist among these classes• How to graphically portray this information in proper UML notationChapter 11: Modeling the Behavioral Aspects of the SystemChapter Goal: Revisiting the evolving object model of chapter 10 to reflect the services/behaviors/methods required of each identified class to ensure that the overall requirements of the application will be satisfied.Subtopics:• How the behaviors (method execution) of an object affects its state (data)• Developing scenarios for how use cases (defined in chapter 9) might play out• Creating sequence diagrams based on scenarios• Using sequence diagrams to determine methodsChapter 12: Wrapping Up Our Modeling EffortsChapter Goal: This chapter focuses on ways to test a model before coding begins, as well as Subtopics:• Testing the model• Revisiting requirements and adapting the model as necessary• Reusing models in the form of design patterns Part III: Translating an Object Blueprint into Java CodeChapter 13: A Few More Key Java Details (retitled from 2nd edition)Chapter Goal: Covering a variety of important Java topics that were not essential to illustrating the object concepts of Part I per se, but which are nonetheless key to a rounding out a beginning level Java programmer’s facility with the language. I plan on eliminating a few sections from this chapter if I determine that any of the topics covered are *not* essential to understanding the Student Registration System (SRS) code of chapter 14.Subtopics:• Java application architecture, revisited• Nature and purpose of Java Archive (JAR) files• Java documentation comments• Object nature of Strings• Java enums (enumerations)• Object self-referencing via the “this” keyword• The nature of run-time exceptions, how to handle them, and how to define and use custom exception types• Important features of the built-in Object class• Techniques for command line input• Remove: discussion of inner classes (no longer needed since we are eliminating the chapter on the Swing API)• Remove: narrative regarding Java version 5 language enhancementsChapter 14: Transforming Your Model into Java CodeChapter Goal: In this chapter, I pull together all that we’ve covered in Part I of the book to render the UML model created in Part II of the book into a complete, fully functioning model layer for the Student Registration System. This code can be run from the command line, and will be downloadable from the Apress website.Subtopics: How to code …• … associations of varying multiplicities (one-to-one, one-to-many, many-to-many)• … inheritance relationships• … association classes• … reflexive associations• … abstract classes• … metadata• … static attributes and methodsChapter 15: Three Tier Architectures: Considerations for Adding a User Interface and Data Layer to Your ApplicationChapter Goal: Conceptually introduce the notion of model – presentation layer – data layer separation, using pseudocode examples to illustrate how these layers interact with the model layer code of chapter 14.Subtopics:• Overview of the power of model – presentation layer – data layer separation • Concept of operations for the Student Registration System user interface• Detailed walk-through of pseudocode illustrating (a) how the data layer is used to validate and persist model layer logic, (b) how the user interface/presentation layer is used to receive data and operational requests from a user
£59.49
APress Pro Bash
Book SynopsisLearn how to effectively utilize the Bash shell in your programming. This refreshed and expanded third edition has been updated to Bash 5.2, and many scripts have been rewritten to make them more idiomatically Bash, taking better advantage of features specific to Bash. It is easy to read, understand, and will teach you how to get to grips with Bash programming without drowning you in pages and pages of syntax. Using this book you will be able to use the shell efficiently, make scripts run faster using expansion and external commands, and understand how to overcome many common mistakes that cause scripts to fail. This book is perfect for all beginning Linux and Unix system administrators who want to be in full control of their systems, and really get to grips with Bash programming. The Bash shell is a complete programming language, not merely a glue to combine external Linux commands. By taking full advantage of Shell internals, Shell programs can perform as snappily as utilities wrTable of Contents1. Hello, World: Your First Shell Program.- 2. Input, Output and Throughput.- 3. Looping and Branching.- 4. Command-Line parsing and Expansion.- 5. Parameters and Variables.- 6. Shell Functions.- 7. String Manipulation.- 8. File Operations and Commands.- 9. Reserved Words and Built-in Commands.- 10. Writing Bug-Free Scripts and Debugging the Rest.- 11. Programming for the Command Line.- 12. Runtime Configuration.- 13. Data Processing.-14. Scripting the Screen.- 15. Entry Level Programming.
£42.49
APress MLOps Lifecycle Toolkit
Book SynopsisThis book is aimed at practitioners of data science, with consideration for bespoke problems, standards, and tech stacks between industries. It will guide you through the fundamentals of technical decision making, including planning, building, optimizing, packaging, and deploying end-to-end, reliable, and robust stochastic workflows using the language of data science. MLOps Lifecycle Toolkitwalks you through the principles of software engineering, assuming no prior experience. It addresses the perennial why of MLOps early, along with insight into the unique challenges of engineering stochastic systems. Next, you'll discover resources to learn software craftsmanship, data-driven testing frameworks, and computer science. Additionally, you will see how to transition from Jupyter notebooks to code editors, and leverage infrastructure and cloud services to take control of the entire machine learning lifecycle. You'll gain insight into the technical and architectural decisions you're likelTable of ContentsChapter 1: Introduction to Machine Learning Engineering.- Chapter 2: Developing Stochastic Systems.- Chapter 3: Tools for Data Science Developers.- Chapter 4: Infrastructure for MLOps.- Chapter 5, Building Training Pipelines.- Chapter 6: Building Inference Pipelines.- Chapter 7: Deploying Stochastic Systems.- Chapter 8: Data Ethics.- Chapter 9: Case Studies By Industry.
£38.24
APress Game Programming with Unity and C
Book SynopsisLearn the essentials of the Unity game engine, the C# programming language, and the art of object-oriented programming. This book is aimed at beginners with no knowledge or experience in game development or programming.Packed with examples, this Second Edition is up-to-date with the latest Unity standards and features as of 2023, and includes manyadjustments to improve your experience. Starting with an introduction to Unity, you will learn the essentials of the engine: navigating the various windows, managing the objects that make up your game, and understanding the concepts that are fundamental to the engine. After that, you will gain a solid foundation in the concepts of object-oriented programming and the syntax of the C# language. Then the fun really begins, as you get hands-on experience building three playable example projects that drill you on the concepts you've learned until they stick.Guided at each step by author Casey Hardman, you will outline and implement bare-bones, simpTable of Contents
£46.74
APress Productizing Quantum Computing
Book SynopsisLeverage the benefits of quantum computing by identifying business use cases and understanding how to design and develop quantum products and services. This book will guide you to effectively productize quantum computing, including best practices, recommendations, and proven methods to help you navigate the challenges and risks of this emerging technology. The book starts with a thorough introduction to quantum computing, followed by its various algorithms and applications. You will then learn how to build a strong foundation in classical computing, seek practical experience, and stay up-to-date with the latest developments in the field. Moving forward, you will gain an understanding of how to conduct market research to identify business opportunities for quantum computing products and services. The authors then guide you through the process of developing a quantum roadmap and integrating quantum computing into an existing system. This is concluded by a demonstration of howto manage Table of ContentsChapter 1: Introduction to Quantum Computing.- Chapter 2: Quantum Algorithms and Applications.- Chapter 3: Continue Learning About Quantum Computing.- Chapter 4: Assessing the Market and Competitive Landscape.- Chapter 5: Designing Quantum Products and Services.- Chapter 6: Developing a Quantum Roadmap.- Chapter 7:Integrating Quantum Computing into an Existing System.- Chapter 8:Releasing Quantum Computing-based Products.- Chapter 9: Challenges and Risk in Productizing Quantum Computing.
£38.24
O'Reilly Media Puppet Best Practices
Book SynopsisIf you maintain or plan to build Puppet infrastructure, this practical guide will take you a critical step further with best practices for managing the task successfully. Authors Chris Barbour and Jo Rhett present best-in-class design patterns for deploying Puppet environments and discuss the impact of each.
£29.99
O'Reilly Media The CustomerDriven Playbook
Book SynopsisThe Customer-Driven Playbook details a complete end-to-end process to help large teams and organizations learn from their customers, conceptualize new ideas, and build products their customers will love.
£29.99
O'Reilly Media 97 Things Every Scrum Practitioner Should Know
Book SynopsisImprove your understanding of Scrum through the proven experience and collected wisdom of experts around the world. Based on real-life experiences, the 97 essays in this unique book provide a wealth of knowledge and expertise from established practitioners who have dealt with specific problems and challenges with Scrum.
£29.99
O'Reilly Media Functional Programming with C
Book SynopsisWith concise, easy-to-read code that supports asynchronous, concurrent processing, aspects of functional programming have begun to appear in several traditionally object-oriented languages such as C# and Java. This practical book shows C# programmers how to use functional programming features without having to navigate an entirely new language.
£47.99
J Ross Publishing Mastering Software Quality Assurance: Best
Book SynopsisThis comprehensive reference on software development quality assurance addresses all four dimensions of quality: specifications, design, construction and conformance. It focuses on quality from both the micro and macro viewpoint. From a micro view, it details the aspect of building-in quality at the component level to help ensure that the overall deliverable has ingrained quality. From a macro view, it addresses the organizational-level activities that provide an environment conducive to fostering quality in the deliverables as well as developing a culture focused on quality in the organization. Mastering Software Quality Assurance also explores a process driven approach to quality and provides the information and guidance needed for implementing a process quality model in your organization. It includes best practices and valuable tools and techniques for software developers.Trade Review"Finally, a solid book dedicated to quality within software development. It should be mandatory reading for any software project manager. Every aspect of quality assurance and quality control is covered with topics dedicated to helping an organization succeed in its quality program implementation. The descriptions and benefits of the most valuable activities of software development are detailed and precise. Mastering Software Quality Assurance is a desk reference that experts and amateurs will refer to everyday." -Paul Laberge, Continuous Improvement Analyst, Wolters Kluwer; "Outstanding! Read this book carefully since a few minutes of consideration may save you or your company millions of dollars and years of struggle in achieving business value from your software development initiatives." -Robert C. Anderson, Director, Process Development & Quality Assurance, Computer Aid, Inc.Table of ContentsChapter 1: Quality Assurance BasicsConnotations of the Word "Quality" What Is Quality? SpecificationsDefinition of Quality from the Standpoint of the ProviderQuality and ReliabilityEvolution of Concepts of Quality Quality GurusTotal Quality ManagementAre We Giving Adequate Importance to Quality in Organizations? Organizational Goals and Quality GoalsIs a Quality Department in Software Development Organizations Really Needed? The Present Scenario in Software Development OrganizationsChapter 2: Four Dimensions of QualityBackgroundEnsuring Quality in SpecificationsEnsuring Quality in DesignEnsuring Quality in Development (Software Construction) Ensuring Conformance Quality Chapter 3: Software Product QualityFunctionality StandpointWhite Box StandpointPresence of Defects in the ProductProgram QualityMeasurement of Product QualityChapter 4: Organizational Environments that Foster a Quality CultureNecessity for an Independent Quality DepartmentThe Role of a Quality DepartmentThe Position of the Quality Assurance Department in the Organization Organization of a Quality Assurance DepartmentOrganization and Staffing of a Quality Assurance DepartmentA Well-defined and Institutionalized Software Development Process Explicit System of Rewards and Recognition for Achieving Excellence in QualityCommitment and Involvement of Senior Management to Fostering a Culture of Quality in the OrganizationFinal WordsChapter 5: Software VerificationWalkthroughs (Peer Reviews) InspectionsAuditsVerification ProcessImplementation of Verification Activities in ProjectsChapter 6: ValidationValidation of Software DesignsValidating the Product SpecificationsValidating the Software ProductTesting Different Types of Software ProductsTesting BasicsApproaches to TestingTest Case DesignTest EnvironmentTesting ScenariosProduct TestingBest Practices in TestingAutomation of Testing and Use of Testing ToolsFinal Words about Software TestingChapter 7: Software Product ReliabilitySoftware DisastersSoftware ReliabilityCause of Software FailuresPrediction of Software ReliabilitySoftware Reliability ImprovementChapter 8: Process QualityProcessProcess QualityProcess DefinitionAligning the Process with a Process ModelProcess ImprovementProcess StabilizationSoftware Development ProcessComponents of a ProcessProcess CertificationChapter 9: New Paradigm for Software QualityThe Fallacy of CertificationsCriticisms of Maturity ModelsA New Paradigm for Software Quality AssuranceFinal WordsAppendix A: Audit ProcessAppendix B: Defect Resolution MethodologyAppendix C: Guidelines for Error Guessing Appendix D: Guidelines for Graphical User Interface Quality Conformance Appendix E: Guidelines for Stress TestingAppendix F: Guidelines for Negative TestingAppendix G: Measurement of QualityAppendix H: Quality Assurance of DatabasesAppendix I: Coding Guidelines Appendix J: Sample Review ProcessAppendix K: Software Quality Assurance PlanAppendix L: AbbreviationsIndex
£46.80
Edward Elgar Publishing Ltd Software Ecosystems: Analyzing and Managing
Book SynopsisThis book describes the state-of-the-art of software ecosystems. It constitutes a fundamental step towards an empirically based, nuanced understanding of the implications for management, governance, and control of software ecosystems.This is the first book of its kind dedicated to this emerging field and offers guidelines on how to analyze software ecosystems; methods for managing and growing; methods on transitioning from a closed software organization to an open one; and instruments for dealing with open source, licensing issues, product management and app stores. It is unique in bringing together industry experiences, academic views and tackling challenges such as the definition of fundamental concepts of software ecosystems, describing those forces that influence its development and lifecycles, and the provision of methods for the governance of software ecosystems.This book is an essential starting point for software industry researchers, product managers, and entrepreneurs.Contributors: T. Aaltonen, T.A. Alspaugh, C. Alves, M. Anvaari, H.U. Asuncion, O. Barbosa, S. Biffl, S. Brinkkemper, M.A. Cusumano, E. den Hartigh, D. Dhungana, R.P. dos Santos, A. Finkelstein, M. Goeminne, I. Groher, I. Hammouda, S. Jansen, A. Jiménez Salas, J. Kabbedijk, M. Kauppinen, T. Kilamo, Y.-R. Li, L. Luinenburg, T. Mens, T. Mikkonen, K.M. Popp, W. Scacchi, E. Schludermann, J. Souer, M. Tol, J. van Angeren, G. van Capelleveen, M. Viljainen, W. Visscher, C. WernerTable of ContentsContents: Foreword David Messerschmitt and Clemens Szyperski Introduction Slinger Jansen PART I: INTRODUCTION TO SOFTWARE ECOSYSTEMS 1. Defining Software Ecosystems: A Survey of Software Platforms and Business Network Governance Slinger Jansen and Michael A. Cusumano 2. Business Network Management as a Survival Strategy Slinger Jansen, Sjaak Brinkkemper and Anthony Finkelstein 3. Guiding Principles of Natural Ecosystems and their Applicability to Software Ecosystems Deepak Dhungana, Iris Groher, Elisabeth Schludermann and Stefan Biffl 4. A Systematic Mapping Study on Software Ecosystems from a Three-dimensional Perspective Olavo Barbosa, Rodrigo Pereira dos Santos, Carina Alves, Claudia Werner and Slinger Jansen PART II: BUSINESS NETWORK MANAGEMENT 5. Managing Software Ecosystems through Partnering Joey van Angeren, Jaap Kabbedijk, Karl Michael Popp and Slinger Jansen 6. The Challenge of Heterogeneously-Licensed Systems in Open Architecture Software Ecosystems Thomas A. Alspaugh, Hazeline U. Asuncion and Walt Scacchi 7. Framing Management Practices for Keystones in Platform Ecosystems Martti Viljainen and Marjo Kauppinen 8. Architectural Openness: Comparing Five Mobile Platform Architectures Mohsen Anvaari and Slinger Jansen 9. The Open Software Enterprise Model: How Open is My Software Business? Slinger Jansen, Sjaak Brinkkemper, Jurriaan Souer and Lutzen Luinenburg 10. Quality Review and Approval Methods for Extensions in Software Ecosystems Slinger Jansen and Guido van Capelleveen PART III: VISUALIZATION AND ANALYSIS OF SOFTWARE ECOSYSTEMS 11. Measuring the Health of a Business Ecosystem Erik den Hartigh, Wouter Visscher, Michiel Tol and Adolfo Jiménez Salas 12. Analyzing Ecosystems for Open Source Software Developer Communities Mathieu Goeminne and Tom Mens 13. Open Source Ecosystems: A Tale of Two Cases Terhi Kilamo, Imed Hammouda, Tommi Mikkonen and Timo Aaltonen 14. The Technological Roadmap of Cisco’s Business Ecosystem Yan-Ru Li 15. Unraveling Ruby Ecosystem Dynamics: A Quantitative Network Analysis Jaap Kabbedijk and Slinger Jansen Index
£121.00
Edward Elgar Publishing Ltd The Software Industry in Emerging Markets
Book SynopsisThis book aims to promote an understanding of the origins and dynamics of the software industry in a number of key emerging markets - Brazil, China, India and Israel, and to establish what experiences, if any, are potentially replicable in other prevailing markets. In-depth interviews with leading players in the industry are combined with other new data to provide a comparative study of the dynamics of the sector in emerging markets, to emphasise the public policy implications of these developments, and place them in a wider international context. The last 25 years have seen an explosive growth in the software industry, which is still overwhelmingly dominated by firms from North America and Europe. The authors argue that a number of companies from emerging markets have made significant headway and have even consolidated their positions on account of major cost advantages. They go on to explain the factors behind these developments, and conclude that the software industry, through its ability to project good corporate governance, its lack of hierarchy and widespread use of motivating working practices and compensation schemes, has proved a powerful example to other sectors in these emerging market economies.This book will be of immense interest to both academics and practitioners with an interest in development economics or technology.Trade Review'The software industry represents a unique example of a truly global industry, growing rapidly in both developed and developing countries. This important book provides the first serious study of the growth of the industry in emerging markets, with an excellent discussion of the key cases including India, China and Brazil. Simon Commander is to be congratulated producing such a timely and policy relevant book.' -- Saul Estrin, London Business School, UKTable of ContentsContents: 1. What Explains the Growth of a Software Industry in Some Emerging Markets? 2. India 3. China 4. Israel 5. Brazil Bibliography Index
£100.00
ISTE Ltd and John Wiley & Sons Inc Fundamentals of Software Testing
Book SynopsisThe testing market is growing at a fast pace and ISTQB certifications are being increasingly requested, with more than 180,000 persons currently certified throughout the world. The ISTQB Foundations level syllabus was updated in 2011, and this book provides detailed course study material including a glossary and sample questions to help adequately prepare for the certification exam.The fundamental aspects of testing are approached, as is testing in the lifecycles from Waterfall to Agile and iterative lifecycles. Static testing, such as reviews and static analysis, and their benefits are examined as well as techniques such as Equivalence Partitioning, Boundary Value Analysis, Decision Table Testing, State Transitions and use cases, along with selected white box testing techniques. Test management, test progress monitoring, risk analysis and incident management are covered, as are the methods for successfully introducing tools in an organization. Contents 1. Fundamentals of Testing.2. Testing Throughout the Software Life Cycle.3. Static Techniques (FL 3.0).4. Test Design Techniques (FL 4.0).5. Test Management (FL 5.0).6. Tools support for Testing (FL 6.0).7. Mock Exam.8. Templates and Models.9. Answers to the Questions.Table of ContentsPreface xi Glossary xv Chapter 1. Fundamentals of Testing 1 1.1. Why is testing necessary? (FL 1.1) 1 1.2. What is testing? (FL 1.2) 7 1.3. Paradoxes and main principles (FL 1.3) 11 1.4. Fundamental test process (FL 1.4) 14 1.5. Psychology of testing (FL 1.5) 22 1.6. Testers and code of ethics (FL 1.6) 27 1.7. Synopsis of this chapter 34 1.8. Sample exam questions 35 Chapter 2. Testing Throughout the Software Life Cycle 43 2.1. Software development models (FL 2.1) 43 2.2. Test levels (FL 2.2) 58 2.3. Types of tests (FL 2.3) 66 2.4. Test and maintenance (FL 2.4) 74 2.5. Oracles 81 2.6. Specific cases 83 2.7. Synopsis of this chapter 84 2.8. Sample exam questions 85 Chapter 3. Static Techniques (FL 3.0) 91 3.1. Static techniques and the test process (FL 3.1) 91 3.2. Review process (FL 3.2) 94 3.3. Static analysis by tools (FL 3.3)119 3.4. Added value of static activities 130 3.5. Synopsis of this chapter 131 3.6. Sample exam questions 131 Chapter 4. Test Design Techniques (FL 4.0) 137 4.1. The test development process (FL 4.1) 139 4.2. Categories of test design techniques (FL 4.2)143 4.3. Black-box techniques (FL 4.3) 147 4.4. Structure-based techniques (FL 4.4) 172 4.5. Experience-based techniques (FL 4.5) 187 4.6. Choosing test techniques (FL 4.6) 193 4.7. Synopsis of this chapter 194 4.8. Sample exam questions 195 Chapter 5. Test Management (FL 5.0) 209 5.1. Test organization (FL 5.1) 209 5.2. Test planning and estimation (FL 5.2) 215 5.3. Test progress monitoring and control (FL 5.3) 239 5.4. Reporting 242 5.5. Transverse processes and activities 246 5.6. Risks management (FL 5.5) 248 5.7. Defect management (FL 5.6) 257 5.8. Synopsis of this chapter 264 5.9. Sample exam questions 265 Chapter 6. Tools support for Testing (FL 6.0) 277 6.1. Types of test tools (FL 6.1) 278 6.2. Assumptions and limitations of test tools (FL 6.2) 283 6.3. Selecting and introducing tools in an organization (FL 6.3) 289 6.4. Synopsis of this chapter 295 6.5. Sample exam questions 296 Chapter 7. Mock Exam 301 Chapter 8. Templates and Models 315 8.1. Master test plan 315 8.2. Test plan 317 8.3. Test design document 319 8.4. Test case 320 8.5. Test procedure 321 8.6. Test log 322 8.7. Defect report 322 8.8. Test report 324 Chapter 9. Answers to the Questions 327 9.1. Answers to the end of chapter questions 327 9.2. Correct answers to the sample paper questions 329 Bibliography 331 Index 335
£128.66
ISTE Ltd and John Wiley & Sons Inc Scheduling of Large-scale Virtualized
Book SynopsisSystem virtualization has become increasingly common in distributed systems because of its functionality and convenience for the owners and users of these infrastructures. In Scheduling of Large-scale Virtualized Infrastructures, author Flavien Quesnel examines the management of large-scale virtual infrastructures with an emphasis on scheduling up to 80,000 virtual machines on 8,000 nodes. The text fills a need for updated software managing to meet the increasing size of virtual infrastructures. Virtual machine managers and virtual operators will appreciate this guide to improvement in cooperative software management.Table of ContentsList of Abbreviations xi Introduction xiii Part 1 Management of Distributed Infrastructures 1 Chapter 1 Distributed Infrastructures Before the Rise of Virtualization 3 Chapter 2 Contribution of Virtualization 13 Chapter 3 Virtual Infrastructure Managers Used in Production 27 Part 2 Toward a Cooperative and Decentralized Framework to Manage Virtual Infrastructures 49 Chapter 4 Comparative Study Between Virtual Infrastructure Managers and Distributed Operating Systems 51 Chapter 5 Dynamic Scheduling of Virtual Machines 67 Part 3 DVMS, A Cooperative and Decentralized Framework to Dynamically Schedule Virtual Machines 83 Chapter 6 DVMS: A Proposal to Schedule Virtual Machines in a Cooperative and Reactive Way 85 Chapter 7 Experimental Protocol and Testing Environment 101 Chapter 8 Experimental Results and Validation of DVMS 113 Chapter 9 Perspectives Around DVMS 133 Conclusion 141 Bibliography 145 List of Tables 157 List of Figures 159 Index 163
£125.06
ISTE Ltd and John Wiley & Sons Inc 3D Discrete Element Workbench for Highly Dynamic
Book SynopsisComplex behavior models (plasticity, cracks, visco elascticity) face some theoretical difficulties for the determination of the behavior law at the continuous scale. When homogenization fails to give the right behavior law, a solution is to simulate the material at a meso scale in order to simulate directly a set of discrete properties that are responsible of the macroscopic behavior. The discrete element model has been developed for granular material. The proposed set shows how this method is capable to solve the problem of complex behavior that are linked to discrete meso scale effects. The first book solves the local problem, the second one presents a coupling approach to link the structural effects to the local ones, this third book presents the software workbench that includes all the theoretical developments.Table of ContentsList of Figures ix List of Tables xiii Introduction xv Chapter 1 Object Oriented Approach and UML 1 1.1 Object Oriented (OO) paradigms 1 1.2 OO analysis and design 4 1.2.1 Association 4 1.2.2 Association class 5 1.2.3 Inheritance 5 1.2.4 Aggregation 5 1.2.5 Composition 6 1.2.6 Genericity with the template classes 7 1.2.7 Encapsulation and class interface 8 1.3 UML diagrams 9 1.3.1 Class diagram 10 1.3.2 Sequence diagram 12 Chapter 2 Operating Architecture 15 2.1 The GranOO package 16 2.1.1 The Docs directory 18 2.1.2 The Examples directory 19 2.1.3 The Libs directory 19 2.1.4 The Licenses directory 21 2.1.5 The Local directory 22 2.1.6 The Tests directory 22 2.1.7 The Tools directory 22 2.2 Compilation process of the executable file 23 2.3 Launching a GranOO executable 25 2.4 The input files 26 2.4.1 Quick introduction to XML: the tags 26 2.4.2 Input file structure 27 2.4.3 The header and footer sections 28 2.4.4 The plugin sections 28 2.4.5 Input file validation process 30 2.5 The magic world of the plugins 34 2.5.1 The standard plugins versus user plugins 34 2.5.2 Writing a good plugin 34 2.5.3 The plugin class hierarchy 35 2.5.4 The plugin object factory 36 2.5.5 Interaction with the input file 37 2.5.6 Calling a plugin from another plugin 42 2.6 The output files 44 2.6.1 The output directory 44 2.6.2 The GDD files 45 2.6.3 The sensor file 46 2.6.4 Conclusion 52 Chapter 3 Focus on Libraries 53 3.1 The geometrical library 54 3.1.1 About performance 54 3.1.2 All you need is frame 56 3.1.3 The Vector class 58 3.1.4 The Point class 60 3.1.5 The quaternion class 61 3.1.6 The matrix class 63 3.1.7 The shape classes 64 3.1.8 The elastic pendulum example 65 3.1.9 Conclusion 73 3.2 The DEM library 73 3.2.1 Focus on the Set Of class environment 74 3.2.2 The discrete element classes 82 3.2.3 The physical property class group 84 3.2.4 The interaction class group 87 3.2.5 The discrete shape classes 91 3.2.6 Class serialization using boost library 93 3.2.7 On-the-fly contact detection and treatment 97 3.3 The libMySandbox library 99 3.4 Conclusion 99 Chapter 4 Tools and Practical Examples of Use of GranOO 101 4.1 Tool overview 101 4.1.1 gddViewer program: a tool to visualize GDD files 101 4.1.2 Postprocessing sensors data with plot-sensor-data.py 104 4.1.3 Building and running parametric studies 107 4.1.4 Building gdd file with cooker 111 4.1.5 Cohesive beam calibration 114 4.1.6 Managing project 118 4.2 Granular simulation: the bluewave example 119 4.3 The continuous discrete element model 124 4.3.1 Silica glass calibration 124 4.3.2 The failure tensile test 130 4.3.3 The failure torsion problem 141 4.3.4 Loose abrasive grinding of silica glass 143 4.4 Conclusion 147 Conclusion 149 Appendices 153 Appendix 1 Using Quaternions 155 Appendix 2 Pendulum Problem Complete Code 169 Bibliography 175 Index 179
£125.06
ISTE Ltd and John Wiley & Sons Inc Enterprise Interoperability: Interoperability for
Book SynopsisEnterprises and organizations of any kind embedded in today's economic environment are deeply dependent on their ability to take part in collaborations. Consequently, it is strongly required for them to get actively involved for their own benefit in emerging, potentially opportunistic collaborative enterprise networks. The concept of “interoperability” has been defined by INTEROP-VLab as “The ability of an enterprise system or application to interact with others at a low cost in a flexible approach”. Consequently, interoperability of organizations appears as a major issue to succeed in building on the fly emerging enterprise networks. The International Conference on Interoperability for Enterprise Systems and Applications (I-ESA 2014) was held under the motto “interoperability for agility, resilience and plasticity of collaborations” on March 26-28, 2014 and organized by the Ecole des Mines d’Albi-Carmaux, France on behalf of the European Laboratory for Enterprise Interoperability (INTEROP-VLab). On March 24-25, co-located with the conference eight workshops and one doctoral symposium were held in four tracks complementing the program of the I-ESA’14 conference. The workshops and the doctoral symposium address areas of greatest current activity focusing on active discussions among the leading researchers in the area of Enterprise Interoperability. This part of the conference helps the community to operate effectively, building co-operative and supportive international links as well as providing new knowledge of on-going research to practitioners. The workshops and doctoral symposium aimed at exploiting new issues, challenges and solutions for Enterprise Interoperability (EI) and associated domains of innovation such as Smart Industry, Internet-Of-Things, Factories of the Future, EI Applications and Standardisation. These proceedings include the short papers from the I-ESA’14 workshops and the doctoral symposium. The book is split up into 9 sections, one for each workshop and one for the doctoral symposium. All sections were organized following four tracks: (1) EI and Future Internet / Factory of the Future; (2) EI Application Domains and IT; (3) EI Standards; (4) EI Doctoral Symposium. For each section, a workshop report is provided summarizing the content and the issues discussed during the sessions. The goal of the first track was to offer a discussion opportunity on interoperability issues regarding the use of Internet of Things on manufacturing environment (Workshops 1 and 3) on one hand, and regarding the potential of innovation derived from the use of digital methods, architectures and services such as Smart Networks (Workshops 2 and 4) on the other hand. The second track focused on particular application domains that are looking for innovative solutions to support their strong collaborative needs. Thus, the track developed one workshop on the use of EI solution for Future City-Logistics (Workshop 5) and one on the use of EI solutions for Crisis / Disaster Management (Workshop 6). The third track studied the recent developments in EI standardization. Two workshops were dedicated to this issue. The first one has proposed to focus on the management of standardization (Workshop 8) and the second one has chosen to work on the new knowledge on standardization developments in the manufacturing service domain (Workshop 9). The last track, the doctoral symposium presented research results from selected dissertations. The session discussed EI knowledge issues, notably in terms of gathering through social networks or Internet of Things and of exploitation through innovative decision support systems.Table of ContentsPreface xiM. LAURAS, M. ZELM, B. ARCHIMÈDE, F. BÉNABEN, G. DOUMEINGTS Workshop 1. IoT Interoperability for Manufacturing: Challenges and Experiences 1 ReportD. ROTONDI 2 Smart Industry Services in Times of Internet of Things and Cloud Computing 5M. SERRANO, P. DIMITROPOULOS Designing and Executing Interoperable IoT Manufacturing Systems 15U. KANNENGIESSER, G. WEICHHART Internet of Things Research on Semantic Interoperability to Address Manufacturing Challenges 21P. COUSIN, M. SERRANO, J. SOLDATOS Manufacturing Integration Challenges: Top-Down Interoperability and Bottom-Up Comprehensiveness Towards a Global Information Backbone for Smart Factory 31V.K. NGUYEN An Improved Decision Support System in Factory Shop-Floor through an IoT Approach 37P. PETRALI Leveraging IoT Interoperability for Enhanced Business Process in Smart, Digital and Virtual Factories 43J. SOLA, A. GONZALEZ, O. LAZARO Workshop 2. Future Internet Methods, Architectures and Services for Digital Business Innovation in Manufacturing, Health and Logistics Enterprises 49 Report 50S. GUSMEROLI, G. DOUMEINGTS Future Internet Technologies and Platforms to Support Smart, Digital and Virtual and Business Processes for Manufacturing 53J. SOLA, A. GONZALEZ, O. LAZARO Delivering Care in a Future Internet59 C. THUEMMLER, T. JELL FITMAN Verification and Validation Method: Business Performance Indicators and Technical Indicators 64G. DOUMEINGTS, B. CARSALADE, M. RAVELOMANANTSOA, F. LAMPATHAKI, P. KOKKINAKOS, D. PANOPOULOS Validation and Quality in FI-PPP e-Health Use Case, FI-STAR Project 71P. COUSIN, S. FRICKER, D. FEHLMY, F. LE GALL, M. FIEDLER Workshop 3. ICT Services and Interoperability for Manufacturing 81 Report82K. POPPLEWELL Intelligent Systems Configuration Services for Flexible Dynamic Global Production Networks 85R.I.M. YOUNG, K. POPPLEWELL, F.-W. JAEKEL, B. OTTO, G. BHULLAR Binding Together Heterogeneous Future Internet Services in Manufacturing Workplaces 91M. SESANA, S. GUSMEROLI, R. SANGUINI Holistic, Scalable and Semantic Approach at Interoperable Virtual Factories 95G. PAVLOV, V. MANAFOV, I. PAVLOVA, A. MANAFOV Predictive Industrial Maintenance: A Collaborative Approach 101F. FERREIRA, A. SHAMSUZZOHA, A. AZEVEDO, P. HELO On Optimizing Collaborative Manufacturing Processes in Virtual Factories 108D. SCHULLER, R. HANS, S. ZÖLLER, R. STEINMETZ Modelling Interoperability-Related, Economic and Efficiency Benefits in Dynamic Manufacturing Networks through Cognitive Mapping 115O.I. MARKAKI, S. KOUSSOURIS, P. KOKKINAKOS, D. PANOPOULOS, D. ASKOUNIS Cloud-Based Interoperability for Dynamic Manufacturing Networks 122D. STOCK, A. BILDSTEIN A smart Mediator to Integrate Dynamic Networked Enterprises 128C. DIOP, A. KAMOUN, E. MEZGHANI, M. ZOUARI, E. EXPOSITO Workshop 4. SmartNets – Collaborative Development and Production of Knowledge-Intensive Products and Services 135 Report 136A. LAU The Industrial Model of Smart Networks for SME Collaboration: Implementation and Success Stories 139A. LAU, M. TILEBEIN, T. FISCHER Towards a Conceptual Model of the Resource Base for Hyperlinking in Innovation Networks 146S.-V. REHM, S. GROSS Enhanced Incubators: Fostering Collaboration, Growth and Innovation 152T.J. MARLOWE, V. KIROVA, M. MOHTASHAMI Application of the SmartNets Methodology in Manufacturing Service Ecosystems 158M. HIRSCH, D. OPRESNIK, H. MATHEIS Application of a Domain-Specific Language to Support the User-Oriented Definition of Visualizations in the Context of Collaborative Product Development 164T. RESCHENHOFER, I. MONAHOV, F. MATTHES Workshop 5. Collaboration Issues for City-Logistics 171 Report – G. MACE-RAMETE, J. GONZALEZ-FELIU 172 Simulation-Based Analysis of Urban Freight Transport with Stochastic Features 175N. HERAZO-PADILLA, J.R. MONTOYA-TORRES, S. NIETO-ISAZA, L. RAMIREZ POLO, L. CASTRO, D. RAMÍREZ, C.L. QUINTERO-ARAÚJO Impacts of Urban Logistics on Traffic Flow Dynamics 181N. CHIABAUT, J.-M. SIGAUD, G. MARQUES, J. GONZALEZ-FELIU A Basic Collaborative City Logistics’ Solution: The Urban Consolidation Centre 188L. FAURE, B. MONTREUIL, G. MARQUÈS, P. BURLAT VRP Algorithms for Decision Support Systems to Evaluate Collaborative Urban Freight Transport Systems 196J. GONZALEZ-FELIU, J.-M. SALANOVA GRAU The Last Food Mile Concept as a City Logistics Solution for Perishable Products: The Case of Parma's Food Urban Distribution Center 202E. MORGANTI, J. GONZALEZ-FELIU Supporting Decision for Road Crisis Management through an Agile and Collaborative Information System 208G. MACÉ-RAMÈTE, F. BÉNABEN, M. LAURAS, J. LAMOTHE Workshop 6. Applications of Advanced Technologies in the Context of Disaster Relief and Crisis Management 213 Report – A. CHARLES214 Enhancing the Emergency Response Using an Event-Driven System 216A.-M. BARTHE-DELANOË, F. BÉNABEN, M. LAURAS, S. TRUPTIL Designing Decision Support Systems for Humanitarian Organisations: Requirements and Issues 222K. SAKSRISATHAPORN, A. CHARLES, A. BOURAS From Global to Local Disaster Resilience: The Case of Typhoon Haiyan 228T. COMES, B. VAN DE WALLE Workshop 8. Corporate Standardisation Management 235 Report – K. JAKOBS 236 Lack of Openness as a Potential Failure in Standardisation Management: Lessons Learnt from Setbacks in European Learning Technology Standardisation 238T. HOEL The Individual in Standard Setting: Selection, Training, Motivation in the Public Sector 244G. CANARSLAN A Framework for the Management of Intra-Organizational Security Process Standardization 250C. SILLABER, M. BRUNNER, R. BREU Standards Roles in Hacklin's Strategic Model: Cases in the Space Sector 256K. BENMEZIANE, A. MIONE Standardization Management and Decision-Making: The Case of a Large Swedish Automotive Manufacturer 261A. FOUKAKI Some Factors Influencing Corporate ICT Standardisation Management 267K. JAKOBS Workshop 9. Standardisation Developments for Enterprise Interoperability and the Manufacturing Service Domain 273 Report – M. ZELM, D. CHEN 274 Towards Standardisation in Manufacturing Service Engineering of Ecosystem 277M. ZELM, G. DOUMEINGTS Framework for Manufacturing Servitization: Potentials for standardization 283D. CHEN, S. GUSMEROLI How Can Existing Standards Support Service Life Cycle Management 290M. FREITAG, M. HIRSCH, J. NEUHÜTTLER An Approach to Interoperability Testing to Speed up the Adoption of Standards 295A. BRUTTI, P. DE SABBATA, N. GESSA A Common Vocabulary to Express Standardization Features: Towards the Interoperability of Industrial Data Standards 301A.-F. CUTTING-DECELLE, G.-I. MAGNAN, C. MOUTON, R.I.M. YOUNG An Info*Engine-Based Architecture to Support Interoperability with Windchill System 308M. ANIS DHUIEB, F. BELKADI, F. LAROCHE, A. BERNARD Doctoral Symposium 315 Report – B. ARCHIMÈDE, J. LAMOTHE 316 Build Enterprise Relationship Network to Support Collaborative Business 318L. WANG, S. LIU, L. WU, L. PAN, X. MENG Analysing Internet of Things to Feed Internet of Knowledge: Support Decision-Making in Crisis Context 325A. SIRKO, S. TRUPTIL, A.-M. BARTHE- DELANOË, F. BÉNABEN On the Interoperability in Marine Pollution Disaster Management 331V. NICOLESCU, M. CARAIVAN, G. SOLOMON, V. CIUPINA A Framework for Characterizing Collaborative Networks of Organizations 337A. MONTARNAL, X. FERNANDEZ, J. LAMOTHE, F. GALASSO, C. THIERRY, F. BÉNABEN, M. LAURAS Index of Authors 343
£125.96
John Wiley and Sons Ltd Cleanroom Software Engineering: A Reader
Book SynopsisThe software industry is in transition from craft work to engineering practice, but development, operational and maintenance overheads are still unpredictable and expensive. Cleanroom Software engineering is the first practical development and certification to use statistical quality control to reduce software defects and costs. It has already distinguished itself as a complete software life cycle process with sound foundations in theory and demonstrated effectiveness in practice. The Cleanroom method is one of the few fully articulated life cycle process models in software engineering today and involves: *Incremental development under statistical process review. *Formal methods for specification, design and verification. *Statistical reliability certification. A Reader in Classroom Software Engineering gathers together, for the first time, the most up-to-date material available to form an in-depth treatment of the complete Cleanroom process.Table of ContentsAn overview of cleanroom software engineering. Part 1 Adopting cleanroom software engineering with a phased approach, P. Hauser et al. Part 2 Cleanroom management: current practice in cleanroom management; cleanroom software engineering, H. Mills et al; cleanroom - an alternative software development approach, H. Mills; the cleanroom approach to six-igma software, J. Poore; planning and certifying softsware system reliability, J. Poore et al; cleanroom process model, R. Linger; evolving practice in cleanroom management. Part 3 Cleanroom development: current practice in cleanroom developments; box-structured information systems, H. Mills; stepwise refinement and verification in box-structured systems, H. Mills; correctness verification - alternative to structure testing, M. Dyer and A. Kouchakjian; reuse and cleanroom, E. Karlsson; six-sigma software using cleanroom software engineering techniques, G. Head; evolving practice in cleanroom development. Part 4 Cleanroom certification. Part 5 Certification case studies. Appendices: training and consultation; tools.
£67.05
Morgan & Claypool Publishers The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!
Book SynopsisThe first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors.This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods.This kernel, Essence, is a vocabulary for defining methods and practices. Essence was envisioned and originally created by Ivar Jacobson and his colleagues, developed by Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group (OMG) as a standard in 2014. Essence is a practice-independent framework for thinking and reasoning about the practices we have and the practices we need. Essence establishes a shared and standard understanding of what is at the heart of software development. Essence is agnostic to any particular method, lifecycle independent, programming language independent, concise, scalable, extensible, and formally specified. Essence frees the practices from their method prisons.The first part of the book describes Essence, the essential elements to work with, the essential things to do and the essential competencies you need when developing software. The other three parts describe more and more advanced use cases of Essence. Using real but manageable examples, it covers the fundamentals of Essence and the innovative use of serious games to support software engineering. It also explains how current practices such as user stories, use cases, Scrum, and micro-services can be described using Essence, and illustrates how their activities can be represented using the Essence notions of cards and checklists. The fourth part of the book offers a vision how Essence can be scaled to support large, complex systems engineering.Essence is supported by an ecosystem developed and maintained by a community of experienced people worldwide. From this ecosystem, professors and students can select what they need and create their own way of working, thus learning how to create ONE way of working that matches the particular situation and needs.Trade Review“Essence is an important breakthrough in understanding the meaning of software engineering. It is a key contribution to the development of our discipline and I’m confident that this book will demonstrate the value of Essence to a wider audience. It too is an idea whose time has come.” – Ian Somerville, St. Andrews University, Scotland (author of Software Engineering, 10th Edition, Pearson)“In the foundational course “Software Engineering” I am teaching Essence to 400 students introducing Essence from day one. We will deliver a functioning system over the coming three months’ time developed by small teams. In the past we used a best-selling textbook, but not anymore. Tomorrow’s education will be fundamentally changed starting with the Essence of software engineering.” – Dr. Pekka Abrahamsson, Norwegian University of Science and Technology“What you hold in your hands (or on your computer or tablet if you are so inclined) represents the deep thinking and broad experience of the authors, information you’ll find approachable, understandable, and, most importantly, actionable.” – Grady Booch, IBM Fellow, ACM Fellow, IEEE Fellow, BCS Ada Lovelace Award, and IEEE Computer PioneerTable of Contents Foreword By Ian Sommerville Foreword By Grady Booch Preface Part 1 – The Essence of Software Engineering 1. From Programming to Software Engineering 2. Software Engineering Methods and Practices 3. Essence in a Nutshell 4. Identifying the Key Elements of Software Engineering 5. The Language of Software Engineering 6. The Kernel of Software Engineering 7. Key Principles: Practical, Actionable and Extensible 8. Reflection on Theory Part 2 – Developing Software with Essence 9. Applying Essence in the Small – Playing Serious Games 10. Kick Starting Development Using Essence 11. Developing with Essence 12. The Development Journey 13. Reflection on Kernel Part 3 – Small Scale Development with Practices 14. Kick Starting Development with Practices 15. Running with Scrum 16. Running with User Story Lite 17. Running with Use-Case Lite 18. Running with Microservices 19. Putting the Practices Together: Composition Part 4 – Large Scale Complex Development 20. What it Means to Scale 21. Essentializing Practices 22. Scaling Up to Large and Complex Development 23. Reaching Out to Different Kinds of Development 24. Being Agile with Practices and Methods 25. Reflecting on the SEMAT Journey APPENDIX: A Brief History of Software and Software Engineering Author Biographies
£68.00
Morgan & Claypool Publishers The Essentials of Modern Software Engineering:
Book SynopsisThe first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors.This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods.This kernel, Essence, is a vocabulary for defining methods and practices. Essence was envisioned and originally created by Ivar Jacobson and his colleagues, developed by Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group (OMG) as a standard in 2014. Essence is a practice-independent framework for thinking and reasoning about the practices we have and the practices we need. Essence establishes a shared and standard understanding of what is at the heart of software development. Essence is agnostic to any particular method, lifecycle independent, programming language independent, concise, scalable, extensible, and formally specified. Essence frees the practices from their method prisons.The first part of the book describes Essence, the essential elements to work with, the essential things to do and the essential competencies you need when developing software. The other three parts describe more and more advanced use cases of Essence. Using real but manageable examples, it covers the fundamentals of Essence and the innovative use of serious games to support software engineering. It also explains how current practices such as user stories, use cases, Scrum, and micro-services can be described using Essence, and illustrates how their activities can be represented using the Essence notions of cards and checklists. The fourth part of the book offers a vision how Essence can be scaled to support large, complex systems engineering.Essence is supported by an ecosystem developed and maintained by a community of experienced people worldwide. From this ecosystem, professors and students can select what they need and create their own way of working, thus learning how to create ONE way of working that matches the particular situation and needs.Trade Review“Essence is an important breakthrough in understanding the meaning of software engineering. It is a key contribution to the development of our discipline and I’m confident that this book will demonstrate the value of Essence to a wider audience. It too is an idea whose time has come.” – Ian Somerville, St. Andrews University, Scotland (author of Software Engineering, 10th Edition, Pearson)“In the foundational course “Software Engineering” I am teaching Essence to 400 students introducing Essence from day one. We will deliver a functioning system over the coming three months’ time developed by small teams. In the past we used a best-selling textbook, but not anymore. Tomorrow’s education will be fundamentally changed starting with the Essence of software engineering.” – Dr. Pekka Abrahamsson, Norwegian University of Science and Technology“What you hold in your hands (or on your computer or tablet if you are so inclined) represents the deep thinking and broad experience of the authors, information you’ll find approachable, understandable, and, most importantly, actionable.” – Grady Booch, IBM Fellow, ACM Fellow, IEEE Fellow, BCS Ada Lovelace Award, and IEEE Computer PioneerTable of Contents Foreword by Ian Sommerville Foreword by Grady Brooch Preface THE ESSENCE OF SOFTWARE ENGINEERING From Programming to Software Engineering Software Engineering Methods and Practices Essence in a Nutshell Identifying the Key Elements of Software Engineering The Language of Software Engineering The Kernel of Software Engineering Reflection on Theory Applying Essence in the Small—Playing Serious Games DEVELOPING SOFTWARE WITH ESSENCE Kick-Starting Development Using Essence Developing with Essence The Development Journey Reflection on the Kernel SMALL-SCALE DEVELOPMENT WITH PRACTICES Kick-Starting Development with Practices Running with Scrum Running with User Story Lite Running with Use Case Lite Running with Microservices Putting the Practices Together: Composition LARGE-SCALE COMPLEX DEVELOPMENT What It Means to Scale Essentializing Practices Scaling Up to Large and Complex Development Reaching Out to Different Kinds of Development Reaching Out to the Future A Brief History of Software and Software Engineering References Index Author Biographies
£79.20
Morgan & Claypool Publishers Reactive Internet Programming: State Chart XML in
Book SynopsisIs Internet software so different from "ordinary" software? This book practically answers this question through the presentation of a software design method based on the State Chart XML W3C standard along with Java. Web enterprise, Internet-of-Things, and Android applications, in particular, are seamlessly specified and implemented from "executable models."Internet software puts forward the idea of event-driven or reactive programming, as pointed out in Bonér et al.'s "Reactive Manifesto" (http://www.reactivemanifesto.org). It tells us that reactiveness is a must. However, beyond concepts, software engineers require effective means with which to put reactive programming into practice. This book's purpose is to outline and explain such means.The lack of professional examples in the literature that illustrate how reactive software should be shaped can be quite frustrating. Therefore, this book helps to fill in that gap by providing in-depth professional case studies that contain comprehensive details and meaningful alternatives. Furthermore, these case studies can be downloaded for further investigation.Internet software requires higher adaptation, at run time in particular. After reading Reactive Internet Programming, the reader therefore will be ready to enter the forthcoming Internet era.Table of Contents 1. Introduction 2. Event and State-based Modeling and Programming 3. Applying State Chart XML 4. Programming State Chart XML Models 5. Execution Semantics 6. Advanced Programming with PauWare engine 7. Programming the ""Internet of Things"" 8. Programming Web Enterprise Component Management 9. Software Component Management Appendix A. Internal Structure of PauWare Engine Appendix B. Acronyms Appendix C. Software References Author's Biography
£71.20
Morgan & Claypool Publishers Reactive Internet Programming: State Chart XML in Action
Book SynopsisIs Internet software so different from "ordinary" software? This book practically answers this question through the presentation of a software design method based on the State Chart XML W3C standard along with Java. Web enterprise, Internet-of-Things, and Android applications, in particular, are seamlessly specified and implemented from "executable models."Internet software puts forward the idea of event-driven or reactive programming, as pointed out in Bonér et al.'s "Reactive Manifesto" (http://www.reactivemanifesto.org). It tells us that reactiveness is a must. However, beyond concepts, software engineers require effective means with which to put reactive programming into practice. This book's purpose is to outline and explain such means.The lack of professional examples in the literature that illustrate how reactive software should be shaped can be quite frustrating. Therefore, this book helps to fill in that gap by providing in-depth professional case studies that contain comprehensive details and meaningful alternatives. Furthermore, these case studies can be downloaded for further investigation.Internet software requires higher adaptation, at run time in particular. After reading Reactive Internet Programming, the reader therefore will be ready to enter the forthcoming Internet era.Table of Contents 1. Introduction 2. Event and State-based Modeling and Programming 3. Applying State Chart XML 4. Programming State Chart XML Models 5. Execution Semantics 6. Advanced Programming with PauWare engine 7. Programming the ""Internet of Things"" 8. Programming Web Enterprise Component Management 9. Software Component Management Appendix A. Internal Structure of PauWare Engine Appendix B. Acronyms Appendix C. Software References Author's Biography
£87.20
Springer Nature Switzerland AG Building Better Interfaces for Remote Autonomous
Book SynopsisThis 'Open Access' SpringerBrief provides foundational knowledge for designing autonomous, asynchronous systems and explains aspects of users relevant to designing for these systems, introduces principles for user-centered design, and prepares readers for more advanced and specific readings. It provides context and the implications for design choices made during the design and development of the complex systems that are part of operation centers. As such, each chapter includes principles to summarize the design implication that engineers can use to inform their own design of interfaces for operation centers and similar systems. It includes example materials for the design of a fictitious system, which are referenced in the book and can be duplicated and extended for real systems. The design materials include a system overview, the system architecture, an example scenario, a stakeholder analysis, a task analysis, a description of the system and interface technology, and contextualized design guidelines. The guidelines can be specified because the user, the task, and the technology are well specified as an example.Building Better Interfaces for Remote Autonomous Systems is for working system engineers who are designing interfaces used in high throughput, high stake, operation centers (op centers) or control rooms, such as network operation centers (NOCs). Intended users will have a technical undergraduate degree (e.g., computer science) with little or no training in design, human sciences, or with human-centered iterative design methods and practices. Background research for the book was supplemented by interaction with the intended audience through a related project with L3Harris Technologies (formerly Harris Corporation). Table of ContentsIntroducing Interface Design for Complex Systems.- User-centered Design and Situation Awareness.- Cognition and Operator Performance.- Conclusion and Final Comments.- Appendices.- Index
£17.09