Software Engineering Books
Springer Vieweg Grundlagenforschung für vertrauenswürdige
Book SynopsisProjekt Übersicht.- Forschung in China und im Ausland.- Wichtige Forschungsergebnisse.- Ausblick.
£98.99
Spektrum Akademischer Verlag UML 2 kompakt: mit Checklisten
Book Synopsis
£17.09
Springer Fachmedien Wiesbaden Java für IT-Berufe: Das Lehr- und Begleitbuch für den Unterricht
Book SynopsisDas Buch vermittelt die Fähigkeit, zu jeder Zeit an jedem Ort Probleme mit Java erfolgreich zu lösen. Nach dem Einstieg mit kleinen klassischen Programmieraufgaben wird schrittweise und mit vielen Beispielen an die anspruchsvolleren Bestandteile von JAVA herangeführt. Mit der Zeichenkettenarbeit kommen die Objekte und Klassen. Eigene Klassen werden programmiert, Konstruktoren und das Überladen werden erklärt. Schließlich leiten Vererbung, abstrakte Klassen und Interfaces über zur Herstellung von Benutzeroberflächen mit Java und zu den Java-Applets. Über die Inhalte des Buches hinaus können Programmbeispiele, Übungen und Lösungen vom kostenlosen Onlineservice zum Buch heruntergeladen werden.Trade Review"Der Autor ist bekannt durch Bücher, in denen Einsteiger ohne Vorkenntnisse, gestützt auf viele Beispiele, in die Sprachen Delphi und Turbo-Pascal eingeführt werden. Ähnlich geht das vorliegende Buch bei der Einführung in Java, der Sprache des Internets, vor. [...] Auch dieser Weg der vielen kleinen Schritte führt zum Verständnis von Klassen, Konstruktoren, Vererbung und Überladen von Methoden." ekz-Informationsdienst, ID 9/06 - BA 4/06Table of ContentsProgramm und Programmiersprache - Java-Prinzip, Verarbeitung von Java-Programmen - Strukturiertes Programmieren mit Java - Arbeit mit String-Objekten, eigene Objekte - Klassen, Konstruktoren, Überladen von Methoden - Java als Methodensammlung, Java-Dokumentation - Vererbung, abstrakte Klassen, Interfaces - Benutzeroberflächen mit Java programmieren - 150 Programmbeispiele - 80 Übungen mit Lösungen, alle Dateien online verfügbar
£37.99
Not Avail Geschichten Vom Scrum: Von Sprints,
Book Synopsis
£12.30
Not Avail UML @ Classroom: Eine Einfhrung in Die
Book Synopsis
£22.41
John Wiley & Sons Inc Web Engineering The Discipline of Systematic
Book SynopsisThe World Wide Web has a massive and permanent influence on our lives. Economy, industry, education, healthcare, public administration, entertainment - there is hardly any part of our daily lives which has not been pervaded by the Internet.Table of ContentsPreface xv Foreword xvii 1 An Introduction to Web Engineering 1Gerti Kappel, Birgit Pröll, Siegfried Reich, Werner Retschitzegger 1.1 Motivation 1 1.2 Categories of Web Applications 4 1.3 Characteristics of Web Applications 7 1.3.1 Product-related Characteristics 8 1.3.2 Usage-related Characteristics 12 1.3.3 Development-related Characteristics 14 1.3.4 Evolution 16 1.4 Objectives and Structure of the Book 17 2 Requirements Engineering for Web Applications 23Paul Grünbacher 2.1 Introduction 23 2.2 Fundamentals 24 2.2.1 Where Do Requirements Come From? 24 2.2.2 Requirements Engineering Activities 25 2.3 RE Specifics in Web Engineering 26 2.4 Principles for RE of Web Applications 30 2.5 Adapting RE Methods to Web Application Development 32 2.5.1 Requirement Types 32 2.5.2 Notations 34 2.5.3 Tools 36 2.6 Outlook 37 3 Modeling Web Applications 39Wieland Schwinger, Nora Koch 3.1 Introduction 39 3.2 Fundamentals 40 3.3 Modeling Specifics in Web Engineering 41 3.3.1 Levels 41 3.3.2 Aspects 42 3.3.3 Phases 42 3.3.4 Customization 43 3.4 Modeling Requirements 43 3.5 Content Modeling 45 3.5.1 Objectives 45 3.5.2 Concepts 45 3.6 Hypertext Modeling 46 3.6.1 Objectives 47 3.6.2 Hypertext Structure Modeling Concepts 47 3.6.3 Access Modeling Concepts 49 3.6.4 Relation to Content Modeling 50 3.7 Presentation Modeling 51 3.7.1 Objectives 51 3.7.2 Concepts 51 3.7.3 Relation to Hypertext Modeling 52 3.8 Customization Modeling 53 3.8.1 Objectives 54 3.8.2 Concepts 54 3.8.3 Relation to Content, Hypertext, and Presentation Modeling 58 3.9 Methods and Tools 58 3.9.1 Modeling Methods: An Overview 58 3.9.2 Model-Driven Development 61 3.9.3 Tool Support 61 3.10 Outlook 63 4 Web Application Architectures 65Christian Eichinger 4.1 Introduction 65 4.2 Fundamentals 66 4.2.1 What is an Architecture? 66 4.2.2 Developing Architectures 67 4.2.3 Categorizing Architectures 69 4.3 Specifics of Web Application Architectures 70 4.4 Components of a Generic Web Application Architecture 71 4.5 Layered Architectures 72 4.5.1 2-Layer Architectures 72 4.5.2 N-Layer Architectures 73 4.6 Data-aspect Architectures 79 4.6.1 Database-centric Architectures 80 4.6.2 Architectures for Web Document Management 80 4.6.3 Architectures for Multimedia Data 81 4.7 Outlook 84 5 Technology-aware Web Application Design 85Gerhard Austaller, Andreas Hartl, Markus Lauff, Fernando Lyardet, Max Mühlhaüser 5.1 Introduction 86 5.2 Web Design from an Evolutionary Perspective 89 5.2.1 Background 89 5.2.2 Information Design: An Authoring Activity 90 5.2.3 Software Design: A Programming Activity 92 5.2.4 Merging Information Design and Software Design 93 5.2.5 Problems and Restrictions in Integrated Web Design 94 5.2.6 A Proposed Structural Approach 95 5.3 Presentation Design 95 5.3.1 Presentation of Nodes and Meshes 96 5.3.2 Device-independent Development Approaches 97 5.4 Interaction Design 98 5.4.1 User Interaction 98 5.4.2 User Interface Organization 100 5.4.3 Navigation Design 101 5.4.4 Designing a Link Representation: The Anchor 101 5.4.5 Designing Link Internals: The URL 102 5.4.6 Navigation and Orientation 102 5.4.7 Structured Dialog for Complex Activities 103 5.4.8 Interplay with Technology and Architecture 104 5.5 Functional Design 105 5.5.1 Integration 105 5.5.2 Communication Paradigms and Middleware 105 5.5.3 Distributed Cross-corporate Web Applications 106 5.6 Outlook 107 5.6.1 Context-aware Applications 107 5.6.2 Device-independent Applications 108 5.6.3 Reusability 109 5.7 Summary 110 6 Technologies for Web Applications 111Martin Nussbaumer, Martin Gaedke 6.1 Introduction 111 6.2 Fundamentals 112 6.2.1 Markup 112 6.2.2 Hypertext and Hypermedia 112 6.3 Client/Server Communication on the Web 113 6.3.1 SMTP – Simple Mail Transfer Protocol. 113 6.3.2 RTSP – Real Time Streaming Protocol 113 6.3.3 HTTP – HyperText Transfer Protocol 113 6.3.4 Session Tracking 114 6.4 Client-side Technologies 116 6.4.1 Helpers and Plug-ins 116 6.4.2 Java Applets 116 6.4.3 ActiveX Controls 116 6.5 Document-specific Technologies 117 6.5.1 HTML – Hypertext Markup Language 117 6.5.2 SVG – Scalable Vector Graphics 117 6.5.3 SMIL – Synchronized Multimedia Integration Language 118 6.5.4 XML – eXtensible Markup Language 118 6.5.5 XSL – eXtensible Stylesheet Language 122 6.6 Server-side Technologies 126 6.6.1 URI Handlers 126 6.6.2 Web Services 129 6.6.3 Middleware Technologies 130 6.7 Outlook 132 7 Testing Web Applications 133Christoph Steindl, Rudolf Ramler, Josef Altmann 7.1 Introduction 133 7.2 Fundamentals 134 7.2.1 Terminology 134 7.2.2 Quality Characteristics 135 7.2.3 Test Objectives 136 7.2.4 Test Levels 136 7.2.5 Role of the Tester 137 7.3 Test Specifics in Web Engineering 138 7.4 Test Approaches 140 7.4.1 Conventional Approaches 140 7.4.2 Agile Approaches 140 7.5 Test Scheme 142 7.5.1 Three Test Dimensions 142 7.5.2 Applying the Scheme to Web Applications 143 7.5.3 Examples of Using the Test Scheme 145 7.6 Test Methods and Techniques 145 7.6.1 Link Testing 147 7.6.2 Browser Testing 147 7.6.3 Usability Testing 148 7.6.4 Load, Stress, and Continuous Testing 148 7.6.5 Testing Security 149 7.6.6 Test-driven Development 150 7.7 Test Automation 150 7.7.1 Benefits and Drawbacks of Automated Tests 150 7.7.2 Test Tools 151 7.7.3 Selecting Test Tools 152 7.8 Outlook 152 8 Operation and Maintenance of Web Applications 155Arno Ebner, Birgit Pröll, Hannes Werthner 8.1 Introduction 155 8.2 Challenges Following the Launch of a Web Application 156 8.3 Promoting a Web Application 157 8.3.1 Newsletters 158 8.3.2 Affiliate Marketing 158 8.3.3 Search Engine Marketing 159 8.3.4 Content-related Marketing 162 8.3.5 Domain Management 162 8.4 Content Management 163 8.4.1 Content Update Rate and Demand on Currency 164 8.4.2 Content Syndication 165 8.5 Usage Analysis 165 8.5.1 Usage Analysis Techniques 165 8.5.2 Statistical Indicators 167 8.5.3 User Behavior Analysis 168 8.6 Outlook 169 9 Web Project Management 171Herwig Mayr 9.1 From Software Project Management to Web Project Management 171 9.1.1 Objectives of Software Project Management 171 9.1.2 The Tasks of Software Project Management 172 9.1.3 Conflicting Areas in Projects 173 9.1.4 Specifics of Web Project Management 173 9.2 Challenges in Web Project Management 175 9.2.1 General Challenges in Software Development 175 9.2.2 Development-related Challenges in Web Projects 176 9.2.3 Product-related Challenges in Web Projects 179 9.3 Managing Web Teams 182 9.3.1 Software Development: A Human-centered Task 182 9.3.2 The Web Project Team 183 9.3.3 The Web Project Manager 184 9.4 Managing the Development Process of a Web Application 185 9.4.1 Deploying the Tools 185 9.4.2 Measuring Progress 188 9.4.3 Project Risks 190 9.4.4 Risk Management 193 9.5 Outlook 194 10 The Web Application Development Process 197Gregor Engels, Marc Lohmann, Annika Wagner 10.1 Motivation 197 10.2 Fundamentals 198 10.3 Requirements for a Web Application Development Process 201 10.3.1 Handling Short Development Cycles 201 10.3.2 Handling Changing Requirements 201 10.3.3 Releases with Fixed Deadlines and Flexible Contents 203 10.3.4 Parallel Development of Different Releases 203 10.3.5 Reuse and Integration 204 10.3.6 Adapting to Web Application’s Complexity Level 204 10.3.7 Summary 205 10.4 Analysis of the Rational Unified Process 205 10.4.1 Introduction 205 10.4.2 General Suitability for Web Application Development 208 10.4.3 Does RUP meet the Requirements of Web Applications? 209 10.5 Analysis of Extreme Programming 211 10.5.1 Introduction 211 10.5.2 Does XP meet the Requirements of Web Application Development? 214 10.6 Outlook 216 11 Usability of Web Applications 219Martin Hitz, Gerhard Leitner, Rudolf Melcher 11.1 Motivation 219 11.2 What is Usability? 220 11.3 What Characterizes the Usability of Web Applications? 222 11.4 Design Guidelines 225 11.4.1 Response Times 225 11.4.2 Interaction Efficiency 225 11.4.3 Colors 226 11.4.4 Text Layout 227 11.4.5 Page Structure 228 11.4.6 Navigation Structure 228 11.4.7 Multiculturality 230 11.4.8 Confidence-generating Measures 231 11.4.9 Other Design Criteria 232 11.5 Web Usability Engineering Methods 232 11.5.1 Requirements Analysis 234 11.5.2 Design 237 11.5.3 Implementation 238 11.5.4 Operation 238 11.6 Web Usability Engineering Trends 239 11.6.1 Usability Patterns 239 11.6.2 Mobile Usability 241 11.6.3 Accessibility 243 11.7 Outlook 245 12 Performance of Web Applications 247Gabriele Kotsis 12.1 Introduction 247 12.2 What Is Performance? 248 12.3 What Characterizes the Performance of Web Applications? 250 12.4 System Definition and Indicators 251 12.5 Characterizing the Workload 252 12.6 Analytical Techniques 254 12.6.1 Operational Analysis 254 12.6.2 Queuing Networks and Simulation Models 255 12.6.3 Measuring Approaches 257 12.7 Representing and Interpreting Results 258 12.8 Performance Optimization Methods 259 12.8.1 Acceleration Within a Web Application 260 12.8.2 Reducing Transmission Time 261 12.8.3 Server Tuning 263 12.9 Outlook 263 13 Security for Web Applications 265Martin Wimmer, Alfons Kemper, Stefan Seltzsam 13.1 Introduction 265 13.2 Aspects of Security 266 13.3 Encryption, Digital Signatures and Certificates 268 13.3.1 Symmetric Cryptography 268 13.3.2 Asymmetric Cryptography 270 13.3.3 Digital Signatures 271 13.3.4 Certificates and Public Key Infrastructure 272 13.4 Secure Client/Server-Interaction 272 13.4.1 Point-to-Point Security 272 13.4.2 End-to-End Security 274 13.4.3 User Authentication and Authorization 276 13.4.4 Electronic Payment Systems 278 13.5 Client Security Issues 279 13.5.1 Preserving Privacy 279 13.5.2 Mobile Code Security 281 13.5.3 Phishing and Web Spoofing 282 13.5.4 Desktop Security 283 13.6 Service Provider Security Issues 285 13.6.1 Cross-Site Scripting 285 13.6.2 SQL Injection 287 13.6.3 Security of CGI Programs 289 13.6.4 Service Availability 290 13.6.5 Host Security 291 13.7 Outlook 292 14 The Semantic Web – The Network of Meanings in the Network of Documents 293Wernher Behrendt, Nitin Arora 14.1 Fundamentals of the Semantic Web 293 14.1.1 The Role of Software Agents 294 14.1.2 The Role of Semantic Markup 296 14.1.3 The Role of Ontologies 297 14.2 Technological Concepts 298 14.2.1 Agents According to the FIPA Standard 298 14.2.2 Ontologies 300 14.2.3 Semantic Markup on the Web 303 14.3 Specifics of Semantic Web Applications 308 14.3.1 Semantic Markup 308 14.3.2 Agents 309 14.3.3 Ontologies 309 14.3.4 Semantic Web Services 310 14.3.5 Integration into Web Engineering 313 14.4 Tools 314 14.5 Outlook 315 Glossary 317 Author Biographies 329 Bibliography 337 Credits 357 Index 359
£48.44
John Wiley & Sons Inc Managing and Leading Software Projects
Book SynopsisThe book is organized around basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk. Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral).Trade Review"This book is readable, informative, and well organized.... The material presented is up to date with respect to documents that were published at the time the book was written." (Computing Reviews, May 15, 2009) "Mark it up and keep it on your bookshelf, and be sure to reference it frequently." (Computing Reviews, April 28, 2008)Table of ContentsPreface xv 1 Introduction 1 1.1 Introduction to Software Project Management, 1 1.2 Objectives of This Chapter, 2 1.3 Why Managing and Leading Software Projects Is Difficult, 2 1.4 The Nature of Project Constraints, 9 1.5 A Workfl ow Model for Managing Software Projects, 13 1.6 Organizational Structures for Software Projects, 16 1.7 Organizing the Project Team, 19 1.8 Maintaining the Project Vision and the Product Vision, 21 1.9 Frameworks, Standards, and Guidelines, 22 1.10 Key Points of Chapter 1, 23 1.11 Overview of the Text, 23 2 Process Models for Software Development 39 2.1 Introduction to Process Models, 39 2.2 Objectives of This Chapter, 42 2.3 A Development-Process Framework, 42 2.4 Tailoring the System Engineering Framework for Software-Only Projects, 52 2.5 Traditional Software Development Process Models, 54 2.6 Iterative-Development Process Models, 58 2.7 Designing an Iterative-Development Process, 72 2.8 The Role of Prototyping in Software Development, 74 2.9 Key Points of Chapter 2, 75 3 Establishing Project Foundations 85 3.1 Introduction to Project Foundations, 85 3.2 Objectives of This Chapter, 86 3.3 Software Acquisition, 87 3.4 Requirements Engineering, 88 3.5 Process Foundations, 109 3.6 Key Points of Chapter 3, 112 4 Plans and Planning 119 4.1 Introduction to the Planning Process, 119 4.2 Objectives of This Chapter, 120 4.3 The Planning Process, 121 4.4 The CMMI-DEV-v1.2 Process Area for Project Planning, 125 4.5 A Minimal Project Plan, 129 4.6 A Template for Software Project Management Plans, 130 4.7 Techniques for Preparing a Project Plan, 150 4.8 Key Points of Chapter 4, 154 5 Project Planning Techniques 173 5.1 Introduction to Project Planning Techniques, 173 5.2 Objectives of This Chapter, 174 5.3 The Scope of Planning, 175 5.4 Rolling-Wave Planning, 175 5.5 Scenarios for Developing a Project Plan, 176 5.6 Developing the Architecture Decomposition View and the Work Breakdown Structure, 177 5.7 Guidelines for Designing Work Breakdown Structures, 182 5.8 Developing the Project Schedule, 188 5.9 Developing Resource Profiles, 193 5.10 Resource-Gantt Charts, 199 5.11 Estimating Project Effort, Cost, and Schedule, 199 5.12 Key Points of Chapter 5, 201 6 Estimation Techniques 207 6.1 Introduction to Estimation Techniques, 207 6.2 Objectives of This Chapter, 208 6.3 Fundamental Principles of Estimation, 209 6.4 Designing to Project Constraints, 214 6.5 Estimating Product Size, 216 6.6 Pragmatic Estimation Techniques, 224 6.7 Theory-Based Estimation Models, 230 6.8 Regression-Based Estimation Models, 234 6.9 Estimation Tools, 249 6.10 Estimating Life Cycle Resources, Effort, and Cost, 249 6.11 An Estimation Procedure, 251 6.12 A Template for Recording Estimates, 256 6.13 Key Points of Chapter 6, 258 7 Measuring and Controlling Work Products 265 7.1 Introduction to Measuring and Controlling Work Products, 265 7.2 Objectives of This Chapter, 268 7.3 Why Measure?, 268 7.4 What Should Be Measured?, 269 7.5 Measures and Measurement, 270 7.6 Measuring Product Attributes, 276 7.7 Measuring and Analyzing Software Defects, 301 7.8 Choosing Product Measures, 309 7.9 Practical Software Measurement, 311 7.10 Guidelines for Measuring and Controlling Work Products, 311 7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement, 313 7.12 Key Points of Chapter 7, 313 8 Measuring and Controlling Work Processes 333 8.1 Introduction to Measuring and Controlling Work Processes, 333 8.2 Objectives of This Chapter, 336 8.3 Measuring and Analyzing Effort, 336 8.4 Measuring and Analyzing Rework Effort, 339 8.5 Tracking Effort, Schedule, and Cost; Estimating Future Status, 342 8.6 Earned Value Reporting, 347 8.7 Project Control Panel, 353 8.8 Key Points of Chapter 8, 357 9 Managing Project Risk 363 9.1 Introduction to Managing Project Risk, 363 9.2 Objectives of This Chapter, 365 9.3 An Overview of Risk Management for Software Projects, 366 9.4 Conventional Project Management Techniques, 369 9.5 Risk Identifi cation Techniques, 373 9.6 Risk Analysis and Prioritization, 381 9.7 Risk Mitigation Strategies, 382 9.8 Top-N Risk Tracking and Risk Registers, 388 9.9 Controlling the Risk Management Process, 392 9.10 Crisis Management, 394 9.11 Risk Management at the Organizational Level, 395 9.12 Joint Risk Management, 396 9.13 Key Points of Chapter 9, 396 10 Teams, Teamwork, Motivation, Leadership, and Communication 407 10.1 Introduction, 407 10.2 Objectives of This Chapter, 408 10.3 Managing versus Leading, 408 10.4 Teams and Teamwork, 410 10.5 Maintaining Morale and Motivation, 417 10.6 Can't versus Won't, 418 10.7 Personality Styles, 420 10.8 The Five-Layer Behavioral Model, 427 10.9 Key Points of Chapter 10, 430 11 Organizational Issues 439 11.1 Introduction to Organizational Issues, 439 11.2 Objectives of This Chapter, 440 11.3 The Infl uence of Corporate Culture, 441 11.4 Assessing and Nurturing Intellectual Capital, 443 11.5 Key Personnel Roles, 444 11.6 Fifteen Guidelines for Organizing and Leading Software Engineering Teams, 449 11.6.3 Summary of the Guidelines, 463 11.7 Key Points of Chapter 11, 464 Glossary of Terms 471 Guidance for Term Projects 481 Index 487
£87.26
John Wiley & Sons Inc IT Success
Book SynopsisFifty years after the birth of corporate computing, IT today is still characterized by 50-70% project failure rates. Which is pretty scary when you come to think of it: either a goblin has cast a spell on a whole profession or that profession is doing something fundamentally wrong. IT Success! challenges the widespread assumption that an IT department is like a building contractor whose project managers, architects and engineers (all construction industry terms) are supposed to deliver systems on schedule, within budget and to spec. Michael Gentle explains why this is not possible, and turns conventional wisdom on its head by showing that: you cannot define an IT project in terms of contractual budgets and schedules anything can change during the life of a project what is eventually delivered can never be what is actually needed He proposes a new model for IT in which the traditional client/vendor relationship, wTrade Review"...a clever synthesis of enlightened IT project management thinking over the last few years." (Financial Times, Wednesday 21st November 2007)Table of ContentsIntroduction ix Acknowledgements xiii Abbreviations xvii Part I Blinded by Specs 1 1 In Search of the Fundamentals 3 The more things change, the more they stay the same 3 A worldwide phenomenon 4 How the traditional IT model started 5 The construction industry trap 6 The free lunch trap 7 Houses of ill repute 8 A business problem rather than an IT problem 10 IT and original sin 12 No sacred cows 12 2 IT 101 – The Basics for Non-Specialists 15 The process breakdown for traditional IT activities 15 The process breakdown for business (i.e non-IT) activities 16 The fundamental difference between IT and non-IT activities 18 'That's not my problem!' – process ownership and behaviour 19 3 The Flaws of the Traditional Model 21 The unintended consequences of the waterfall method 21 In search of a pizza parlour manager 22 Who provides process expertise – client or vendor? 22 When standard client–vendor relationships are possible 24 When standard client–vendor relationships pose problems 25 Is a standard client–vendor relationship possible for IT? 26 The 'Statement of Requirements' (SoR) trap 26 A poor to non-existent pricing model 28 Should IT be run like a business (i.e an ESP)? 30 The limits of outsourcing 31 Current IT organizational trends 32 The ultimate litmus test to determine one's business model 33 What model would be appropriate for IT? 34 Part II Building a New Business Model for It 35 4 Managing Demand 37 Managing demand – traditional model 37 Managing demand – new model 39 Capturing demand and identifying opportunities 41 Prioritizing and approving demand 43 Planning approved demand 49 Linking demand to resource capability 49 Approving demand based on portfolios 50 The missing component in Project Portfolio Management 53 Business cases are in the eye of the beholder 54 Building the IT plan and budget 55 Demand from a customer perspective 56 Shaking off the chains of the construction industry 56 Funding approved demand 58 Roles and responsibilities 59 5 Managing Supply 61 Managing supply - traditional model 61 Managing supply - new model 63 Iterative development in practice 65 Why prototyping has never become mainstream 74 Is prototyping the answer to everything? 78 Project critical success factors 79 Maintenance - letting go of the M-word 79 Delivery and implementation 81 Service and support 81 6 Monitoring Costs and Benefits 83 Monitoring costs and benefits for traditional IT activities 83 Monitoring costs and benefits for business (non-IT) activities 84 Monitoring costs and benefits – new model 85 Ownership and accountability for costs and benefits 86 Cost–benefit analysis during the life of a project 87 It is normal for costs and benefits to change! 88 Portfolio performance monitoring 88 Cost–benefit analysis after project delivery 89 7 Financials 91 The main categories of IT costs 91 Ownership of IT costs for the regulation of supply and demand 92 Who has the final say for IT investments? 92 Allocations vs cross-charging 93 Capturing costs for allocations and cross-charging 94 Benefits as part of the P&L and annual planning 95 Ongoing cost–benefit analysis for applications 96 Reducing application lifetime costs 100 The limits of financial ROI when applied to IT 102 Part III the New Model in Practice 105 8 Players, Roles and Responsibilities 107 Players, roles and responsibilities – the business 107 Players, roles and responsibilities – IT 111 The new business–IT relationship 112 The changing role of the business analyst 113 The changing role of the developer 113 Towards the merging of the developer and analyst roles? 114 The changing role of the project manager 115 The changing role of the operations department 116 What role for PMOs? 117 The role of External Service Providers (ESPs) 119 9 Getting Started 121 The business challenge 121 The IT challenge 122 Where to start 123 How to start – from checklist to action plan 124 From the status quo to first results 128 From first results to asset management 133 The role of best-practice methodologies 136 How consulting companies can help 138 How tools can help 139 The costs of moving to the new model 140 In closing – addressing the three fundamental questions 142 Further reading 143 10 Case Study 145 The company 145 The business problem 146 The project context 146 Building an IT–business partnership 147 Kicking off the project 148 Feasibility study and defining a solution 149 Building the business case 150 Project approach 151 Product evaluation – buy or build decision 151 Building a prototype 152 Results 154 Timescales 155 Three months later 155 One year later 156 Two years later 156 Main lessons learnt (on the plus side) 156 Main lessons learnt (on the minus side) 157 Comments with respect to the new model 157 Reader feedback 158 Index 159
£16.99
John Wiley & Sons Inc PatternOriented Software Architecture Patterns
Book SynopsisThe first volume of the POSA pattern series introduced a broad-spectrum of general-purpose patterns in software design and architecture. The second narrowed the focus to fundamental patterns for building sophisticated concurrent and networked software systems and applications.Table of ContentsForeword by Frank Buschmann. Foreword by Steve Vinoski. About This Book. About The Authors. Intended Audience. Structure of the Book. Guide to the Reader. Acknowledgements. About The Authors. 1. Introduction. 1.1 Overview of Resource Management. 1.2 Scope of Resource Management. 1.3 Usage of Patterns. 1.4 Patterns in Resource Management. 1.5 Related Work. 1.6 Pattern Form. 2. Resource Acquisition. Lookup. Lazy Acquisition. Eager Acquisition. Partial Acquisition. 3. Resource Lifecycle. Caching. Pooling. Coordinator. Resource Lifecycle Manager. 4. Resource Release. Leasing. Evictor. 5. Guidelines for Applying Resource Management. 6. Case Study: Ad Hoc Networking. 6.1 Overview. 6.2 Motivation. 6.3 Solution. 7. Case Study: Mobile Network. 7.1 Overview. 7.2 Motivation. 7.3 Solution. 8. The Past, Present, and Future of Patterns. 8.1 The Past Four Years at a Glance. 8.2 Where Patterns are Now. 8.3 Where Will Patterns Go Tomorrow? 8.4 A Brief Note about the Future of Patterns. 9. Concluding Remarks. Referenced Patterns. Notations. References. Acknowledgements. Index of Patterns. Index.
£32.00
John Wiley & Sons Inc Financial Instrument Pricing Using C
Book Synopsis? C++ is one of the best languages for the development of financial engineering and instrument pricing applications. ? This book applies C++ to the design and implementation of classes, libraries and latest applications for option and derivative pricing models.Table of ContentsCHAPTER 1 A Tour of C++ and Environs 1 1.1 Introduction and Objectives 1 1.2 What is C++? 1 1.3 C++ as a Multiparadigm Programming Language 2 1.4 The Structure and Contents of this Book: Overview 4 1.5 A Tour of C++11: Black–Scholes and Environs 6 1.6 Parallel Programming in C++ and Parallel C++ Libraries 12 1.7 Writing C++ Applications; Where and How to Start? 14 1.8 For whom is this Book Intended? 16 1.9 Next-Generation Design and Design Patterns in C++ 16 1.10 Some Useful Guidelines and Developer Folklore 17 1.11 About the Author 18 1.12 The Source Code and Getting the Source Code 19 CHAPTER 2 New and Improved C++ Fundamentals 21 2.1 Introduction and Objectives 21 2.2 The C++ Smart Pointers 21 2.3 Using Smart Pointers in Code 23 2.4 Extended Examples of Smart Pointers Usage 30 2.5 Move Semantics and Rvalue References 34 2.6 Other Bits and Pieces: Usability Enhancements 39 2.7 Summary and Conclusions 52 2.8 Exercises and Projects 52 CHAPTER 3 Modelling Functions in C++ 59 3.1 Introduction and Objectives 59 3.2 Analysing and Classifying Functions 60 3.3 New Functionality in C++: std::function<> 64 3.4 New Functionality in C++: Lambda Functions and Lambda Expressions 65 3.5 Callable Objects 69 3.6 Function Adapters and Binders 70 3.7 Application Areas 75 3.8 An Example: Strategy Pattern New Style 75 3.9 Migrating from Traditional Object-Oriented Solutions: Numerical Quadrature 78 3.10 Summary and Conclusions 81 3.11 Exercises and Projects 82 CHAPTER 4 Advanced C++ Template Programming 89 4.1 Introduction and Objectives 89 4.2 Preliminaries 91 4.3 decltype Specifier 94 4.4 Life Before and After decltype 101 4.5 std::result_of and SFINAE 106 4.6 std::enable_if 108 4.7 Boost enable_if 112 4.8 std::decay()Trait 114 4.9 A Small Application: Quantities and Units 115 4.10 Conclusions and Summary 118 4.11 Exercises and Projects 118 CHAPTER 5 Tuples in C++ and their Applications 123 5.1 Introduction and Objectives 123 5.2 An std:pair Refresher and New Extensions 123 5.3 Mathematical and Computer Science Background 128 5.4 Tuple Fundamentals and Simple Examples 130 5.5 Advanced Tuples 130 5.6 Using Tuples in Code 133 5.7 Other Related Libraries 138 5.8 Tuples and Run-Time Efficiency 140 5.9 Advantages and Applications of Tuples 142 5.10 Summary and Conclusions 143 5.11 Exercises and Projects 143 CHAPTER 6 Type Traits, Advanced Lambdas and Multiparadigm Design in C++ 147 6.1 Introduction and Objectives 147 6.2 Some Building Blocks 149 6.3 C++ Type Traits 150 6.4 Initial Examples of Type Traits 158 6.5 Generic Lambdas 161 6.6 How Useful will Generic Lambda Functions be in the Future? 164 6.7 Generalised Lambda Capture 171 6.7.1 Living Without Generalised Lambda Capture 173 6.8 Application to Stochastic Differential Equations 174 6.9 Emerging Multiparadigm Design Patterns: Summary 178 6.10 Summary and Conclusions 179 6.11 Exercises and Projects 179 CHAPTER 7 Multiparadigm Design in C++ 185 7.1 Introduction and Objectives 185 7.2 Modelling and Design 185 7.3 Low-Level C++ Design of Classes 190 7.4 Shades of Polymorphism 199 7.5 Is there More to Life than Inheritance? 206 7.6 An Introduction to Object-Oriented Software Metrics 207 7.7 Summary and Conclusions 210 7.8 Exercises and Projects 210 CHAPTER 8 C++ Numerics, IEEE 754 and Boost C++ Multiprecision 215 8.1 Introduction and Objectives 215 8.2 Floating-Point Decomposition Functions in C++ 219 8.3 A Tour of std::numeric_limits 221 8.4 An Introduction to Error Analysis 223 8.5 Example: Numerical Quadrature 224 8.6 Other Useful Mathematical Functions in C++ 228 8.7 Creating C++ Libraries 231 8.8 Summary and Conclusions 239 8.9 Exercises and Projects 239 CHAPTER 9 An Introduction to Unified Software Design 245 9.1 Introduction and Objectives 245 9.1.1 Future Predictions and Expectations 246 9.2 Background 247 9.3 System Scoping and Initial Decomposition 251 9.4 Checklist and Looking Back 259 9.5 Variants of the Software Process: Policy-Based Design 260 9.6 Using Policy-Based Design for the DVM Problem 268 9.7 Advantages of Uniform Design Approach 273 9.8 Summary and Conclusions 274 9.9 Exercises and Projects 275 CHAPTER 10 New Data Types, Containers and Algorithms in C++ and Boost C++ Libraries 283 10.1 Introduction and Objectives 283 10.2 Overview of New Features 283 10.3 C++ std::bitset and Boost Dynamic Bitset Library 284 10.4 Chrono Library 288 10.5 Boost Date and Time 301 10.6 Forwards Lists and Compile-Time Arrays 306 10.7 Applications of Boost.Array 311 10.8 Boost uBLAS (Matrix Library) 313 10.9 Vectors 316 10.10 Matrices 318 10.11 Applying uBLAS: Solving Linear Systems of Equations 322 10.12 Summary and Conclusions 330 10.13 Exercises and Projects 331 CHAPTER 11 Lattice Models Fundamental Data Structures and Algorithms 333 11.1 Introduction and Objectives 333 11.2 Background and Current Approaches to Lattice Modelling 334 11.3 New Requirements and Use Cases 335 11.4 A New Design Approach: A Layered Approach 335 11.5 Initial ‘101’ Examples of Option Pricing 347 11.6 Advantages of Software Layering 349 11.7 Improving Efficiency and Reliability 352 11.8 Merging Lattices 355 11.9 Summary and Conclusions 357 11.10 Exercises and Projects 357 CHAPTER 12 Lattice Models Applications to Computational Finance 367 12.1 Introduction and Objectives 367 12.2 Stress Testing the Lattice Data Structures 368 12.3 Option Pricing Using Bernoulli Paths 372 12.4 Binomial Model for Assets with Dividends 374 12.5 Computing Option Sensitivities 377 12.6 (Quick) Numerical Analysis of the Binomial Method 379 12.7 Richardson Extrapolation with Binomial Lattices 382 12.8 Two-Dimensional Binomial Method 382 12.9 Trinomial Model of the Asset Price 384 12.10 Stability and Convergence of the Trinomial Method 385 12.11 Explicit Finite Difference Method 386 12.12 Summary and Conclusions 389 12.13 Exercises and Projects 389 CHAPTER 13 Numerical Linear Algebra: Tridiagonal Systems and Applications 395 13.1 Introduction and Objectives 395 13.2 Solving Tridiagonal Matrix Systems 395 13.3 The Crank-Nicolson and Theta Methods 406 13.4 The ADE Method for the Impatient 411 13.5 Cubic Spline Interpolation 415 13.6 Some Handy Utilities 427 13.7 Summary and Conclusions 428 13.8 Exercises and Projects 429 CHAPTER 14 Data Visualisation in Excel 433 14.1 Introduction and Objectives 433 14.2 The Structure of Excel-Related Objects 433 14.3 Sanity Check: Is the Excel Infrastructure Up and Running? 435 14.4 ExcelDriver and Matrices 437 14.5 ExcelDriver and Vectors 444 14.6 Path Generation for Stochastic Differential Equations 448 14.7 Summary and Conclusions 459 14.8 Exercises and Projects 459 14.9 Appendix: COM Architecture Overview 463 14.10 An Example 468 14.11 Virtual Function Tables 471 14.12 Differences between COM and Object-Oriented Paradigm 473 14.13 Initialising the COM Library 474 CHAPTER 15 Univariate Statistical Distributions 475 15.1 Introduction, Goals and Objectives 475 15.2 The Error Function and Its Universality 475 15.3 One-Factor Plain Options 478 15.4 Option Sensitivities and Surfaces 488 15.5 Automating Data Generation 491 15.6 Introduction to Statistical Distributions and Functions 499 15.7 Advanced Distributions 504 15.8 Summary and Conclusions 511 15.9 Exercises and Projects 511 CHAPTER 16 Bivariate Statistical Distributions and Two-Asset Option Pricing 515 16.1 Introduction and Objectives 515 16.2 Computing Integrals Using PDEs 516 16.3 The Drezner Algorithm 521 16.4 The Genz Algorithm and the West/Quantlib Implementations 521 16.5 Abramowitz and Stegun Approximation 525 16.6 Performance Testing 528 16.7 Gauss–Legendre Integration 529 16.8 Applications to Two-Asset Pricing 531 16.9 Trivariate Normal Distribution 536 16.10 Chooser Options 543 16.11 Conclusions and Summary 545 16.12 Exercises and Projects 546 CHAPTER 17 STL Algorithms in Detail 551 17.1 Introduction and Objectives 551 17.2 Binders and std::bind 554 17.3 Non-modifying Algorithms 557 17.4 Modifying Algorithms 567 17.5 Compile-Time Arrays 575 17.6 Summary and Conclusions 576 17.7 Exercises and Projects 576 17.8 Appendix: Review of STL Containers and Complexity Analysis 583 CHAPTER 18 STL Algorithms Part II 589 18.1 Introduction and Objectives 589 18.2 Mutating Algorithms 589 18.3 Numeric Algorithms 597 18.4 Sorting Algorithms 601 18.5 Sorted-Range Algorithms 604 18.5.5 Merging 608 18.6 Auxiliary Iterator Functions 609 18.7 Needle in a Haystack: Finding the Right STL Algorithm 612 18.8 Applications to Computational Finance 613 18.9 Advantages of STL Algorithms 613 18.10 Summary and Conclusions 614 18.11 Exercises and Projects 614 CHAPTER 19 An Introduction to Optimisation and the Solution of Nonlinear Equations 617 19.1 Introduction and Objectives 617 19.2 Mathematical and Numerical Background 618 19.3 Sequential Search Methods 619 19.4 Solutions of Nonlinear Equations 620 19.5 Fixed-Point Iteration 622 19.6 Aitken’s Acceleration Process 623 19.7 Software Framework 623 19.8 Implied Volatility 632 19.9 Solvers in the Boost C++ Libraries 632 19.10 Summary and Conclusions 633 19.11 Exercises and Projects 633 19.12 Appendix: The Banach Fixed-Point Theorem 636 CHAPTER 20 The Finite Difference Method for PDEs: Mathematical Background 641 20.1 Introduction and Objectives 641 20.2 General Convection–Diffusion–Reaction Equations and Black–Scholes PDE 641 20.3 PDE Preprocessing 64520.3.2 Reduction of PDE to Conservative Form 646 20.4 Maximum Principles for Parabolic PDEs 649 20.5 The Fichera Theory 650 20.6 Finite Difference Schemes: Properties and Requirements 654 20.7 Example: A Linear Two-Point Boundary Value Problem 655 20.8 Exponentially Fitted Schemes for Time-Dependent PDEs 659 20.9 Richardson Extrapolation 663 20.10 Summary and Conclusions 665 20.11 Exercises and Projects 666 CHAPTER 21 Software Framework for One-Factor Option Models 669 21.1 Introduction and Objectives 669 21.2 A Software Framework: Architecture and Context 669 21.3 Modelling PDEs and Finite Difference Schemes: What is Supported? 670 21.4 Several Versions of Alternating Direction Explicit 671 21.5 A Software Framework: Detailed Design and Implementation 673 21.6 C++ Code for PDE Classes 674 21.7 C++ Code for FDM Classes 679 21.8 Examples and Test Cases 690 21.9 Summary and Conclusions 693 21.10 Exercises and Projects 694 CHAPTER 22 Extending the Software Framework 701 22.1 Introduction and Objectives 701 22.2 Spline Interpolation of Option Values 701 22.3 Numerical Differentiation Foundations 704 22.4 Numerical Greeks 710 22.5 Constant Elasticity of Variance Model 715 22.6 Using Software Design (GOF) Patterns 715 22.7 Multiparadigm Design Patterns 720 22.8 Summary and Conclusions 721 22.9 Exercises and Projects 721 CHAPTER 23A PDE Software Framework in C++11 for a Class of Path-Dependent Options 727 23.1 Introduction and Objectives 727 23.2 Modelling PDEs and Initial Boundary Value Problems in the Functional Programming Style 728 23.3 PDE Preprocessing 731 23.4 The Anchoring PDE 732 23.5 ADE for Anchoring PDE 739 23.6 Useful Utilities 746 23.7 Accuracy and Performance 748 23.8 Summary and Conclusions 750 23.9 Exercises and Projects 751 CHAPTER 24 Ordinary Differential Equations and their Numerical Approximation 755 24.1 Introduction and Objectives 755 24.2 What is an ODE? 755 24.3 Classifying ODEs 756 24.4 A Palette of Model ODEs 757 24.5 Existence and Uniqueness Results 760 24.6 Overview of Numerical Methods for ODEs: The Big Picture 763 24.7 Creating ODE Solvers in C++ 770 24.8 Summary and Conclusions 776 24.9 Exercises and Projects 776 24.10 Appendix 778 CHAPTER 25 Advanced Ordinary Differential Equations and Method of Lines 781 25.1 Introduction and Objectives 781 25.2 An Introduction to the Boost Odeint Library 782 25.3 Systems of Stiff and Non-stiff Equations 791 25.4 Matrix Differential Equations 796 25.5 The Method of Lines: What is it and what are its Advantages? 799 25.6 Initial Foray in Computational Finance: MOL for One-Factor Black-Scholes PDE 801 25.7 Barrier Options 806 25.8 Using Exponential Fitting of Barrier Options 808 25.9 Summary and Conclusions 808 25.10 Exercises and Projects 809 CHAPTER 26 Random Number Generation and Distributions 819 26.1 Introduction and Objectives 819 26.2 What is a Random Number Generator? 820 26.3 What is a Distribution? 821 26.4 Some Initial Examples 825 26.5 Engines in Detail 827 26.6 Distributions in C++: The List 830 26.7 Back to the Future: C-Style Pseudo-Random Number Generation 831 26.8 Cryptographic Generators 833 26.9 Matrix Decomposition Methods 833 26.10 Generating Random Numbers 845 26.11 Summary and Conclusions 848 26.12 Exercises and Projects 849 CHAPTER 27 Microsoft .Net, C# and C++11 Interoperability 853 27.1 Introduction and Objectives 853 27.2 The Big Picture 854 27.3 Types 858 27.4 Memory Management 859 27.5 An Introduction to Native Classes 861 27.6 Interfaces and Abstract Classes 861 27.7 Use Case: C++/CLI as ‘Main Language’ 862 27.8 Use Case: Creating Proxies, Adapters and Wrappers for Legacy C++ Applications 864 27.8.1 Alternative: SWIG (Simplified Wrapper and Interface Generator) 871 27.9 ‘Back to the Future’ Use Case: Calling C# Code from C++11 872 27.10 Modelling Event-Driven Applications with Delegates 876 27.11 Use Case: Interfacing with Legacy Code 886 27.12 Assemblies and Namespaces for C++/CLI 889 27.13 Summary and Conclusions 895 27.14 Exercises and Projects 896 CHAPTER 28 C++ Concurrency, Part I Threads 899 28.1 Introduction and Objectives 899 28.2 Thread Fundamentals 900 28.3 Six Ways to Create a Thread 903 28.4 Intermezzo: Parallelising the Binomial Method 909 28.5 Atomics 916 28.6 Smart Pointers and the Thread-Safe Pointer Interface 924 28.7 Thread Synchronisation 926 28.8 When should we use Threads? 929 28.9 Summary and Conclusions 929 28.10 Exercises and Projects 930 CHAPTER 29 C++ Concurrency, Part II Tasks 935 29.1 Introduction and Objectives 935 29.2 Finding Concurrency: Motivation 936 29.3 Tasks and Task Decomposition 937 29.4 Futures and Promises 941 29.5 Shared Futures 945 29.6 Waiting on Tasks to Complete 948 29.7 Continuations and Futures in Boost 950 29.8 Pure Functions 952 29.9 Tasks versus Threads 953 29.10 Parallel Design Patterns 953 29.11 Summary and Conclusions 955 29.12 Quizzes, Exercises and Projects 955 CHAPTER 30 Parallel Patterns Language (PPL) 961 30.1 Introduction and Objectives 961 30.2 Parallel Algorithms 962 30.3 Partitioning Work 967 30.4 The Aggregation/Reduction Pattern in PPL 971 30.5 Concurrent Containers 977 30.6 An Introduction to the Asynchronous Agents Library and Event-Based Systems 978 30.7 A Design Plan to Implement a Framework Using Message Passing and Other Approaches 986 30.8 Summary and Conclusions 989 30.9 Exercises and Projects 990 CHAPTER 31 Monte Carlo Simulation, Part I 993 31.1 Introduction and Objectives 993 31.2 The Boost Parameters Library for the Impatient 995 31.3 Monte Carlo Version 1: The Monolith Program (‘Ball of Mud’) 1000 31.4 Policy-Based Design: Dynamic Polymorphism 1003 31.5 Policy-Based Design Approach: CRTP and Static Polymorphism 1011 31.6 Builders and their Subcontractors (Factory Method Pattern) 1013 31.7 Practical Issue: Structuring the Project Directory and File Contents 1014 31.8 Summary and Conclusions 1016 31.9 Exercises and Projects 1017 CHAPTER 32 Monte Carlo Simulation, Part II 1023 32.1 Introduction and Objectives 1023 32.2 Parallel Processing and Monte Carlo Simulation 1023 32.3 A Family of Predictor–Corrector Schemes 1033 32.4 An Example (CEV Model) 1038 32.5 Implementing the Monte Carlo Method Using the Asynchronous Agents Library 1041 32.6 Summary and Conclusions 1047 32.7 Exercises and Projects 1050 Appendix 1: Multiple-Precision Arithmetic 1053 Appendix 2: Computing Implied Volatility 1075 References 1109 Index 1117
£66.50
John Wiley & Sons Inc Antipatterns
Book SynopsisPatterns are popular in software development and used to identify different types of procedures, designs, or codes that work. AntiPatterns are the exact opposite, targeting common errors and issues that can cause a project to fail. This book provides practical guidelines on detecting AntiPatterns and the refactored solutions that correct them.Table of ContentsINTRODUCTION TO ANTIPATTERNS. Introduction to Patterns and AntiPatterns. AntiPatterns Reference Model. Templates for Patterns and AntiPatterns. Advice for Using AntiPatterns. ANTIPATTERNS Software Development AntiPatterns. Software Architecture AntiPatterns. Software Project Management AntiPatterns. CONCLUSIONS AND RESOURCES. Appendices. Index.
£41.60
John Wiley & Sons Inc SoftwareEnabled Control Information Technology
Book Synopsis* Discusses open systems, object orientation, software agents, domain-specific languages, component architectures, as well as the dramatic IT-enabled improvements in memory, communication, and processing resources that are now available for sophisticated control algorithms to exploit.Trade Review“…a serious and detailed look at much exciting and ambitious work…gives an excellent look at what will soon become possible – and probably commonplace – in advanced control systems.” (Measurement & Control) "...an invaluable resource for research scientists, practicing engineers...graduate and undergraduate students...academic, corporate, and main libraries cannot afford to be without a copy of this outstanding publication.... Essential." (Choice, Vol. 41, No. 3, November 2003)Table of ContentsContributors. Preface. Introduction. The Sec Vision (H. Gill & J. Bay). Trends and Technologies For Unmanned Aerial Vehicles (D. Van Cleave). Previewing the Software-Enabled Control Research Portfolio (T. Samad & G. Balas). II: SOFTWARE ARCHITECTURES FOR REAL-TIME CONTROL. Open Control Platform: A Software Platform Supporting Advances in UAV Control Technology (J. Paunicka, et al.). A Prototype Open Control Platform For Reconfigurable Control Systems (L. Wills, et al.). Real-Time Adaptive Resource Management for Multimodel Control (M. Agrawal, et al.). Heterogeneous Modeling and Design of Control Systems (X. Liu, et al.). Embedded Control Systems Development with Giotto (T. Henzinger, et al.). III: ONLINE MODELING AND CONTROL. Online Control Customization Via Optimization-Based Control (R. Murray, et al.). Model Predictive Neural Control For Aggressive Helicop ter Maneuvers (E. Wan, et al.). Active Model Estimation For Complex Autonomous Systems (M. Campbell, et al.). An Intelligent Methodology For Real-Time Adaptive Mode Transitioning and Limit Avoidance of Unmanned Aerial Vehicles (G. Vachtsevanos, et al.). Implementation of Online Control Customization Within the Open Control Platform (R. Bhattacharya & G. Balas). IV: HYBRID DYNAMICAL SYSTEMS. Hybrid Systems: Review and Recent Progress (P. Antsaklis & X. Koutsoukos). A Maneuver-Based Hybrid Control Architecture for Autonomous Vehicle Motion Planning (E. Frazzoli, et al.). Multimodal Control of Constrained Nonlinear Systems (T. Koo, et al.). Towards Fault-Adaptive Control of Complex Dynamical Systems (G. Karsai, et al.). Computational Tools For the Verification of Hybrid Systems (C. Tomlin, et al.). V: CONCLUSIONS. The Outlook For Software-Enabled Control (T. Samad & G. Balas). Index. About the Editors.
£154.76
John Wiley & Sons Inc Simulation with Visual Slam and Awesim
Book SynopsisThis book presents a process for problem resolution, policy crafting, and decision making based on the use of modeling and simulation. Detailed descriptions of the methods by which Visual SLAM and AweSim, version 3, support this process are presented.Table of ContentsINTRODUCTION TO SIMULATION. Introduction to Modeling and Simulation. Simulation Modeling Perspectives. Modeling and Simulation Process. Applications of Simulation. VISUAL SLAM NETWORK MODELING AND AWESIM. Basic Network Modeling. Resources and Gates. Interface, Find and Assembly Modeling. Visual Subnetwork Modeling. Awesim Simulation Support System. SIMULATION ANALYSIS: PRACTICE AND THEORY. Awesim Analysis of Simulation Outputs. Random Sampling from Distributions. Statistical Aspects of Simulation. VISUAL SLAM DISCRETE EVENT, CONTINUOUS AND COMBINED MODELING. Network Modeling with Visual Basic Inserts. Network Modeling with C Inserts. Network Modeling with Continuous Variables. Discrete Event Simulation Using Visual Basic. Discrete Event Simulation Using C Functions. Continuous Modeling. Combined Modeling. Indexes.
£188.06
John Wiley & Sons Inc The Software Project Managers Handbook
Book SynopsisSoftware project managers and their team members work individually towards a common goal. This book guides both, emphasizing basic principles that work at work. Software at work should be pleasant and productive, not just one or the other. This book emphasizes software project management at work. The author''s unique approach concentrates on the concept that success on software projects has more to do with how people think individually and in groups than with programming. He summarizes past successful projects and why others failed. Visibility and communication are more important than SQL and C. The book discusses the technical and people aspects of software and how they relate to one another. The first part of the text discusses four themes: (1) people, process, product, (2) visibility, (3) configuration management, and (4) IEEE Standards. These themes stress thinking, organization, using what others have built, and people. The second part describes the softwTrade Review"…clearly explains what it takes to be a good software project manager...a first-rate information source for novice project managers." (IEEE Software Magazine, November/December 2005) "...a useful book for the classroom or the workplace...I advise purchasing this book and applying the author's ideas." (Software Quality Professional, September 2005) "...a good reference for individuals just starting off as IT project managers...For those preparing for the CSQE exam, this book can be a good reference..." (Software Quality Professional, June-August 2005) "…helps guide software project managers and their team members in working towards common goals." (IEEE Computer Magazine, October 2004)Table of ContentsPreface. Part 1. 1 What Makes a Good Software Manager? 1.1 People Perspective. 1.2 Business Perspective. 1.3 Process Perspective. 1.4 Key Thoughts in This Chapter. References. 2 Four Basics That Work. 2.1 People, Process, and Product. 2.2 Visibility. 2.3 Configuration Management. 2.4 Standards. 2.5 Key Thoughts in This Chapter. References. 3 What Doesn’t Work and Why. 3.1 When the 3Ps Are Out of Balance. 3.2 When There’s Not Enough Visibility. 3.3 When Configuration Management is Missing or Abused. 3.4 When Standards are Dismissed. 3.5 Key Thoughts in This Chapter. Reference. 4 Managing a Project Day by Day. 4.1 Balancing the 3Ps to Create a Good Environment. 4.2 Visibility: Project Control in a Simple Equation. 4.3 CM: Managing Baselines with Milestones. 4.4 Looking to Standards for Help. 4.5 Key Thoughts in This Chapter. References. Part 2. 5 Requirements. 5.1 Balancing the 3Ps: Requirements Analysis, Documentation, and Management. 5.2 Visibility: Making Requirements Known. 5.3 Using CM. 5.4 Using Standards. 5.5 Key Thoughts in this Chapter. References. 6 Planning. 6.1 Elements of a Good Plan. 6.2 Balancing the 3Ps: Selecting the Process. 6.3 Making the Project Visible: Planning Techniques. 6.4 Making the Project Visible: Estimating Techniques. 6.5 Configuration Management. 6.6 Standards. 6.7 Key Thoughts in this Chapter. References. 7 Risk Management. 7.1 A Task Overview. 7.2 Balancing The 3Ps: Uncertainty and Choice. 7.3 Making Risk Visible. 7.4 Other Ways to Manage Risk. 7.5 Configuration Management. 7.6 Using Standards. 7.7 Key Thoughts in this Chapter. References. Part 3. 8 Design. 8.1 The Challenge of the 3Ps. 8.2 Visibility—Expressing the Design. 8.3 Design in the Code. 8.4 Design and Process. 8.5 Designing with COTS. 8.6 Configuration Management. 8.7 Standards: Writing the SDD. 8.8 Key Thoughts in this Chapter. References. 9 Integration and Testing. 9.1 Some I&T Myths. 9.2 Managing the 3Ps: People. 9.3 Managing the 3Ps: Process. 9.4 Visibility: Testing Techniques and Details. 9.5 Configuration Management. 9.6 Standards: Documenting the Test Plan. 9.7 Key Thoughts in this Chapter. References. 10 Software Maintenance. 10.1 What is Maintenance. 10.2 Balancing the 3Ps: Managing the Maintainers. 10.3 Balancing the 3Ps: Managing the Process. 10.4 Balancing the 3Ps: Making the Most of the Product. 10.5 Visibility: Understanding the Maintenance Stages. 10.6 Configuration Management. 10.7 Using Standards. 10.8 Key Thoughts in this Chapter. References. Part 4. 11 Cookbook. 11.1 Essentials. 11.2 Opt: A Waterfall Project. 11.3 System Upgrade: An Evolutionary Project. 11.4 CTRAN: A Spiral Project. 11.5 Other Software Projects. 11.6 Key Thoughts in this Chapter. References. Appendix A Documents for the OPT Project. A.1 OPT Executive Sponsor Memorandum. A.2 OPT Project Context Document. A.3 OPT Configuration Management Plan. A.4 OPT Concept of Operations. A.5 OPT Software Requirements Specification. A.6 OPT Software Project Management Plan. A.7 OPT Software Design Description. Appendix B Configuration Management. B.1 Will The Real CM Please Stand Up? B.2 The Main Ingredients. B.3 Baselines. B.4 CM Activities. B.5 CM People. B.6 CM Plan. B.7 A CM Sketch. B.8 Summary. References. Appendix C Structured Analysis and Design. C.1 Structured Analysis. C.2 Structured Design. References. Appendix D Annotated Bibliography. D.1 Process. D.2 Visibility. D.3 People. D.4 Journals. Index. About the Author.
£105.26
John Wiley & Sons Inc Software Testing and Quality Assurance
Book SynopsisA superior primer on software testing and quality assurance, from integration to execution and automation This important new work fills the pressing need for a user-friendly text that aims to provide software engineers, software quality professionals, software developers, and students with the fundamental developments in testing theory and common testing practices. Software Testing and Quality Assurance: Theory and Practice equips readers with a solid understanding of: Practices that support the production of quality software Software testing techniques Life-cycle models for requirements, defects, test cases, and test results Process models for units, integration, system, and acceptance testing How to build test teams, including recruiting and retaining test engineers Quality Models, Capability Maturity Model, Testing Maturity Model, and Test Process Improvement Model Expertly balancing theoTrade Review"The text is user friendly, very clear, and supported by appropriate tables and process figures, combined with examples and process execution steps. There are useful detailed explanations inside text boxes and table, with nicely designed and explained figures, as well as generated software code samples...This is a very advanced book that I highly recommend to all software testing and QA practioners." (Computing Reviews, November 5, 2008) This book provides a comprehensive review of topics dealing with software testing and quality assurance. The writing style is plain but efficient, while the content covers theoretical (to some extent) and practical concepts in this field. Naik (Univ. of Waterloo, Ontario, Canada) and Tripathy (NEC Laboratories America Inc.) seem to have limited exposure to current research in software testing, but they adequately cover the fundamentals. The literature review sections are useful for researchers who wish to expand their knowledge on a specific topic, with references well placed at the end of individual chapters. The rather basic exercises are not really helpful for instructors. The work would benefit by a few more supportive examples, although the ones present are well designed to illustrate the theory, where available. Software testing may be considered a relatively specialized computer science topic, existing in the few departments where a software-testing expert resides or in academic institutions offering a software engineering degree. However, it is nevertheless an important subject, with extended applications in industry, the concepts of which are covered adequately here. This volume would be useful for instructional purposes at the undergraduate level and for professionals seeking references to more specialized information. Summing Up: Recommended. Upper-division undergraduates, faculty, researchers, and practitioners. – D. Papamichail, University of Miami (Choice, 2009)Table of ContentsPreface. List of Figures. List of Tables. CHAPTER 1: BASIC CONCEPTS AND PRELIMINARIES. 1.1 Quality Revolution. 1.2 Software Quality. 1.3 Role of Testing. 1.4 Verification and Validation. 1.5 Failure, Error, Fault, and Defect. 1.6 Notion of Software Reliability. 1.7 Objectives of Testing. 1.8 What Is a Test Case? 1.9 Expected Outcome. 1.10 Concept of Complete Testing. 1.11 Central Issue in Testing. 1.12 Testing Activities. 1.13 Test Levels. 1.14 Sources of Information for Test Case Studies. 1.15 White-Box and Black-Box Testing. 1.16 Test Planning and Design. 1.17 Monitoring and Measuring Test Execution. 1.18 Test Tools and Automation. 1.19 Test Team Organization and Management. 1.20 Outline of Book. References. Exercises. CHAPTER 2: THEORY OF PROGRAM TESTING. 2.1 Basic Concepts in Testing Theory. 2.2 Theory of Goodenough and Gerhart. 2.3 Theory of Weyuker and Ostrand. 2.4 Theory of Gourlay. 2.5 Adequacy of Testing. 2.6 Limitations of Testing. 2.7 Summary. Literature Review. References. Exercises. CHAPTER 3: UNIT TESTING. 3.1 Concept of Unit Testing. 3.2 Static Unit Testing. 3.3 Defect Prevention. 3.4 Dynamic Unit Testing. 3.5 Mutation Testing. 3.6 Debugging. 3.7 Unit Testing in extreme Programming. 3.8 JUnit: Framework for Unit Testing. 3.9 Tools for Unit Testing. 3.10 Summary. Literature Review. References. Exercises. CHAPTER 4: CONTROL FLOW TESTING. 4.1 Basic Idea. 4.2 Outline of Control Flow Testing. 4.3 Control Flow Graph. 4.4 Paths in a Control Flow Chart. 4.5 Path Selection Criteria. 4.6 Generating Test Input. 4.7 Examples of Test Data Selection. 4.8 Containing Infeasible Paths. 4.9 Summary. Literature Review. References. Exercises. CHAPTER 5: DATA FLOW TESTING. 5.1 General Idea. 5.2 Data flow Anomaly. 5.3 Overview of Dynamic Data flow Testing. 5.4 Data Flow Graph. 5.5 Data Flow Terms. 5.6 Data Flow Testing Criteria. 5.7 Comparison of Data Flow Test Selection Criteria. 5.8 Feasible Paths and Test Selection Criteria. 5.9 Comparison of Testing Techniques. 5.10 Summary. Literature Review. References. Exercises. CHAPTER 6: DOMAIN TESTING. 6.1 Domain Error. 6.2 Testing for Domain Errors. 6.3 Sources of Domain. 6.4 Types of Domain Errors. 6.5 ON and OFF Points. 6.6 Test Selection Criterion. 6.7 Summary. Literature Review. References. Exercises. CHAPTER 7: SYSTEM INTEGRATION. 7.1 Concept of Integration Testing. 7.2 Different Types of Interfaces and Interface Errors. 7.3 Granularity of System Integration Testing. 7.4 System Integration Techniques. 7.5 Software and Hardware Integration. 7.6 Test Plan for System Integration. 7.7 Off-the Shelf Component Integration. 7.8 Summary. Literature Review. References. Exercises. CHAPTER 8: SYSTEM TEST CATEGORIES. 8.1 Taxonomy of System Tests. 8.2 Basic Tests. 8.3 Functionality Tests. 8.4 Robustness Tests. 8.5 Interoperability Tests. 8.6 Performance Tests. 8.7 Scalability Tests. 8.8 Stress Tests. 8.9 Load and Stability Tests. 8.10 Reliability Tests. 8.11 Regression Tests. 8.12 Documentation Tests. 8.13 Regulatory Tests. 8.14 Summary. Literature Review. References. Exercises. CHAPTER 9: FUNCTIONAL TESTING. 9.1 Functional Testing Concepts of Howden. 9.2 Complexity of Applying Functional Testing. 9.3 Pairwise Testing. 9.4 Equivalence Class Partitioning. 9.5 Boundary Value Analysis. 9.6 Decision Tables. 9.7 Random Testing. 9.8 Error Guessing. 9.9 Category Partition. 9.10 Summary. Literature review. References. Exercises. CHAPTER 10: TEST GENERATION FROM FSM MODELS. 10.1 State-Oriented Model. 10.2 Points of Control and Observation. 10.3 Finite-State Machine. 10.4 Test Generation from an FSM. 10.5 Transition Tour Method. 10.6 Testing with State Verification. 10.7 Unique Input-Output Sequence. 10.8 Distinguishing Sequence. 10.9 Characterizing Sequence. 10.10 Test Architecture. 10.11 Testing and Test Control Notation Version 3 (TTCN-3). 10.12 Extended FSMs. 10.13 Test Generation from EFSM Models. 10.14 Additional Coverage Criteria for System Testing. 10.15 Summary. Literature review. References. Exercises. CHAPTER 11: SYSTEM TEST DESIGN. 11.1 Test Design Factors. 11.2 Requirement Identification. 11.3 Characteristics of Testable Requirements. 11.4 Test Objective Identification. 11.5 Example. 11.6 Modeling a Test Design Process. 11.7 Modeling Test Results. 11.8 Test Design Preparedness Metrics. 11.9 Test Case Design Effectiveness. 11.10 Summary. Literature Review. References. Exercises. CHAPTER 12: SYSTEM TEST PLANNING AND AUTOMATION. 12.1 Structure of a System Test Plan. 12.2 Introduction and Feature Description. 12.3 Assumption. 12.4 Test Approach. 12.5 Test Suite Structure. 12.6 Test Environment. 12.7 Test Execution Strategy. 12.8 Test Effort Estimation. 12.9 Scheduling and Test Milestones. 12.10 System Test Automation. 12.11 Evaluation and Selection of Test Automation Tools. 12.12 Test Selection Guidelines for Automation. 12.13 Characteristics of Automated Test Cases. 12.14 Structure of an Automated Test Case. 12.15 Test Automation Infrastructure. 12.16 Summary. Literature Review. References. Exercises. CHAPTER 13: SYSTEM TEST EXECUTION. 13.1 Basic Ideas. 13.2 Modeling Defects. 13.3 Preparedness to Start System Testing. 13.4 Metrics for Tracking System Test. 13.5 Orthogonal Defect Classification. 13.6 Defect Causal Analysis. 13.7 Beta Testing. 13.8 First Customer Shipment. 13.9 System Test Report. 13.10 Product Sustaining. 13.11 Measuring Test Effectiveness. 13.12 Summary. Literature Review. References. Exercises. CHAPTER 14: ACCEPTANCE TESTING. 14.1 Types of Acceptance Testing. 14.2 Acceptance Criteria. 14.3 Selection of Acceptance Criteria. 14.4 Acceptance Test Plan. 14.5 Acceptance Test Execution. 14.6 Acceptance Test Report. 14.7 Acceptance Testing in extreme Programming. 14.8 Summary. Literature Review. References. Exercises. CHAPTER 15: SOFTWARE RELIABILTY. 15.1 What is Reliability? 15.2 Definitions of Software Reliability. 15.3 Factors Influencing Software Reliability. 15.4 Applications of Software Reliability. 15.5 Operational Profiles. 15.6 Reliability Models. 15.7 Summary. Literature Review. References. Exercises. CHAPTER 16: TEST TEAM ORGANIZATION. 16.1 Test Groups. 16.2 Software Quality Assurance Group. 16.3 System Test Team Hierarchy. 16.4 Effective Staffing of Test Engineers. 16.5 Recruiting Test Engineers. 16.6 Retaining Test Engineers. 16.7 Team Building. 16.8 Summary. Literature Review. References. Exercises. CHAPTER 17: SOFTWARE QUALITY. 17.1 Five Views of Software Quality. 17.2 McCall’s Quality Factors and Criteria. 17.3 ISO 9126 Quality Characteristics. 17.4 ISO 9000:2000 Software Quality Standard. 17.5 Summary. Literature Review. References. Exercises. CHAPTER 18: MATURITY MODELS. 18.1 Basic Idea in Software Process. 18.2 Capability Maturity Models. 18.3 Test Process Improvement. 18.4 Testing Maturity Model. 18.5 Summary. Literature Review. References. Exercises. GLOSSARY. INDEX.
£107.06
Wiley SelfTuning Systems
Book SynopsisGeared to the usersa needs, this work provides comprehensive coverage of the main techniques and methods necessary to construct a self--tuning and self--adaptive system.Table of ContentsSYSTEM IDENTIFICATION FOR SELF-TUNING. System and Signal Models. Recursive Estimation. Using Recursive Estimators. Computational Alternatives for Recursive Estimation. Convergence Analysis for Recursive Algorithms. SELF-TUNING CONTROLLERS. Pole Assignment Control. Minimum Variance Control. Multistage Predictive Control. SELF-TUNING SIGNAL PROCESSING. Prediction. Self-Tuning Filters. SPECIAL TOPICS. Two-Dimensional Self-Tuning Algorithms. Self-Tuning Extremum Control. Frequency Domain Self-Tuning. Appendix. Index.
£367.16
O'Reilly Media Mercurial
Book SynopsisUsed by Mozilla, Python, and various open source projects on Linux, Windows, Mac OS X, and several variants of Unix, Mercurial permits virtually an infinite variety of methods for development and collaboration. This book takes you step-by-step through ways to track, merge, and manage software projects with this open source version control system.
£25.59
O'Reilly Media 97 Things Every Project Manager Should Know
Book SynopsisContains 97 short and practical tips from some of the world's most experienced project managers and software developers. This book offers highlights software projects, and contains the project management principles applicable to projects of different types in different industries.
£19.19
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
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