Fundamentals of Devops and Software Delivery
This book is a guide to DevOps and software delivery: that is, a guide to the numerous tools and techniques that are required to take that application code and run it and maintain it in production, where it can generate value for your users and your company on an ongoing basis. This includes going through all the modern practices for deploying applications and microservices to the cloud, managing your infrastructure as code, automating your software delivery lifecycle in a CI/CD pipeline, configuring networking, setting up data stores, and hooking up monitoring.
Accelerated .NET Memory Dump Analysis
The full Software Diagnostics Services training transcript with 15 step-by-step exercises, notes, and source code of specially created modeling applications. The course covers 22 .NET memory dump analysis patterns, plus the additional 21 unmanaged patterns. Learn how to analyze .NET 9 application and service crashes and freezes, navigate through memory dump space (managed and unmanaged code), and diagnose corruption, leaks, CPU spikes, blocked threads, deadlocks, wait chains, resource contention, and more. The training consists of practical step-by-step exercises using WinDbg and LLDB debuggers to diagnose patterns in 64-bit process memory dumps from x64 Windows and x64 Linux environments. The training uses a unique and innovative pattern-oriented analysis approach to speed up the learning curve. The book is a completely revamped and extended the previous Accelerated .NET Core Memory Dump Analysis, Revised Edition. It is updated to the latest WinDbg. It also includes reviews of x64 and IL disassembly and memory space basics, Linux LLDB exercises, .NET memory dump collection on Windows and Linux, and the relationship of analysis patterns to defect mechanism patterns.Prerequisites: Basic .NET programming and debugging.Audience: Software technical support and escalation engineers, system administrators, DevOps, performance and reliability engineers, software developers, and quality assurance engineers. The book may also interest security researchers, reverse engineers, malware and memory forensics analysts.
Mastering Time - Innovative Solutions to Complex Scheduling Problems
Time is one of our most valuable resources, yet managing it effectively is often one of the toughest challenges. Mastering Time - Innovative Solutions to Complex Scheduling Problems is a comprehensive guide introducing new methods and solutions to solve complex scheduling problems in professional contexts. By mastering these creative solutions, you can gain control over your time. This book presents practical strategies and tools to streamline workflows, optimize resource allocation, and tackle bottlenecks head-on. Whether you are managing multiple projects, balancing competing priorities, or simply seeking to organize your time better, the insights provided in this book will help you unlock new levels of productivity and efficiency. With real-world examples, cutting-edge technologies like artificial intelligence, and time-tested techniques, Mastering Time - Innovative Solutions to Complex Scheduling Problems equips readers with the knowledge and tools to transform even the most challenging schedules into manageable, efficient plans. Dive into the future of scheduling, where complexity is simplified and time is truly mastered.
Software Design Decoded
An engaging, illustrated collection of insights revealing the practices and principles that expert software designers use to create great software. What makes an expert software designer? It is more than experience or innate ability. Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software. The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a drawing on the facing page. For example, "Experts generate alternatives" is illustrated by the same few balloons turned into a set of very different balloon animals. The text is engaging and accessible; the drawings are thought-provoking and often playful. Organized into such categories as "Experts reflect," "Experts are not afraid," and "Experts break the rules," the insights range from "Experts prefer simple solutions" to "Experts see error as opportunity." Readers learn that "Experts involve the user"; "Experts take inspiration from wherever they can"; "Experts design throughout the creation of software"; and "Experts draw the problem as much as they draw the solution." One habit for an aspiring expert software designer to develop would be to read and reread this entertaining but essential little book. The insights described offer a guide for the novice or a reference for the veteran--in software design or any design profession. A companion web site provides an annotated bibliography that compiles key underpinning literature, the opportunity to suggest additional insights, and more.
Designing Digital Solutions
This book offers practical guidance on architecting digital solutions, including UI, data, process, and security design based on essential requirements as defined. A must read for business analysts, software developers, software testers, solution architects and digital technologists.
Analysis and Design of Next-Generation Software Architectures
The 2nd edition will add a major chapter on Generative AI in Software Architecture. This chapter will provide a comprehensive background in generative models, its impact on software design, evolution of new analysis methodologies, and the overall impact of the Systems Development Life Cycle (SDLC). The new edition will also have new sections relating to Generative AI in Cybersecurity analysis and design, including proactive threat detection, ethical issues regarding privacy, and generative AI workflows (Charlotte AI). Other updates include Legacy System interfaces with Generative AI, new impacts on project management, and Platform design architecture. The 2nd edition will have a number of editing changes and corrections, as well as about 30 pages net of some eliminations of outdated content.
Get Set Go
DESCRIPTION Go, a modern programming language renowned for its efficiency and concurrency, empowers developers to build scalable and robust applications. Get Set Go is your practical guide to learn this powerful technology, designed to take you from foundational concepts to advanced development techniques with clarity and ease. This book systematically guides you through the essentials, starting with setting up your Go environment and writing your first programs, while understanding Go modules and basic output. You will then explore core language elements like diverse data types, control structures, functions, and effective error handling. Progressing further, you will learn to manipulate strings and files, delve into the intricacies of Go's reflection capabilities, and harness the power of concurrency with goroutines and channels. You will gain expertise in structuring applications using structs, methods, and interfaces, build web applications with JSON and HTTP, ensure code reliability through logging and testing, and venture into modern web development practices and distributed systems. Finally, you will also unlock the potential of generics for writing reusable code and learn to secure your Go applications with cryptography.By the end of Get Set Go, you will possess a comprehensive understanding of Go programming, equipped with the skills and confidence to develop a wide range of applications, from efficient system tools to scalable web services and beyond.WHAT YOU WILL LEARN● Write efficient, maintainable, and testable Go code.● Set up Go, manage modules, and output formatted text.● Master Go's data types and control flow structures.● Define functions and implement Go's error handling.● Work with strings and perform essential file operations.● Build web applications and REST APIs with the net/http package.WHO THIS BOOK IS FORThis book is for developers wanting to learn Go and experienced programmers seeking a structured guide. While no prior Go knowledge is needed, understanding basic programming concepts will benefit software engineers, backend developers, and tech enthusiasts.
Comprehensive Data Structures and Algorithms in C++
DESCRIPTION Data structures and algorithms is an essential subject in computer science studies. It proves to be a great tool in the hands of any software engineer, and also plays a significant role in software design and development. It has become a must-have skill now for many competitions and job interviews in the software industry.The concepts are explained in a step-wise manner and illustrated with numerous figures, text, examples, and immediate code samples, which help in a better understanding of data structures and algorithms with their implementation. The book has more than 500 illustrations, code samples, and problems, along with solutions for exercises. This book provides a comprehensive study of data structures and algorithms, starting with an introduction to time and space complexity analysis using asymptotic notation. It explores arrays and matrices, then progresses to linked lists, stacks (LIFO), and queues (FIFO), emphasizing their respective operations and applications. A detailed chapter on recursion, including base cases and recursive calls, lays the groundwork for understanding binary trees and binary search trees, and graph algorithms such as DFS and BFS. Finally, the book covers storage management, addressing memory allocation, release and garbage collection. This book provides practical C++ implementations and problem-solving exercises to foster a solid understanding of these core computer science concepts. After completion of this book, students will have a good understanding of data structures and algorithms concepts and implementation. Software engineers will be able to provide more effective solutions with the use of appropriate data structures and efficient algorithms.WHAT YOU WILL LEARN● Fundamentals of data structures and algorithms.● A variety of data structures and algorithms useful for software design and development.● How to efficiently use different data structures and algorithms.● When and where to use appropriate data structures and algorithms.WHO THIS BOOK IS FORThe students who want to self-study data structures and algorithms as their university curriculum subject and to enter the software industry. It is also helpful for software engineers who want to learn to solve daily problems with better software design and writing efficient code.
Computational Literacy for the Humanities
This book provides an introduction to mathematics and programming that is specifically designed for use by those engaged in the humanities. Linking mathematical concepts and computational skills, the chapters in this book explore humanistic questions from diverse fields, such as art, history and literature.
Algorithms
Covering the essential concepts of the computer science area of algorithms, this 6-page laminated guide is part 1 of 2 guides that also serves as a reference for designing and analyzing algorithms. Guaranteed to boost grades in required algorithms courses this reference tool can continue to offer support well beyond a course. While all computing requires the use of algorithms, mastery of algorithms can lead to a career in the fastest growing field in computer science with one of the highest paid salaries. Widely published author and instructor Babak Ahmadi has masterfully covered a large amount of information in only 6 pages, streamlined with more facts per page than any publication. To get the full breadth of coverage please also purchase the Algorithms 2 guide for a highly valuable and complete reference at an amazing price. 6 page laminated guide includes: Defining Computer AlgorithmsFormalizationProgramming TypesAlgorithm FundamentalsAlgorithm RepresentationAlgorithm Language & SyntaxProcess StateLogical StateProcess CommunicationAlgorithm ClassificationDesign ParadigmsProcess TypeDesign Paradigms Brute ForceIterativeRecursive/Recursion TypesDivide & ConquerEnumeration, Search & SortBacktrackingGraphBranch & BoundGreedy MethodHeuristic MethodsRandomizedGenetic (Evolutionary Computation)Geometric
Arduino Programming Using Simulink
Unlock advanced control design with Arduino and Simulink. Learn to design, simulate, and implement embedded systems for SVC, TCR, DVR, and more. Master code generation, real-time control, and simulation workflows for power electronics, reactive power, and dynamic voltage restoration. Perfect for engineers, students, and hobbyists.
Mastering Design Patterns for Layered Testing
Master Layered Test Automation and Build Integrate and Deploy with Confidence Book DescriptionIn today's fast-paced software development landscape, ensuring application quality requires a strategic approach to test automation. Mastering Design Patterns for Layered Testing empowers you with the knowledge and tools to design, implement, and optimize automation across UI, API, and backend layers using Python's powerful ecosystem. Starting with foundational concepts like test design patterns and the Test Pyramid, the book delves into practical implementations of unit testing, integration testing, API testing, and contract testing. You'll learn how to integrate automated tests into CI/CD pipelines using GitHub Actions, generate detailed test reports with Allure, and address modern testing challenges such as microservices and containerized environments. Real-world case studies illustrate how to apply these techniques in production settings. A dedicated chapter on Generative AI in testing explores its applications in test case generation and test data creation. Whether you're an intermediate tester looking to enhance your automation skills or an experienced professional seeking to learn advanced strategies, this book provides the expertise needed to build scalable and reliable test automation frameworks that drive software quality and efficiency. Stay ahead of the curve-master next-gen test automation before it's too late! Table of Contents1. Introduction to Strategic Test Design2. Understanding Test Design Patterns3. Unit Testing Strategies4. Integration Testing Approaches5. API Testing Techniques6. Contract Testing7. Distributing Tests Across UI, API, and Backend Layers8. Integrating Tests into CI/CD Pipelines9. Advanced CI/CD Strategies10. Future of Test Automation11. Leveraging Generative AI in Testing Index
Kubernetes and Cloud Native Associate (Kcna) Study Guide
Mobile Applications Development
The book covers the concepts of Python programming language along with mobile application development. Starting from fundamentals, the book continues with the explanation of mobile app development using Kivy framework. All the chapters offer questions and exercises for to better understanding of the subject. This second revised and updated edition covers the most recent developments in Kivy since the publishing of the first edition.
Requirements Engineering
This textbook provides a comprehensive and well-structured introduction to the fundamentals, principles, and techniques of requirements engineering (RE). It presents approved techniques for eliciting, negotiating, and documenting as well as validating, and managing requirements for software-intensive systems. The various aspects of the process and the techniques are illustrated using numerous examples based on extensive teaching experience and industrial collaborations. The book is structured in five parts. Part I "Fundamentals and Framework" provides a comprehensive introduction to the fundamentals of RE, illustrates why it is a critical success factor for any software development project, and describes different ways of implementing it in an organization and its role in different software engineering process models. Part II "Requirements Engineering Context" explains the essential role and influence of the RE context on system requirements, defines basic terms, and introduces the concept of context perspectives to support context consideration. Part III "Core Activities" describes requirements elicitation, documentation, and negotiation and conflict resolution strategies. Part IV "Requirements Artefacts" explains the management of goals, scenarios, and solution-oriented requirements, including methodologies like i* and KAOS. Eventually, Part V "Cross-Sectional Activities" details four validation and three management activities. This second edition of Pohl's widely used and trusted textbook provides a considerable number of updates, places a stronger focus on the consideration of the context, puts a stronger emphasis on conflict resolution, and includes new, expanded and revised techniques. The presentation aims at professionals, students, and lecturers in systems and software engineering or business applications development. Professionals such as project managers, software architects, systems analysts, and software engineers will benefit in their daily work from the didactically well-presented combination of validated procedures and industrial experience. Students and lecturers will appreciate the comprehensive description of sound fundamentals, principles, and techniques, which is completed by a huge, commented list of references for further reading. Lecturers will find additional teaching material on the book's website, www.requirements-book.com.
Requirements Engineering: Foundation for Software Quality
This book constitutes the refereed proceedings of the 31st International Working Conference on Requirements Engineering: Foundation for Software Quality, REFSQ 2025, held in Barcelona, Spain, during April 7-10, 2025. The 21 full papers and 8 short papers included in this book were carefully reviewed and selected from 74 submissions. They were organized in topical sections as follows: Responsible RE; Crowd and Large-Scale RE; Requirements Modeling; Requirements Elicitation and Analysis; Participatory RE; RE for Safety-critical and Autonomous Systems; and Requirements Quality Assurance.
Software, System, and Service Engineering
This book constitutes selected and enlarged versions of papers presented at S3E 2024 Topical Area, held as part of FedCSIS 2024, in Belgrade, Serbia, 8-11 September, 2024 and the 25th Conference on Practical Aspects of and Solutions for Software Engineering, KKIO 2024, held as part of SEAA 2024, Paris, France, during August 28-30, 2024. The 3 papers included from KKIO 2024 were selected from 18 submissions (and 10 presentations), and the 5 papers from S3E were selected from 25 submissions (and 12 presentations). The contributions deal with academic research and real-world applications in the field of software engineering.
Building Medallion Architectures
In today's data-driven world, organizations must manage and analyze vast amounts of information to deliver the insights that give them a competitive advantage. Many turn to the medallion architecture because it's a proven and well-known design. Yet implementing a robust data pipeline can be difficult, particularly when it comes to using the medallion architecture's bronze, silver, and gold layers--done wrong, it can hamper your ability to make data-driven decisions. This practical guide helps you build a medallion architecture the right way with Azure Databricks and Microsoft Fabric. Drawing on hands-on experience from the field, Piethein Strengholt demystifies common assumptions and complex problems you'll face when embarking on a new data architecture. Architects and engineers of all stripes will find answers to the most typical questions along with insights from real organizations about what's worked, what hasn't, and why. You'll learn: Lakehouse and medallion architecture fundamentals and key concepts Design considerations for Azure Databricks and Microsoft Fabric Scaling considerations, including governance, security, automation, and more How to make informed decisions when designing or implementing new data architectures Proven patterns for success that align with broader organizational objectives
Fundamentals of Software Engineering
What do you need to know to be a successful software engineer? Undergraduate curricula and bootcamps may teach the fundamentals of algorithms and writing code, but they rarely cover topics vital to your career advancement. With this practical book, you'll learn the skills you need to succeed and thrive. Authors Nathaniel Schutta and Dan Vega guide your journey with pointers to deep dives into specific topic areas that will help you understand the skills that really matter as a software engineer. With this book, you'll: Understand what software engineering is--and why communication and other soft skills matter Learn the basics of software architecture and architectural drivers Use common and proven techniques to read and refactor code bases Understand the importance of testing and how to implement an effective test suite Learn how to reliably and repeatedly deploy software Know how to evaluate and choose the right solution or tool for a given problem
Powerful, Profitable Software Products
You hold in your hands a comprehensive guide to creating a flourishing software development practice - one that makes a powerful impact with the software it builds. This guide describes the unique aspects of creating software-based products. It also lays out the clear practical guidance that's necessary to construct and evolve a modern practice. This includes hiring, structuring teams properly, writing good code, leveraging test driven development, designing architecture, automating development processes with DevOps techniques, and - importantly - leading teams through the disruptive change that each of these can represent. Further, the first principles upon which these practices rest will be elaborated so that the reader can readily adapt the already practical techniques to the broadest possible set of real-world situations.