Software Engineering Books
CRC Press A Concise Introduction to Robot Programming with
Book SynopsisA Concise Introduction to Robot Programming with ROS2 provides the reader with the concepts and tools necessary to bring a robot to life through programming. It will equip the reader with the skills necessary to undertake projects with ROS2, the new version of ROS. It is not necessary to have previous experience with ROS2 as it will describe its concepts, tools, and methodologies from the beginning.Key Features Uses the two programming languages officially supported in ROS2 (C++, mainly, and Python) Approaches ROS2 from three different but complementary dimensions: the Community, Computation Graph, and the Workspace Includes a complete simulated robot, development and testing strategies, Behavior Trees, and Nav2 description, setup, and use A GitHub repository with code to assist readers It will appeal to motivated engineering students, engineers, and professionals working with robot programming.
£46.54
CRC Press BiteSize Python for Absolute Beginners
Book SynopsisAs an introduction to Python, this book allows readers to take a slow and steady approach to understanding Python code, explaining concepts, connecting programming with real-life examples, writing Python programs, and completing case studies.While there are many books, websites, and online courses about the topic, we break down Python programming into easily digestible lessons of less than 5 minutes each, following our BiteSize approach. Each lesson begins with a clear and short introduction to the topic. This gives you a strong base to start from and gets you ready for deeper learning. Then, you will see coding demonstrations that show the ideas discussed. These examples are simple and useful, helping you really understand the concepts. Youâll then practice tasks at different difficulty levels, so you can test your knowledge and increase your confidence. Youâll also play with case studies to solve real-world problems. Tips are included to show how you can incorporate generative AI into your learning toolkit, using it for feedback, practice exercises, code reviews, and exploring advanced topics. Recommended AI prompts can help you identify areas for improvement, review key concepts, and track your progress.This book is designed for absolute beginners with no prior programming experience. It is ideal for individuals with busy schedules or limited time for studying.
£47.49
CRC Press Python Experiments in Physics and Astronomy
Book SynopsisPython Experiments in Physics and Astronomy acts as a resource for science and engineering students or faculty who would like to see how a diverse selection of topics can be analyzed and simulated using Python programs.
£71.24
CRC Press Beyond Code
Book SynopsisAI-powered coding tools are revolutionizing software development, transforming programming from a specialized skill into an accessible educational practice across disciplines. This book investigates how tools such as Cursor AI, GitHub Copilot, and Replit's Ghostwriter are dismantling traditional barriers to entry for learnersâparticularly those from non-STEM backgroundsâby enabling natural language code generation, intelligent debugging, and interactive, project-based learning. Bridging the gap between theoretical instruction and practical application, the book serves as both a guide and a critical framework for integrating generative AI into curricula. It highlights how these tools expand the boundaries of programming education by supporting interdisciplinary applications, from literary analysis to creative writing, thereby making coding relevant and actionable for students in the humanities and beyond. The book equips educators with the tools and strategies necessary to incorporate AI-assisted programming into diverse academic contexts by offering lesson plans and adaptable project models. This resource is essential for instructors seeking to demystify coding, promote inclusivity in technical learning, and reimagine the role of software literacy in the twenty-first-century classroom.
£47.49
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 Foundations of Scalable Systems
Book SynopsisThis practical book covers design approaches and technologies that make it possible to scale an application quickly and cost-effectively. Author Ian Gorton takes software architects and developers through the principles of foundational distributed systems.
£42.39
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
O'Reilly Media Learning Typescript
Book SynopsisLearning TypeScript takes beginner to intermediate JavaScript programmers from knowing nothing about "types" or a "type system" to full mastery of the fundamentals of TypeScript. It's more than a means to find bugs and typos--it's a useful system for declaring the way our JavaScript should work and helping us stick to it.
£38.39
O'Reilly Media Software Developers Career Handbook The
Book SynopsisIn this insightful and entertaining book, Michael Lopp recalls his own make-or-break moments with Silicon Valley giants such as Apple, Slack, Pinterest, Palantir, Netscape, and Symantec to help you make better, more mindful career decisions.
£29.59
O'Reilly Media Building Solutions with the Microsoft Power
Book SynopsisWith this practical guide, power users and developers will discover ways to resolve everyday challenges by building end-to-end solutions with the Microsoft Power Platform.
£47.99
O'Reilly Media Head First Software Architecture
Book Synopsis
£47.99
O'Reilly Software Engineering for Data Scientists
Book Synopsis
£44.79
Cambridge University Press An Invitation to Applied Category Theory
Book SynopsisCategory theory reveals commonalities between structures of all sorts. This self-contained tour of applied category theory shows its potential in science, engineering, and beyond. Each chapter discusses a real-world application using category-theoretic tools, all of which are introduced in an accessible way with many examples and exercises.Trade Review'Category theory was always applied, but traditionally within pure mathematics. Now it is being used to clarify and synthesize a broad range of topics outside mathematics: from computer science to linguistics, from quantum theory to chemistry, and beyond. Charmingly informal yet crystal clear, Fong and Spivak's book does a wonderful job of demonstrating the power of category theory to beginners – even beginners without much background in pure mathematics.' John Baez, University of California, Riverside'The authors quite rightly describe category theory as a tool for thinking. So if your work requires thinking, this book is for you.' Bartosz Milewski, author of Category Theory for Programmers'This book provides a fantastic introduction to how category is not just abstract nonsense but can be applied to real-world engineering problems, pedagogical while still broad, and fun. A must read for all those entering the exciting emerging field of applied category theory by two key players of this community.' Bob Coecke, University of Oxford'An invitation to Applied Category Theory: Seven Sketches in Compositionality provides a grand tour of the fascinating emergent field of applied category theory that centers examples and use cases before gently introducing the accompanying abstract notions. Fong and Spivak should be congratulated for providing this accessible broad viewpoint to illustrate what category theory is all about vis-à-vis the real world.' Emily Riehl, The Johns Hopkins University'An Invitation to Applied Category Theory is clearly and entertainingly written, and provides a great entry into the world of applied category theory. It is chock full of concrete examples and illustrated with clear diagrams … Fong and Spivak will whet your appetite for learning about categories and how they - and the categorical way of thinking - can be applied in and beyond mathematics. And they will give you the means to do that in a self-contained text.' David Jaz Myers, MAA Reviews'Fong and Spivak's book is highly recommendable for anyone with even a passing interest in category theory in general. And it is mandatory reading for scholars aiming to apply category theory to real world problems.' Fernando A. Tohme, MathSciNet'The presentation is highly visual, employing graphs (nodes and edges), directed graphs, and hypergraphs. In addition, exercises intersperse each presentation, and the solutions to many of the exercises are included. Finally, the chapters include concluding summaries, with suggestions for further study. The book contains scores of references. In short, an excellent self-study resource for those interested in learning about applications of category theory to real-world problems.' J. T. Saccoman, Choice'… highly recommended.' Berthold Stoge, IUCr Journals CRYSTALLOGRAPHY JOURNALS ONLINETable of ContentsPreface; 1. Generative effects: orders and Galois connections; 2. Resource theories: monoidal preorders and enrichment; 3. Databases: categories, functors, and universal constructions; 4. Collaborative design: profunctors, categorification, and monoidal categories; 5. Signal flow graphs: props, presentations, and proofs; 6. Electric circuits: hypergraph categories and operads; 7. Logic of behavior: sheaves, toposes, and internal languages; Appendix. Exercise solutions; References; Index.
£41.79
John Wiley & Sons Inc Professional Android
Book SynopsisThe comprehensive developer guide to the latest Android features and capabilities Professional Android, 4th Edition shows developers how to leverage the latest features of Android to create robust and compelling mobile apps. This hands-on approach provides in-depth coverage through a series of projects, each introducing a new Android platform feature and highlighting the techniques and best practices that exploit its utmost functionality. The exercises begin simply, and gradually build into advanced Android development. Clear, concise examples show you how to quickly construct real-world mobile applications. This book is your guide to smart, efficient, effective Android development. Learn the best practices that get more out of Android Understand the anatomy, lifecycle, and UI metaphor of Android apps Design for all mobile platforms, including tablets Utilize both the Android framework and Google Play services Table of ContentsINTRODUCTION xxxi CHAPTER 1: HELLO, ANDROID 1 Android Application Development 1 A Little Background 2 The Not-So-Distant Past 3 Living in the Future 3 The Android Ecosystem 3 Pre-installed Android Applications 4 Android SDK Features 5 What Does Android Run On? 6 Why Develop for Mobile? 6 Why Develop for Android? 7 Introducing the Development Framework 7 What Comes in the Box 8 Understanding the Android Software Stack 8 The Android Run Time 10 Android Application Architecture 11 Android Libraries 12 CHAPTER 2: GETTING STARTED 13 Getting Started Developing Android Apps 14 Developing for Android 15 What You Need to Begin 15 Creating Your First Android Application 20 Getting Started Writing Android Apps Using Kotlin 35 Using the Android Support Library Package 36 Developing for Mobile and Embedded Devices 39 Hardware-Imposed Design Considerations 39 Considering the User’s Environment 43 Developing for Android 44 Android Development Tools 48 Android Studio 49 The Android Virtual Device Manager 51 The Android Emulator 51 Android Profiler 52 The Android Debug Bridge 54 APK Analyzer 54 The Lint Tool 55 Monkey, Monkey Runner, and Espresso UI Testing 55 Gradle 56 CHAPTER 3: APPLICATIONS AND ACTIVITIES AND FRAGMENTS, OH MY! 57 Applications, Activities, and Fragments 58 The Components of an Android Application 58 The Android Application Life Cycle, Priority, and Process States 59 Introducing the Android Application Class 61 A Closer Look at Android Activities 61 Creating Activities 62 Using the AppCompatActivity 63 The Activity Life Cycle 64 Responding to Memory Pressure 71 Introducing Fragments 73 Creating New Fragments 73 The Fragment Life Cycle 74 Introducing the Fragment Manager 79 Adding Fragments to Activities 79 Communicating Between Fragments and Activities 85 Fragments without User Interfaces 86 Building an Earthquake Viewer Application 87 CHAPTER 4: DEFINING THE ANDROID MANIFEST AND GRADLE BUILD FILES, AND EXTERNALIZING RESOURCES 95 The Manifest, Build Files, and Resources 96 Introducing the Android Manifest 96 Configuring the Gradle Build 101 Gradle Settings File 101 Project Gradle Build File 102 Module Gradle Build Files 102 Externalizing Resources 107 Creating Resources 108 Using Resources 119 Creating Resources for Different Languages and Hardware 122 Runtime Configuration Changes 126 CHAPTER 5: BUILDING USER INTERFACES 129 Fundamental Android Design 130 Density-Independent Design 130 Android User Interface Fundamentals 131 Assigning User Interfaces to Activities 132 Introducing Layouts 132 Defining Layouts 134 Using Layouts to Create Device-Independent User Interfaces 136 Optimizing Layouts 139 The Android Widget Toolbox 143 Working with Lists and Grids 144 Recycler View and Layout Managers 145 Introducing Adapters 146 Returning to the Earthquake Viewer Application 149 Introducing Data Binding 150 Enabling Data Binding 151 Variables in Data Binding 152 Data Binding for the Earthquake Viewer Application 153 Creating New Views 155 Modifying Existing Views 155 Creating Compound Controls 159 Creating Simple Compound Controls as a Layout 161 Creating Custom Views 162 Using Custom Controls 176 CHAPTER 6: INTENTS AND BROADCAST RECEIVERS 177 Using Intents and Broadcast Receivers 178 Using Intents to Launch Activities 178 Explicitly Starting New Activities 179 Implicit Intents and Late Runtime Binding 179 Determining If an Intent Will Resolve 180 Returning Results from Activities 181 Using Platform-Native Actions to Launch Activities 184 Creating Intent Filters to Receive Implicit Intents 186 Defining an Intent Filter 186 Using Intent Filters for Plug-Ins and Extensibility 194 Introducing Linkify 198 Native Linkify Link Types 198 Creating Custom Link Strings 199 Using the Match Filter 200 Using the Transform Filter 200 Using Intents to Broadcast Events 200 Broadcasting Events with Intents 201 Listening for Intent Broadcasts with Broadcast Receivers 202 Registering Broadcast Receivers in Code 203 Registering Broadcast Receivers in Your Application Manifest 204 Managing Manifest Receivers at Run Time 204 Monitoring Device State Changes through Broadcast Intents 205 Introducing the Local Broadcast Manager 207 Introducing Pending Intents 208 CHAPTER 7: USING INTERNET RESOURCES 211 Connecting to the Internet 211 Connecting, Downloading, and Parsing Internet Resources 212 Why Build a Native Internet App? 212 Connecting to an Internet Resource 213 Performing Network Operations on Background Threads Using View Models, Live Data, and Asynchronous Tasks 214 Parsing XML Using the XML Pull Parser 219 Connecting the Earthquake Viewer to the Internet 220 Parsing JSON Using the JSON Parser 228 Using the Download Manager 233 Downloading Files 233 Customizing Download Manager Notifications 235 Specifying a Download Location 237 Canceling and Removing Downloads 238 Querying the Download Manager 238 Best Practices for Downloading Data without Draining the Battery 241 An Introduction to Internet Services and Cloud Computing 242 CHAPTER 8: FILES, SAVING STATE, AND USER PREFERENCES 245 Saving Files, States, and Preferences 246 Saving and Restoring Activity and Fragment Instance State Using the Lifecycle Handlers 246 Retaining Instance State with Headless Fragments and View Models 248 View Models and Live Data 248 Headless Fragments 251 Creating and Saving Shared Preferences 252 Retrieving Shared Preferences 253 Introducing On Shared Preference Change Listeners 254 Configuring Auto Backup of Application Files and Shared Preferences 254 Building a Preference UI 256 Using the Preference Support Library 256 Defining a Preference Screen Layout in XML 257 Introducing the Preference Fragment 260 Creating a Settings Activity for the Earthquake Monitor 261 Including Static Files as Resources 267 Working with the Filesystem 267 File-Management Tools 267 Creating Files on Application-Specifi c Internal Storage 268 Creating Files on Application-Specifi c External Storage 268 Accessing Public Directories Using Scoped Directory Access 270 Sharing Files Using File Provider 274 Creating a File Provider 274 Sharing a File Using a File Provider 275 Receiving a File from a File Provider 275 Accessing Files from Other Applications Using the Storage Access Framework 275 Requesting Temporary Access to Files 276 Requesting Persistent Access to Files 277 Requesting Access to Directories 277 Creating New Files 278 Using URI-Based Permissions 278 CHAPTER 9: CREATING AND USING DATABASES 281 Introducing Structured Data Storage in Android 282 Storing Data Using the Room Persistence Library 282 Adding the Room Persistence Library 283 Defining a Room Database 284 Persisting Complex Objects Using Type Convertors 286 Defining Room Database Interactions Using Data Access Objects 288 Performing Room Database Interactions 291 Monitoring Query Result Changes with Live Data 292 Persisting Earthquakes to a Database with Room 294 Working with SQLite Databases 298 Input Validation and SQL Injection 299 Cursors and Content Values 299 Defining a Database Contract 300 Introducing the SQLiteOpenHelper 300 Opening Databases with the SQLite Open Helper 302 Opening and Creating Databases without the SQLite Open Helper 303 Adding, Updating, and Deleting Rows 303 Querying a Database 305 Extracting Values from a Cursor 307 Introducing the Firebase Realtime Database 308 Adding Firebase to Your App 309 Defining a Firebase Database and Defining Access Rules 311 Adding, Modifying, Deleting, and Querying Data from a Firebase Realtime Database 313 CHAPTER 10: CONTENT PROVIDERS AND SEARCH 317 Introducing Content Providers 318 Why Should I Use Content Providers? 318 Creating Content Providers 319 Creating the Content Provider’s Database 320 Registering Content Providers 321 Publishing Your Content Provider’s URI Address 321 Implementing Content Provider Queries 322 Content Provider Transactions 325 Sharing Files Using a Content Provider 327 Adding Permission Requirements to Content Providers 328 Accessing Content Providers with Content Resolvers 330 Querying Content Providers 330 Cancelling Queries 333 Querying for Content Asynchronously with a Cursor Loader 333 Adding, Deleting, and Updating Content 336 Accessing Files Stored in Content Providers 338 Accessing Permission-Restricted Content Providers 339 Using Native Android Content Providers 341 Accessing the Call Log 341 Using the Media Store Content Provider 342 Using the Contacts Content Provider 344 Using the Calendar Content Provider 351 Adding Search to Your Application 354 Defining Your Search Metadata 354 Creating a Search Results Activity 355 Searching a Content Provider 357 Using the Search View Widget 360 Providing Search Suggestions Using a Content Provider 362 CHAPTER 11: WORKING IN THE BACKGROUND 377 Working in the Background 378 Using Background Threads 379 Using Asynchronous Tasks to Run Tasks Asynchronously 379 Manual Thread Creation Using Handler Threads 383 Scheduling Background Jobs 385 Creating a Job Service for the Job Scheduler 386 Scheduling Jobs with the Job Scheduler 388 Scheduling Jobs with the Firebase Job Dispatcher 391 Scheduling Work with the Work Manager 393 An Earthquake-Monitoring Job Service Example 396 Using Notifications to Notify Users 401 Introducing the Notification Manager 401 Working with Notification Channels 402 Creating Notifications 403 Setting a Notification’s Priority 407 Adding Notification Actions 411 Adding Direct Reply Actions 412 Grouping Multiple Notifications 413 Adding Notifications to the Earthquake Monitor 414 Using Firebase Cloud Messaging 417 Triggering Notifications Remotely with Firebase Notifications 418 Receiving Data with Firebase Cloud Messaging 421 Using Alarms 422 Creating, Setting, and Canceling Alarms 423 Setting an Alarm Clock 424 Introducing Services 424 Using Bound Services 425 Creating a Started Service 427 CHAPTER 12: IMPLEMENTING THE ANDROID DESIGN PHILOSOPHY 433 Introducing the Android Design Philosophy 434 Designing for Every Screen 434 Resolution Independence 435 Supporting and Optimizing for Different Screen Sizes 436 Creating Scalable Graphics Assets 439 Introducing Material Design 445 Thinking in Terms of Paper and Ink 446 Using Color and Keylines as Guides 447 Continuity through Motion 449 Material Design UI Elements 452 The App Bar 452 Applying Material Design to the Earthquake Monitor 455 Using Cards to Display Content 456 Floating Action Buttons 460 CHAPTER 13: IMPLEMENTING A MODERN ANDROID USER EXPERIENCE 463 The Modern Android UI 464 Creating Consistent, Modern User Interfaces Using AppCompat 464 Creating and Applying Themes Using AppCompat 465 Creating Theme Overlays for Specific Views 466 Adding a Menu and Actions to the App Bar 467 Defining a Menu Resource 467 Adding a Menu to an Activity 468 Adding a Menu to a Fragment 469 Updating Menu Items Dynamically 469 Handling Menu Selections 470 Adding Action Views and Action Providers 470 Going Beyond the Default App Bar 472 Replacing Your App Bar with a Toolbar 472 Advanced Scrolling Techniques for the Toolbar 473 Incorporating Menus without the App Bar 476 Improving the Earthquake Monitor’s App Bar 477 App Navigation Patterns 479 Navigating with Tabs 479 Implementing a Bottom Navigation Bar 482 Using a Navigation Drawer 485 Combining Navigation Patterns 491 Adding Tabs to the Earthquake Monitor 492 Choosing the Right Level of Interruption 496 Initiating a Dialog 497 Let’s Make a Toast 498 Inline Interruptions with Snackbars 499 CHAPTER 14: ADVANCED CUSTOMIZATION OF YOUR USER INTERFACE 501 Expanding the User Experience 502 Supporting Accessibility 502 Supporting Navigation without a Touch Screen 502 Providing a Textual Description of Each View 503 Introducing Android Text-to-Speech 503 Using Speech Recognition 505 Using Speech Recognition for Voice Input 506 Using Speech Recognition for Search 507 Controlling Device Vibration 508 Going Full Screen 508 Working with Property Animations 510 Enhancing Your Views 513 Advanced Canvas Drawing 514 Creating Interactive Controls 530 Composite Drawable Resources 536 Transformative Drawables 536 Layer Drawables 537 State List Drawables 537 Level List Drawables 538 Copy, Paste, and the Clipboard 539 Copying Data to the Clipboard 539 Pasting Clipboard Data 539 CHAPTER 15: LOCATION, CONTEXTUAL AWARENESS,AND MAPPING 541 Adding Location, Maps, and Contextual Awareness to Your Applications 542 Introducing Google Play Services 542 Adding Google Play Services to Your Application 543 Determining the Availability of Google Play Services 545 Finding Device Location Using Google Location Services 546 Using the Emulator to Test Location-Based Functionality 548 Finding the Last Known Location 549 “Where Am I” Example 551 Requesting Location Change Updates 555 Changing Device Location Settings 560 Updating the Location in the “Where Am I” Example 563 Best Practices When Using Location 566 Setting and Managing Geofences 567 Using the Legacy Platform Location-Based Services 571 Selecting a Location Provider 572 Finding the Last Known Location 574 Requesting Location Change Updates 575 Best Practice for Using the Legacy Location-Based Services 577 Using the Geocoder 580 Reverse Geocoding 581 Forward Geocoding 582 Geocoding Where Am I 583 Creating Map-Based Activities 585 Getting Your Maps API Key 586 Creating a Map-Based Activity 586 Configuring Google Maps 589 Changing the Camera Position with Camera Updates 590 Mapping Where Am I 592 Displaying the Current Location with the My Location Layer 596 Displaying Interactive Map Markers 596 Adding Shapes to Google Maps 599 Adding Image Overlays to Google Maps 602 Adding Markers and Shapes to Where Am I 602 Mapping the Earthquake Example 605 Adding Contextual Awareness 609 Connecting to the Google Play Services API Client and Obtaining API Keys 610 Using Awareness Snapshots 612 Setting and Monitoring Awareness Fences 613 Awareness Best Practices 617 CHAPTER 16: HARDWARE SENSORS 619 Introducing Android Sensors 620 Using the Sensor Manager 620 Understanding the Android Sensors 621 Discovering and Identifying Sensors 623 Determining Sensor Capabilities 625 Wakeup and Non-Wakeup Sensors 627 Monitoring Sensor Results 627 Interpreting Sensor Values 632 Testing Sensors with the Android Virtual Device and Emulator 635 Best Practices for Working with Sensors 637 Monitoring a Device’s Movement and Orientation 637 Determining the Natural Orientation of a Device 638 Introducing Accelerometers 639 Detecting Acceleration Changes 640 Creating a Gravitational Force Meter 642 Determining a Device’s Orientation 645 Creating a Compass and Artificial Horizon 650 Using the Environmental Sensors 654 Using the Barometer Sensor 654 Creating a Weather Station 655 Using Body Sensors 659 User Activity Recognition 662 CHAPTER 17: AUDIO, VIDEO, AND USING THE CAMERA 665 Playing Audio and Video, and Using the Camera 666 Playing Audio and Video 666 Introducing the Media Player 667 Using Media Player for Video Playback 669 Using ExoPlayer for Video Playback 672 Requesting and Managing Audio Focus 674 Pausing Playback When the Output Changes 676 Responding to the Volume Controls 677 Working with a Media Session 678 Using the Media Router and Cast Application Framework 682 Background Audio Playback 686 Building an Audio Playback Service 686 Using a Media Browser to Connect Your Activity to a Media Browser Service 688 Life Cycle of a Media Browser Service 690 Playing Audio as a Foreground Service 691 Creating Media Style Notifications 693 Using the Media Recorder to Record Audio 695 Using the Camera for Taking Pictures 697 Using Intents to Take Pictures 697 Controlling the Camera Directly 699 Reading and Writing JPEG EXIF Image Details 706 Recording Video 706 Using Intents to Record Video 707 Using the Media Recorder to Record Video 707 Adding Media to the Media Store 710 Inserting Media Using the Media Scanner 710 Inserting Media Manually 711 CHAPTER 18: COMMUNICATING WITH BLUETOOTH,NFC, AND WI-FI PEER-TO-PEER 713 Networking and Peer-to-Peer Communication 713 Transferring Data Using Bluetooth 714 Managing the Local Bluetooth Device Adapter 714 Being Discoverable and Remote Device Discovery 716 Bluetooth Communications 720 Bluetooth Profiles 725 Bluetooth Low Energy 726 Transferring Data Using Wi-Fi Peer-to-Peer 728 Initializing the Wi-Fi Peer-to-Peer Framework 729 Discovering Peers 731 Connecting with Peers 732 Transferring Data between Peers 733 Using Near Field Communication 735 Reading NFC Tags 735 Using the Foreground Dispatch System 736 Using Android Beam 738 Creating Android Beam Messages 739 Assigning the Android Beam Payload 740 Receiving Android Beam Messages 742 CHAPTER 19: INVADING THE HOME SCREEN 743 Customizing the Home Screen 743 Introducing Home Screen Widgets 744 Defining the Widget Layout 745 Defining Your Widget Size and Other Metadata 746 Implementing Your Widget 748 Updating the Widget UI Using the App Widget Manager and Remote Views 749 Forcing Refreshes of Your Widget Data and UI 753 Creating and Using a Widget Configuration Activity 756 Creating an Earthquake Widget 757 Introducing Collection View Widgets 763 Creating Collection View Widget Layouts 764 Updating Collection View Items with a Remote Views Factory 765 Updating Collection View Items with a Remote Views Service 767 Populating Collection View Widgets Using a Remote Views Service 768 Adding Interactivity to the Items within a Collection View Widget 769 Refreshing Your Collection View Widgets 770 Creating an Earthquake Collection View Widget 770 Creating Live Wallpaper 777 Creating a Live Wallpaper Definition Resource 778 Creating a Wallpaper Service Engine 778 Creating a Wallpaper Service 780 Creating App Shortcuts 781 Static Shortcuts 783 Dynamic Shortcuts 784 Tracking App Shortcut Use 785 CHAPTER 20: ADVANCED ANDROID DEVELOPMENT 787 Advanced Android 788 Paranoid Android 788 Linux Kernel Security 788 Re-introducing Permissions 789 Storing Keys in the Android Keystore 792 Using the Fingerprint Sensor 792 Dealing with Different Hardware and Software Availability 793 Specifying Required Hardware 794 Confirming Hardware Availability 795 Building Backward-Compatible Applications 795 Optimizing UI Performance with Strict Mode 797 Telephony and SMS 798 Telephony 799 Sending and Receiving SMS Messages 806 CHAPTER 21: RELEASING, DISTRIBUTING, AND MONITORING APPLICATIONS 825 Preparing for Release 826 Preparing Release Support Material 826 Preparing Your Code for a Release Build 827 Updating Application Metadata in Your Application Manifest 828 Reviewing Application Installation Restrictions 828 Application Versioning 830 Signing Production Builds of Your Application 830 Creating a Keystore and Signing Key with Android Studio 832 Obtaining API Keys Based on Your Private Release Key 833 Building and Signing a Production Release 834 Distributing Your Application on the Google Play Store 835 Introducing the Google Play Store 835 Getting Started with the Google Play Store 836 Creating an Application on the Google Play Store 837 Publishing Your Application 845 Monitoring Your Application in Production 848 An Introduction to Monetizing Applications 853 Application Marketing, Promotion, and Distribution Strategies 854 Application Launch Strategies 854 Internationalization 855 Using Firebase to Monitor Your Application 856 Adding Firebase to Your Application 856 Using Firebase Analytics 857 Firebase Performance Monitoring 860 INDEX 863
£32.29
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
£34.19
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 & Sons Inc The DevOps Adoption Playbook
Book SynopsisAchieve streamlined, rapid production with enterprise-level DevOps Awarded DevOps 2017 Book of the Year, The DevOps Adoption Playbook provides practical, actionable, real-world guidance on implementing DevOps at enterprise scale. Author Sanjeev Sharma heads the DevOps practice for IBM; in this book, he provides unique guidance and insight on implementing DevOps at large organizations. Most DevOps literature is aimed at startups, but enterprises have unique needs, capabilities, limitations, and challenges; DevOps for startups doesn''t work at this scale, but the DevOps paradigm can revolutionize enterprise IT. Deliver high-value applications and systems with velocity and agility by adopting the necessary practices, automation tools, and organizational and cultural changes that lead to innovation through rapid experimentation. Speed is an advantage in the face of competition, but it must never come at the expense of quality; DevOps allows your organization to keep both bTable of ContentsIntroduction xxiii 1 DevOps: An Overview 1 DevOps: Origins 2 DevOps: Roots 4 Addressing Dev versus Ops 7 DevOps: Practices 10 Continuous Integration 11 Continuous Delivery 16 Supporting Practices 20 Shift Left 29 Architecture and Risk Mitigation 31 Continuous Improvement 33 Metrics 33 Business Drivers 34 DevOps: Culture 35 Summary 37 2 Adopting DevOps 39 Developing the Playbook 41 Identifying the Target State (Business Goals and Drivers) 42 Assessing the Current State 45 Choosing the Transformation Plays 60 Adopting the Transformation Plays 61 Summary 65 3 Developing a Business Case for a DevOps Transformation 67 Developing the Business Case 68 Completing the Business Model Canvas 71 Customer Segments 72 Line of Business 72 IT Organization 74 Value Propositions 75 Line of Business 75 IT Organization 77 Channels 80 Line of Business 80 IT Organization 80 Customer Relationships 80 Line of Business 80 IT Organization 81 Revenue Streams 81 Line of Business 81 IT Organization 81 Key Resources 82 Line of Business 82 IT Organization 82 Key Activities 82 Line of Business 83 IT Organization 83 Key Partnerships 84 Line of Business 84 IT Organization 84 Cost Structures 85 Line of Business 85 IT Organization 85 Summary 85 4 DevOps Plays for Optimizing the Delivery Pipeline 87 DevOps as an Optimization Exercise 88 Business Intent: Optimization versus Innovation 89 Core Themes 95 Minimizing Cycle Time 95 Reducing Batch Size 98 Establishing the Right Culture 102 The DevOps Plays 106 Play: Establishing Metrics and KPIs 106 Play: Agile Adoption 113 Play: Integrated Delivery Pipeline 117 Play: Continuous Integration 123 Play: Continuous Delivery 128 Play: Shift Left—Testing 142 Play: Shift Left—Ops Engagement 149 Play: Continuous Monitoring and Feedback 155 Play: Release Management 161 Specializing Core Plays 165 Play: DevOps for Mobile 165 Play: DevOps for Mainframe 173 Play: DevOps for Internet of Things 177 Play: DevOps for Big Data and Analytics 180 Summary 186 5 DevOps Plays for Driving Innovation 189 Optimize to Innovate 190 The Uber Syndrome 192 Innovation and the Role of Technology 192 Innovating for New Business Models 193 Business Model Experimentation 194 Innovating for New User Engagement Models 195 Core Themes 198 Achieving Multi-Speed IT 198 Building the Right Thing 202 Enabling Experimentation 206 Delivering Antifragile Systems 208 IT Systems and Antifragility 211 Play: Build a DevOps Platform 216 Application Delivery and Antifragile Systems 218 Environment Abstraction 219 Cloud-Hosted DevOps Platform 221 Infrastructure as a Service 226 OpenStack Heat as an Abstraction Layer 232 Platform as a Service 233 Containers 238 Play: Deliver Microservices Architectures 241 Microservices Architecture 243 12-Factor App 245 Cloud Native 247 Microservices and Containers 249 Migrating to Microservices 249 Play: Develop an API Economy 253 Deployment Automation and APIs 255 DevOps Platform and APIs 255 Play: Organizing for Innovation 257 Developing an Innovation Culture in Large Organizations 259 Summary 260 6 Scaling DevOps for the Enterprise 261 Core Themes 263 Organizational Culture 263 Standardization of Tools and Practices 264 Organized Adoption 265 Breaking Down Organizational Silos 266 Play: DevOps Center of Competency 267 Capabilities and Goals of a DevOps CoC 268 Core CoC Roles 269 The DevOps Coach 270 Setting Up a CoC 272 Play: Developing Culture of Innovation at Scale 273 The Offering Management Team 276 Play: Developing a Culture of Continuous Improvement 278 Developing an Adoption Roadmap 280 Continuous Improvement and Value Stream Mapping 282 Play: Team Models for DevOps 284 Play: Standardization of Tools and Processes 287 Standardization of an Integrated DevOps Platform 289 Play: Security Considerations for DevOps 291 Managing Security-Related Risks 292 Addressing Security for DevOps Processes and Platforms 295 The API Economy and Security 299 Play: DevOps and Outsourcing 301 Strategic Outsourcing 302 IT Supply Chain 303 Enabling DevOps with Outsourcing 304 Summary 304 7 Leading DevOps Adoption in the Enterprise 307 Play: DevOps as a Transformation Exercise 309 Compelling Reasons to Act 311 DevOps Transformation Anti-patterns 312 Play: Developing a Culture of Collaboration and Trust 315 Visibility Enables Trust 316 It’s All about the People 317 Play: DevOps Thinking for the Line of Business 318 Line of Business–IT Engagement 319 Engaging in the DevOps Transformation 321 Move Shadow IT out of the Shadows 321 Play: Starting with Pilot Projects 322 Pilot Project Selection 324 Executive Sponsorship 325 Play: Rearing Unicorns on an Aircraft Carrier 325 Fostering Ideas 327 Summary 329 Appendix Case Study: Example DevOps Adoption Roadmap 331 Organization Background 331 Roadmap Structure 332 DevOps Optimization and Innovation Workshop 333 Background and Context 334 Adoption Roadmap 336 Business Drivers 336 Existing IT Initiatives 337 Bottlenecks 338 Root Causes 340 DevOps Practices 341 Roadmap Adoption 346 Index 347
£25.60
John Wiley & Sons Inc Exploring Arduino Tools and Techniques for
Book SynopsisThe bestselling beginner Arduino guide, updated with new projects! Exploring Arduino makes electrical engineering and embedded software accessible. Learn step by step everything you need to know about electrical engineering, programming, and human-computer interaction through a series of increasingly complex projects.Table of ContentsIntroduction xxv Part I Arduino Engineering Basics 1 1 Getting Started and Understanding the Arduino Landscape 3 Exploring the Arduino Ecosystem 4 Arduino Functionality 5 The Microcontroller 7 Programming Interfaces 8 Input/Output: GPIO, ADCs, and Communication Busses 9 Power 9 Arduino Boards 11 Creating Your First Program 15 Downloading and Installing the Arduino IDE 16 Running the IDE and Connecting to the Arduino 17 Breaking Down Your First Program 18 Summary 21 2 Digital Inputs, Outputs, and Pulse-Width Modulation 23 Digital Outputs 24 Wiring Up an LED and Using Breadboards 24 Working with Breadboards 24 Wiring LEDs 25 Programming Digital Outputs 29 Using For Loops 30 Pulse-Width Modulation with analogWrite() 31 Reading Digital Inputs 35 Reading Digital Inputs with Pull-Down Resistors 35 Working with “Bouncy” Buttons 38 Building a Controllable RGB LED Nightlight 42 Summary 46 3 Interfacing with Analog Sensors 47 Understanding Analog and Digital Signals 48 Comparing Analog and Digital Signals 48 Converting an Analog Signal to Digital 49 Reading Analog Sensors with the Arduino: analogRead() 51 Reading a Potentiometer 51 Using Analog Sensors 56 Using Variable Resistors to Make Your Own Analog Sensors 60 Using Resistive Voltage Dividers 61 Using Analog Inputs to Control Analog Outputs 64 Summary 66 Part II Interfacing with Your Environment 67 4 Using Transistors and Driving DC Motors 69 Driving DC Motors 70 Handling High-Current Inductive Loads 71 Using Transistors as Switches 72 Using Protection Diodes73 Using a Secondary Power Source 74 Wiring the Motor 74 Controlling Motor Speed with PWM 76 Using an H-Bridge to Control DC Motor Direction 78 Building an H-Bridge Circuit 80 Operating an H-Bridge Circuit 82 Building a Roving Robot 86 Choosing the Robot Parts 87 Selecting a Motor and Gearbox 87 Powering Your Robot 87 Constructing the Robot 89 Writing the Robot Software 92 Bringing It Together 96 Summary 97 5 Driving Stepper and Servo Motors 99 Driving Servo Motors 100 Understanding the Difference between Continuous Rotation and Standard Servos 100 Understanding Servo Control 101 Controlling a Servo 104 Building a Sweeping Distance Sensor 105 Understanding and Driving Stepper Motors 109 How Bipolar Stepper Motors Work 111 Making Your Stepper Move 113 Building a “One-Minute Chronograph” 117 Wiring and Building the Chronograph 117 Programming the Chronograph 119 Summary 124 6 Making Sounds and Music 125 Understanding How Speakers Work 126 The Properties of Sound 126 How a Speaker Produces Sound 128 Using tone() to Make Sounds 129 Including a Definition File 129 Wiring the Speaker 130 Making Sound Sequences 133 Using Arrays 133 Making Note and Duration Arrays 134 Completing the Program 134 Understanding the Limitations of the tone() Function 136 Building a Micro Piano 136 Summary 139 7 USB Serial Communication 141 Understanding the Arduino’s Serial Communication Capabilities 142 Arduino Boards with an Internal or External FTDI or Silicon Labs USB-to-Serial Converter 143 Arduino Boards with a Secondary USB-Capable ATmega MCU Emulating a Serial Converter 146 Arduino Boards with a Single USB-Capable MCU 147 Arduino Boards with USB-Host Capabilities 147 Listening to the Arduino 148 Using print Statements 148 Using Special Characters 150 Changing Data Type Representations 152 Talking to the Arduino 152 Configuring the Arduino IDE’s Serial Monitor to Send Command Strings 152 Reading Incoming Data from a Computer or Other Serial Device 153 Telling the Arduino to Echo Incoming Data 153 Understanding the Differences between Chars and Ints 154 Sending Single Characters to Control an LED 156 Sending Lists of Values to Control an RGB LED 158 Talking to a Desktop App 161 Installing Processing 162 Controlling a Processing Sketch from Your Arduino 163 Sending Data from Processing to Your Arduino 166 Summary 169 8 Emulating USB Devices 171 Emulating a Keyboard 173 Typing Data into the Computer 173 Commanding Your Computer to Do Your Bidding 177 Emulating a Mouse 178 Summary 182 9 Shift Registers 183 Understanding Shift Registers 184 Sending Parallel and Serial Data 185 Working with the 74HC595 Shift Register 186 Understanding the Shift Register pin Functions 186 Understanding How the Shift Register Works 187 Shifting Serial Data from the Arduino 189 Converting Between Binary and Decimal Formats 192 Controlling Light Animations with a Shift Register 192 Building a “Light Rider” 192 Responding to Inputs with an LED Bar Graph 194 Summary 197 Part III Communication Interfaces 199 10 The I2C Bus 201 History of the I2C Bus 202 I2C Hardware Design 203 Communication Scheme and ID Numbers 203 Hardware Requirements and Pull-Up Resistors 206 Communicating with an I2C Temperature Probe 208 Setting Up the Hardware208 Referencing the Datasheet 210 Writing the Software 212 Combining Shift Registers, Serial Communication, and I2C Communications 214 Building the Hardware for a Temperature Monitoring System 214 Modifying the Embedded Program 215 Writing the Processing Sketch 218 Summary 221 11 The SPI Bus and Third-Party Libraries 223 Overview of the SPI Bus 224 SPI Hardware and Communication Design 225 Hardware Configuration 225 Communication Scheme 227 Comparing SPI to I2C and UART 227 Communicating with an SPI Accelerometer 228 What is an Accelerometer? 229 Gathering Information from the Datasheet 231 Setting Up the Hardware233 Writing the Software 235 Installing the Adafruit Sensor Libraries 236 Leveraging the Library 237 Creating an Audiovisual Instrument Using a 3-Axis Accelerometer 241 Setting Up the Hardware242 Modifying the Software 242 Summary 246 12 Interfacing with Liquid Crystal Displays 247 Setting Up the LCD 248 Using the LiquidCrystal Library to Write to the LCD 251 Adding Text to the Display 252 Creating Special Characters and Animations 254 Building a Personal Thermostat 258 Setting Up the Hardware 258 Displaying Data on the LCD 261 Adjusting the Set Point with a Button 264 Adding an Audible Warning and a Fan 265 Bringing It All Together: The Complete Program 266 Taking This Project to the Next Level 270 Summary 271 Part IV Digging Deeper and Combining Functions 273 13 Interrupts and Other Special Functions 275 Using Hardware Interrupts 276 Knowing the Tradeoffs Between Polling and Interrupting 277 Ease of Implementation (Software) 277 Ease of Implementation (Hardware) 277 Multitasking 278 Acquisition Accuracy 278 Understanding the Arduino Hardware Interrupt Capabilities 278 Building and Testing a Hardware-Debounced Button Interrupt Circuit 279 Creating a Hardware-Debouncing Circuit 280 Assembling the Complete Test Circuit 284 Writing the Software 285 Using Timer Interrupts 288 Understanding Timer Interrupts 288 Getting the Library 289 Executing Two Tasks Simultaneously(ish) 289 Building an Interrupt-Driven Sound Machine 290 Sound Machine Hardware 291 Sound Machine Software 291 Summary 294 14 Data Logging with SD Cards 295 Getting Ready for Data Logging 296 Formatting Data with CSV Files 297 Preparing an SD Card for Data Logging 297 Formatting Your SD Card Using a Windows PC 298 Formatting Your SD Card Using Mac OS 300 Formatting Your SD Card Using Linux 302 Interfacing the Arduino with an SD Card 304 SD Card Shields 304 SD Card SPI Interface 307 Writing to an SD Card 307 Reading from an SD Card 312 Real-Time Clocks 317 Understanding Real-Time Clocks 317 Communicating with a Real-Time Clock 317 Using the RTC Arduino Third-Party Library 318 Using a Real-Time Clock 319 Installing the RTC and SD Card Modules 319 Updating the Software 320 Building an Entrance Logger 327 Logger Hardware 328 Logger Software 329 Data Analysis 334 Summary 335 Part V Going Wireless 337 15 Wireless RF Communications 339 The Electromagnetic Spectrum 340 The Spectrum 342 How Your RF Link Will Send and Receive Data 343 Receiving Key Presses with the RF Link 346 Connecting Your Receiver 346 Programming Your Receiver 347 Making a Wireless Doorbell 351 Wiring the Receiver 351 Programming the Receiver 351 The Start of Your Smart Home—Controlling a Lamp 354 Your Home’s AC Power 356 How a Relay Works 356 Programming the Relay Control 358 Hooking up Your Lamp and Relay to the Arduino 360 Summary 361 16 Bluetooth Connectivity 363 Demystifying Bluetooth 364 Bluetooth Standards and Versions 364 Bluetooth Profiles and BTLE GATT Services 365 Communication between Your Arduino and Your Phone 366 Reading a Sensor over BTLE 366 Adding Support for Third-Party Boards to the Arduino IDE 367 Installing the BTLE Module Library 369 Programming the Feather Board 369 Connecting Your Smartphone to Your BTLE Transmitter 377 Sending Commands from Your Phone over BTLE 379 Parsing Command Strings 380 Commanding Your BTLE Device with Natural Language 384 Controlling an AC Lamp with Bluetooth 389 How Your Phone “Pairs” to BTLE Devices 389 Writing the Proximity Control Software 390 Pairing Your Phone 394 Pairing an Android Phone 394 Pairing an iPhone 395 Make Your Lamp React to Your Presence 396 Summary 397 17 Wi-Fi and the Cloud 399 The Web, the Arduino, and You 400 Networking Lingo 401 The Internet vs. the World Wide Web vs. the Cloud 401 IP Address 401 Network Address Translation 402 MAC Address 402 HTML 402 HTTP and HTTPS 402 GET/POST 403 DHCP 403 DNS 403 Clients and Servers 403 Your Wi-Fi–Enabled Arduino 404 Controlling Your Arduino from the Web 404 Setting Up the I/O Control Hardware 404 Preparing the Arduino IDE for Use with the Feather Board.406 Ensuring the Wi-Fi Library is Matched to the Wi-Fi Module’s Firmware 407 Checking the WINC1500’s Firmware Version 408 Updating the WINC1500’s Firmware 408 Writing an Arduino Server Sketch 408 Connecting to the Network and Retrieving an IP Address via DHCP 409 Writing the Code for a Bare-Minimum Web Server 412 Controlling Your Arduino from Inside and Outside Your Local Network 423 Controlling Your Arduino over the Local Network 423 Using Port Forwarding to Control Your Arduino from Anywhere 425 Interfacing with Web APIs 427 Using a Weather API428 Creating an Account with the API Service Provider 429 Understanding How APIs are Structured 430 JSON-Formatted Data and Your Arduino 430 Fetching and Parsing Weather Data 431 Getting the Local Temperature from the Web on Your Arduino 433 Completing the Live Temperature Display 440 Wiring up the LED Readout Display 440 Driving the Display with Temperature Data 443 Summary 449 Appendix A: Deciphering Datasheets and Schematics 451 Index 461
£24.80
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
CRC Press A Guide to Selecting Software Measures and
Book SynopsisGoing where no book on software measurement and metrics has previously gone, this critique thoroughly examines a number of bad measurement practices, hazardous metrics, and huge gaps and omissions in the software literature that neglect important topics in measurement. The book covers the major gaps and omissions that need to be filled if data about software development is to be useful for comparisons or estimating future projects.Among the more serious gaps are leaks in reporting about software development efforts that, if not corrected, can distort data and make benchmarks almost useless and possibly even harmful. One of the most common leaks is that of unpaid overtime. Software is a very labor-intensive occupation, and many practitioners work very long hours. However, few companies actually record unpaid overtime. This means that software effort is underreported by around 15%, which is too large a value to ignore. Other sources of leaks include the work of part-time speciaTable of ContentsA Guide to Selecting Software Measures and Metrics
£114.00
Taylor & Francis Ltd Risk Thinking for CloudBased Application Services
Book SynopsisTable of ContentsIntroduction. Framing the Cloud Service Customer’s Problem: Cloud Computing Fundamentals. Desired Cloud Service Customer Benefits. Risk and Risk Management. Cloud Service Qualities. Analyzing the Cloud Service Customer’s Problem: The Application Service Lifecycle. Lean Application Capacity Management. Testing Cloud-Based Application Services. Service Design, Transition and Operations Processes. Continual Service Improvement. Improving Operational Efficiency of Cloud-Based Applications. Service Strategy. Cloud Service Quality Risk Inventory: Factoring Cloud Service Quality Risks. VNF Product Risks Virtual Machine Risks. Virtual Networking Risks. Virtual Storage Risks. Virtualized Application Latency Risks. Service Integration Risks. Visibility Risks. Service Policy Risks. Accountability Risks. Human and Organizational Risks. Lifecycle Management (Execution) Risks. Functional-Component-as-a-Service Quality Risks. Cloud Service Provider Catastrophe Risks. Unknown-Unknown Risks. Cloud Service Quality Risk Assessment and Management: Establish the Context. Establish Service Quality Objectives. Risk Assessment Process. Risk Assessment Techniques. Service Quality Risk Management Process.
£114.00
Taylor & Francis Ltd Developing WindowsBased and WebEnabled
Book SynopsisMany professionals and students in engineering, science, business, and other application fields need to develop Windows-based and web-enabled information systems to store and use data for decision support, without help from professional programmers. However, few books are available to train professionals and students who are not professional programmers to develop these information systems. Developing Windows-Based and Web-Enabled Information Systems fills this gap, providing a self-contained, easy-to-understand, and well-illustrated text that explores current concepts, methods, and software tools for developing Windows-based and web-enabled information systems. Written in an easily accessible style, the book details current concepts, methods, and software tools for Windows-based and web-enabled information systems that store and use data. It is self-contained with easy-to-understand small examples to walk through concepts and implementation details along with large-scTrade Review"This book takes a comprehensive approach to cover the topics of information systems and their development. At the same time it has detailed examples to help readers at different levels. … detailed examples and case studies makes it a good textbook and reference for readers of diverse backgrounds."—Xiangyang Li, Johns Hopkins University"The main strength of this book is that it is written by industrial engineering professors that understand how to present important data management concepts to engineers that may not have a computer science background. Most books on data management and information systems are written with the computing professional in mind. This book finally gives engineers an understandable approach to learning the fundamental data management concepts that are relevant to engineering applications."—Susan D Urban, Texas Tech University"The book is provides a comprehensive introduction to the concepts of information systems. Furthermore, this book has struck the right balance of having sufficient business case concepts for implementing information systems as well as including important technical theories on designing databases."—Eugene Rex L. Jalao, Ph.D., University of the Philippines Diliman"… the most comprehensive book to introduce information system. … covers all the topics related to information system from theoretical background to practical applications. … organized very well and considers the diversity of the readers which will attract a huge number of audiences. … the best textbook for information system related class at both the undergraduate and graduate levels. … covers lots of complex case studies."—Mengqi Hu, Mississippi State UniversityTable of ContentsFoundations of Information Systems. Boolean algebra and digital logic circuits. Digital data representation. Computer system software. Network system software. Information Assurance. An Overview of Information Systems for Window and Web Applications. Database Design and Development. Data Modeling: E-R and EE-R Modeling. Data modeling: Relational Data Modeling and Normalization. SQL. Access. MySQL. Object-Oriented Database. Windows Application Development. Visual Basic Programming I. Visual Basic Programming II. Visual Basic Programming III. Windows Forms and Controls with VBA. Database connectivity with VBA. Windows Forms and Controls with VB.NET. Database connectivity with VB.NET. Web Application Development. Chapter 20. Web applications. Web services. Working with XML I. Working with XML II. Case Studies. A Business Application - Use of VB A and Database. An Engineering Application - Use of VB. NET and Database. A Science Application - Use of ASP.NET and Database.
£58.99
Taylor & Francis Ltd Introduction to Software for Chemical Engineers
Book SynopsisThe field of Chemical Engineering and its link to computer science is in constant evolution and new engineers have a variety of tools at their disposal to tackle their everyday problems. Introduction to Software for Chemical Engineers, Second Edition provides a quick guide to the use of various computer packages for chemical engineering applications. It covers a range of software applications from Excel and general mathematical packages such as MATLAB and MathCAD to process simulators, CHEMCAD and ASPEN, equation-based modeling languages, gProms, optimization software such as GAMS and AIMS, and specialized software like CFD or DEM codes. The different packages are introduced and applied to solve typical problems in fluid mechanics, heat and mass transfer, mass and energy balances, unit operations, reactor engineering, process and equipment design and control. This new edition offers a wider view of packages including open source software such as R, Python and JuTable of ContentsSection 1. Modeling and Simulation in the Chemical Eng CV and Its Application to Industry. Chapter 1. Modeling, Simulation and Optimization in the Chemical Engineering Curriculum. Chapter 2. Mathematical Modeling and Simulation. Section 2. General Tools. Chapter 3. Excel. Chapter 4. MATLAB. Chapter 5. Mathematica/Mathcad. Chapter 6. Python. Chapter 7. R. Statistics and Data Management. Section 3. Detailed Equipment Design and Analysis. Chapter 8. Transport Phenomena Analysis (CFD). Chapter 9. Discrete Element Methods. Section 4. Process Simulation. Chapter 10. Equation-Based Process Simulation gProms, EMSO. Chapter 11. Engineering Equation Solver. Chapter 12. Modular Process Simulation ASPEN HYSYS1; CHEMCAD2; ASPEN Plus). Section 5. Process Design and Optimization. Chapter 13. Algebraic Modeling and Optimization. Introduction to GAMS, AIMS, AMPLE, MILP, NLP, MINLP Models. Chapter 14. Production Processes. Chapter 15. Scheduling. Chapter 16 . Plant Location: Supply Chain. Chapter 17. Dynamics Optimization. Chapter 18. Julia for Process Design and Optimization
£999.99
Taylor & Francis Ltd Zen of Cloud
Book SynopsisThis book provides a comprehensive review of cloud philosophy, design principals, development trends as well as practical patterns to guide readers to understand, design and implement successful cloud-based solutions. This book provides both hows and whys. It peers behind the buzz words such as machine learning, containers, and blockchains to help readers understand how to put those technologies into practical use. This unique book covers a broad spectrum of technologies of cloud computing. Table of ContentsPrefaceAbout the Author1 The Journey to Cloud2 Cloud-Native Design3 Containers and Microservices4 Security5 Intelligent Cloud6 Intelligent Edge7 Serverless8 Cloud DevOps9 Blockchain10 Cloud-Native ApplicationsIndex
£74.09
Taylor & Francis Ltd Low Power Circuits for Emerging Applications in
Book SynopsisThe book addresses the need to investigate new approaches to lower energy requirement in multiple application areas and serves as a guide into emerging circuit technologies. It explores revolutionary device concepts, sensors, and associated circuits and architectures that will greatly extend the practical engineering limits of energy-efficient computation. The book responds to the need to develop disruptive new system architecutres, circuit microarchitectures, and attendant device and interconnect technology aimed at achieving the highest level of computational energy efficiency for general purpose computing systems.Features Discusses unique technologies and material only available in specialized journal and conferences Covers emerging applications areas, such as ultra low power communications, emerging bio-electronics, and operation in extreme environments Explores broad circuit operation, ex. analog, RF, memory, and digital circuits ContaiTable of Contents1. Clock Generation and Distribution for Low-Power Digital Systems. 2. Design of Low Standby Power Fully Integrated Voltage Regulators. 3. On-Chip Regulators for Low Voltage and Portable Systems-on-Chip. 4. Low-Power Biosensor Design Techniques Based on Information theoretic Principles. 5. A Cost-Effective TAF-DPS Syntonuzation Scheme of Improving Clock Frequency Accuracy and Long-Term Frequency Stability for Universal Applications. 6. Exploiting Time: The Intersection Point of Multidiciplines and the Nest Challenge and Opportunity in the Making of Electronics. 7. Aging Evaluation and Mitigation Techniques Targeting FPGA Devices.
£128.25
Taylor & Francis Ltd Internet of Things for Things and by Things
Book SynopsisThis book explains IoT technology, its potential applications, the security and privacy aspects, the key necessities like governance, risk management, regulatory compliance needs, the philosophical aspects of this technology that are necessary to support an ethical, safe and secure digitally enhanced environment in which people can live smarter. It describes the inherent technology of IoT, the architectural components and the philosophy behind this emerging technology. Then it shows the various potential applications of the Internet of Things that can bring benefits to the human society. Finally, it discusses various necessities to provide a secured and trustworthy IoT service.Table of ContentsPart 1: Internet "of" Things. 1. Internet of Things and Its Potential. 2. The IoT Technology. 3. IoT Architecture. 4. The Philosophy of Information in the IoT. Part 2: Internet "for" Things. 5. Potential Applications of IoT. 6. IoT and Smart Cities. Part 3: Internet "by" Things. 7. Internet as the Foundation for Things: IPv4, IPv6, and Related Concepts. 8. Net Neutrality and Its Impact on IoT. 9. IoT Security, Privacy and GRC Assurance. 10. Managing Shared Risk in Interdependent Systems of Smart Cities. Part 4: IoT GRC, Standards and Regulations. 11. Discussion on Leading Global GRC Frameworks Applicable for IoT Implementations, Regulations (GDPR etc.), Standards ( NIST, ISO, IEEE, IETF, ETSI, etc.) and Role of GRC Audits. 12. Global GRC Frameworks Applicable for IoT Implementations, Regulations, Standards, and Role of GRC Audits. Part 5: Human Dimension of IoT: 13. Developing Policies to Create a Smart "White Box Society." Appendixes.
£109.25
McGraw-Hill Education Loose Leaf for Introduction to Computing Systems
Book Synopsis
£174.60
McGraw-Hill Education Loose Leaf for Fundamentals of Electric Circuits
Book Synopsis
£174.60
McGraw-Hill Education Software Engineering An Agile Unified Methodology
Book SynopsisThe new edition of Software Engineering presents a step-by-step methodology that integrates Modeling and Design, UML, Patterns, Test-Driven Development, Quality Assurance, Configuration Management, and Agile Principles throughout the life cycle. The overall approach is casual and easy to follow, with many practical examples that show the theory at work. The author uses his experiences as well as real-world stories to help the reader understand software design principles, patterns, and other software engineering concepts. The book also provides stimulating exercises that go far beyond the type of question that can be answered by simply copying portions of the text.The new edition of Software Engineering is now available for the first time in McGraw Hill Connect! Connect for this course features the MHeBook, Writing Tool, Proctorio, and the Connect authoring tool that offers the ability to create your own questions.Table of ContentsPart 1: Introduction and System EngineeringChapter 1: IntroductionChapter 2: Software Process and MethodologyChapter 3: System EngineeringPart 2: Analysis and Architectural DesignChapter 4: Software Requirements ElicitationChapter 5: Domain ModelingChapter 6: Architectural DesignPart 3: Modeling and Design of InteractiveChapter 7: Deriving Use Cases from RequirementsChapter 8: Actor-System Interaction ModelingChapter 9: Object Interaction ModelingChapter 10: Applying Responsibility-Assignment PatternsChapter 11: Deriving a Design Class DiagramChapter 12: User Interface DesignPart 4: Modeling and Design of Other Types of SystemsChapter 13: Object State Modeling for Event-Driven SystemsChapter 14: Activity Modeling for TransformationalChapter 15: Modeling and Design of Rule-Based SystemsPart 5: Applying Situation-Specific PatternsChapter 16: Applying Patterns to Design a State Diagram EditorChapter 17: Applying Patterns to Design a Persistence FrameworkPart 6: Implementation and Quality AssuranceChapter 18: Implementation ConsiderationsChapter 19: Software Quality AssuranceChapter 20: Software TestingPart 7: Maintenance and Configuration ManagementChapter 21: Software MaintenanceChapter 22: Software Configuration ManagementPart 8: Project Management and Software SoftwareChapter 23: Software Project ManagementChapter 24: Software Security
£53.99
Pearson Education Projects in Computing and Information Systems
Book SynopsisChristian Dawson is currently a senior lecturer at Loughborough University. In this book he uses a number of real-life case studies to pass on the experiences of past student projects so the reader gets a genuine understanding of how to avoid pitfalls and ensure best practice in their own project.Table of Contents Preface Acknowledgements Section 1 – The background 1. Introduction 2. Research Section 2 – Setting your project’s foundation 3. Choosing a project and writing a proposal 4. Project planning and risk management 5. Literature searching and literature reviews Section 3 – Conducting your project 6. Software development 7. Controlling your project Section 4 – Presenting your project 8. Presenting your project in written form 9. Presentation skills Section 5 – The future 10. Final considerations References Index
£46.99
Pearson Education Limited Valuepack Design PatternsElements of Reusable
Book Synopsis
£59.49
Taylor & Francis Ltd Interpreting the CMMI R
Book SynopsisWritten by experienced process improvement professionals who have developed and implemented computer based systems in organizations around the world, Interpreting the CMMI: A Process Improvement Approach, Second Edition provides you with specific techniques for performing process improvement. Employing everyday language and supported by real world examples, the authors describe the fundamental concepts of the CMMI model, covering goals, practices, architecture, and definitions, and provide a structured approach for implementing the concepts of the CMMI into any organization. They discuss getting started in the process improvement effort, as well as how to continue on to high maturity. They walk you through the myriad of charts and graphs involved in statistical process control and offer practical recommendations. They also provide information on blending different process improvement initiatives into organizational programs (including agile development), Table of ContentsSection I: Introduction.Introduction. Beginning the Journey. Structure of the CMMI. CMMI Representations. Section II: CMMI Process Areas.Understanding Maturity Level 2: Managed. Understanding Maturity Level 3: Defined. Understanding Maturity Level 3: Defined. Understanding Maturity Level 4: Quantitatively Managed. Understanding Maturity Level 5: Optimizing. Section III: Implementation.Alignment of Multiple Process Improvement Initiatives.Is CMMI Right for Small Organizations? Establishing Your Process Improvement Organization.People, Roles, and Responsibilities.Documentation Guidelines.Documentation Guidelines.Planning and Tracking the Effort.Defining Processes, Procedures, Policies, and Charters.Section IV: Measurement.Measurement within the CMMI.A Boatload of Metrics.A Boatload of Metrics.Statistical Process Control. A High-Maturity Perspective.Section V: Appraisals.Appraisals Using the CMMI.The SCAMPI A Approach.Those Damn PIIDs!Section VI: Odds and Ends.Agile and the CMMI.Closing Thoughts.References and Further Reading.Section VII: Appendices.Appendix A: Comparing CBI-IPI to SCE to SCAMPI.Appendix B: Myths and Legends of the CMMI.Appendix C: Checklists for Pilot Projects. Appendix D: Organizational In-Brief to SCAMPI Team.Index.
£114.00
Taylor & Francis Inc Grid Computing
Book SynopsisIdentifies Recent Technological Developments WorldwideThe field of grid computing has made rapid progress in the past few years, evolving and developing in almost all areas, including concepts, philosophy, methodology, and usages. Grid Computing: Infrastructure, Service, and Applications reflects the recent advances in this field, covering the research aspects that involve infrastructure, middleware, architecture, services, and applications.Grid Systems Across the GlobeThe first section of the book focuses on infrastructure and middleware and presents several national and international grid systems. The text highlights China Research and Development environment Over Wide-area Network (CROWN), several ongoing cyberinfrastructure efforts in New York State, and Enabling Grids for E-sciencE (EGEE), which is co-funded by the European Commission and the world's largest multidisciplinary grid infraTable of ContentsGRID INFRASTRUCTURE AND MIDDLEWARE. CROWN: A Service Grid Middleware for e-Science. Cyberinfrastructure in New York State. Enabling Grids for e-Science: The EGEE Project. ChinaGrid and Related Dependability Research. Gridbus Workflow Enactment Engine. GRID SERVICES. UK National Grid Service. Grid Resource Allocation. Grid Services Orchestration with OMII-BPEL. A Data Stream View of Scientific Workflow.Design of a Model-Based SLA Management Service and Its Applications Over Distributed SOA Environments. Portal and Workflow in Grid Computing: From Application Integration to Service Integration. Modeling P2P Grid Information Services with Colored Petri Nets. GRID APPLICATIONS. WISDOM: A Grid-Enabled Drug Discovery Initiative against Malaria. Flow Networking in Grid Simulations. Virtual Machines in Grid Environments: Dynamic Virtual Machines. High-Energy Physics Applications on the Grid. Design and Performance Evaluation of a Service-Oriented HLA RTI on the Grid. Index.
£180.50
Taylor & Francis Ltd Applied Software Product Line Engineering
Book SynopsisOver the last decade, software product line engineering (SPLE) has emerged as one of the most promising software development paradigms for increasing productivity in IT-related industries. Detailing the various aspects of SPLE implementation in different domains, Applied Software Product Line Engineering documents best practices with regard to system development. Expert contributors from academia and industry come together and focus on core asset development, product development, and management, addressing the process, technical, and organizational issues needed to meet the growing demand for information. They detail the adoption and diffusion of SPLE as a primary software development paradigm and also address technical and managerial issues in software product line engineering. Providing an authoritative perspective of the latest research and practice in SLPE, the text: PTrade ReviewThe book contains a number of chapters on organizational and managerial issues followed by methodologies and processes, technical issues, and industry experiences and case studies. ...Significant research went into the creation of this book. ... . Specific areas I found useful and applicable in my role of project, product, and program management include: *The IDEAL model for managing change *The balanced scorecard *The product management pyramid *The out-of-the-box development model *Security Services for application systems *Discussions on business process management Applied Software Product Line Engineering offers best practices and productivity improvement tips for designing software products. -Ann E. Drinkwater, on StickyMinds.com, October 2010Table of ContentsOrganizational and Managerial Issues. Methodologies and Processes. Technical Issues. Industry Experiences and Case Studies.
£114.00
Taylor & Francis Ltd VMware ESX Essentials in the Virtual Data Center
Book SynopsisFlexible and efficient, VMware ESX is the tool of choice for enterprise data centers looking to make the most of the latest virtualization methods. However, to date, no single manual provides users with a systematic way to understand and take full advantage of all its features and options.Novel Solutions for Every Level of the IT ChainVMware ESX Essentials in the Virtual Data Center answers that need. Written by pioneers and established experts in the field of virtualization with years of hands-on experience, it details the product and outlines innovative ways to use virtualization within the organization. With novel solutions for every level of the IT chain, this text is a complete guide to the design, operation, and management of the ESX product.Featuring technical information, best practices, and technology breakdowns needed to answer real business challenges, this succinct volume Shows how to install ESX, either Table of ContentsBASIC CONCEPTS. Introduction to Virtualization. Types of Server Virtualization Technologies. Server Virtualization Concepts. IMPLEMENTING VMware ESX SERVER. The VMware ESX Server Platform, Installation Step-By-Step. Configuration. Creating a Virtual Machine. Advanced Platform Topics. VMware INFRASTRUCTURE AND THE VIRTUAL DATA CENTER. Introduction. Creating a Virtual Data Center. Management.
£66.49
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Building a Data Warehouse
Book SynopsisHere is the ideal field guide for data warehousing implementation. This book first teaches you how to build a data warehouse, including defining the architecture, understanding the methodology, gathering the requirements, designing the data models, and creating the databases. Coverage then explains how to populate the data warehouse and explores how to present data to users using reports and multidimensional databases and how to use the data in the data warehouse for business intelligence, customer relationship management, and other purposes. It also details testing and how to administer data warehouse operation.Table of ContentsA table of contents is not available for this title.
£61.74
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG AdvancED CSS
Book SynopsisSo you think you know CSS? Take your CSS skills to the next level and learn to write organized and optimized CSS that will improve the maintainability, performance, and appearance of your work.You''ll learn how document flow and CSS positioning schemes will help you make your documents more accessible. You''ll discover the great styling possibilities of CSS paired with semantic structures like Microformats and RDFa, while enriching the self-describing semantics of XHTML content. Learn how to group logically related declarations, minify style sheets, and prevent performance bottle necks such as reflows and repaints. With support for CSS enjoying unprecedented ubiquity, you can finally use such features as generated content, complex selector chains, and CSS3''s visual properties, like box-shadow, in your projects.Table of Contents Markup Underpins CSS CSS Fundamentals for Advanced Use CSS-Generated Content Optimizing for Print Developing for Small Screens and the Mobile Web Managing and Organizing Style Sheets Semantic Patterns for Styling Common Design Components Using a Style Sheet Library Styling XML with CSS Optimizing CSS for Performance Exploring the Emergence of CSS3 The Future of CSS and the Web
£31.34
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Pro Bash Programming
Book SynopsisThe 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 written in C or other compiled languages. And you will see how, without assuming Unix lore, you can write professional bash 4.0 programs through standard programming techniques. Complete bash coverage Teaches bash as a programming language Helps you master bash 4.0 features Table of Contents Hello, World! Your First Shell Program Input, Output, and Throughput Looping and Branching Command-Line Parsing and Expansion Parameters and Variables Shell Functions String Manipulation File Operations and Commands Reserved Words and Builtin Commands Writing Bug-Free Scripts and Debugging the Rest Programming for the Command Line Runtime Configuration Data Processing Scripting the Screen Entry-Level Programming
£41.24
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Pro PHP Application Performance
Book SynopsisPro PHP Application Performance will help you understand all the technologies and components which play a role in how well your applications run. When seconds can mean the difference between retaining a user and losing a user, it''s important for all of us to have optimization as part of our project roadmap. But what components within your application should you analyze? How should you optimize? And how can you measure how well your application is performing? These are some of the questions thatare answered in this book. Along the way you will also learn the why of optimizing. You'll discover why you should optimize a specific component, why selecting one function over another is beneficial, and how to find and use the optimization tools available to the open source community. You'll also learn how to deploy caching software as well as web server software.Pro PHP Application Performance willalso teach you more advanced techniques, such as: Using XdebuTable of Contents Benchmarking Techniques Improving Client Download and Rendering Performance PHP Code Optimization Opcode Caching Variable Caching Choosing the Right Web Server Web Server and Delivery Optimization Database Optimization Installing Apache, MySQL, PHP, and PECL on Windows Installing Apache, MySQL, PHP, and PECL on Linux
£35.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Foundations of Python Network Programming
Book SynopsisThis second edition of Foundations of Python Network Programming targets Python 2.5 through Python 2.7, the most popular production versions of the language. Python has made great strides since Apress released the first edition of this book back in the days of Python 2.3. The advances required new chapters to be written from the ground up, and others to be extensively revised. You will learn fundamentals like IP, TCP, DNS and SSL by using working Python programs; you will also be able to familiarize yourself with infrastructure components like memcached and message queues. You can also delve into network server designs, and compare threaded approaches with asynchronous event-based solutions. But the biggest change is this edition''s expanded treatment of the web. The HTTP protocol is covered in extensive detail, with each feature accompanied by sample Python code. You can use your HTTP protocol expertise by studying an entire chapter on screen scraping and you can Table of Contents Introduction to Client/Server Networking UDP TCP Socket Names and DNS Network Data and Network Errors TLS and SSL Server Architecture Caches, Message Queues, and Map-Reduce HTTP Screen Scraping Web Applications E-mail Composition and Decoding SMTP POP IMAP Telnet and SSH FTP RPC
£49.49
Apress Python Algorithms Mastering Basic Algorithms in the Python Language Experts Voice in Open Source
Book SynopsisPython Algorithms explains the Python approach to algorithm analysis and design. The book covers both algorithmic theory and programming practice, demonstrating how theory is reflected in real Python programs.Table of Contents Introduction The Basics Counting 101 Induction and Recursion … and Reduction Traversal: The Skeleton Key of Algorithmics Divide, Combine, and Conquer Greed Is Good? Prove It! Tangled Dependencies and Memoization From A to B with Edsger and Friends Matchings, Cuts, and Flows Hard Problems and (Limited) Sloppiness
£58.49
Apress Foundation Website Creation with HTML5 CSS3 and JavaScript
Book Synopsis While a website is being built, it needs to be tested across multiple browsers and platforms to ensure that the site works for all users, regardless of ability or disability, and this book explains how best to accomplish these tasks.Table of Contents Introducing the Past, Present, and Future of the Web Keeping a Project on Track Planning and High-level Design Giving Your Pages Structure: HTML5 Exploring Fundamental Concepts of CSS3 Developing CSS3 in Practice: From Design to Deployment Responsive Design JavaScript Primer A Deeper Dive into JavaScript Closing the Loop with JavaScript Using Server-side Technologies Using WordPress to Jumpstart Development Afterword: The Business of the Web
£27.99
Apress Beginning WebGL for HTML5 Experts Voice in Web Development
Book SynopsisBeginning WebGL for HTML5 gets you rapidly up to speed with WebGL, a powerful new graphics language within the browser. Quickly get up to speed with WebGL Render realistic scenes Work faster with frameworks Improve rendering performance Table of Contents Setting The Scene Shaders 101 Textures and Lighting Increasing Realism Physics Fractals, Height Maps, and Particle Systems Three.js Framework Productivity Tools Debugging and Performance Effects, Tips and Tricks Afterword: The Future of WebGL Appendix A: Essential HTML5 and JavaScript Appendix B: Graphics Refresher Appendix C: WebGL Spec. Odds and Ends Appendix D: Additional Resources
£40.49
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG CSS3 Solutions
Book Synopsis CSS Basics CSS Selectors Font, Text and Color CSS Typography Tables and Lists CSS Box Model CSS Positioning and Layouts Multidevice Development Transitions and Transformations Multimedia and Accessibility UX Patterns Mobile UX Patterns Table of Contents CSS Basics CSS Selectors Font, Text and Color CSS Typography Tables and Lists CSS Box Model CSS Positioning and Layouts Multidevice Development Transitions and Transformations Multimedia and Accessibility UX Patterns Mobile UX Patterns
£26.62
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Pro WPF 4.5 in C
Book SynopsisMicrosoft''s Windows Presentation Foundation (WPF) provides you with a development framework for building high-quality user experiences for the Windows operating system. It blends together rich content from a wide range of sources and allows you unparalleled access to the processing power of your Windows computer. Pro WPF 4.5 in C# provides a thorough, authoritative guide to how WPF really works. Packed with no-nonsense examples and practical advice you''ll learn everything you need to know in order to use WPF in a professional setting. The book begins by building a firm foundation of elementary concepts, using your existing C# skills as a frame of reference, before moving on to discuss advanced concepts and demonstrate them in a hands-on way that emphasizes the time and effort savings that can be gained. Trade ReviewFrom the reviews of the fourth edition: “The book really starts from the very beginning of WPF and explains the general ideas in an understanding way. … every chapter can be read independently and the book can be used as a source of quick advice. Furthermore, the examples of the book are really written in a nice way … .” (Vitosh Kolev Doynov, Amzon.com, February, 2014)Table of Contents Introducing WPF XAML Layout Dependency Properties Routed Events Controls The Application Element Binding Commands Resources Styles and Behaviors Shapes, Brushes, and Transforms Geometries and Drawings Effects and Visuals Animation Basics Advanced Animation Control Templates Custom Elements Data Binding Formatting Bound Data Data Views Lists, Trees, and Grids Windows Pages and Navigation Menus, Toolbars, and Ribbons Sound and Video 3-D Drawing Documents Printing Interacting with Windows Forms Multithreading The Add-in Model ClickOnce Deployment
£76.49
Apress Pro NET Performance Optimize Your C Applications Experts Voice in NET
Table of ContentsChapter 1: Performance Metrics Chapter 2: Performance Measurement Chapter 3: Type Internals Chapter 4: Garbage Collection Chapter 5: Collections and Generics Chapter 6: Concurrency and Parallelism Chapter 7: Networking, I/O, and Serialization Chapter 8: Unsafe Code and Interoperability Chapter 9: Algorithm Optimization Chapter 10: Performance Patterns Chapter 11: Web Application Performance
£52.24
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG DevOps for Developers
Book SynopsisDevOps for Developers delivers a practical, thorough introduction to approaches, processes and tools to foster collaboration between software development and operations. Efforts of Agile software development often end at the transition phase from development to operations. This book covers the delivery of software, this means the last mile, with lean practices for shipping the software to production and making it available to the end users, together with the integration of operations with earlier project phases (elaboration, construction, transition). DevOps for Developers describes how to streamline the software delivery process and improve the cycle time (that is the time from inception to delivery). It will enable you to deliver software faster, in better quality and more aligned with individual requirements and basic conditions. And above all, work that is aligned with the DevOps approach makes even more fun! ProvidesTable of Contents Beginning DevOps for Developers Introducing DevOps Building Blocks of DevOps Quality and Testing Introduce Shared Incentives Gain Fast Feedback Unified and Holistic Approach Automatic Releasing Infrastructure as Code Specification by Example
£39.99
Apress Pro ASPNET Web API HTTP Web Services in ASPNET Experts Voice in NET
Book SynopsisPro ASP.NET Web API shows you how to build flexible, extensible web services that run seamlessly on a range of operating systems and devices, from desktops to tablets to smart phones—even the ones we don’t know today. ASP.NET Web API is a new framework designed to simplify web service architecture.Table of Contents Introduction to ASP.NET Web API Introduction to Asynchronous Programming in .NET HTTP, REST, and Hypermedia HttpClient Sample Application: Application Structure and Domain Model Sample Application: Building the Web API Sample Application: Building the Wrapper and Web Client Routing Controllers and Actions Message Handlers Filters Media Type Formatters and Model Binding Input Validation Dependency Resolution Unit Testing and Integration Testing Optimization and Performance Hosting Tracing, Logging, and API Documentation
£71.99