![]() |
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 software reuse and the chances, dependability tests and recommendations for best reuse practice. A short introduction of the Ecodesign of hardware is given combined with the latest update of relevant EU legislation and standardization. It also describes the combination of different states of software in a E&E system in order to guarantee dependability of the product to be resold.
Open-source development has been around for decades, with software developers co-creating tools and information systems for widespread use. With the development of open-source software such as learning objects, interactive articles, and educational games, the open-source values and practices have slowly been adopted by those in education sectors. Open-Source Technologies for Maximizing the Creation, Deployment, and Use of Digital Resources and Information highlights the global importance of open-source technologies in higher and general education. Written for those working in education and professional training, this collection of research explores a variety of issues related to open-source in education, such as its practical underpinnings, requisite cultural competence in global open-source, strategies for employing open-source in online learning and research, the design of an open-source networking laboratory, and other endeavors.
This book covers several topics related to domain-specific language (DSL) engineering in general and how they can be handled by means of the JetBrains Meta Programming System (MPS), an open source language workbench developed by JetBrains over the last 15 years. The book begins with an overview of the domain of language workbenches, which provides perspectives and motivations underpinning the creation of MPS. Moreover, technical details of the language underneath MPS together with the definition of the tool's main features are discussed. The remaining ten chapters are then organized in three parts, each dedicated to a specific aspect of the topic. Part I "MPS in Industrial Applications" deals with the challenges and inadequacies of general-purpose languages used in companies, as opposed to the reasons why DSLs are essential, together with their benefits and efficiency, and summarizes lessons learnt by using MPS. Part II about "MPS in Research Projects" covers the benefits of text-based languages, the design and development of gamification applications, and research fields with generally low expertise in language engineering. Eventually, Part III focuses on "Teaching and Learning with MPS" by discussing the organization of both commercial and academic courses on MPS. MPS is used to implement languages for real-world use. Its distinguishing feature is projectional editing, which supports practically unlimited language extension and composition possibilities as well as a flexible mix of a wide range of textual, tabular, mathematical and graphical notations. The number and diversity of the presented use-cases demonstrate the strength and malleability of the DSLs defined using MPS. The selected contributions represent the current state of the art and practice in using JetBrains MPS to implement languages for real-world applications.
Advances in Computers, Volume 118, the latest volume in this innovative series published since 1960, presents detailed coverage of new advancements in computer hardware, software, theory, design and applications. Chapters in this updated release include Introduction to non-volatile memory technologies, The emerging phase-change memory, Phase-change memory architectures, Inter-line level schemes for handling hard errors in PCMs, Handling hard errors in PCMs by using intra-line level schemes, and Addressing issues with MLC Phase-change Memory.
This book presents a new paradigm of software testing by emphasizing the role of critical thinking, system thinking and rationality as the most important skills for the tester. It thus approaches software testing from a different perspective than in past literature, as the vast majority of books describe testing in the context of specific tools, automation, documentation, particular test design techniques or test management. In addition, the book proposes a novel meta-approach for designing effective test strategies, which is based on recent advances in psychology, economics, system sciences and logic. Chapter 1 starts by introducing the fundamental ideas underlying software testing. Chapter 2 then describes meta-strategies in software testing, i.e. general approaches that can be adapted to many different situations that a software tester encounters. Next, Chapter 3 presents the concept of Thinking-Driven Testing (TDT). This approach utilizes the concepts discussed in the two previous chapters and introduces the main ideas that underlie a reasonable and optimal approach to software testing. Chapter 4 builds on this basis and proposes a specific approach to testing, called TQED, that makes it possible to increase creativity in the context of delivering effective, optimal test ideas. Chapter 5 provides an overview of different types of testing techniques in order to understand the fundamental concepts of test design, while Chapter 6 details various pitfalls a tester may encounter and that can originate from a wide range of testing process areas. Lastly, Chapter 7 puts all this into practice, as it contains several exercises that will help testers develop a number of crucial skills: logical thinking and reasoning, thinking out of the box, creativity, counting and estimating, and analytical thinking. By promoting critical, rational and creative thinking, this book invites readers to re-examine common assumptions regarding software testing and shows them how to become professional testers who bring added value to their company.
This textbook sets out to provide professionals with an in-depth understanding of the software-testing people and process issues that are critical for delivering high-quality software on time and within budget. The authors aim to give those involved in building and maintaining complex, mission-critical software systems a flexible, risk-based process to improve their software-testing capabilities. Whether an organization currently has a well-defined testing process or almost no process, this resource provides insights into better ways to test software. This guide is written for: software-test managers; testers; developers; quality-assurance managers; and software configuration managers.
SAFe (R) 5.0: The World's Leading Framework for Business Agility "Those who master large-scale software delivery will define the economic landscape of the twenty-first century. SAFe 5.0 is a monumental release that I am convinced will be key in helping countless enterprise organizations succeed in their shift from project to product." -Dr. Mik Kersten, CEO of Tasktop and author of the book Project to Product Business agility is the ability to compete and thrive in the digital age by quickly responding to unprecedented market changes, threats, and emerging opportunities with innovative business solutions. SAFe (R) 5.0 Distilled: Achieving Business Agility with Scaled Agile Framework (R) explains how adopting SAFe helps enterprises use the power of Agile, Lean, and DevOps to outflank the competition and deliver complex, technology-based business solutions in the shortest possible time. This book will help you Understand the business case for SAFe: its benefits, and the problems it solves Learn the technical, organizational and leadership competencies needed for business agility Refocus on customer centricity with design thinking Better align strategy and execution with Lean Portfolio Management Learn the leadership skills needed to thrive in the digital age Increase the flow of value to customers with value stream networks Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
In an article for Wired Magazine in 2006, Jeff Howe defined crowdsourcing as an idea for outsourcing a task that is traditionally performed by a single employee to a large group of people in the form of an open call. Since then, by modifying crowdsourcing into different forms, some of the most successful new companies on the market have used this idea to make people's lives easier and better. On the other hand, software testing has long been recognized as a time-consuming and expensive activity. Mobile application testing is especially difficult, largely due to compatibility issues: a mobile application must work on devices with different operating systems (e.g. iOS, Android), manufacturers (e.g. Huawei, Samsung) and keypad types (e.g. virtual keypad, hard keypad). One cannot be 100% sure that, just because a tested application works well on one device, it will run smoothly on all others.Crowdsourced testing is an emerging paradigm that can improve the cost-effectiveness of software testing and accelerate the process, especially for mobile applications. It entrusts testing tasks to online crowdworkers whose diverse testing devices/contexts, experience, and skill sets can significantly contribute to more reliable, cost-effective and efficient testing results. It has already been adopted by many software organizations, including Google, Facebook, Amazon and Microsoft. This book provides an intelligent overview of crowdsourced testing research and practice. It employs machine learning, data mining, and deep learning techniques to process the data generated during the crowdsourced testing process, to facilitate the management of crowdsourced testing, and to improve the quality of crowdsourced testing.
Combinatorial optimisation is a ubiquitous discipline whose usefulness spans vast applications domains. The intrinsic complexity of most combinatorial optimisation problems makes classical methods unaffordable in many cases. To acquire practical solutions to these problems requires the use of metaheuristic approaches that trade completeness for pragmatic effectiveness. Such approaches are able to provide optimal or quasi-optimal solutions to a plethora of difficult combinatorial optimisation problems. The application of metaheuristics to combinatorial optimisation is an active field in which new theoretical developments, new algorithmic models, and new application areas are continuously emerging. This volume presents recent advances in the area of metaheuristic combinatorial optimisation, with a special focus on evolutionary computation methods. Moreover, it addresses local search methods and hybrid approaches. In this sense, the book includes cutting-edge theoretical, methodological, algorithmic and applied developments in the field, from respected experts and with a sound perspective.
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of "Design Patterns " "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of "Designing Object-Oriented User Interfaces " "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributionsto our field." --Luke Hohmann, author of "Beyond Software Architecture " ""This book belongs on the shelf of every thoughtful software developer."" --Kent Beck ""What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important.""--Kyle Brown, author of "Enterprise Java(TM) Programming with IBM(R) WebSphere(R)" The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. "Domain-Driven Design" fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focusedand dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. "Domain-Driven Design" then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include: Getting all team members to speak the same languageConnecting model and implementation more deeplySharpening key distinctions in a modelManaging the lifecycle of a domain object Writing domain code that is safe to combine in elaborate waysMaking complex code obvious and predictableFormulating a domain vision statement Distilling the core of a complex domainDigging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large systemDealing with coexisting models on the same projectOrganizing systems with large-scale structuresRecognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system
analysts, and designers will have the guidance they need to
organize and focus their work, create rich and useful domain
models, and leverage those models into quality, long-lasting
software implementations.
Activity theory is a way of describing and characterizing the structure of human - tivity of all kinds. First introduced by Russian psychologists Rubinshtein, Leontiev, and Vigotsky in the early part of the last century, activity theory has more recently gained increasing attention among interaction designers and others in the hum- computer interaction and usability communities (see, for example, Gay and H- brooke, 2004). Interest was given a signi?cant boost when Donald Norman suggested activity-theory and activity-centered design as antidotes to some of the putative ills of "human-centered design" (Norman, 2005). Norman, who has been credited with coining the phrase "user-centered design," suggested that too much attention focused on human users may be harmful, that to design better tools designers need to focus not so much on users as on the activities in which users are engaged and the tasks they seek to perform within those activities. Although many researchers and practitioners claim to have used or been in?uenced by activity theory in their work (see, for example, Nardi, 1996), it is often dif?cult to trace precisely where or how the results have actually been shaped by activity theory. Inmanycases, evendetailedcasestudiesreportresultsthatseemonlydistantlyrelated, if at all, to the use of activity theory. Contributing to the lack of precise and traceable impact is that activity theory, - spite its name, is not truly a formal and proper theory.
This book presents in their basic form the most important models of computation, their basic programming paradigms, and their mathematical descriptions, both concrete and abstract. Each model is accompanied by relevant formal techniques for reasoning on it and for proving some properties. After preliminary chapters that introduce the notions of structure and meaning, semantic methods, inference rules, and logic programming, the authors arrange their chapters into parts on IMP, a simple imperative language; HOFL, a higher-order functional language; concurrent, nondeterministic and interactive models; and probabilistic/stochastic models. The authors have class-tested the book content over many years, and it will be valuable for graduate and advanced undergraduate students of theoretical computer science and distributed systems, and for researchers in this domain. Each chapter of the book concludes with a list of exercises addressing the key techniques introduced, solutions to selected exercises are offered at the end of the book.
This book constitutes the refereed proceedings of five International Workshops held as parallel events of the 18th IFIP WG 12.5 International Conference on Artificial Intelligence Applications and Innovations, AIAI 2022, virtually and in Hersonissos, Crete, Greece, in June 2022: the 11th Mining Humanistic Data Workshop (MHDW 2022); the 7th 5G-Putting Intelligence to the Network Edge Workshop (5G-PINE 2022); the 1st workshop on AI in Energy, Building and Micro-Grids (AIBMG 2022); the 1st Workshop/Special Session on Machine Learning and Big Data in Health Care (ML@HC 2022); and the 2nd Workshop on Artificial Intelligence in Biomedical Engineering and Informatics (AIBEI 2022). The 35 full papers presented at these workshops were carefully reviewed and selected from 74 submissions.
Manufacturing computers in series was quite a feat in the 1950s. As mathematical as it gets, the machines discussed here were called X1 and X8. The industrial achievement combined with the background in a mathematical research center made the company Electrologica a legend in Dutch computing. The tales in this book are told by those who have a right to tell. Highly engaged professionals take readers back to their pioneering work with the machines and in retrospect unveil some of the values, which went without saying in the 1960s. To disagree, Paul Klint relates the contrasting views on software in Dutch research traditions. ALGOL culture: Frans Kruseman Aretz takes the reader along to the detailed decisions on constructing compilers and shows the values of an ALGOL culture transpiring. Signposts: Dirk Dekker for the first time 'owns' his algorithm for mutual exclusion. In particle physics: Rene van Dantzig's use case was an Electrologica X8 computer controlling two other computers in three-dimensional detection of colliding particles. Early steps in AI: Lambert Meertens' tale of the X8 machine composing a violin quartet comes with his original presentation, as well as the code in ALGOL 60. The reflections of first hand experiences combine well with the second thoughts of historical research into archival sources. Historians Huub de Beer and Gerard Alberts offer a view into the boardrooms of the local enterprise Electrologica, and of the electronics multinational Philips. Where pioneers and historians meet in an inspiring dialogue, the reader gains a view on the often implicit decisions constituting the field. Fortuitously, a copy of the X8 was retrieved from Kiel, Germany, and put on display at Rijksmuseum Boerhaave, Leiden. Sparked by the very material presence of an X8, the present book takes stock of the state of historiography of Electrologica. Gerard Alberts is an associate professor in History of Digital Cultures, retired from the University of Amsterdam. Jan Friso Groote is a full professor of Formal Methods at the Eindhoven University of Technology.
DESCRIPTION Types are often seen as a tool for checking errors, with the programmer writing a complete program first and using the type checker to detect errors. And while tests are used to show presence of errors, they can only find errors that you explicitly test for. In typedriven development, types become your tools for constructing programs and, used appropriately, can show the absence of errors. And you can express precise relationships between data, your assumptions are explicit and checkable, and you can precisely state and verify properties. Type-driven development lets users write extensible code, create simple specifications very early in development, and easily create mock implementation for testing. Type-Driven Development with Idris, written by the creator of Idris, teaches programmers how to improve the performance and accuracy of programs by taking advantage of a state-of-the-art type system. This book teaches readers using Idris, a language designed from the very beginning to support type-driven development. Readers learn how to manipulate types just like any other construct (numbers, strings, lists, etc.). This book teaches how to use type-driven development to build real-world software, as well as how to handle side-effects, state and concurrency, and interoperating with existing systems. By the end of this book, readers will be able to develop robust and verified software in Idris and apply type-driven development methods to programming in other languages. KEY FEATURES * Written by the creator of Idris * Improve performance and accuracy of programs * Teaches Idris, a new type-driven development language * Hands-on code examples * Build real-world software AUDIENCE Written for programmers with knowledge of basic functional programming concepts. ABOUT THE TECHNOLOGY Type-driven development lets you write extensible code, create simple specifications very early in development, and easily create mock implementation for testing. In type-driven development, types become your tools for constructing programs and, used appropriately, can show the absence of errors.
Extensive research conducted by the Hasso Plattner Design Thinking Research Program at Stanford University in Palo Alto, California, USA, and the Hasso Plattner Institute in Potsdam, Germany, has yielded valuable insights on why and how design thinking works. Researchers have identified metrics, developed models, and conducted studies, which are featured in this book, and in the previous volumes of this series. Offering readers a closer look at design thinking, and its innovation processes and methods, this volume covers topics ranging from understanding success factors of design thinking to exploring the potential that lies in the use of digital technologies. Furthermore, readers learn how special-purpose design thinking can be used to solve thorny problems in complex fields, such as the health sector or software development. Thinking and devising innovations are inherently human activities - so is design thinking. Accordingly, design thinking is not merely the result of special courses or of being gifted or trained: it is a way of dealing with our environment and improving techniques, technologies and life. As such, the research outcomes compiled in this book should increase knowledge and provide inspiration to all seeking to drive innovation - be they experienced design thinkers or newcomers.
Architectural coordination of enterprise transformation (ACET) integrates and aggregates local information and provides different viewpoints, such as financial, structural, or skill perspectives to the respective stakeholder groups, with the aim of creating a consensus and shared understanding of an enterprise transformation among the stakeholders. Its core purpose is to inform decision-makers with both local and enterprise-wide concerns so that the overall transformation goals can be successfully pursued, i.e. reducing inconsistencies and including local decisions in the overarching goals. This book consists of three major parts, framed by an introduction and a summary. To enable readers to gain a better understanding of the issues involved in real-world enterprise transformations as well as the possible role of architectural coordination and the associated challenges, Part I provides an analysis of status quo of corporate ACET practice. Part II then continues with an exploration of the challenges facing ACET from a theoretical perspective. Based on these challenges, Part III then presents a collection of components for a possible design theory for ACET. Instead of an integrated method, this collection of components constitutes method fragments that can be arranged in different ways depending on the perspective taken, the actual enterprise architecture management approach, the enterprise transformation type and the transformation's context.
The aim of the book is to create a bridge between two 'lands' that are usually kept separate: technical tools and legal rules should be bound together for moulding a special 'toolbox' to solve present and future issues. The volume is intended to contribute to this 'toolbox' in the area of software services, while addressing how to make legal studies work closely with engineers' and computer scientists' fields of expertise, who are increasingly involved in tangled choices on daily programming and software development. In this respect, law has not lost its importance and its own categories in the digital world, but as well as any social science needs to experience a new realistic approach amid technological development and individuals' fundamental rights and freedoms.
Software engineering is of major importance to all enterprises; however, the key areas of software quality and software process improvement standards and models are currently geared toward large organizations, where most software organizations are small and medium enterprises. ""Software Process Improvement for Small and Medium Enterprises"" offers practical and useful guidelines, models, and techniques for improving software processes and products for small and medium enterprises, utilizing the authoritative, demonstrative tools of case studies and lessons learned to provide academics, scholars, and practitioners with an invaluable research source.
This book is about describing the meaning of programming languages. The author teaches the skill of writing semantic descriptions as an efficient way to understand the features of a language. While a compiler or an interpreter offers a form of formal description of a language, it is not something that can be used as a basis for reasoning about that language nor can it serve as a definition of a programming language itself since this must allow a range of implementations. By writing a formal semantics of a language a designer can yield a far shorter description and tease out, analyse and record design choices. Early in the book the author introduces a simple notation, a meta-language, used to record descriptions of the semantics of languages. In a practical approach, he considers dozens of issues that arise in current programming languages and the key techniques that must be mastered in order to write the required formal semantic descriptions. The book concludes with a discussion of the eight key challenges: delimiting a language (concrete representation), delimiting the abstract content of a language, recording semantics (deterministic languages), operational semantics (non-determinism), context dependency, modelling sharing, modelling concurrency, and modelling exits. The content is class-tested and suitable for final-year undergraduate and postgraduate courses. It is also suitable for any designer who wants to understand languages at a deep level. Most chapters offer projects, some of these quite advanced exercises that ask for complete descriptions of languages, and the book is supported throughout with pointers to further reading and resources. As a prerequisite the reader should know at least one imperative high-level language and have some knowledge of discrete mathematics notation for logic and set theory.
This fourth Edition presents new examples on submodules, derived type i/o, object oriented programming, abstract interfaces and procedure pointers, C interop, sorting and searching, statistics and converting to more modern versions of Fortran. Key Features Highlights the core language features of modern Fortran including data typing, array processing, control structures, functions, subroutines, modules and submodules, user defined types, pointers, operator overloading, generic programming, parallel programming, abstract interfaces, procedure pointers Pinpoints common problems that occur when programming Illustrates the use of several compilers Introduction to Programming with Fortran has been written for the complete beginner with little or no programming background as well as existing Fortran programmers and those with programming experience in other languages
Embedded Software Development With C offers both an effectual reference for professionals and researchers, and a valuable learning tool for students by laying the groundwork for a solid foundation in the hardware and software aspects of embedded systems development. Key features include a resource for the fundamentals of embedded systems design and development with an emphasis on software, an exploration of the 8051 microcontroller as it pertains to embedded systems, comprehensive tutorial materials for instructors to provide students with labs of varying lengths and levels of difficulty, and supporting website including all sample codes, software tools and links to additional online references.
This book presents an overview of the latest smart transportation systems, IoV connectivity frameworks, issues of security and safety in VANETs, future developments in the IoV, technical solutions to address key challenges, and other related topics. A connected vehicle is a vehicle equipped with Internet access and wireless LAN, which allows the sharing of data through various devices, inside as well as outside the vehicle. The ad-hoc network of such vehicles, often referred to as VANET or the Internet of vehicles (IoV), is an application of IoT technology, and may be regarded as an integration of three types of networks: inter-vehicle, intra-vehicle, and vehicular mobile networks. VANET involves several varieties of vehicle connectivity mechanisms, including vehicle-to-infrastructure (V2I), vehicle-to-vehicle (V2V), vehicle-to-cloud (V2C), and vehicle-to-everything (V2X). According to one survey, it is expected that there will be approximately 380 million connected cars on the roads by 2020. IoV is an important aspect of the new vision for smart transportation. The book is divided into three parts: examining the evolution of IoV (basic concepts, principles, technologies, and architectures), connectivity of vehicles in the IoT (protocols, frameworks, and methodologies), connected vehicle environments and advanced topics in VANETs (security and safety issues, autonomous operations, machine learning, sensor technology, and AI). By providing scientific contributions and workable suggestions from researchers and practitioners in the areas of IoT, IoV, and security, this valuable reference aims to extend the body of existing knowledge. |
You may like...
Hardware Accelerator Systems for…
Shiho Kim, Ganesh Chandra Deka
Hardcover
R3,950
Discovery Miles 39 500
Principles of Security and Trust - 7th…
Lujo Bauer, Ralf Kusters
Hardcover
R1,547
Discovery Miles 15 470
Clean Architecture - A Craftsman's Guide…
Robert Martin
Paperback
(1)
Essential Java for Scientists and…
Brian Hahn, Katherine Malan
Paperback
R1,266
Discovery Miles 12 660
Designing the User Interface: Strategies…
Ben Shneiderman, Catherine Plaisant, …
Paperback
R2,037
Discovery Miles 20 370
Data Prefetching Techniques in Computer…
Pejman Lotfi-Kamran, Hamid Sarbazi-Azad
Hardcover
R3,923
Discovery Miles 39 230
Research Anthology on Architectures…
Information R Management Association
Hardcover
R12,630
Discovery Miles 126 300
Principles of Big Graph: In-depth…
Ripon Patgiri, Ganesh Chandra Deka, …
Hardcover
R3,925
Discovery Miles 39 250
|