![]() |
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
User-Developer Cooperation in Software Development brings together the strengths of task analysis and user participation within an overall software development process, and presents a detailed observation and theoretical analysis of what it is for users and developers to cooperate, and the nature of user-developer interaction. Eamonn O'Neill deals with these issues through the development and application of an approach to task-based participatory development in two real world development projects, and discusses the strengths of task analysis and participatory design methods, and how they complement each other's weaker aspects.
This book is designed for those who manage software development
projects. It explores software and risk management both from a
technology and a business perspective. Issues regarding costs,
schedules, technical performance, and strategies for software
development are discussed.
Complex behavior models (plasticity, cracks, visco elascticity) face some theoretical difficulties for the determination of the behavior law at the continuous scale. When homogenization fails to give the right behavior law, a solution is to simulate the material at a meso scale in order to simulate directly a set of discrete properties that are responsible of the macroscopic behavior. The discrete element model has been developed for granular material. The proposed set shows how this method is capable to solve the problem of complex behavior that are linked to discrete meso scale effects. The first book solves the local problem, the second one presents a coupling approach to link the structural effects to the local ones, this third book presents the software workbench that includes all the theoretical developments.
Software maintenance work is often considered a dauntingly rigid activity - this book proves the opposite: it demands high levels of creativity and thinking outside the box. Highlighting the creative aspects of software maintenance and combining analytical and systems thinking in a holistic manner, the book motivates readers not to blithely follow the beaten tracks of "technical rationality". It delivers the content in a pragmatic fashion using case studies which are woven into long running story lines. The book is organized in four parts, which can be read in any order, except for the first chapter, which introduces software maintenance and evolution and presents a number of case studies of software failures. The "Introduction to Key Concepts" briefly introduces the major elements of software maintenance by highlighting various core concepts that are vital in order to see the forest for the trees. Each such concept is illustrated with a worked example. Next, the "Forward Engineering" part debunks the myth that being fast and successful during initial development is all that matters. To this end, two categories of forward engineering are considered: an inept initial project with a multitude of hard evolutionary phases and an effective initial project with multiple straightforward future increments. "Reengineering and Reverse Engineering" shows the difficulties of dealing with a typical legacy system, and tackles tasks such as retrofitting tests, documenting a system, restructuring a system to make it amenable for further improvements, etc. Lastly, the "DevOps" section focuses on the importance and benefits of crossing the development versus operation chasm and demonstrates how the DevOps paradigm can turn a loosely coupled design into a loosely deployable solution. The book is a valuable resource for readers familiar with the Java programming language, and with a basic understanding and/or experience of software construction and testing. Packed with examples for every elaborated concept, it offers complementary material for existing courses and is useful for students and professionals alike.
A Tour of Data Science: Learn R and Python in Parallel covers the fundamentals of data science, including programming, statistics, optimization, and machine learning in a single short book. It does not cover everything, but rather, teaches the key concepts and topics in Data Science. It also covers two of the most popular programming languages used in Data Science, R and Python, in one source. Key features: Allows you to learn R and Python in parallel Cover statistics, programming, optimization and predictive modelling, and the popular data manipulation tools - data.table and pandas Provides a concise and accessible presentation Includes machine learning algorithms implemented from scratch, linear regression, lasso, ridge, logistic regression, gradient boosting trees, etc. Appealing to data scientists, statisticians, quantitative analysts, and others who want to learn programming with R and Python from a data science perspective.
This book covers a broad range of topics related to digitalization. Specifically, it views digitalization across different organizational levels, such as the level of individuals, teams, processes, firms, and ecosystems. It includes a collection of recent research and reflections on the topic that helps to understand the technological foundations of digitalization and its impacts. It also reflects on the process of digitalization and how it changes established ways of working, collaborating, and coordinating. With this book, the editors and authors honor Professor Dr. Armin Heinzl for his enormous and ongoing contributions to information systems research, education, and practice.
This book constitutes the refereed proceedings of the 23rd IFIP WG 5.5 Working Conference on Virtual Enterprises, PRO-VE 2022, held in Lisbon, Portugal, in September 2022. The 55 papers presented were carefully reviewed and selected from 119 submissions. They provide a comprehensive overview of major challenges and recent advances in various domains related to the digital transformation and collaborative networks and their applications with a strong focus on the following areas related to the main theme of the conference: sustainable collaborative networks; sustainability via digitalization; analysis and assessment of business ecosystems; human factors in collaboration 4.0; maintenance and life-cycle management; policies and new digital services; safety and collaboration management; simulation and optimization; complex collaborative systems and ontologies; value co-creation in digitally enabled ecosystems; digitalization strategy in collaborative enterprises' networks; pathways and tools for DIHs; socio-technical perspectives on smart product-service systems; knowledge transfer and accelerated innovation in FoF; interoperability of IoT and CPS for industrial CNs; sentient immersive response network; digital tools and applications for collaborative healthcare; collaborative networks and open innovation in education 4.0; collaborative learning networks with industry and academia; and industrial workshop.
Demonstrates how category theory can be used for formal software development.
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.
Software Quality Assurance in Large Scale and Complex Software-intensive Systems presents novel and high-quality research related approaches that relate the quality of software architecture to system requirements, system architecture and enterprise-architecture, or software testing. Modern software has become complex and adaptable due to the emergence of globalization and new software technologies, devices and networks. These changes challenge both traditional software quality assurance techniques and software engineers to ensure software quality when building today (and tomorrow's) adaptive, context-sensitive, and highly diverse applications. This edited volume presents state of the art techniques, methodologies, tools, best practices and guidelines for software quality assurance and offers guidance for future software engineering research and practice. Each contributed chapter considers the practical application of the topic through case studies, experiments, empirical validation, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited, to: quality attributes of system/software architectures; aligning enterprise, system, and software architecture from the point of view of total quality; design decisions and their influence on the quality of system/software architecture; methods and processes for evaluating architecture quality; quality assessment of legacy systems and third party applications; lessons learned and empirical validation of theories and frameworks on architectural quality; empirical validation and testing for assessing architecture quality.
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.
For years, companies have rewarded their most effective engineers by suggesting they move to a management position. But treating management as the default (or only) path for an engineer with leadership ability doesn't serve the industry well. The staff engineer path allows you to contribute at a high level, with more free time to drive big projects, determine tech strategy, and raise everyone's skills. With this in-depth book, author Tanya Reilly shows you ways to master strategic thinking, manage difficult projects, and set the standard for technical work. You'll learn how to be a leader without direct authority, how to plan ahead so that you're making the right technical decisions, and how to make everyone around you better, all while still leaving you time to grow as an expert in your domain. In three parts, you'll explore the three pillars of an engineer's job: Big picture thinking: learn how to take a broad, strategic view when thinking about your work Project execution: dive into tactics and explore the practicalities of making projects succeed Being a positive influence: determine the standards for what "good engineering" means in your organization
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.
Software is pervasive in our lives. We are accustomed to dealing with the failures of much of that software - restarting an application is a very familiar solution. Such solutions are unacceptable when the software controls our cars, airplanes and medical devices or manages our private information. These applications must run without error. SPARK provides a means, based on mathematical proof, to guarantee that a program has no errors. SPARK is a formally defined programming language and a set of verification tools specifically designed to support the development of software used in high integrity applications. Using SPARK, developers can formally verify properties of their code such as information flow, freedom from runtime errors, functional correctness, security properties and safety properties. Written by two SPARK experts, this is the first introduction to the just-released 2014 version. It will help students and developers alike master the basic concepts for building systems with SPARK.
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.
|
You may like...
Dedicated Mobile Communications for…
Zhangdui Zhong, Bo Ai, …
Hardcover
R4,757
Discovery Miles 47 570
|