Search results for "System Design Guide for Software Professionals"
Items we need to order for you

System Design Guide for Software Professionals
Enhance your system design skills to build scalable and efficient systems by working through real-world case studies and expert strategies to excel in interviewsKey FeaturesComprehensive coverage of distributed systems concepts and practical system design techniques.Insider tips and proven strategies from engineering leaders at top tech companies.Detailed case studies of widely used applications and their system architectures.Purchase of the print or Kindle book includes a free PDF eBookBook DescriptionBuilding scalable software systems is more critical than ever. Yet, many software professionals struggle to navigate the complexities of system design, especially when aiming for positions at top tech companies. Written by Dhirendra Sinha, a seasoned Engineering Leader at Google with a blend of experience working at large companies such as Cisco, Oracle, and Yahoo, and Tejas Chopra, a Senior Software Engineer at Netflix, a TEDx speaker, and a Co-Founder of GoEB1, this comprehensive and authoritative resource on system design offers invaluable insights and strategies to help you excel in interviews with all major tech companies. This guide covers the basics of system design, including the principles and techniques of distributed systems, and delves into core building blocks such as distributed system theorems, attributes, and the design and implementation of system components. Following examples of popular applications such as Uber, Twitter, Instagram, Google Docs, and Netflix, you’ll learn how to apply concepts to real-world scenarios. The book offers expert advice and strategies for preparing and acing system design interviews, along with a mind map/cheat sheet summarizing the key takeaways. By the end of this book, you’ll be equipped with unique techniques and the confidence to solve any coding interview question.What you will learnDesign for scalability and efficiency with expert insightsApply distributed system theorems and attributesImplement DNS, databases, caches, queues, and APIsAnalyze case studies of real-world systemsDiscover tips to excel in system design interviews with confidenceApply industry-standard methodologies for system design and evaluationExplore the architecture and operation of cloud-based systemsWho this book is forThis book is a must-have resource for experienced software professionals, particularly those with 5-15 years of experience in building scalable distributed systems, web applications, and backend microservices. Whether you're a seasoned developer or an architect looking to deepen your expertise in system design, this book provides the insights and practical knowledge you need to excel in tech interviews and advance your career. A solid foundation in distributed systems, data structures/algorithms, and web development will help you get the most out of this comprehensive guide.
R 1,140.00

R 641.00


R 611.00

Design for Software
A unique resource to help software developers create a desirable user experience Today, top-flight software must feature a desirable user experience. This one-of-a-kind book creates a design process specifically for software, making it easy for developers who lack design background to create that compelling user experience. Appealing to both tech-savvy designers and creative-minded technologists, it establishes a hybrid discipline that will produce first-rate software. Illustrated in full color, it shows how to plan and visualize the design to create software that works on every level. Today's software demands attention to the quality of the user experience; this book guides you through a practical design process to achieve that goal Approaches the mechanics of design with a process inspired by art and science Avoids the abstract and moves step by step through techniques you can put to use immediately Covers planning your design, tested methods, how to visualize like a designer, psychology of design, and how to create software that developers will appreciate Explores such elements as choosing the right typeface and managing interactivity Design for Software: A Playbook for Developers brings the art of good design together with the science of software development to create programs with pizazz.
R 1,140.00

System Design with AI Interview Guide
System Design with AI Interview Guide equips you with the insights, skills, and hands-on practice needed to ace even the toughest system design interview questions. This book takes a structured approach to mastering system architecture, blending AI-driven decision-making with modern design principles to help you confidently tackle complex interview scenarios.Divided into three parts, the book begins by establishing a strong foundation in system design methodology, emphasizing scalability, performance optimization, and AI integration. You'll learn how to analyze design challenges, apply domain-driven strategies, and incorporate AI agents to enhance system intelligence. The second section delves into technical fundamentals, covering data modeling, API design, microservices, high availability, and security. It provides essential strategies for scaling AI workloads, optimizing cloud storage, and building resilient, fault-tolerant systems. The final section brings real-world case studies into focus, showcasing AI-driven solutions for ride-sharing platforms, e-commerce applications, fraud detection, and payment processing. These hands-on examples reinforce key principles, helping you apply your knowledge to real interview questions.By the end of this book, you'll have a deep understanding of AI-powered system design and the confidence to structure, articulate, and defend your solutions in interviews. Whether you're an aspiring software architect, an experienced developer preparing for top-tier interviews, or a professional looking to sharpen your design expertise, this guide provides the practical insights and hands-on experience needed to succeed. What you will learn:Learn a structured, step-by-step approach to designing scalable, efficient, and AI-powered systems for interviews.How to develop the skills to align system design with business objectives, user needs, and domain-specific constraints.Explore designing fault-tolerant, distributed systems with AI-enhanced security and performance optimization.Understand the future of AI-driven system design, ethical considerations, and best practices for staying competitive in interviews.Who this book is for:Software developers and engineers preparing for system design interviews. Software architects seeking a structured approach to designing scalable, resilient applications with AI considerations.
R 1,368.00

System Design in Software Engineering
This book offers a broad range of ideas from CoMeSySo 2024, highlighting theory and practice in modern computing. Researchers from diverse backgrounds present their latest findings on systems design, software engineering, and innovative problem-solving.Topics include new methods to improve modeling, testing, and optimization across various fields.The book also shows how data-driven approaches and well-structured architectures can increase reliability. These proceedings foster meaningful teamwork and shared learning by bringing together experts from many areas. Readers will gain insights into advanced techniques that can be adapted to real-world situations. Industry specialists, academic researchers, and students will benefit from the breadth of approaches. Case studies reveal common hurdles and present workable solutions for upcoming challenges.With a clear focus on advancement, this resource is an essential guide to the next steps in computational development.
R 8,059.00

R 611.00

R 580.00

Software Design
All Computer Scientists and Software Engineers need to understand software design, but until now there hasn't been one, complete, up-to-date guide to its theory and practice. Eric Braude's Software Design: From Programming to Architecture begins at the code level with programming issues such as robustness and flexibility in implementation. Increasing in abstraction and scope, the book then moves to mid-level issues, emphasizing a thorough understanding of standard design patterns and components. Finally, the book ends with high-level issues such as architectures, frameworks, and object-oriented analysis and design. In addition, the text contains a prologue on software process, making it versatile enough to use in a software engineering course.
R 4,471.00

Software Design
This book is perhaps the first attempt to give full treatment to the topic of Software Design. It will facilitate the academia as well as the industry. This book covers all the topics of software design including the ancillary ones.
R 7,628.46

Software Design for Real-time Systems
WHAT IS THIS BOOKABOUT7 In recent times real-time computer systems have become increasingly complex and sophisticated. It has now become apparent that, to implement such schemes effectively, professional, rigorous software methods must be used. This includes analysis, design and implementation. Unfortunately few textbooks cover this area well. Frequently they are hardware oriented with limited coverage of software, or software texts which ignore the issues of real-time systems. This book aims to fill that gap by describing the total software design and is given development process for real-time systems. Further, special emphasis of microprocessor-based real-time embedded systems. to the needs WHAT ARE REAL-TIME COMPUTER SYSTEMS? Real-time systems are those which must produce correct responses within a definite time limit. Should computer responses exceed these time bounds then performance degradation and/or malfunction results. WHAT ARE REAL-TIME EMBEDDED COMPUTER SYSTEMS? Here the computer is merely one functional element within a real-time system; it is not a computing machine in its own right. WHO SHOULD READ THIS BOOK? Those involved, or who intend to get involved, in the design of software for real-time systems. It is written with both software and hardware engineers in mind, being suitable for students and professional engineers.
R 1,593.25

R 916.00

Software Architecture: System Design, Development and Maintenance
For more and more systems, software has moved from a peripheral to a central role, replacing mechanical parts and hardware and giving the product a competitive edge. Consequences of this trend are an increase in: the size of software systems, the variability in software artifacts, and the importance of software in achieving the system-level properties. Software architecture provides the necessary abstractions for managing the resulting complexity. We here introduce the Third Working IEEFlIFIP Conference on Software Architecture, WICSA3. That it is already the third such conference is in itself a clear indication that software architecture continues to be an important topic in industrial software development and in software engineering research. However, becoming an established field does not mean that software architecture provides less opportunity for innovation and new directions. On the contrary, one can identify a number of interesting trends within software architecture research. The first trend is that the role of the software architecture in all phases of software development is more explicitly recognized. Whereas initially software architecture was primarily associated with the architecture design phase, we now see that the software architecture is treated explicitly during development, product derivation in software product lines, at run-time, and during system evolution. Software architecture as an artifact has been decoupled from a particular lifecycle phase.
R 4,646.20

Fundamentals of Software Architecture
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This updated edition provides a comprehensive overview of software architecture's many aspects, with five new chapters covering the latest insights from the field. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming architecture, governance, data, generative AI, team topologies, and many other topics.Mark Richards and Neal Ford-hands-on practitioners who have taught software architecture classes professionally for years-focus on architecture principles that apply across all technology stacks. You'll explore software architecture in a modern light, taking into account all the innovations of the past decade.This book examines:Architecture styles and patterns: Microservices, modular monoliths, microkernels, layered architectures, and many moreComponents: Identification, coupling, cohesion, partitioning, and granularitySoft skills: Effective team management, collaboration, business engagement models, negotiation, presentations, and moreModernity: Engineering practices and operational approaches that have changed radically in the past few years, including cloud considerations and generative AIArchitecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture
R 1,978.00

Software Architecture Patterns for Serverless Systems
A professional's guide to solving complex problems while designing modern softwareKey FeaturesLearn best practices for designing enterprise-grade software systems from a seasoned CTODeeper your understanding of system reliability, maintainability, and scalabilityElevate your skills to a professional level by learning the most effective software design patterns and architectural conceptsBook DescriptionAs businesses are undergoing a digital transformation to keep up with competition, it is now more important than ever for IT professionals to design systems to keep up with the rate of change while maintaining stability. This book takes you through the architectural patterns that power enterprise-grade software systems and the key architectural elements that enable change (such as events, autonomous services, and micro frontends), along with showing you how to implement and operate anti-fragile systems. First, you'll divide up a system and define boundaries so that your teams can work autonomously and accelerate innovation. You'll cover low-level event and data patterns that support the entire architecture, while getting up and running with the different autonomous service design patterns. Next, the book will focus on best practices for security, reliability, testability, observability, and performance. You'll combine all that you've learned and build upon that foundation, exploring the methodologies of continuous experimentation, deployment, and delivery before delving into some final thoughts on how to start making progress. By the end of this book, you'll be able to architect your own event-driven, serverless systems that are ready to adapt and change so that you can deliver value at the pace needed by your business.What you will learnExplore architectural patterns to create anti-fragile systems that thrive with changeFocus on DevOps practices that empower self-sufficient, full-stack teamsBuild enterprise-scale serverless systemsApply microservices principles to the frontendDiscover how SOLID principles apply to software and database architectureCreate event stream processors that power the event sourcing and CQRS patternDeploy a multi-regional system, including regional health checks, latency-based routing, and replicationExplore the Strangler pattern for migrating legacy systemsWho this book is forThis book is for software architects who want to learn more about different software design patterns and best practices. This isn't a beginner's manual – you'll need an intermediate level of programming proficiency and software design to get started. You'll get the most out of this software design book if you already know the basics of the cloud, but it isn't a prerequisite.
R 2,084.00

System Design and Behavioral Intelligence
Master system design and behavioral interviews with practical frameworks, real-world design case studies, leadership storytelling techniques, and AI-assisted strategies for senior software engineering roles. Key FeaturesDesign scalable systems using modern architectures and real-world case studiesUse a structured framework for system design interviews, including Agentic AIDevelop Behavioral Intelligence to read the signals behind questionsMaster STAR-R and leadership storytelling for senior rolesGet a free PDF eBook with print or Kindle purchaseBook DescriptionDevelop the skills that matter most in modern software engineering by combining real-world system design with structured behavioral intelligence, the technical and human strengths that carry you through your work and your career.You start with the foundations, distributed systems, networking, scalability, security, databases, and architecture patterns, then work through full design walkthroughs, from a real-time bidding platform to an agentic AI system for investment research, weighing the trade-offs that shape real systems: performance, reliability, and availability, plus observability and the tools reshaping design in the AI era.On the behavioral side, you move beyond memorized answers. Turn real work into high-signal stories with STAR+R and a lasting story bank, speak the language of delivery and stakeholders through DORA and RACI, and learn the scorecard interviewers use to evaluate you. You also get guidance for Big Tech interviews, AI-assisted preparation, and strategies from technology leaders Shalini Goyal and Alok Sharan.By the end, you will approach both system design and behavioral interviews with confidence, communicate your decisions clearly, and show the technical and leadership qualities modern engineering demands.What you will learnApply a structured, repeatable approach to system designDesign scalable distributed systems with confidenceEvaluate architectural trade-offs for real systemsApply core design patterns and algorithmsDesign AI-native and agentic systemsBuild high-signal stories with STAR+R and a story bankCraft senior-level leadership and impact storiesLearn how Big Tech evaluates you, including the scorecardSpeak the language of DORA, RACI, and risk heatmapsUse AI to prepare, practice, and sharpen your storiesWho this book is forSoftware engineers, backend developers, senior developers, solution architects, engineering managers, executives and computer science students preparing for technical interviews will benefit from this book. It is also valuable for professionals targeting senior engineering roles at product companies and FAANG organizations. Readers should have a basic understanding of software development, data structures, algorithms, and object-oriented programming.
R 1,791.00

Balancing Coupling in Software Design
Harness the Power of the Multi-Dimensional Coupling Model as a Tool for Architecting Modular, Evolvable Software Systems In this definitive guide, Vlad Khononov introduces a novel approach to designing modular software systems that turns coupling into a powerful design tool. Software, like all systems, is composed of components that interact to form the system itself. Coupling is the metric used to represent the interdependence between connected components, and the magnitude of coupling ultimately affects the adaptability and success of the software system. Balancing Coupling in Software Design surveys existing methods of evaluating coupling and combines them into a comprehensive model for making design decisions that manage complexity while increasing the modularity of your software system. Coupling is everywhere in software development. Whatever your job level or title, whether you are writing a function, designing an object model, or architecting distributed systems, this book is for you. Understand coupling and the ways it manifests itself in software designEvaluate the multi-dimensional forces of couplingUnderstand how the dimensions of coupling interact to impact your systemSteer your systems away from complexity and toward modularity The principles discussed in Balancing Coupling in Software Design are ubiquitously relevant in software engineering and will transform the way you think about software design.
R 1,064.00

R 611.00

Designing Maintainable Software
Aimed at improving a programmers ability for altering code to fit changing requirements and for detecting and correcting errors, this book argues for a new way of thinking about maintaining software. It proposes the use of a set of human factors principles that govern the programmer-software-event world interactions and form the core of the maintenance process. The book is thus highly valuable for systems analysts and programmers, managers seeking to reduce costs, researchers looking at solutions to the maintenance problem, and students learning to write clear unambiguous programs.
R 1,537.41

R 1,220.00

Designing Software-intensive Systems
Design for software-intensive systems requires adequate methodology and tool support in order for researchers and practitioners to make use of and develop very large and complex systems. Software engineering environments help reduce the design costs of very large and intricate software systems while improving the quality of the software produced. ""Designing Software-Intensive Systems: Methods and Principles"" addresses the complex issues associated with software engineering environment capabilities for designing real-time embedded software systems. This groundbreaking work provides relevant theoretical foundations, principles, methodologies, frameworks, and the latest research findings in the field to deliver a superior knowledge base for those in computer science, software engineering, and fields alike.
R 7,051.64

R 916.00

R 1,374.00

Software System Design Methods
In this volume we present the full proceedings of a NATO Advanced Study Institute (ASI) on the theme of the challenge of advanced computing technology to system design methods. This is in fact the second ASI organised by myself and my colleagues in the field of systems reliability; the first was about Electronic Systems Effectiveness and Life Cycle Costing, and the proceed ings were published by the same publisher in 1983, as "Series F (Computer and System Sciences, No. 3)". The first part of the present proceedings concentrates on the development of low-fault and fault-tolerant software. In organising this session I was greatly helped by Mr. John Musa and Professor V. R. Basili. The latter and Or. R. W. Selby open our text with their interesting approach to the problem of data collection and of observation sampling for statistical analysis of software development, software testing strategies and error analysis. The problem of clean room software development is also considered. Next Professor B. Randell discusses recursively structured fault-tolerant distributed computer systems, and bases his approach on a UNIX system example. His aim is to establish that a distributed system should be functionally equivalent to an individual computing system. Or. L. F. Pau considers knowledge engineering techniques applied to fault detection, test generation and maintenance of software. This is illustrated by a variety of examples, such as electronic failure detection, control system testing, analysis of intermittent failures, false alarm reduction and others. Following this Mr. M.
R 3,376.77

R 13,859.93

Arithmetic Optimization Techniques for Hardware and Software Design
Obtain better system performance, lower energy consumption, and avoid hand-coding arithmetic functions with this concise guide to automated optimization techniques for hardware and software design. High-level compiler optimizations and high-speed architectures for implementing FIR filters are covered, which can improve performance in communications, signal processing, computer graphics, and cryptography. Clearly explained algorithms and illustrative examples throughout make it easy to understand the techniques and write software for their implementation. Background information on the synthesis of arithmetic expressions and computer arithmetic is also included, making the book ideal for newcomers to the subject. This is an invaluable resource for researchers, professionals, and graduate students working in system level design and automation, compilers, and VLSI CAD.
R 4,115.61

Flexible Software Design
A developer's knowledge of a computing system's requirements is necessarily imperfect because organizations change. Many requirements lie in the future and are unknowable at the time the system is designed and built. To avoid burdensome maintenance costs developers must therefore rely on a system's ability to change gracefully-its flexibility. Flexible Software Design: Systems Development for Changing Requirements demonstrates the design principles and techniques that enable the design of software that empowers business staff to make functional changes to their systems with little or no professional IT intervention.The book concentrates on the design aspects of system development, the area with the most flexibility leverage. Divided into four parts, the text begins by introducing the fundamental concepts of flexibility, explaining the reality of imperfect knowledge and how development participants must change their thinking to implement flexible software. The second part covers design guidelines, stable identifiers, stable information structures, the Generic Entity Cloud concept, and regulatory mechanisms that give business staff control over system modifications. Part three relates strategic information systems planning to flexible systems. It examines the elicitation of requirements and the relevance of agile methods in a flexible systems environment. It also discusses practical aspects of stable identifier design and compares the testing of traditional and flexible software. In part four, the book concludes with details of the flexible UniverSIS system and an explanation of the applications and extensions of the Generic Entity Cloud tools.The combination of smart design and smart work offered in Flexible Software Design can materially benefit your organization by radically reducing the systems maintenance burden.
R 3,538.66


R 580.00

Research Perspectives on Software Engineering and Systems Design
This book offers a broad range of ideas from CoMeSySo 2024, highlighting theory and practice in modern computing. Researchers from diverse backgrounds present their latest findings on systems design, software engineering, and innovative problem-solving. Topics include new methods to improve modeling, testing, and optimization across various fields. This book also shows how data-driven approaches and well-structured architectures can increase reliability. These proceedings foster meaningful teamwork and shared learning by bringing together experts from many areas. Readers will gain insights into advanced techniques that can be adapted to real-world situations. Industry specialists, academic researchers, and students will benefit from the breadth of approaches. Case studies reveal common hurdles and present workable solutions for upcoming challenges. With a clear focus on advancement, this resource is an essential guide to the next steps in computational development.
R 9,158.00

Practitioner's Guide to Software Test Design
A comprehensive, up-to-date and practical introduction to software test design. This book presents all the important test design techniques in a single place and in a consistent and easy-to-digest format. An immediately useful handbook for test engineers, developers, quality assurance professionals and requirements and systems analysts, it enables you to: choose the best test case design; find software defects in less time and with fewer resources; and develop optimal strategies that help reduce the likelihood of costly errors. It also assists you in estimating the effort, time and cost of good testing. Numerous case studies and examples of software testing techniques are included, helping you to fully understand the practical applications of these techniques. From well-established techniques such as equivalence classes, boundary value analysis, decision tables and state-transition diagrams, to new techniques like use case testing, pairwise testing and exploratory testing, the book is a usful resource for testing professionals seeking to improve their skills and a handy reference for college-level courses in software test design.
R 2,872.00



Software Development Techniques for Constructive Information Systems Design
Software development and information systems design have a unique relationship, but are often discussed and studied independently. However, meticulous software development is vital for the success of an information system.Software Development Techniques for Constructive Information Systems Design focuses the aspects of information systems and software development as a merging process. This reference source pays special attention to the emerging research, trends, and experiences in this area which is bound to enhance the reader’s understanding of the growing and ever-adapting field. Academics, researchers, students, and working professionals in this field will benefit from this publication’s unique perspective.
R 7,598.53

R 641.00

Systems Software
Systems Software: Essential Concepts provides students with an accessible introduction to the knowledge and fundamentals that are necessary to understand software and hardware. The text also reviews implementation techniques to familiarize students with more complex software, such as operating systems and compilers, and prepare them to take more advance courses within the discipline.The book is divided into two key topical areas: compiler fundamentals and the basic mechanisms and data structures required to support operating systems. In the compiler section, students learn about the runtime environment, how to implement a scanner and a symbol table, and how to implement parsing and code generation for a virtual machine. To emphasize practical application, students are challenged to implement a small compiler. In the operating system domain, students gain an understanding of the interrupt mechanism, process and thread implementation, and process synchronization.Featuring a modern and practical approach, Systems Software is an ideal resource for courses in system programming, systems software, software development, and assembly language. It can also serve as a supplementary material for introductory operating system and compiler courses.
R 3,019.62

Software Architecture: System Design, Development and Maintenance
For more and more systems, software has moved from a peripheral to a central role, replacing mechanical parts and hardware and giving the product a competitive edge. Consequences of this trend are an increase in: the size of software systems, the variability in software artifacts, and the importance of software in achieving the system-level properties. Software architecture provides the necessary abstractions for managing the resulting complexity. We here introduce the Third Working IEEFlIFIP Conference on Software Architecture, WICSA3. That it is already the third such conference is in itself a clear indication that software architecture continues to be an important topic in industrial software development and in software engineering research. However, becoming an established field does not mean that software architecture provides less opportunity for innovation and new directions. On the contrary, one can identify a number of interesting trends within software architecture research. The first trend is that the role of the software architecture in all phases of software development is more explicitly recognized. Whereas initially software architecture was primarily associated with the architecture design phase, we now see that the software architecture is treated explicitly during development, product derivation in software product lines, at run-time, and during system evolution. Software architecture as an artifact has been decoupled from a particular lifecycle phase.
R 4,647.10

R 4,835.48

R 24,801.58

Software Architecture Fundamentals
Software architecture is an important factor in ensuring the success of any software project. It provides a systematically designed framework that ensures the fulfilment of quality requirements such as expandability, flexibility, performance, and time-to-market. A software architect's job is to reconcile customer requirements with the available technical options and constraints while designing an overall structure that allows all components of the system to interact smoothly. This book gives you all the basic know-how you need to begin designing scalable system software architectures. It goes into detail on all the most important terms and concepts and how they relate to other IT practices. Following on from the basics, it describes the techniques and methods required for the planning, documentation, and quality management of software architectures. It details the role, the tasks, and the work environment of a software architect, as well as looking at how the job itself is embedded in company and project structures. The book also addresses the tools required for the job. This edition has been updated to conform to the ISO/IEC 25010 and ISO/IEC/IEEE 42010 standards. It also puts increased emphasis on domain-driven design, and looks at contemporary architectures such as microservices. The book is based on the International Software Architecture Qualification Board's Certified Professional for Software Architecture - Foundation Level (CPSA-F) syllabus, version 4.1.1. (July 2017).
R 911.00

Codesign of Embedded Systems: A Unified Hardware/Software Representation
Current practice dictates the separation of the hardware and software development paths early in the design cycle. These paths remain independent with very little interaction occurring between them until system integration. In particular, hardware is often specified without fully appreciating the computational requirements of the software. Also, software development does not influence hardware development and does not track changes made during the hardware design phase. Thus, the ability to explore hardware/software tradeoffs is restricted, such as the movement of functionality from the software domain to the hardware domain (and vice-versa) or the modification of the hardware/software interface. As a result, problems that are encountered during system integration may require modification of the software and/or hardware, resulting in potentially significant cost increases and schedule overruns. To address the problems described above, a cooperative design approach, one that utilizes a unified view of hardware and software, is described. This approach is called hardware/software codesign. The Codesign of Embedded Systems develops several fundamental hardware/software codesign concepts and a methodology that supports them. A unified representation, referred to as a decomposition graph, is presented which can be used to describe hardware or software using either functional abstractions or data abstractions. Using a unified representation based on functional abstractions, an abstract hardware/software model has been implemented in a common simulation environment called ADEPT (Advanced Design Environment Prototyping Tool). This model permits early hardware/software evaluation and tradeoff exploration. Techniques have been developed which support the identification of software bottlenecks and the evaluation of design alternatives with respect to multiple metrics. The application of the model is demonstrated on several examples. A unified representation based on data abstractions is also explored. This work leads to investigations regarding the application of object-oriented techniques to hardware design. The Codesign of Embedded Systems: A Unified Hardware/Software Representation describes a novel approach to a topic of immense importance to CAD researchers and designers alike.
R 6,002.01

Advances in Human Factors, Software, and Systems Engineering
This book provides a platform for addressing human factors challenges in software and systems engineering, both pushing the boundaries of current research and responding to new challenges, fostering new research ideas in the process. This book is intended for researchers, professional software and systems engineers, and human factors and human systems integration experts to help them address societal challenges for next-generation systems with applications for meeting them. Topics include evolutionary and complex systems, human systems integration, smart grids and infrastructure, workforce training requirements, systems engineering education, and defense and aerospace. Based on the AHFE 2016 International Conference on Human Factors, Software, and Systems Engineering, held on July 27-31, 2016, in Walt Disney World®, Florida, USA. This book represents an inspiring guide for all researchers and professionals in the field of Human Factors, Software, and Systems Engineering.
R 3,385.78

Formal Methods and Models for System Design
Perhaps nothing characterizes the inherent heterogeneity in embedded sys tems than the ability to choose between hardware and software implementations of a given system function. Indeed, most embedded systems at their core repre sent a careful division and design of hardware and software parts of the system To do this task effectively, models and methods are necessary functionality. to capture application behavior, needs and system implementation constraints. Formal modeling can be valuable in addressing these tasks. As with most engineering domains, co-design practice defines the state of the it seeks to add new capabilities in system conceptualization, mod art, though eling, optimization and implementation. These advances -particularly those related to synthesis and verification tasks -direct1y depend upon formal under standing of system behavior and performance measures. Current practice in system modeling relies upon exploiting high-level programming frameworks, such as SystemC, EstereI, to capture design at increasingly higher levels of ab straction and attempts to reduce the system implementation task. While raising the abstraction levels for design and verification tasks, to be really useful, these approaches must also provide for reuse, adaptation of the existing intellectual property (IP) blocks.
R 5,988.46

Resource Proportional Software Design for Emerging Systems
Efficiency is a crucial concern across computing systems, from the edge to the cloud. Paradoxically, even as the latencies of bottleneck components such as storage and networks have dropped by up to four orders of magnitude, software path lengths have progressively increased due to overhead from the very frameworks that have revolutionized the pace of information technology. Such overhead can be severe enough to overshadow the benefits from switching to new technologies like persistent memory and low latency interconnects.Resource Proportional Software Design for Emerging Systems introduces resource proportional design (RPD) as a principled approach to software component and system development that counters the overhead of deeply layered code without removing flexibility or ease of development. RPD makes resource consumption proportional to situational utility by adapting to diverse emerging needs and technology systems evolution.Highlights: Analysis of run-time bloat in deep software stacks, an under-explored source of power-performance wastage in IT systems Qualitative and quantitative treatment of key dimensions of resource proportionality Code features: Unify and broaden supported but optional features without losing efficiency Technology and systems evolution: Design software to adapt with changing trade-offs as technology evolves Data processing: Design systems to predict which subsets of data processed by an (analytics or ML) application are likely to be useful System wide trade-offs: Address interacting local and global considerations throughout software stacks and hardware including cross-layer co-design involving code, data and systems dimensions, and non-functional requirements such as security and fault tolerance Written from a systems perspective to explore RPD principles, best practices, models and tools in the context of emerging technologies and applications This book is primarily geared towards practitioners with some advanced topics for researchers. The principles shared in the book are expected to be useful for programmers, engineers and researchers interested in ensuring software and systems are optimized for existing and next generation technologies.The authors are from both industry (Bhattacharya and Voigt) and academic (Gopinath) backgrounds.
R 9,337.01













































