![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > General theory of computing > Systems analysis & design
Build systems faster and more effectively with Mob Programming. Mob Programming is an approach to developing software that radically reduces defects and key-person dependencies by having a group of people work together at a single machine. See how to avoid the most common pitfalls that teams make when first starting out. Discover what it takes to create and support a successful mob. Now you can take collaborative programming to the next level with Mob Programming. Mob Programming is a natural extension of the popular Pair Programming concept, and is not restricted to a specific programming language or technology. It can be used by anyone who develops software, including dev leads, software developers, and agile coaches. The more people working on a bug or feature results in fewer dependencies on individuals, and overall increased learning for everyone involved. With more eyes on the code, you'll find you develop better solutions with fewer defects. Set up your team for success by introducing Mob Programming in a way that benefits them. Create a good first Mobbing experience for your team with a template that avoids the common traps beginners may fall into. Master a collaborative and empathic mindset to help optimize the Mobbing experience. Learn how to make adjustments when things go wrong. Adapt your mobbing to different types of development tasks. Get management buy-in for your Mobbing experiment by demonstrating the benefits. Discover the equipment and resources you need, and how to adjust your workspace for an effective mob. Get important features to market sooner, squish bugs faster, and collaborate better today with Mob Programming. What You Need: All you need is three or more programmers, a meeting workspace that's large enough to accommodate your mob, and a computer on which to work.
Learn to solve the unprecedented challenges facing Online Learning and Adaptive Signal Processing in this concise, intuitive text. The ever-increasing amount of data generated every day requires new strategies to tackle issues such as: combining data from a large number of sensors; improving spectral usage, utilizing multiple-antennas with adaptive capabilities; or learning from signals placed on graphs, generating unstructured data. Solutions to all of these and more are described in a condensed and unified way, enabling you to expose valuable information from data and signals in a fast and economical way. The up-to-date techniques explained here can be implemented in simple electronic hardware, or as part of multi-purpose systems. Also featuring alternative explanations for online learning, including newly developed methods and data selection, and several easily implemented algorithms, this one-of-a-kind book is an ideal resource for graduate students, researchers, and professionals in online learning and adaptive filtering.
The book is directly relevant for students on HND, degree and professional courses. This market-leading text covers the whole range of activities necessary for the analysis, design and implementation of computer-based information and data processing systems. The authors emphasize the role of people, management and quality issues, and consider practical and business realities.
The measurement of dependability attributes on real systems is a very time-consuming and costly affair, making analytical or simulation modeling the only viable solutions. Dependability of Networked Computer-based Systems explores reliability, availability and safety modeling of networked computer-based systems used in life-critical applications such as avionics, nuclear power plants, automobiles and chemical process industries. Dependability of Networked Computer-based Systems gives an overview of basic dependability modeling concepts and addresses new challenges in dependability modeling of networked computer-based systems, as well as new trends, their capabilities and limitations. It covers a variety of dependability modeling methods: stochastic processes, Markov and semi-Markov models, response-time distribution, stochastic Petri-net-based modeling formalisms, and Monte Carlo simulation models. Dependability of Networked Computer-based Systems provides students and researchers with a detailed overview of dependability models and analysis techniques. Practicing engineers will also find this text a useful guide to decision-making based on system dependability at the design, operation and maintenance stages.
This introductory user's guide to systems analysis and systems design focuses on building sustainable information systems to meet tomorrow's needs. It shows how practitioners can apply multiple participatory perspectives in development, so as to avoid future problems. As a practical guide, it is presented to be readily comprehensible and is organized to enable users to concentrate on their goals efficiently, and with minimum theoretical elaboration. The chapters follow the sequence involved in planning an information system, explaining key words, the time involved in each step, ending with a tutorial or exercises.
This introductory user's guide to systems analysis and systems design focuses on building sustainable information systems to meet tomorrow's needs. It shows how practitioners can apply multiple participatory perspectives in development, so as to avoid future problems. As a practical guide, it is presented to be readily comprehensible and is organized to enable users to concentrate on their goals efficiently, and with minimum theoretical elaboration. The chapters follow the sequence involved in planning an information system, explaining key words, the time involved in each step, ending with a tutorial or exercises.
Prototyping and user testing is the best way to create successful products, but many designers skip this important step and use gut instinct instead. By explaining the goals and methodologies behind prototyping-and demonstrating how to prototype for both physical and digital products-this practical guide helps beginning and intermediate designers become more comfortable with creating and testing prototypes early and often in the process. Author Kathryn McElroy explains various prototyping methods, from fast and dirty to high fidelity and refined, and reveals ways to test your prototypes with users. You'll gain valuable insights for improving your product, whether it's a smartphone app or a new electronic gadget. Learn similarities and differences between prototyping for physical and digital products Know what fidelity level is needed for different prototypes Get best practices for prototyping in a variety of mediums, and choose which prototyping software or components to use Learn electronics prototyping basics and resources for getting started Write basic pseudocode and translate it into usable code for Arduino Conduct user tests to gain insights from prototypes
The control-flow issues presented in this textbook are extremely relevant in modern computer languages and programming styles. In addition to the basic control-flow mechanisms, virtually all new computer languages provide some form of exceptional control flow to support robust programming introduced in this textbook. Also, concurrency capabilities are appearing with increasing frequency in both new and old programming languages, and are covered in this book. Understanding Control Flow: With Concurrent Programming Using C++ starts with looping, and works through each of the basic control-flow concepts, examining why each is fundamental and where it is useful. Time is spent on each concept according to its level of difficulty. Examples and exercises are also provided in this textbook. New programming methodologies are requiring new forms of control flow, and new programming languages are supporting these methodologies with new control structures, such as the concurrency constructs discussed in this textbook. Most computers now contain multi-threading and multi-cores, while multiple processors and distributed systems are ubiquitous - all of which require advanced programming methodologies to take full advantage of the available parallelism summarized in this textbook. Advance forms of control flow are becoming basic programming skills needed by all programmers, not just graduate students working in the operating systems or database disciplines. This textbook is designed for advanced-level students studying computer science and engineering. Professionals and researchers working in this field, specifically programming and software engineering, will find this book useful as a reference.
This book investigates the fundaments, standards, and protocols of Cyber-Physical Systems (CPS) in the industrial transformation environment. It facilitates a fusion of both technologies in the creation of reliable and robust applications. Cyber-Physical Systems for Industrial Transformation: Fundamentals, Standards, and Protocols explores emerging technologies such as artificial intelligence, data science, blockchain, robotic process automation, virtual reality, edge computing, and 5G technology to highlight current and future opportunities to transition CPS to become more robust and reliable. The book showcases the real-time sensing, processing, and actuation software and discusses fault-tolerant and cybersecurity as well. This book brings together undergraduates, postgraduates, academics, researchers, and industry individuals that are interested in exploring new ideas, techniques, and tools related to CPS and Industry 4.0.
A comprehensive guide to understanding the standard and most recent advances in the design of reliable computer systems. It is organized into three sections, beginning with an in-depth review of existing reliability techniques and evaluation criteria for both hardware and software. also examined are the models for detecting faults and predicting failures, and the financial considerations which are inherent in the design, purchase, operation, and maintenance of a reliable system.
In Software Mistakes and Tradeoffs you'll learn from costly mistakes that Tomasz Lelek and Jon Skeet have encountered over their impressive careers. You'll explore real-world scenarios where poor understanding of tradeoffs lead to major problems down the road, to help you make better design decisions. Plus, with a little practice, you'll be able to avoid the pitfalls that trip up even the most experienced developers. Software Mistakes and Tradeoffs teaches you how to make better decisions about designing, planning, and implementing applications. You'll analyse real-world scenarios where the wrong tradeoff decisions were made, and discover what could have been done differently. The book lays out the pros and cons of different approaches and explores evergreen patterns that will always be relevant to software design. Code performance versus simplicity. Delivery speed versus duplication. Flexibility versus maintain ability-everydecision you make in software engineering involves balancing tradeoffs. Often, decisions that look good at the design stage can prove problematic in practice.This book reveals the questions you need to be asking to make the right decisions for your own software tradeoffs.
IOT: Security and Privacy Paradigm covers the evolution of security and privacy issues in the Internet of Things (IoT). It focuses on bringing all security and privacy related technologies into one source, so that students, researchers, and practitioners can refer to this book for easy understanding of IoT security and privacy issues. This edited book uses Security Engineering and Privacy-by-Design principles to design a secure IoT ecosystem and to implement cyber-security solutions. This book takes the readers on a journey that begins with understanding the security issues in IoT-enabled technologies and how it can be applied in various aspects. It walks readers through engaging with security challenges and builds a safe infrastructure for IoT devices. The book helps readers gain an understand of security architecture through IoT and describes the state of the art of IoT countermeasures. It also differentiates security threats in IoT-enabled infrastructure from traditional ad hoc or infrastructural networks, and provides a comprehensive discussion on the security challenges and solutions in RFID, WSNs, in IoT. This book aims to provide the concepts of related technologies and novel findings of the researchers through its chapter organization. The primary audience includes specialists, researchers, graduate students, designers, experts and engineers who are focused on research and security related issues. Souvik Pal, PhD, has worked as Assistant Professor in Nalanda Institute of Technology, Bhubaneswar, and JIS College of Engineering, Kolkata (NAAC "A" Accredited College). He is the organizing Chair and Plenary Speaker of RICE Conference in Vietnam; and organizing co-convener of ICICIT, Tunisia. He has served in many conferences as chair, keynote speaker, and he also chaired international conference sessions and presented session talks internationally. His research area includes Cloud Computing, Big Data, Wireless Sensor Network (WSN), Internet of Things, and Data Analytics. Vicente Garcia-Diaz, PhD, is an Associate Professor in the Department of Computer Science at the University of Oviedo (Languages and Computer Systems area). He is also the editor of several special issues in prestigious journals such as Scientific Programming and International Journal of Interactive Multimedia and Artificial Intelligence. His research interests include eLearning, machine learning and the use of domain specific languages in different areas. Dac-Nhuong Le, PhD, is Deputy-Head of Faculty of Information Technology, and Vice-Director of Information Technology Apply and Foreign Language Training Center, Haiphong University, Vietnam. His area of research includes: evaluation computing and approximate algorithms, network communication, security and vulnerability, network performance analysis and simulation, cloud computing, IoT and image processing in biomedical. Presently, he is serving on the editorial board of several international journals and has authored nine computer science books published by Springer, Wiley, CRC Press, Lambert Publication, and Scholar Press.
This book discusses risk management as it applies to problem-solving for simple, complex and wicked problems faced by policy creators and implementors, project managers and systems engineers in the context of policies, large engineering projects (LEPs), projects and systems. When applying systems thinking to risk management, it can be seen that risk management applies to almost every action taken in daily life. This book: Introduces the systems approach of integrating risk management into policy creation and implementation, project management and systems engineering, such as the risk framework and the Firm Fixed Price (FFP) contract with penalties and bonuses. Introduces a number of out-of-the box concepts building on the application of the systems thinking tools in the system thinker's toolbox. Points out that integrating risk management into policy and project management and systems engineering is just good management and engineering practice. Discusses the flow of risk in a policy from creation through implementation via LEPs and simpler projects, identifying where risks arise and where they should be dealt with. Presents the risks in the relationship between policy creation, implementation, project management and systems engineering. Discusses risks throughout the policy implementation process and shows how the nature of risks changes from political to financial to technological as implementation proceeds. Discusses managing complexity and specifies the minimum number of elements in a system for it to be defined as, and managed as, complex. Points out that in most instances the traditionally ignored major implementation risk is that of poor performance by personnel. Shows how to proactively incorporate prevention into planning in order to prevent risks, as well as how to mitigate them when they occur.
This innovative book recognizes the need within the object-oriented community for a book that goes beyond the tools and techniques of the typical methodology book. In Analysis Patterns: Reusable Object Models, Martin Fowler focuses on the end result of object-oriented analysis and design-the models themselves. He shares with you his wealth of object modeling experience and his keen eye for identifying repeating problems and transforming them into reusable models. Analysis Patterns provides a catalogue of patterns that have emerged in a wide range of domains including trading, measurement, accounting and organizational relationships. Recognizing that conceptual patterns cannot exist in isolation, the author also presents a series of "support patterns" that discuss how to turn conceptual models into software that in turn fits into an architecture for a large information system. Included in each pattern is the reasoning behind their design, rules for when they should and should not be used, and tips for implementation. The examples presented in this book comprise a cookbook of useful models and insight into the skill of reuse that will improve analysis, modeling and implementation.
Learn how to use, deploy, and maintain Apache Spark with this comprehensive guide, written by the creators of the open-source cluster-computing framework. With an emphasis on improvements and new features in Spark 2.0, authors Bill Chambers and Matei Zaharia break down Spark topics into distinct sections, each with unique goals. You'll explore the basic operations and common functions of Spark's structured APIs, as well as Structured Streaming, a new high-level API for building end-to-end streaming applications. Developers and system administrators will learn the fundamentals of monitoring, tuning, and debugging Spark, and explore machine learning techniques and scenarios for employing MLlib, Spark's scalable machine-learning library. Get a gentle overview of big data and Spark Learn about DataFrames, SQL, and Datasets-Spark's core APIs-through worked examples Dive into Spark's low-level APIs, RDDs, and execution of SQL and DataFrames Understand how Spark runs on a cluster Debug, monitor, and tune Spark clusters and applications Learn the power of Structured Streaming, Spark's stream-processing engine Learn how you can apply MLlib to a variety of problems, including classification or recommendation
Codesign for Real-Time Video Applications describes a modern design approach for embedded systems. It combines the design of hardware, software, and algorithms. Traditionally, these design domains are treated separately to reduce the design complexity. Advanced design tools support a codesign of the different domains which opens an opportunity for exploiting synergetic effects. The design approach is illustrated by the design of a video compression system. It is integrated into the video card of a PC. A VLIW processor architecture is used as the basis of the compression system and popular video compression algorithms (MPEG, JPEG, H.261) are analyzed. A complete top-down design flow is presented and the design tools for each of the design steps are explained. The tools are integrated into an HTML-based design framework. The resulting design data can be directly integrated into the WWW. This is a crucial aspect for supporting distributed design groups. The design data can be directly documented an cross referencing in an almost arbitrary way is supported. This provides a platform for information sharing among the different design domains. Codesign for Real-Time Video Applications focuses on the multi-disciplinary aspects of embedded system design. It combines design automation and advanced processor design with an important application domain. A quantitative design approach is emphasized which focuses the design time on the most crucial components. Thus enabling a fast and cost efficient design methodology. This book will be of interest to researchers, designers and managers working in embedded system design.
The next generation of computer system designers will be less concerned about details of processors and memories, and more concerned about the elements of a system tailored to particular applications. These designers will have a fundamental knowledge of processors and other elements in the system, but the success of their design will depend on the skills in making system-level tradeoffs that optimize the cost, performance and other attributes to meet application requirements. This book provides a new treatment of computer system design, particularly for System-on-Chip (SOC), which addresses the issues mentioned above. It begins with a global introduction, from the high-level view to the lowest common denominator (the chip itself), then moves on to the three main building blocks of an SOC (processor, memory, and interconnect). Next is an overview of what makes SOC unique (its customization ability and the applications that drive it). The final chapter presents future challenges for system design and SOC possibilities.
As the uses of digital systems continue to proliferate in quantity and variety, field programmable gate arrays (FPGAs) are taking centre-stage in their design. Introduction to Embedded System Design Using Field Programmable Gate Arrays provides a starting point for the use of FPGAs in the design of embedded systems. The text considers a hypothetical robot controller as an embedded application and weaves around it related concepts of FPGA-based digital design. The book details: a [ use of FPGA vis-A -vis general purpose processor and microcontroller; a [ design using Verilog hardware description language; a [ digital design synthesis using Verilog and XilinxA(R) SpartanTM 3 FPGA; a [ FPGA-based embedded processors and peripherals; a [ overview of serial data communications and signal conditioning using FPGA; a [ FPGA-based motor drive controllers; and a [ prototyping digital systems using FPGA. The book is a good introductory text for FPGA-based design. It will be useful for both students and designers who have worked with microprocessors and microcontrollers and now wish to move to design using FPGA. Its end-of-chapter exercises and frequent use of example can be used for teaching or for self-study.
Research into grid computing has been driven by the need to solve large-scale, increasingly complex problems for scientific applications. Yet the applications of grid computing for business and casual users did not begin to emerge until the development of the concept of cloud computing, fueled by advances in virtualization techniques, coupled with the increased availability of ever-greater Internet bandwidth. The appeal of this new paradigm is mainly based on its simplicity, and the affordable price for seamless access to both computational and storage resources. This timely text/reference introduces the fundamental principles and techniques underlying grids, clouds and virtualization technologies, as well as reviewing the latest research and expected future developments in the field. Readers are guided through the key topics by internationally recognized experts, enabling them to develop their understanding of an area likely to play an ever more significant role in coming years. Topics and features: presents contributions from an international selection of experts in the field; provides a thorough introduction and overview of existing technologies in grids, clouds and virtualization, including a brief history of the field; examines the basic requirements for performance isolation of virtual machines on multi-core servers, analyzing a selection of system virtualization technologies; examines both business and scientific applications of grids and clouds, including their use in the life sciences and for high-performance computing; explores cloud building technologies, architectures for enhancing grid infrastructures with cloud computing, and cloud performance; discusses energy aware grids and clouds, workflows on grids and clouds, and cloud and grid programming models. This useful text will enable interested readers to familiarize themselves with the key topics of grids, clouds and virtualization, and to contribute to new advances in the field. Researchers, undergraduate and graduate students, system designers and programmers, and IT policy makers will all benefit from the material covered.
The Definitive Guide to the ARM (R) Cortex (R)-M0 and Cortex-M0+ Processors, Second Edition explains the architectures underneath ARM's Cortex-M0 and Cortex-M0+ processors and their programming techniques. Written by ARM's Senior Embedded Technology Manager, Joseph Yiu, the book is packed with examples on how to use the features in the Cortex-M0 and Cortex-M0+ processors. It provides detailed information on the instruction set architecture, how to use a number of popular development suites, an overview of the software development flow, and information on how to locate problems in the program code and software porting. This new edition includes the differences between the Cortex-M0 and Cortex-M0+ processors such as architectural features (e.g. unprivileged execution level, vector table relocation), new chapters on low power designs and the Memory Protection Unit (MPU), the benefits of the Cortex-M0+ processor, such as the new single cycle I/O interface, higher energy efficiency, better performance and the Micro Trace Buffer (MTB) feature, updated software development tools, updated Real Time Operating System examples using Keil (TM) RTX with CMSIS-RTOS APIs, examples of using various Cortex-M0 and Cortex-M0+ based microcontrollers, and much more.
Transition Engineering: Building a Sustainable Future examines new strategies emerging in response to the mega-issues of global climate change, decline in world oil supply, scarcity of key industrial minerals, and local environmental constraints. These issues pose challenges for organizations, businesses, and communities, and engineers will need to begin developing ideas and projects to implement the transition of engineered systems. This work presents a methodology for shifting away from unsustainable activities. Teaching the Transition Engineering approach and methodology is the focus of the text, and the concept is presented in a way that engineers can begin applying it in their work.
How do you detangle a monolithic system and migrate it to a microservice architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture. With many illustrative examples, insightful migration patterns, and a bevy of practical advice to transition your monolith enterprise into a microservice operation, this practical guide covers multiple scenarios and strategies for a successful migration, from initial planning all the way through application and database decomposition. You'll learn several tried and tested patterns and techniques that you can use as you migrate your existing architecture. Ideal for organizations looking to transition to microservices, rather than rebuild Helps companies determine whether to migrate, when to migrate, and where to begin Addresses communication, integration, and the migration of legacy systems Discusses multiple migration patterns and where they apply Provides database migration examples, along with synchronization strategies Explores application decomposition, including several architectural refactoring patterns Delves into details of database decomposition, including the impact of breaking referential and transactional integrity, new failure modes, and more
Software components and component-based software development (CBSD) are acknowledged as the best approach for constructing quality software at reasonable cost. Composing Software Components: A Software-testing Perspective describes a 10-year investigation into the underlying principles of CBSD. By restricting attention to the simplest cases, startling results are obtained: Components are tested using only executable code. Their behavior is recorded and presented graphically. Functional and non-functional behavior of systems synthesized from components are calculated from component tests alone. No access to components themselves is required. Fast, accurate tools support every aspect of CBSD from design through debugging. Case studies of CBSD also illuminate software testing in general, particularly an expanded role for unit testing and the treatment of non-functional software properties. This unique book: Contains more than a dozen case studies of fully worked-out component synthesis, with revealing insights into fundamental testing issues. Presents an original, fundamental theory of component composition that includes persistent state and concurrency, based on functional software testing rather than proof-of-programs. Comes with free supporting software with tutorial examples and data for replication of examples. The Perl software has been tested on Linux, Macintosh, and Windows platforms. Full documentation is provided. Includes anecdotes and insights from the author's 50-year career in computing as systems programmer, manager, researcher, and teacher. Composing Software Components: A Software-testing Perspective will help software researchers and practitioners to understand the underlying principles of component testing. Advanced students in computer science, engineering, and mathematics can also benefit from the book as a supplemental text and reference."
Written by high performance computing (HPC) experts, Introduction to High Performance Computing for Scientists and Engineers provides a solid introduction to current mainstream computer architecture, dominant parallel programming models, and useful optimization strategies for scientific HPC. From working in a scientific computing center, the authors gained a unique perspective on the requirements and attitudes of users as well as manufacturers of parallel computers.
|
You may like...
|