Computer programming / software engineering Books

2176 products


  • Packt Publishing Limited Real-World Next.js: Build scalable, high-performance, and modern web applications using Next.js, the React framework for production

    15 in stock

    Book SynopsisLearn how to use Next.js for building web apps without compromising performance, user experience, and developer happinessKey Features Develop scalable web applications using Next.js Use Next.js as a frontend for existing backends and e-commerce websites and understand how to implement it with any headless CMS Deploy Next.js on different platforms, such as Vercel, DigitalOcean, and AWS, or on your own server Book DescriptionNext.js is a scalable and high-performance React.js framework for modern web development and provides a large set of features, such as hybrid rendering, route prefetching, automatic image optimization, and internationalization, out of the box. If you are looking to create a blog, an e-commerce website, or a simple website, this book will show you how you can use the multipurpose Next.js framework to create an impressive user experience.Starting with the basics of Next.js, the book demonstrates how the framework can help you reach your development goals. You'll realize how versatile Next.js is as you build real-world applications with step-by-step explanations. This Next.js book will guide you in choosing the right rendering methodology for your website, securing it, and deploying it to different providers, all while focusing on performance and developer happiness.By the end of the book, you'll be able to design, build, and deploy modern architectures using Next.js with any headless CMS or data source.What you will learn Get up to speed with Next.js essentials and learn how to build apps quickly Understand how to create scalable Next.js architectures Choose between different rendering strategies, such as client-side rendering (CSR), static site generation (SSG), server-side rendering (SSR), and incremental static regeneration (ISR) Write unit tests and integration tests in your Next.js application Discover the powerful routing system and Next.js' built-in components Design and build modern architectures with Next.js using GraphCMS or any headless CMS Who this book is forThis book is for web developers who want to improve their React skills by building scalable and maintainable full-stack applications using the modern Next.js web framework. Intermediate-level knowledge of ES6+, React, Node.js, and REST is assumed.Table of ContentsTable of Contents A Brief Introduction to Next.js Exploring Different Rendering Strategies Next.js Basics and Built-In Components Organizing the Code Base and Fetching Data in Next.js Managing Local and Global States in Next.js CSS and Built-In Styling Methods Using UI Frameworks Using a Custom Server Testing Next.js Working with SEO and Managing Performance Different Deployment Platforms Managing Authentication and User Session Building an E-Commerce Website with Next.js and GraphCMS Example Projects and Next Steps for Learning More

    15 in stock

    £38.34

  • Packt Publishing Limited Advanced Python Programming: Accelerate your Python programs using proven techniques and design patterns

    15 in stock

    Book SynopsisWrite fast, robust, and highly reusable applications using Python's internal optimization, state-of-the-art performance-benchmarking tools, and cutting-edge librariesKey Features Benchmark, profile, and accelerate Python programs using optimization tools Scale applications to multiple processors with concurrent programming Make applications robust and reusable using effective design patterns Book DescriptionPython's powerful capabilities for implementing robust and efficient programs make it one of the most sought-after programming languages.In this book, you'll explore the tools that allow you to improve performance and take your Python programs to the next level.This book starts by examining the built-in as well as external libraries that streamline tasks in the development cycle, such as benchmarking, profiling, and optimizing. You'll then get to grips with using specialized tools such as dedicated libraries and compilers to increase your performance at number-crunching tasks, including training machine learning models.The book covers concurrency, a major solution to making programs more efficient and scalable, and various concurrent programming techniques such as multithreading, multiprocessing, and asynchronous programming.You'll also understand the common problems that cause undesirable behavior in concurrent programs.Finally, you'll work with a wide range of design patterns, including creational, structural, and behavioral patterns that enable you to tackle complex design and architecture challenges, making your programs more robust and maintainable.By the end of the book, you'll be exposed to a wide range of advanced functionalities in Python and be equipped with the practical knowledge needed to apply them to your use cases.What you will learn Write efficient numerical code with NumPy, pandas, and Xarray Use Cython and Numba to achieve native performance Find bottlenecks in your Python code using profilers Optimize your machine learning models with JAX Implement multithreaded, multiprocessing, and asynchronous programs Solve common problems in concurrent programming, such as deadlocks Tackle architecture challenges with design patterns Who this book is forThis book is for intermediate to experienced Python programmers who are looking to scale up their applications in a systematic and robust manner. Programmers from a range of backgrounds will find this book useful, including software engineers, scientific programmers, and software architects.Table of ContentsTable of Contents Benchmarking and Profiling Pure Python Optimizations Fast Array Operations with NumPy and Pandas C Performance with Cython Exploring Compilers Automatic Differentiation and Accelerated Linear Algebra for Machine Learning Implementing Concurrency Parallel Processing Concurrent Web Requests Concurrent Image Processing Building Communication Channels with asyncio Deadlocks Starvation Race Conditions The Global Interpreter Lock The Factory Pattern The Builder Pattern Other Creational Patterns The Adapter Pattern The Decorator Pattern The Bridge Pattern The Facade Pattern Other Structural Patterns The Chain of Responsibility Pattern The Command Pattern The Observer Pattern

    15 in stock

    £37.99

  • 15 in stock

    £22.49

  • Packt Publishing Limited Puppet 8 for DevOps Engineers: Automate your infrastructure at an enterprise scale

    15 in stock

    Book SynopsisHarness the power of this popular declarative configuration management tool to automate your infrastructure configuration Purchase of the print or Kindle book includes a free PDF eBook Key Features Understand the core concepts and best approaches to the latest version of the Puppet language Learn the key components of the Puppet platform and see how they deploy and apply Puppet code to infrastructure Discover approaches to collaborative working by using the right structure of code and deployment Book DescriptionAs DevOps and platform engineering drive the demand for robust internal development platforms, the need for infrastructure configuration tools has never been greater. Puppet, a powerful configuration management tool, is widely used by leading enterprises and boasts a thriving open source community. This book provides a comprehensive explanation of both the Puppet language and the platform. It begins by helping you grasp the basic concepts and approach of Puppet as a stateful language, and then builds up to explaining how to structure Puppet code to scale and allow flexibility and collaboration among teams. As you advance, you’ll find out how the Puppet platform allows the management and reporting of infrastructure configuration. The book also shows you how the platform can be integrated with other tooling, such as ServiceNow and Splunk. The concluding chapters help you implement Puppet to fit in heavily regulated and audited environments as well as modern hybrid cloud environments. By the end of this book, you’ll have gained a solid understanding of the capabilities of both the Puppet language and platform, and you will have learned how to structure and scale Puppet to create a platform to provide enterprise-grade infrastructure configuration.What you will learn Find out how to structure Puppet code and data to scale and be secure Discover the core components of the Puppet platform and how to achieve performance Get to grips with classifying infrastructure and deploying code for different environments Understand how Bolt can provide procedural orchestration alongside Puppet code Use Puppet’s integrations and Forge modules that allow Puppet to integrate with other systems Adopt approaches to adoption to ensure your Puppet implementation will succeed in regulated environments, the cloud, and with change control Who this book is forThis book is for DevOps engineers looking to automate infrastructure with Puppet as a configuration management tool. It will allow both beginners and current Puppet users to understand the full power of the Puppet language and platform. A basic understanding of Unix system administration and Windows systems and core development concepts such as revision control tools like git, virtualization, testing, and coding tooling like vi or Visual Studio code is a prerequisite.Table of ContentsTable of Contents Puppet Concepts and Practices Major Changes, Useful Tools, and References Puppet Classes, Resource Types, and Providers Variables and Data Types Facts and Functions Relationships, Ordering, and Scope Templating, Iterating, and Conditionals Developing and Managing Modules Handling Data with Puppet Puppet Platform Parts and Functions Classification and Release Management Bolt for Orchestration Taking Puppet Server Further A Brief Overview of Puppet Enterprise Approaches to Adoption

    15 in stock

    £39.33

  • Packt Publishing Limited Practical Business Process Modeling and Analysis

    Out of stock

    Out of stock

    £29.99

  • Packt Publishing Limited C Memory Management

    Out of stock

    Out of stock

    £31.99

  • Packt Publishing Limited HandsOn Automated Testing with Playwright

    Out of stock

    Out of stock

    £37.99

  • Packt Publishing Limited Design MultiAgent AI Systems Using MCP and A2A

    Out of stock

    Out of stock

    £44.07

  • Packt Publishing Limited Learning Zig

    Out of stock

    Out of stock

    £33.99

  • 15 in stock

    £69.45

  • Packt Publishing Limited Software Architecture with Kotlin

    Out of stock

    Book SynopsisDevelop innovative architectural styles by analyzing and merging various approaches, focusing on making trade-offs and mitigating risks to solve real-world problemsKey FeaturesLearn how to analyze and dissect various architectural styles into building blocksCombine existing ideas with your own to create custom solutionsMake informed decisions by navigating trade-offs and compromisesPurchase of the print or Kindle book includes a free PDF eBookBook DescriptionSoftware Architecture with Kotlin explores the various styles of software architecture with a focus on using the Kotlin programming language. The author draws on their 20+ years of industry experience in developing large-scale enterprise distributed systems to help you grasp the principles, practices, and patterns that shape the architectural landscape of modern software systems. The book establishes a strong foundation in software architecture, explaining key concepts such as architectural qualities and principles, before teaching you how architectural decisions impact the quality of a system, such as scalability, reliability, and extendability. The chapters address modern architecture topics such as microservices, serverless, and event-driven architectures, providing insights into the challenges and trade-offs involved in adopting these architectural styles. You'll also discover practical tools that'll help you make informed decisions and mitigate risks. All architectural patterns in this book are demonstrated using Kotlin. By the end of this book, you'll have gained practical expertise by using real-world examples, along with a solid understanding of Kotlin, to become a more proficient and impactful software architect.What you will learnMaster the fundamental principles of architecture and designExplore common architectural styles and their applicable scenariosAnalyze, break down, compare, and design architectural styles to solve practical problemsReason, negotiate, and make difficult choices in the absence of ideal solutionsMitigate risks when making compromises and trade-offsCreate scalable, sustainable, maintainable, and extendable software systemsUse the Kotlin programming language to achieve your architectural goalsWho this book is forThis book is for developers with basic Kotlin knowledge seeking a deeper understanding of architecture, Kotlin Android developers who are starting to get involved in backend development, and Java developers transitioning to Kotlin. It's also ideal for software architects who are less experienced in Kotlin and want to enhance their skills, as well as those who enjoy discussing and exploring unique architectural concepts.

    Out of stock

    £29.99

  • Packt Publishing Limited Mastering iOS 18 Development

    Out of stock

    Out of stock

    £31.99

  • Packt Publishing Limited Cloud Observability with Azure Monitor

    Out of stock

    Out of stock

    £33.99

  • Packt Publishing Limited Building CLI Applications with .NET

    Out of stock

    Out of stock

    £29.99

  • Packt Publishing Limited Mastering Visual Studio 2022

    Out of stock

    Out of stock

    £29.99

  • Packt Publishing Limited The Scrum Master Guide

    Out of stock

    Out of stock

    £25.64

  • Packt Publishing Limited RESTful API Design Patterns and Best Practices

    Out of stock

    Out of stock

    £36.32

  • Packt Publishing Limited Clean Code with Typescript

    Out of stock

    Out of stock

    £40.19

  • Packt Publishing Limited Platform Engineering for Architects

    15 in stock

    15 in stock

    £37.99

  • Packt Publishing Limited GitHub Foundations Certification Guide

    Out of stock

    Out of stock

    £26.99

  • Packt Publishing Limited Microservices with Go

    Out of stock

    Out of stock

    £33.99

  • Packt Publishing Limited Building an Application Development Framework

    Out of stock

    Out of stock

    £31.99

  • Packt Publishing Limited Clean Architecture with Python

    Out of stock

    Out of stock

    £33.99

  • Out of stock

    £67.43

  • Packt Publishing Limited Visualize Complex Processes with Microsoft Visio: A guide to visually creating, communicating, and collaborating business processes efficiently

    15 in stock

    Book SynopsisStreamline your business by creating clear, concise process diagrams with Microsoft Visio, and share them securely for viewing, reviewing, and collaboration Purchase of the print or Kindle book includes a free PDF eBook Key Features Learn built-in diagram types or create custom ones to describe flow steps effectively Unlock the skills and techniques needed to efficiently and speedily capture and communicate complex flows Understand how to store securely, integrate with other apps, and import and export flow steps Book DescriptionEvery business has process flows, but not all of them are fully described to or verified for accuracy with each stakeholder. This not only presents a risk for business continuity but also removes the ability to make insightful improvements. To make these complex interactions easy to grasp, it’s important to describe these processes visually using symbology that everybody understands. Different parts of these flows should be collaboratively developed and stored securely as commercial collateral. Visualize Complex Processes with Microsoft Visio helps you understand why it is crucial to use a common, systematic approach to document the steps needed to meet each business requirement. This book explores the various process flow templates available in each edition of Microsoft Visio, including BPMN. It also shows you how to use them effectively with the help of tips and techniques and examples to reduce the time required for creating them, as well as how you can improve their integration and presentation. By the end of this book, you’ll have mastered the skills needed to create data-integrated business flowcharts with Microsoft Visio, learned how to effectively use these diagrams collaboratively, but securely, and understood how to integrate them with other M365 apps, including Excel, Word, PowerPoint, and Power Automate.What you will learn Choose an appropriate flowchart diagram type to describe process steps Develop the skills to efficiently use Visio to draw process flowcharts Discover how to create process flows diagrams to meet the BPMN standard Find out how to synchronize Excel tables with Visio process flowcharts Store flowcharts that can also be used for collaboration securely Understand how to export flowcharts and data to other M365 apps Discover how Visio ShapeSheet functions can increase productivity Who this book is forIf you’re a manager, analyst, or designer of business processes, then this book will help you create professional process diagrams effectively and consistently to improve the accuracy of communication and facilitate impactful insights. This book will also be useful for beginners or power users who are seeking tips and techniques to capture process flows from context and customize diagrams to meet academic as well as corporate standards.Table of ContentsTable of Contents Choosing the Correct Business Process Diagram Type Choosing the Best Visio Edition for Our Needs Learning to Manually Create Process Flow Diagrams Using Visio for Desktop with BPMN Utilizing Data Sources to Create and Enrich Business Process Diagrams Learn How to Diagram Efficiently Preparing Diagrams for Presentation and Collaboration Securing and Providing Access to Diagrams Integrating Visio with Other Microsoft Apps Customizing Master Shapes and Templates Improving the Provided Flowchart Shapes

    15 in stock

    £27.47

  • Packt Publishing Limited Clean Code with C#: Refactor your legacy C# code base and improve application performance using best practices

    15 in stock

    Book SynopsisEnhance your programming skills through code reviews, TDD and BDD implementation, and API design to overcome code inefficiency, redundancy, and other issues arising from bad code Key Features Write code that seamlessly integrates with other systems while maintaining well-defined software boundaries Understand how coding principles and standards elevate software quality Learn how to avoid common errors while implementing concurrency or threading Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionTraditionally associated with Windows desktop applications and game development, C# has expanded into web, cloud, and mobile development. However, despite its extensive coding features, professionals often encounter issues with efficiency, scalability, and maintainability due to poor code. Clean Code in C# guides you in identifying and resolving these problems using coding best practices. This book starts by comparing good and bad code to emphasize the importance of coding standards, principles, and methodologies. It then covers code reviews, unit testing, and test-driven development, and addresses cross-cutting concerns. As you advance through the chapters, you’ll discover programming best practices for objects, data structures, exception handling, and other aspects of writing C# computer programs. You’ll also explore API design and code quality enhancement tools, while studying examples of poor coding practices to understand what to avoid. By the end of this clean code book, you’ll have the developed the skills needed to apply industry-approved coding practices to write clean, readable, extendable, and maintainable C# code.What you will learn Master the art of writing evolvable and adaptable code Implement the fail-pass-refactor methodology using a sample C# console application Develop custom C# exceptions that provide meaningful information Identify low-quality C# code in need of refactoring Improve code performance using profiling and refactoring tools Create efficient and bug-free code using functional programming techniques Write cross-platform code using MAUI Develop cloud-deployable microservices for versatile applications Who this book is forThis coding book is for proficient C# developers, team leads, senior software engineers, and software architects who want to improve the efficiency of their legacy systems. A strong understanding of C# programming is assumed.Table of ContentsTable of Contents Coding Standards and Principles in C# Code Review - Process and Importance Classes, Objects and Data Structures Writing Clean Functions Exception Handling Unit Testing Designing and Developing APIs Addressing Cross-Cutting Concerns AOP with PostSharp Using Tools to Improve Code Quality Refactoring C# Code Functional Programming Cross-Platform Development with MAUI Microservices

    15 in stock

    £37.99

  • Packt Publishing Limited Open Source Projects - Beyond Code: A blueprint for scalable and sustainable open source projects

    15 in stock

    Book SynopsisAccelerate your career and make an impact by launching and running a successful open source project. Purchase of the print or Kindle book includes a free PDF eBook Key Features Understand the method and rationale for launching an open source project Explore best practices and insights for running an open source project Leverage open source projects to advance your career Book DescriptionOpen source is ubiquitous in our society, with countless existing projects, and new ones emerging every day. It follows a "scratch-your-own-itch" model where contributors and maintainers drive the project forward. Through Open Source Projects - Beyond Code, you'll learn what it takes to develop a successful, scalable, and sustainable open source project. In this book, you’ll explore the full life cycle of open source projects, from inception, through launch, to maturity, and then discover how to sunset an open source project responsibly. Along the way, you’ll learn the concepts of licensing, governance, community building, ecosystem management, and growing maintainers and contributors, as well as understand how other open source projects have been successful or might have struggled in some areas. You can use this book as an end-to-end guide or reference material for the future. By the end of this book, you’ll be able to accelerate your career in open source. Your newly acquired skills will help you stay ahead of the curve even with the ever-evolving nature of technology.What you will learn Explore what is open source and how you can use it to accelerate your career Start an open source project while exploring its key considerations Grow, support, and manage a vast community of developers and users Build and maintain a mature and sustainable project Enable mass users and developers to downstream productization and outreach Use open source as a portfolio to build your career Understand when to end a project and conduct it responsibly Who this book is forThis book is for software developers, product managers, project managers, business leaders, or general enthusiasts looking to start an open source project or currently maintaining one.Table of ContentsTable of Contents Product Information Document The Whats and Whys of Open Source What Makes a Good Open Source Project? Open Source License and IP Management Aligning the Business Value of Open Source for Your Employer Governance and Hosting Models Making Your Project Feel Welcoming Growing Contributors to Maintainers Dealing with Conflict Handling Growth Commercialization of Open Source Open Source and the Talent Ecosystem Marketing for Open Source – Advocacy and Outreach Transitioning Leadership Sunsetting an Open Source Project

    15 in stock

    £35.38

  • Packt Publishing Limited How to Build an LLVM Backend

    Out of stock

    Out of stock

    £40.19

  • Packt Publishing Limited Building Programming Language Interpreters

    Out of stock

    Out of stock

    £37.99

  • Packt Publishing Limited The Art of Crafting User Stories: Unleash creativity and collaboration to deliver high-value products with a delightful user experience

    15 in stock

    Book SynopsisProven techniques, best practices, and tips for writing effective user stories, leveraging user story mapping, and expert interviews to deliver high value to users Purchase of the print or Kindle book includes a free PDF eBook Key Features Learn how to write and implement effective user stories to improve product development Discover techniques to gather requirements, prioritize, and refine user stories Handle stakeholder expectations, communicate user stories, and incorporate user feedback Book DescriptionThe Art of Crafting User Stories is a must-read for product managers, UX professionals, and product developers dedicated to creating meaningful digital experiences. This book provides a comprehensive, step-by-step approach to empower you to master the techniques for creating user stories that drive effective product development. This book takes you on a journey from identifying and capturing user needs, goals, and perspectives through user stories, to crafting impactful stories for design choices and organizing tasks efficiently. You’ll learn how to define the problem area, recognize user personas, and develop user scenarios with the aid of real-world examples, practical tips, and exercises designed to help you develop your skills in crafting user-centered experiences. Moreover, you’ll gain a thorough understanding of user stories, their role in Agile development, and how to use them to plan and manage products effectively. By the end of this book, you’ll be able to improve the quality and efficiency of your own products by applying the hands-on practical skills to create compelling digital experiences that resonate with users and stay relevant in the market.What you will learn Leverage user personas in product development for prioritizing features and guiding design decisions Communicate with stakeholders to gather accurate information for writing user stories Avoid common mistakes by implementing best practices for user story development Estimate the time and resources required for each user story and incorporate estimates into the product plan Apply product frameworks and techniques for user story prioritization and requirement elicitation Benefit from the experiences, insights, and practices of experts in the field of user story mapping Who this book is forIf you're interested in learning about user stories, as a product management method in Agile development, this book is for you. It's suitable for anyone involved in software development, including product managers, product owners, Agile coaches, designers, product analysts, and developers. Although prior experience with Agile development is not expected, a basic understanding of software development will be beneficial.Table of ContentsTable of Contents Introduction to User Stories Understanding the User Perspective Writing Effective User Stories Prioritizing and Estimating User Stories Working with Stakeholders User Story Refinement and Continuous Improvement User Stories in Practice Expert Interviews Conclusion

    15 in stock

    £24.50

  • Packt Publishing Limited Learn Robotics Programming: Build and control AI-enabled autonomous robots using the Raspberry Pi and Python

    15 in stock

    Book SynopsisDevelop an extendable smart robot capable of performing a complex series of actions with Python and Raspberry Pi Key Features Get up to speed with the fundamentals of robotic programming and build intelligent robots Learn how to program a voice agent to control and interact with your robot's behavior Enable your robot to see its environment and avoid barriers using sensors Book DescriptionWe live in an age where the most complex or repetitive tasks are automated. Smart robots have the potential to revolutionize how we perform all kinds of tasks with high accuracy and efficiency. With this second edition of Learn Robotics Programming, you'll see how a combination of the Raspberry Pi and Python can be a great starting point for robot programming. The book starts by introducing you to the basic structure of a robot and shows you how to design, build, and program it. As you make your way through the book, you'll add different outputs and sensors, learn robot building skills, and write code to add autonomous behavior using sensors and a camera. You'll also be able to upgrade your robot with Wi-Fi connectivity to control it using a smartphone. Finally, you'll understand how you can apply the skills that you've learned to visualize, lay out, build, and code your future robot building projects. By the end of this book, you'll have built an interesting robot that can perform basic artificial intelligence operations and be well versed in programming robots and creating complex robotics projects using what you've learned.What you will learn Leverage the features of the Raspberry Pi OS Discover how to configure a Raspberry Pi to build an AI-enabled robot Interface motors and sensors with a Raspberry Pi Code your robot to develop engaging and intelligent robot behavior Explore AI behavior such as speech recognition and visual processing Find out how you can control AI robots with a mobile phone over Wi-Fi Understand how to choose the right parts and assemble your robot Who this book is forThis second edition of Learn Robotics Programming is for programmers, developers, and robotics enthusiasts who want to develop a fully functional robot and leverage AI to build interactive robots. Basic knowledge of the Python programming language will help you understand the concepts covered in this robot programming book more effectively.Table of ContentsTable of Contents Introduction to Robotics Exploring Robot Building Blocks - Code and Electronics Introducing the Raspberry Pi - Starting with Raspbian Preparing a Raspberry Pi for a Robot - Headless by Default Protecting Robot Code with Git and SD Card Copies Building Robot Basics - Wheels, Power, and Wiring Moving Motors with Python Programming Distance Sensors with Python Programming RGB Strips in Python Using Python to Control Servo Motors Programming Encoders with Python IMU Programming with Python Robot Vision - Using a Pi Camera and OpenCV Line Following With A Camera with Python Voice Communication with a Robot Using Mycroft Diving Deeper with the IMU Controlling the Robot With A Phone and Python Taking Your Robot Programming Skills Further Planning Your Next Robot Project - Putting It All Together

    15 in stock

    £48.22

  • 15 in stock

    £42.30

  • ISTE Ltd and John Wiley & Sons Inc Model-Driven and Software Product Line

    Out of stock

    Book SynopsisMany approaches to creating Software Product Lines have emerged that are based on Model-Driven Engineering. This book introduces both Software Product Lines and Model-Driven Engineering, which have separate success stories in industry, and focuses on the practical combination of them. It describes the challenges and benefits of merging these two software development trends and provides the reader with a novel approach and practical mechanisms to improve software development productivity.The book is aimed at engineers and students who wish to understand and apply software product lines and model-driven engineering in their activities today. The concepts and methods are illustrated with two product line examples: the classic smart-home systems and a collection manager information system.Table of ContentsChapter 1 Introduction 1 1.1 Software product line engineering 2 1.2 Model-driven engineering 3 1.3 Merging model-driven and software product line engineering 5 1.4 The FieSta framework 8 1.5 Book structure 11 Chapter 2 Software Product Line Engineering Basics 17 2.1 Introduction to product line engineering 17 2.2 Brief history 21 2.3 Application example: Smart-Home systems 24 2.3.1 Smart-Home system’s domain 24 2.3.2 Requirements of the application example 26 2.4 Software product line engineering 30 2.5 Domain engineering 34 2.5.1 Component-based software engineering 36 2.6 Variability management 37 2.6.1 Feature modeling 40 2.7 Application engineering 43 2.7.1 Product configuration 44 2.7.2 Product derivation 46 2.8 Benefits and drawbacks 48 2.9 Issues in product line 49 2.9.1 Variability management 50 2.9.2 Product derivation 50 2.9.3 Testing 51 2.9.4 Traceability 52 2.9.5 Product line evolution 53 2.9.6 Tool support 55 2.10 Summary 56 Chapter 3 Model-Driven Engineering 59 3.1 Introduction 59 3.2 Models and metamodels 60 3.2.1 The 4-level metamodeling framework 65 3.2.2 The nature of models 67 3.3 UML class diagrams and OCL 68 3.4 Model transformations 74 3.4.1 Scheduling of transformation rules 76 3.4.2 Model transformation patterns 78 3.4.3 Classification of model transformations 79 3.4.4 Vertical model transformations 80 3.4.5 Horizontal model transformations 81 3.4.6 Model composition or model weaving 81 3.5 Modeling framework 83 3.5.1 The eclipse modeling framework 83 3.5.2 The topcased toolkit 86 3.6 Model transformation languages 86 3.6.1 QVT 87 3.6.2 ATL 89 3.6.3 The openArchitectureWare framework 90 3.6.4 The Xtend language 92 3.7 Benefits and challenges for SPLE 96 3.8 Summary 98 Chapter 4 Model-Driven and Software Product Line Engineering 101 4.1 Introduction 102 4.2 Problem space issues 107 4.2.1 Separating points of views 107 4.2.2 Capturing variability and configuring products 108 4.2.3 Relating several points of view 109 4.2.4 Configuring products in a multi-staged process 110 4.3 Solution space issues 111 4.4 Developing core assets 112 4.4.1 Developing decision models and deriving products 112 4.5 Variability expression and product configuration 113 4.5.1 Metamodels 114 4.5.2 Feature models 120 4.6 Core asset development and product derivation 126 4.6.1 Transformation rules in the Smart-Home systems SPL 127 4.6.2 Creating and using decision models 132 4.7 Summary 138 Chapter 5 The FieSta Framework: Fine-Grained Derivation and Configuration 139 5.1 Introduction 139 5.1.1 Coarse-grained and fine-grained variations 140 5.2 Binding models and constraint models 142 5.2.1 Binding models 142 5.2.2 Constraint models 143 5.2.3 The cardinality property 146 5.2.4 The structural dependency property 147 5.2.5 The constraint metamodel and the binding metamodel 148 5.2.6 Validating binding models against constraint models 150 5.3.Deriving products based on constraint models and binding models 152 5.3.1 The extended decision metamodel 155 5.3.2 Creating executable model transformation workflows from decision models and constraint models 156 5.4 Identified limitations 157 5.4.1 Features combinatorial 157 5.4.2 Features interaction 158 5.4.3 Bindings interaction 159 5.5 Summary 160 Chapter 6 Tools Support 161 6.1 Introduction 161 6.2 The FieSta process 162 6.3 The SPL of Smart-Home systems 163 6.4 Variability expression and product configuration 170 6.4.1 MD-SPL project creation 170 6.4.2 Metamodels and feature models creation 170 6.4.3 Constraint models creation 173 6.4.4 Domain models and binding models creation 178 6.5 Completing and running the product derivation 184 6.5.1 Transformation rules creation 184 6.5.2 Decision models creation 186 6.5.3 Generation and execution of model transformation workflows 188 6.6 Summary 190 Chapter 7 A Second Comprehensive Application Example 191 7.1 Domain of the collection manager system 191 7.2 Requirements of the application example 192 7.2.1 Kernel commonalities 193 7.2.2 GUI commonalities 193 7.2.3 Kernel and GUI variability 193 7.3 The overall process 196 7.3.1 Domain engineering 196 7.3.2 Application engineering 197 7.4 Variability expression and product configuration 198 7.4.1 Metamodels 198 7.4.2 The feature model 202 7.4.3 The constraint model 204 7.4.4 Binding models 205 7.5 Core assets development and product derivation 207 7.5.1 Rule transformations in the SPL of the collection manager systems 207 7.5.2 Decision models 209 7.6 Summary 211 Chapter 8 Further Reading 213 8.1 Northop and Clements’ book 213 8.2 Pohl, Böckle and Van der Linden’s book 214 8.3 Gomaa’s book 214 8.4 Van der Linden, Schmid, and Rommes’ book 215 8.5 Stahl, Voelter, and Czarnecki book 216 8.6 AMPLE book 216 8.7 Feature modeling notations 218 8.8 Decision models 218 8.9 Model-driven software product lines 220 8.9.1 The Czarnecki and Antkiewicz’s approach 222 8.9.2 The Wagelaar’s approach 224 8.9.3 Loughran et al.’s approach 229 8.9.4 Voelter and Groher’s approach 232 8.9.5 Comparison table 235 8.10 Dynamic variability 236 8.11 Domain specific languages 238 8.12 Additional references 240 8.13 Summary 242 Chapter 9 Conclusion 243 9.1 Book summary 244 9.2 MD-SPL engineering 247 9.2.1 Metamodeling and feature modeling 248 9.2.2 Multi-staged configuration of products 249 9.2.3 Coarse and fine-grained variations and configurations 249 9.2.4 Core assets development and decision models 250 9.2.5 Product derivation 251 9.2.6 Comparison table 251 9.2.7 Perspectives 253 Bibliography 257 Index 271

    Out of stock

    £999.99

  • Springer London Ltd Software Verification and Analysis: An Integrated, Hands-On Approach

    15 in stock

    Book Synopsis“The situation is good, but not hopeless” (Polish folk wisdom) The text is devoted to the Software Analysis and Testing (SAT) methods and s- porting tools for assessing and, if possible, improving software quality, specifically its correctness. The term quality assurance is avoided for it is this author’s firm belief that in the current state of the art that goal is unattainable, a plethora of “gu- anteed” solutions to the problem notwithstanding. Therefore, the rather awkward phrase “improving correctness” is to be understood as an effort to minimize the number of residual programming faults (“bugs”) and their impact on the software’s behavior, that is, to make the faults tolerable. It is clear that such a minimalist approach is a result of frustration. Indeed, having spent years developing software and teaching (preaching?) “How to do it right,” I still do not know how to go about it with any degree of certainty! It appears then I probably should stop right now, for who with a modicum of common sense would reach for a text that does not offer salvation but (as will be seen) hard work and misery? If I intend to continue, it is only that I suspect there are many professionals out there who have similar doubts. And they are the intended audience of this project. The philosophical underpinning of the text is the importance of sound engine- ing practices in software development.Trade ReviewFrom the reviews: "Software verification is a set of important activities in the software development process that leads to determining whether the software product fulfills requirements. … It could also be very useful to software engineering researchers and practitioners. The quality of the book is enhanced by the wide range of examples that illustrate various problems and offer appropriate solutions. The physical quality of the book is extremely high." (M. Ivanovic, ACM Computing Reviews, June, 2009) “Software verification and validation are conducted to help ensure that programs perform correctly. … While this book’s subtitle indicates a ‘hands-on approach,’ it really takes a formal mathematical approach to describing software verification. … The book includes plenty of diagrams and figures, and it explains verification concepts with examples. This work is useful as a complement to hands-on testing books to detail the mathematical foundations of software verification. Summing Up: Recommended. Upper-division undergraduates through professionals.” (H. J. Bender, Choice, Vol. 47 (3), November, 2009)Table of ContentsThe Semantic Analysis.- Why Not Write Correct Software the First Time?.- How to Prove a Program Correct: Programs Without Loops.- How to Prove a Program Correct: Iterative Programs.- Prepare Test for Any Implementation: Black-Box Testing.- Static Analysis.- Intermediate Program Representation.- Program Dependencies.- What Can One Tell About a Program Without Its Execution: Static Analysis.- Dynamic Analysis.- Is There a Bug in the Program? Structural Program Testing.- Dynamic Program Analysis.

    15 in stock

    £44.99

  • College Publications What Is a Computer and What Can It Do?

    15 in stock

    15 in stock

    £15.00

  • How AI Thinks: How we built it, how it can help

    Transworld Publishers Ltd How AI Thinks: How we built it, how it can help

    1 in stock

    Book Synopsis'Artificial intelligence is going to have a massive impact on everyone’s lives... an accessible and sensible read that helps demystify AI' Deborah Meaden, entrepreneur and star of Dragon's Den'Nigel Toon is a visionary leader in the field of artificial intelligence... a must-read' Marc Tremblay, Distinguished Engineer, MicrosoftThose who understand how AI thinks are about to win big.We are used to thinking of computers as being a step up from calculators - very good at storing information, and maybe even at playing a logical game like chess. But up to now they haven't been able to think in ways that are intuitive, or respond to questions as a human might. All that has changed, dramatically, in the past few years.Our search engines are becoming answer engines. Artificial intelligence is already revolutionising sectors from education to healthcare to the creative arts. But how does an AI understand sentiment or context? How does it play and win games that have an almost infinite number of moves? And how can we work with AI to produce insights and innovations that are beyond human capacity, from writing code in an instant to unfolding the elaborate 3D puzzles of proteins?We stand at the brink of a historic change that will disrupt society and at the same time create enormous opportunities for those who understand how AI thinks. Nigel Toon shows how we train AI to train itself, so that it can paint images that have never existed before or converse in any language. In doing so he reveals the strange and fascinating ways that humans think, too, as we learn how to live in a world shared by machine intelligences of our own creation.Trade ReviewFew books are more timely than How AI Thinks, an accessible guide that walks the reader through the technology’s developmental history right back to the days before the computer... This is a fascinating read. -- Simon Hunt * Evening Standard *I believe that AI is going to have a massive impact on everyone’s lives; it’s such a hugely important topic that we can’t just leave it to technologists and governments to think about. Business people, teachers, students and parents - everyone needs to learn more about it. In How AI Thinks, Nigel Toon provides us with an accessible and sensible read that helps demystify AI and lets us all understand more about this incredibly powerful tool. -- Deborah Meaden, entrepreneur and star of Dragon's DenNigel Toon is not only a visionary leader in the field of artificial intelligence, but also a captivating storyteller who takes us on a journey through his own fascinating history and the evolution of our young industry. He has a gift for explaining complex concepts in simple terms, making this book accessible and engaging for anyone interested in AI. He also offers a prescriptive and optimistic view of the future of AI, showing how it can transform our lives and society for the better. This book is a must-read for anyone who wants to understand the past, present and future of artificial intelligence. -- Marc Tremblay PhD, Distinguished Engineer, MicrosoftAn insightful, informative, inspiring book which takes the reader on a journey of discovery, it ultimately paints a hopeful and reasoned vision of how humanity can move on from a position of fear and trepidation, and embrace AI, deriving profound benefit from all it makes possible. Nigel has a skill in taking highly technical content and making AI not just comprehensible, but also engaging. -- Professor Evelyn Welch, Vice-Chancellor and President, University of BristolAs a business leader, it was great to have all the strands that have created AI pulled together. Nigel Toon synthesizes everything so clearly, simply and in such an inspiring way. How AI Thinks delivers the perspective that leaders and politicians need so that they can regulate AI well. -- Sir Andrew MacKenzie, Chairman of Shell

    1 in stock

    £19.80

  • Opentask Memory Thinking for Rust

    Out of stock

    Out of stock

    £61.75

  • International Institute of Business Analysis The Rock Crusher: A Model for Flow-Based Backlog Management

    15 in stock

    15 in stock

    £36.89

  • Mercury Learning & Information Microsoft Access 2016 Programming Pocket Primer

    Out of stock

    Out of stock

    £23.38

  • 15 in stock

    £18.99

  • 15 in stock

    £18.04

  • True Positive Inc. Machine Learning Engineering

    15 in stock

    15 in stock

    £34.95

  • BoD - Books on Demand Building a minimal reflective kernel

    Out of stock

    Out of stock

    £11.50

  • Renaissance du livre Jassure la programmation informatique

    Out of stock

    Out of stock

    £14.88

  • Amazon Digital Services LLC - Kdp Apprendre à programmer ses premières applications

    15 in stock

    15 in stock

    £33.72

  • Springer Nature Switzerland AG Embedded Software Timing: Methodology, Analysis and Practical Tips with a Focus on Automotive

    15 in stock

    Book SynopsisWithout correct timing, there is no safe and reliable embedded software. This book shows how to consider timing early in the development process for embedded systems, how to solve acute timing problems, how to perform timing optimization, and how to address the aspect of timing verification.The book is organized in twelve chapters. The first three cover various basics of microprocessor technologies and the operating systems used therein. The next four chapters cover timing problems both in theory and practice, covering also various timing analysis techniques as well as special issues like multi- and many-core timing. Chapter 8 deals with aspects of timing optimization, followed by chapter 9 that highlights various methodological issues of the actual development process. Chapter 10 presents timing analysis in AUTOSAR in detail, while chapter 11 focuses on safety aspects and timing verification. Finally, chapter 12 provides an outlook on upcoming and future developments in software timing. The number of embedded systems that we encounter in everyday life is growing steadily. At the same time, the complexity of the software is constantly increasing. This book is mainly written for software developers and project leaders in industry. It is enriched by many practical examples mostly from the automotive domain, yet the vast majority of the book is relevant for any embedded software project. This way it is also well-suited as a textbook for academic courses with a strong practical emphasis, e.g. at applied sciences universities.Features and Benefits* Shows how to consider timing in the development process for embedded systems, how to solve timing problems, and how to address timing verification* Enriched by many practical examples mostly from the automotive domain* Mainly written for software developers and project leaders in industryTable of Contents1. General Basics.- 2. Microprocessor Technology Basics.- 3. Operating Systems.- 4. Timing Theory.- 5. Timing Analysis Techniques.- 6. Practical Examples of Timing Problems.- 7. Multi-Core, Many-Core, and Multi-ECU Timing.- 8. Timing Optimization.- 9. Methodology During the Development Process.- 10. AUTOSAR.- 11. Safety and ISO 26262.- 12. Outlook.

    15 in stock

    £54.99

  • Springer Nature Switzerland AG Beginner's Guide to Kotlin Programming

    15 in stock

    Book SynopsisThis textbook assumes very little knowledge of programming so whether you have dabbled with a little JavaScript, played with a bit of Python, written Java or have virtually no programming experience at all you will find that it is for you.The first part of the book introduces Kotlin program structures as well as conditional flow of control features such as if and when expressions as well as iteration loops such as for, while and do-while. Subsequent chapters explain how functions are implemented in Kotlin and introduce concepts from functional programming such as higher order functions and curried functions.The second part focusses on object oriented programming techniques, these include classes, inheritance, abstraction and interfaces. The third part presents container data types such as Arrays, and collections including Lists, Sets and Maps and the fourth part considers concurrency and parallelism using Kotlin coroutines. The book concludes with an introduction to Android mobile application development using Kotlin.Clear steps are provided explaining how to set up your environment and get started writing your own Kotlin programs.An important aspect of the book is teaching by example and there are many examples presented throughout the chapters. These examples are supported by a public GitHub repository that provides complete working code as well as sample solutions to the chapter exercises. This helps illustrate how to write well structured, clear, idiomatic Kotlin to build real applications.Table of ContentsIntroduction.- Part 1: Kotlin Programming.- A First Kotlin Program.- Flow of Control.- Number Guessing Game.- Functions in Kotlin.- Higher Order Functions.- Curried Functions.- Part 2: Object Oriented Kotlin.- Kotlin Classes.- Objects and Companion Objects,- Further Kotlin Properties.- Scope and Conditional Functions.- Class Inheritance.- Abstract Classes.- Interfaces, Delegation and Enumerated Types.- Packages.- Nested and Inner Types.- Data Classes.- Sealed and Inline Classes and Typealias.- Operator Overloading.- Error and Exception Handling.- Extension Functions and Properties.- Part 3: Data Containers.- Arrays.- Collections.- Lists.- Sets.- Maps.- Pairs and Triples.- Generic Types.- Functional Programming and Containers.- Part 4: Concurrent Kotlin.- Coroutines.- Coroutine Channel Communications.- Part 5: Android Development.- Android Overview.- Applications and Activities.- Android Layouts and Events.- Android Tic Tac Toe.

    15 in stock

    £49.99

  • Springer Nature Switzerland AG Animated Problem Solving: An Introduction to Program Design Using Video Game Development

    15 in stock

    Book SynopsisThis textbook is about systematic problem solving and systematic reasoning using type-driven design. There are two problem solving techniques that are emphasized throughout the book: divide and conquer and iterative refinement. Divide and conquer is the process by which a large problem is broken into two or more smaller problems that are easier to solve and then the solutions for the smaller pieces are combined to create an answer to the problem. Iterative refinement is the process by which a solution to a problem is gradually made better–like the drafts of an essay. Mastering these techniques are essential to becoming a good problem solver and programmer. The book is divided in five parts. Part I focuses on the basics. It starts with how to write expressions and subsequently leads to decision making and functions as the basis for problem solving. Part II then introduces compound data of finite size, while Part III covers compound data of arbitrary size like e.g. lists, intervals, natural numbers, and binary trees. It also introduces structural recursion, a powerful data-processing strategy that uses divide and conquer to process data whose size is not fixed. Next, Part IV delves into abstraction and shows how to eliminate repetitions in solutions to problems. It also introduces generic programming which is abstraction over the type of data processed. This leads to the realization that functions are data and, perhaps more surprising, that data are functions, which in turn naturally leads to object-oriented programming. Part V introduces distributed programming, i.e., using multiple computers to solve a problem. This book promises that by the end of it readers will have designed and implemented a multiplayer video game that they can play with their friends over the internet. To achieve this, however, there is a lot about problem solving and programming that must be learned first. The game is developed using iterative refinement. The reader learns step-by-step about programming and how to apply new knowledge to develop increasingly better versions of the video game. This way, readers practice modern trends that are likely to be common throughout a professional career and beyond. Table of ContentsPart I: The Basics of Problem Solving with a Computer.- 1. The Science of Problem Solving.- 2. Expressions and Data Types.- 3. The Nature of Functions.- 4. Aliens Attack Version 0.- 5. Making Decisions.- 6. Aliens Attack Version 1.- Part II: Compound Data of Finite Size.- 7. Structures.- 8. Defining Structures.- 9. Aliens Attack Version 2.-10. Structures and Variety.- 1.1 Aliens Attack Version 3.- Part III: Compound Data of Arbitrary Size.- 12. Lists.- 13. List Processing.- 14. Natural Numbers.- 15. Interval Processing.- 16. Aliens Attack Version 4.- 17. Binary Trees.- 18.- Mutually Recursive Data.- 19.- Processing Multiple Inputs of Arbitrary Size.- Part IV: Abstraction.- 20. Functional Abstraction.- 21. Encapsulation.- 22. Lambda Expressions.- 23. Aliens Attack Version 5.- 24. For-Loops and Pattern Matching.- 25. Interfaces and Objects.- Part V: Distributed Programming.- 26. Introduction to Distributed Programming.- 27. Aliens Attack Version 6.- 28. Aliens Attack Version 7.- 29. Aliens Attack Version 8.- Part VI: Epilogue.- 30. Advice for Future Steps.

    15 in stock

    £24.99

© 2026 Book Curl

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

    Login

    Forgot your password?

    Don't have an account yet?
    Create account