Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
|||
Books > Computing & IT > Computer programming > Software engineering
This book focuses on the topic of improving software quality using adaptive control approaches. As software systems grow in complexity, some of the central challenges include their ability to self-manage and adapt at run time, responding to changing user needs and environments, faults, and vulnerabilities. Control theory approaches presented in the book provide some of the answers to these challenges.The book weaves together diverse research topics (such as requirements engineering, software development processes, pervasive and autonomic computing, service-oriented architectures, on-line adaptation of software behavior, testing and QoS control) into a coherent whole.Written by world-renowned experts, this book is truly a noteworthy and authoritative reference for students, researchers and practitioners to better understand how the adaptive control approach can be applied to improve the quality of software systems. Book chapters also outline future theoretical and experimental challenges for researchers in this area.
Expert advice on C programming is hard to find. While much help is available for object-oriented programming languages, there's surprisingly little for the C language. With this hands-on guide, beginners and experienced C programmers alike will find guidance about design decisions, including how to apply them bit by bit to running code examples when building large-scale programs. Christopher Preschern, a leading member of the design patterns community, answers questions such as how to structure C programs, cope with error handling, or design flexible interfaces. Whether you're looking for one particular pattern or an overview of design options for a specific topic, this book shows you how to implement hands-on design knowledge specifically for the C programming language. You'll find design patterns for: Error handling Returning error information Memory management Returning data from C functions Data lifetime and ownership Flexible APIs Flexible iterator interfaces Organizing files in modular programs Escaping #ifdef Hell
Learn the essentials of working with Flutter and Dart to build full stack applications that meet the needs of a cloud-driven world. Together, the Flutter open source UI software development kit and the Dart programming language for client development provide a unified solution to building applications capable of targeting multiple platforms. Recipes in this cookbook show you how this potent combination provides an efficient approach to application development. Typically used in frontend development, Flutter helps you develop cross-platform applications for Android, iOS, Linux, Mac, Windows, and the Google Fuchsia operating system. The Dart SDK provides native access to third-party solutions, including APIs, databases, and authentication. When used in concert with Flutter, Dart allows you to compile source code ahead of time to native code. This cookbook shows you how to: Write effective Dart code by using variables and data structures Build applications with Flutter by exploring widgets and data handling Understand cloud provider solutions and learn how to integrate them with Flutter Manage data through APIs using Google Cloud Serverless Work with Firebase solutions such as Authentication and the Cloud Firestore database Build web applications that also work with mobile and desktop platforms
The examination of social questions is a relatively new development in goegraphy, but social geography has now blossomed into a fully fledged sub-discipline which has in fact influenced significantly all other areas of geography. This book, first published in 1987, presents an overview of recent developments in all the major branches of social geography. As such it provides a valuable introduction to te subject, a review of the latest state of the art and a pointer to future research directions.
Designed to conform to the ISO/IEC standard 14143, the Common Software Measurement International Consortium (COSMIC) Function Point method has become the major estimation technique based on international standards for building software-intensive systems. COSMIC Function Points: Theory and Advanced Practices supplies a cutting-edge look at current and emerging practices in the international software measurement community. The editors have assembled an international panel of experts who detail the steps for measuring the functional size of software and developing project estimates with improved accuracy. They explain how to evaluate and compare systems to improve software reuse and development. Touching on the essential aspects of the next generation of functional size measurement methods, the book delineates best estimation and measurement practices as well as the development of benchmarks for quality improvement, including Six Sigma. This complete resource covers software measurement and estimation methods and practices for embedded systems, business applications, communications software, and control systems. Each chapter supplies the practical understanding required to create, implement, standardize, distribute, and adapt functional size measurement and project estimation to virtually any software context. Praise for: ... an excellent overview ... provides a strong knowledge background for both practitioners and researchers. ... With its broad background, it is useful for practically implementing and successfully adapting other functional sizing methods ... . The COSMIC function point techniques presented in this book will help you to implement, master, and improve your estimation process.-Christof Ebert, Managing Director, Vector Consulting Services
Create your first 2D, 3D, and AR/VR games with the awesome Unity game platform. With this hands-on beginner's guide, you'll start building games fast! In Unity in Action, Third Edition, you will learn how to: Create characters that run, jump, and bump into things Build 3D first-person shooters and third-person action games Construct 2D card games and side-scrolling platformers Script enemies with AI Improve game graphics by importing models and images Design an intuitive user interface for your games Play music and spatially-aware sound effects Connect your games to the internet for online play Deploy your games to desktop, mobile, and the web Thousands of new game developers have chosen Joe Hocking's Unity in Action as their first step toward Unity mastery. This fully updated third edition comes packed with fully refreshed graphics, Unity's latest features, and coverage of the augmented and virtual reality toolkits. Using your existing coding skills, you'll write custom code instead of just clicking together premade scripts. You'll master the Unity toolset from the ground up, adding the skills you need to go from application coder to game developer. Build your next game without sweating the low-level details. The Unity game engine handles the heavy lifting, so you can focus on game play, graphics, and user experience. With support for C#, a huge ecosystem of production-quality prebuilt assets, and a strong dev community, Unity will get your game idea off the drawing board and onto the screen! You can even use Unity for more than game development, with new tools for VR and augmented reality that are perfect for developing useful apps.
For courses in Software Engineering, Software Development, or Object-Oriented Design and Analysis at the Junior/Senior or Graduate level. This text can also be utilized in short technical courses or in short, intensive management courses. Shows students how to use both the principles of software engineering and the practices of various object-oriented tools, processes, and products. Using a step-by-step case study to illustrate the concepts and topics in each chapter, Bruegge and Dutoit emphasize learning object-oriented software engineer through practical experience: students can apply the techniques learned in class by implementing a real-world software project. The third edition addresses new trends, in particular agile project management (Chapter 14 Project Management) and agile methodologies (Chapter 16 Methodologies).
Embedded Software Development: The Open-Source Approach delivers a practical introduction to embedded software development, with a focus on open-source components. This programmer-centric book is written in a way that enables even novice practitioners to grasp the development process as a whole. Incorporating real code fragments and explicit, real-world open-source operating system references (in particular, FreeRTOS) throughout, the text: Defines the role and purpose of embedded systems, describing their internal structure and interfacing with software development tools Examines the inner workings of the GNU compiler collection (GCC)-based software development system or, in other words, toolchain Presents software execution models that can be adopted profitably to model and express concurrency Addresses the basic nomenclature, models, and concepts related to task-based scheduling algorithms Shows how an open-source protocol stack can be integrated in an embedded system and interfaced with other software components Analyzes the main components of the FreeRTOS Application Programming Interface (API), detailing the implementation of key operating system concepts Discusses advanced topics such as formal verification, model checking, runtime checks, memory corruption, security, and dependability Embedded Software Development: The Open-Source Approach capitalizes on the authors' extensive research on real-time operating systems and communications used in embedded applications, often carried out in strict cooperation with industry. Thus, the book serves as a springboard for further research.
Many enterprises regard system-level testing as the final piece of the development effort, rather than as a tool that should be integrated throughout the development process. As a consequence, test teams often execute critical test plans just before product launch, resulting in much of the corrective work being performed in a rush and at the last minute. Presenting combinatorial approaches for improving test coverage, Testing Complex and Embedded Systems details techniques to help you streamline testing and identify problems before they occur -- including turbocharged testing using Six Sigma and exploratory testing methods. Rather than present the continuum of testing for particular products or design attributes, the text focuses on boundary conditions. Examining systems and software testing, it explains how to use simulation and emulation to complement testing. * Details how to manage multiple test hardware and software deliveries * Examines the contradictory perspectives of testing -- including ordered/ random, structured /unstructured, bench/field, and repeatable/non repeatable * Covers essential planning activities prior to testing, how to scope the work, and how to reach a successful conclusion * Explains how to determine when testing is complete Where you find organizations that are successful at product development, you are likely to find groups that practice disciplined, strategic, and thorough testing. Tapping into the authors' decades of experience managing test groups in the automotive industry, this book provides the understanding to help ensure your organization joins the likes of these groups.
Managing a software development project is a complex process. There are lots of deliverables to produce, standards and procedures to observe, plans and budgets to meet, and different people to manage. Project management doesn't just start and end with designing and building the system. Once you've specified, designed and built (or bought) the system it still needs to be properly tested, documented and settled into the live environment. This can seem like a maze to the inexperienced project manager, or even to the experienced project manager unused to a particular environment.A Hacker's Guide to Project Management acts as a guide through this maze. It's aimed specifically at those managing a project or leading a team for the first time, but it will also help more experienced managers who are either new to software development, or dealing with a new part of the software life-cycle. This book:describes the process of software development, how projects can fail and how to avoid those failuresoutlines the key skills of a good project manager, and provides practical advice on how to gain and deploy those skillstakes the reader step-by-step through the main stages of the project, explaining what must be done, and what must be avoided at each stagesuggests what to do if things start to go wrong!The book will also be useful to designers and architects, describing important design techniques, and discussing the important discipline of Software Architecture.This new edition:has been fully revised and updated to reflect current best practices in software developmentincludes a range of different life-cycle models and new design techniquesnow uses the Unified Modelling Language throughout
This book is a broad discussion covering the entire software development lifecycle. It uses a comprehensive case study to address each topic and features the following: A description of the development, by the fictional company Homeowner, of the DigitalHome (DH) System, a system with "smart" devices for controlling home lighting, temperature, humidity, small appliance power, and security A set of scenarios that provide a realistic framework for use of the DH System material Just-in-time training: each chapter includes mini tutorials introducing various software engineering topics that are discussed in that chapter and used in the case study A set of case study exercises that provide an opportunity to engage students in software development practice, either individually or in a team environment. Offering a new approach to learning about software engineering theory and practice, the text is specifically designed to: Support teaching software engineering, using a comprehensive case study covering the complete software development lifecycle Offer opportunities for students to actively learn about and engage in software engineering practice Provide a realistic environment to study a wide array of software engineering topics including agile development Software Engineering Practice: A Case Study Approach supports a student-centered, "active" learning style of teaching. The DH case study exercises provide a variety of opportunities for students to engage in realistic activities related to the theory and practice of software engineering. The text uses a fictitious team of software engineers to portray the nature of software engineering and to depict what actual engineers do when practicing software engineering. All the DH case study exercises can be used as team or group exercises in collaborative learning. Many of the exercises have specific goals related to team building and teaming skills. The text also can be used to support the professional development or certification of practicing software engineers. The case study exercises can be integrated with presentations in a workshop or short course for professionals.
Learn data science with Python by building five real-world projects! In Data Science Bookcamp you'll test and build your knowledge of Python and learn to handle the kind of open-ended problems that professional data scientists work on daily. Downloadable data sets and thoroughly-explained solutions help you lock in what you've learned, building your confidence and making you ready for an exciting new data science career. about the technologyIn real-world practice, data scientists create innovative solutions to novel open ended problems. Easy to learn and use, the Python language has become the de facto language for data science amongst researchers, developers, and business users. But knowing a few basic algorithms is not enough to tackle a vague and thorny problem. It takes relentless practice at cracking difficult data tasks to achieve mastery in the field. That's just what this book delivers. about the book Data Science Bookcamp is a comprehensive set of challenging projects carefully designed to grow your data science skills from novice to master. Veteran data scientist Leonard Apeltsin sets five increasingly difficult exercises that test your abilities against the kind of problems you'd encounter in the real world. As you solve each challenge, you'll acquire and expand the data science and Python skills you'll use as a professional data scientist. Ranging from text processing to machine learning, each project comes complete with a unique downloadable data set and a fully-explained step-by-step solution. Because these projects come from Dr. Apeltsin's vast experience, each solution highlights the most likely failure points along with practical advice for getting past unexpected pitfalls. When you wrap up these five awesome exercises, you'll have a diverse relevant skill set that's transferable to working in industry. what's inside Five in-depth Python exercises with full downloadable data sets Web scraping for text and images Organise datasets with clustering algorithms Visualize complex multi-variable datasets Train a decision tree machine learning algorithm about the readerFor readers who know the basics of Python. No prior data science or machine learning skills required. about the author Leonard Apeltsin is a senior data scientist and engineering lead at Primer AI, a startup that specializes in using advanced Natural Language Processing techniques to extract insight from terabytes of unstructured text data. His PhD research focused on bioinformatics that required analyzing millions of sequenced DNA patterns to uncover genetic links in deadly diseases.
Future requirements for computing speed, system reliability, and cost-effectiveness entail the development of alternative computers to replace the traditional von Neumann organization. As computing networks come into being, one of the latest dreams is now possible - distributed computing. Distributed computing brings transparent access to as much computer power and data as the user needs for accomplishing any given task - simultaneously achieving high performance and reliability. The subject of distributed computing is diverse, and many researchers are investigating various issues concerning the structure of hardware and the design of distributed software. Distributed System Design defines a distributed system as one that looks to its users like an ordinary system, but runs on a set of autonomous processing elements (PEs) where each PE has a separate physical memory space and the message transmission delay is not negligible. With close cooperation among these PEs, the system supports an arbitrary number of processes and dynamic extensions. Distributed System Design outlines the main motivations for building a distributed system, including: inherently distributed applications performance/cost resource sharing flexibility and extendibility availability and fault tolerance scalability Presenting basic concepts, problems, and possible solutions, this reference serves graduate students in distributed system design as well as computer professionals analyzing and designing distributed/open/parallel systems. Chapters discuss: the scope of distributed computing systems general distributed programming languages and a CSP-like distributed control description language (DCDL) expressing parallelism, interprocess communication and synchronization, and fault-tolerant design two approaches describing a distributed system: the time-space view and the interleaving view mutual exclusion and related issues, including election, bidding, and self-stabilization prevention and detection of deadlock reliability, safety, and security as well as various methods of handling node, communication, Byzantine, and software faults efficient interprocessor communication mechanisms as well as these mechanisms without specific constraints, such as adaptiveness, deadlock-freedom, and fault-tolerance virtual channels and virtual networks load distribution problems synchronization of access to shared data while supporting a high degree of concurrency
Client-Centered Software Development: The CO-FOSS Approach introduces a method to creating a customized software product for a single client, either from scratch or by reusing open source components. The clients are typically non-profit humanitarian, educational, or public service organizations. This approach has been used in undergraduate courses where students learn the principles of software development while implementing a real-world software product. This book provides instructors, students, clients, and professional software developers with detailed guidance for developing a new CO-FOSS product from conceptualization to completion. Features Provides instructors, students, clients, and professional software developers with a roadmap for the development of a new CO-FOSS product from conceptualization to completion Motivates students with real-world projects and community service experiences Teaches all elements of the software process, including requirements gathering, design, collaboration, coding, testing, client communication, refactoring, and writing developer and user documentation Uses source code that can be reused and refitted to suit the needs of future projects, since each CO-FOSS product is free and open source software Provides links to a rich variety of resources for instructors and students to freely use in their own courses that develop new CO-FOSS products for other non-profits.
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
An authoritative guide that explores in depth the cultural, technological and methodological concerns to practice three-timezone (3TZ) e-learning in educational contexts. It is important from a pedagogical and practical perspective to impart educational methods and tools that will enable students to be ready for the interconnected, cross-collaborative work environment advocated by modern business practice. The 'local is global' paradigm provides the platform on which students are able to effectively build their knowledge repertoire through the interaction and exchange of project tasks amongst local/global teams, where the traditional barriers of time and location are no longer applicable. The situational and social learning dimensions gained from the explored issues covered in the book will provide a greater awareness to the reader for the need for teaching practice for the '3TZ' enabled workforce. Contents * Teaching Practice-based Subjects in 3 Time Zones (3TZ) Virtual Student Exchange (VSX) Environment * Collaborative Team Project Management * Toward the 24-Hour Knowledge Factory in Software Development * 24/7 Application in Medical Research * Worldwide Teams in Software Development * Virtual Student Exchange: Developing New Educational Paradigms to Support 24-7 Engineering * Data and Knowledge-Transfer Model for the Development of Software Requirements analysis CASE Tools designed for Cross-Time-Zone Projects.
Covers the latest applications of artificial intelligence, the internet of things, and the internet of everything in a comprehensive manner. Discusses the latest internet of things (IoT) platform such as google cloud platform, industrial IoT, and IoT gateways. Explains self-optimizing network like vehicular networks, sensor networks, and drone networks. Explores security and privacy issues including blockchain security. Covers deep learning, and reinforcement learning for IoT applications.
Colonialism and the Modernist Moment in the Early Novels of Jean Rhys explores the postcolonial significance of Rhys s modernist period work, which depicts an urban scene more varied than that found in other canonical representations of the period. Arguing against the view that Rhys comes into her own as a colonial thinker only in the post-WWII period of her career, this study examines the austere insights gained by Rhys s active cultivation of her fringe status vis-a-vis British social life and artistic circles, where her sharp study of the aporias of marginal lives and the violence of imperial ideology is distilled into an artistic statement positing the outcome of the imperial venture as a state of homelessness across the board, for colonized and metropolitans alike. Bringing to view heretofore overlooked emigre populations, or their children, alongside locals, Rhys s urbanites struggle to construct secure lives not simply as a consequence of commodification, alienation, or voluntary expatriation, but also as a consequence of marginalization and migration. This view of Rhys s early work asserts its vital importance to postcolonial studies, an importance that has been overlooked owing to an over hasty critical consensus that only one of her early novels contains significant colonial content. Yet, as this study demonstrates, proper consideration of colonial elements long considered only incidental illuminates a colonial continuum in Rhys s work from her earliest publications. "
This text discusses sensitivity parametric analysis for the single tuned filter parameters and presents an optimization-based method for solving the allocation problem of the distributed generation units and capacitor banks in distribution systems. It also highlights the importance of artificial intelligence techniques such as water cycle algorithms in solving power quality problems such as over-voltage and harmonic distortion. Features: Presents a sensitivity parametric analysis for the single tuned filter parameters. Discusses optimization-based methods for solving the allocation problem of the distributed generation units and capacitor banks in distribution systems. Highlights the importance of artificial intelligence techniques (water cycle algorithm) for solving power quality problems such as over-voltage and harmonic distortion. Showcases a procedure for harmonic mitigation in active distribution systems using the single tuned harmonic filters. Helps in learning how to determine the optimal planning of the single tuned filters to mitigate the harmonic distortion in distorted systems. It will serve as an ideal reference text for graduate students and academic researchers in the fields of electrical engineering, electronics and communication engineering, Power systems planning and analysis.
This book introduces SpecDB, an intelligent database created to represent and host software specifications in a machine-readable format, based on the principles of artificial intelligence and unit testing database operations. SpecDB is demonstrated via two automated intelligent tools. The first automatically generates database constraints from a rule-base in SpecDB. The second is a reverse engineering tool that logs the actual execution of the program from the code.
The modern application server is a complex platform that is the linchpin of an enterprise environment that includes a very wide range of technologies-web document formatting, web protocols, server-side scripts, servlets, applets, programming languages, distributed object technologies, security capabilities, directory and naming services, load balancing, system management, and others. As such, it can be a daunting task to try to comprehend these systems. Application Servers for E-Business helps you understand the use of application servers in e-business. The book presents a comprehensive overview of the technologies related to application servers in their facilitation of E-business. These technologies include CORBA, Java, Enterprise Java Beans, Java 2, web servers, and legacy systems. It explores the role these servers play in the modern enterprise IT infrastructure and the environment in which they operate. The material also includes implementation considerations for application servers, including security, scalability, load balancing, and fault tolerance. Chapter one provides an overview of application servers, the evolution of computing that took us from hierarchical, mainframe-centric environments to the web model of computing, and the rationale for E-commerce and E-business. Chapters two through five cover specific technologies, from web browsers and servers to applets and servlets. Chapter three provides an overview of Java technologies, and chapter four covers CORBA. Chapter five discusses application servers in detail. Since application servers are increasingly supporting the key mission-critical processes of an enterprise, it is critical that organizations deploying them build in "enterprise-class" facilities for security, scalability, load balancing, fault tolerance, and management. Chapter six discusses these deployment design issues. The book concludes with chapter seven, a chapter that presents several examples of the advantages of application ser
There is extensive government research on cyber security science, technology, and applications. Much of this research will be transferred to the private sector to aid in product development and the improvement of protective measures against cyber warfare attacks. This research is not widely publicized. There are initiatives to coordinate these research efforts but there has never been a published comprehensive analysis of the content and direction of the numerous research programs. This book provides private sector developers, investors, and security planners with insight into the direction of the U.S. Government research efforts on cybersecurity.
Many enterprises are moving their applications and IT services to the cloud. Better risk management results in fewer operational surprises and failures, greater stakeholder confidence and reduced regulatory concerns; proactive risk management maximizes the likelihood that an enterprise's objectives will be achieved, thereby enabling organizational success. This work methodically considers the risks and opportunities that an enterprise taking their applications or services onto the cloud must consider to obtain the cost reductions and service velocity improvements they desire without suffering the consequences of unacceptable user service quality.
Analyzing and Securing Social Networks focuses on the two major technologies that have been developed for online social networks (OSNs): (i) data mining technologies for analyzing these networks and extracting useful information such as location, demographics, and sentiments of the participants of the network, and (ii) security and privacy technologies that ensure the privacy of the participants of the network as well as provide controlled access to the information posted and exchanged by the participants. The authors explore security and privacy issues for social media systems, analyze such systems, and discuss prototypes they have developed for social media systems whose data are represented using semantic web technologies. These experimental systems have been developed at The University of Texas at Dallas. The material in this book, together with the numerous references listed in each chapter, have been used for a graduate-level course at The University of Texas at Dallas on analyzing and securing social media. Several experimental systems developed by graduate students are also provided. The book is divided into nine main sections: (1) supporting technologies, (2) basics of analyzing and securing social networks, (3) the authors' design and implementation of various social network analytics tools, (4) privacy aspects of social networks, (5) access control and inference control for social networks, (6) experimental systems designed or developed by the authors on analyzing and securing social networks, (7) social media application systems developed by the authors, (8) secure social media systems developed by the authors, and (9) some of the authors' exploratory work and further directions.
"I highly recommend Mr. Hobbs' book." - Stephen Thomas, PE, Founder and Editor of FunctionalSafetyEngineer.com Safety-critical devices, whether medical, automotive, or industrial, are increasingly dependent on the correct operation of sophisticated software. Many standards have appeared in the last decade on how such systems should be designed and built. Developers, who previously only had to know how to program devices for their industry, must now understand remarkably esoteric development practices and be prepared to justify their work to external auditors. Embedded Software Development for Safety-Critical Systems discusses the development of safety-critical systems under the following standards: IEC 61508; ISO 26262; EN 50128; and IEC 62304. It details the advantages and disadvantages of many architectural and design practices recommended in the standards, ranging from replication and diversification, through anomaly detection to the so-called "safety bag" systems. Reviewing the use of open-source components in safety-critical systems, this book has evolved from a course text used by QNX Software Systems for a training module on building embedded software for safety-critical devices, including medical devices, railway systems, industrial systems, and driver assistance devices in cars. Although the book describes open-source tools for the most part, it also provides enough information for you to seek out commercial vendors if that's the route you decide to pursue. All of the techniques described in this book may be further explored through hundreds of learned articles. In order to provide you with a way in, the author supplies references he has found helpful as a working software developer. Most of these references are available to download for free. |
You may like...
Research Anthology on Architectures…
Information R Management Association
Hardcover
R13,368
Discovery Miles 133 680
Edsger Wybe Dijkstra - His Life, Work…
Krzysztof R. Apt, Tony Hoare
Hardcover
R3,075
Discovery Miles 30 750
|