![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
Free/Open Source Software gives an overview of the current research streams in the field of free and open source software development. A multitude of research approaches are used to explore free and open source software development processes, attributes of their products and the workings within the development communities. This book offers a glimpse beyond classical free and open source software development, and analyzes chances and risks for co-operations with traditional organizations and the implications of this new model for areas other than software development.
This edited book presents the scientific outcomes of the 19th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2018), which was held in Busan, Korea on June 27-29, 2018. The aim of this conference was to bring together researchers and scientists, businessmen and entrepreneurs, teachers, engineers, computer users and students to discuss the numerous fields of computer science and to share their experiences and exchange new ideas and information in a meaningful way. The book includes research findings on all aspects (theory, applications and tools) of computer and information science and discusses the practical challenges encountered along the way and the solutions adopted to respond to them. The book includes 13 of the conference's most promising papers.
Healthcare and well-being have captured the attention of established software companies, start-ups, and investors. Software is starting to play a central role for addressing the problems of the aging society and the escalating cost of healthcare services. Enablers of such digital health are a growing number of sensors for sensing the human body and communication infrastructure for remote meetings, data sharing, and messaging. The challenge that lies in front of us is how to effectively make use of these capabilities, for example to empower patients and to free the scarce resources of medical personnel. Requirements engineering is the process by which the capabilities of a software product are aligned with stakeholder needs and a shared understanding between the stakeholders and development team established. This book provides guide for what to look for and do when inquiring and specifying software that targets healthcare and well-being, helping readers avoid the pitfalls of the highly regulated and sensible healthcare domain are and how they can be overcome. This book brings together the knowledge of 22 researchers, engineers, lawyers, and CEOs that have experience in the development of digital health solutions. It represents a unique line-up of best practices and recommendations of how to engineer requirements for digital health. In particular the book presents: * The area of digital health, e-health, and m-health * Best practice for requirements engineering based on evidence from a large number of projects * Practical step-by-step guidelines, examples, and lessons-learned for working with laws, regulations, ethical issues, interoperability, user experience, security, and privacy * How to put these many concerns together for engineering the requirements of a digital health solution and for scaling a digital health product For anybody who intends to develop software for digital health, this book is an introduction and reference with a wealth of actionable insights. For students interested in understanding how to apply software to healthcare, the text introduces key topics and guides further studies with references to important literature.
This handbook provides a unique and in-depth survey of the current state-of-the-art in software engineering, covering its major topics, the conceptual genealogy of each subfield, and discussing future research directions. Subjects include foundational areas of software engineering (e.g. software processes, requirements engineering, software architecture, software testing, formal methods, software maintenance) as well as emerging areas (e.g., self-adaptive systems, software engineering in the cloud, coordination technology). Each chapter includes an introduction to central concepts and principles, a guided tour of seminal papers and key contributions, and promising future research directions. The authors of the individual chapters are all acknowledged experts in their field and include many who have pioneered the techniques and technologies discussed. Readers will find an authoritative and concise review of each subject, and will also learn how software engineering technologies have evolved and are likely to develop in the years to come. This book will be especially useful for researchers who are new to software engineering, and for practitioners seeking to enhance their skills and knowledge.
This book summarizes the results of Design Thinking Research carried out at Stanford University in Palo Alto, California, USA and at the Hasso Plattner Institute in Potsdam, Germany. Offering readers a closer look at Design Thinking, its innovation processes and methods, the book covers topics ranging from how to design ideas, methods and technologies, to creativity experiments and wicked problem solutions, to creative collaboration in the real world, and the interplay of designers and engineers. But the topics go beyond this in their detailed exploration of Design Thinking and its use in IT systems engineering fields, or even from a management perspective. The authors show how these methods and strategies actually work in companies, introduce new technologies and their functions, and demonstrate how Design Thinking can influence such unexpected topics as marriage. Furthermore, readers will learn how special-purpose Design Thinking can be used to solve wicked problems in complex fields. Thinking and devising innovations are fundamentally and inherently human activities - so is Design Thinking. Accordingly, Design Thinking is not merely the result of special courses nor of being gifted or trained: it's a way of dealing with our environment and improving techniques, technologies and life.
Compiled by an experienced practitioner in the field, this book
contains definitions of the major terms used in Reliability
Engineering and Software Assessment. Approximately 2000 definitions
have been carefully selected from standards and literature
published by leading institutions such as the IEEE and IEC.
Alternative definitions of the same term are given where relevant,
enabling the reader to compare and contrast, thereby giving useful
insights into different aspects of the same term. There is also
extensive cross-referencing to make the book easy to use and
practical.
Based on the latest version of the language, this book offers a self-contained, concise and coherent introduction to programming with Python. The book's primary focus is on realistic case study applications of Python. Each practical example is accompanied by a brief explanation of the problem-terminology and concepts, followed by necessary program development in Python using its constructs, and simulated testing. Given the open and participatory nature of development, Python has a variety of incorporated data structures, which has made it difficult to present it in a coherent manner. Further, some advanced concepts (super, yield, generator, decorator, etc.) are not easy to explain. The book specially addresses these challenges; starting with a minimal subset of the core, it offers users a step-by-step guide to achieving proficiency.
This book discusses automated string-analysis techniques, focusing particularly on automata-based static string analysis. It covers the following topics: automata-bases string analysis, computing pre and post-conditions of basic string operations using automata, symbolic representation of automata, forward and backward string analysis using symbolic automata representation, constraint-based string analysis, string constraint solvers, relational string analysis, vulnerability detection using string analysis, string abstractions, differential string analysis, and automated sanitization synthesis using string analysis. String manipulation is a crucial part of modern software systems; for example, it is used extensively in input validation and sanitization and in dynamic code and query generation. The goal of string-analysis techniques and this book is to determine the set of values that string expressions can take during program execution. String analysis can be used to solve many problems in modern software systems that relate to string manipulation, such as: (1) Identifying security vulnerabilities by checking if a security sensitive function can receive an input string that contains an exploit; (2) Identifying possible behaviors of a program by identifying possible values for dynamically generated code; (3) Identifying html generation errors by computing the html code generated by web applications; (4) Identifying the set of queries that are sent to back-end database by analyzing the code that generates the SQL queries; (5) Patching input validation and sanitization functions by automatically synthesizing repairs illustrated in this book. Like many other program-analysis problems, it is not possible to solve the string analysis problem precisely (i.e., it is not possible to precisely determine the set of string values that can reach a program point). However, one can compute over- or under-approximations of possible string values. If the approximations are precise enough, they can enable developers to demonstrate existence or absence of bugs in string manipulating code. String analysis has been an active research area in the last decade, resulting in a wide variety of string-analysis techniques. This book will primarily target researchers and professionals working in computer security, software verification, formal methods, software engineering and program analysis. Advanced level students or instructors teaching or studying courses in computer security, software verification or program analysis will find this book useful as a secondary text.
Conceptual modeling has always been one of the main issues in information systems engineering as it aims to describe the general knowledge of the system at an abstract level that facilitates user understanding and software development. This collection of selected papers provides a comprehensive and extremely readable overview of what conceptual modeling is and perspectives on making it more and more relevant in our society. It covers topics like modeling the human genome, blockchain technology, model-driven software development, data integration, and wiki-like repositories and demonstrates the general applicability of conceptual modeling to various problems in diverse domains. Overall, this book is a source of inspiration for everybody in academia working on the vision of creating a strong, fruitful and creative community of conceptual modelers. With this book the editors and authors want to honor Prof. Antoni Olive for his enormous and ongoing contributions to the conceptual modeling discipline. It was presented to him on the occasion of his keynote at ER 2017 in Valencia, a conference that he has contributed to and supported for over 20 years. Thank you very much to Antoni for so many years of cooperation and friendship.
Agile is broken. Most Agile transformations struggle. According to an Allied Market Research study, "63% of respondents stated the failure of agile implementation in their organizations." The problems with Agile start at the top of most organizations with executive leadership not getting what agile is or even knowing the difference between success and failure in agile. Agile transformation is a journey, and most of that journey consists of people learning and trying new approaches in their own work. An agile organization can make use of coaches and training to improve their chances of success. But even then, failure remains because many Agile ideas are oversimplifications or interpreted in an extreme way, and many elements essential for success are missing. Coupled with other ideas that have been dogmatically forced on teams, such as "agile team rooms", and "an overall inertia and resistance to change in the Agile community," the Agile movement is ripe for change since its birth twenty years ago. "Agile 2" represents the work of fifteen experienced Agile experts, distilled into Agile 2: The Next Iteration of Agile by seven members of the team. Agile 2 values these pairs of attributes when properly balanced: thoughtfulness and prescription; outcomes and outputs, individuals and teams; business and technical understanding; individual empowerment and good leadership; adaptability and planning. With a new set of Agile principles to take Agile forward over the next 20 years, Agile 2 is applicable beyond software and hardware to all parts of an agile organization including "Agile HR", "Agile Finance", and so on. Like the original "Agile", "Agile 2", is just a set of ideas - powerful ideas. To undertake any endeavor, a single set of ideas is not enough. But a single set of ideas can be a powerful guide.
This book presents a key solution for current and future technological issues, adopting an integrated system approach with a combination of software engineering applications. Focusing on how software dominates and influences the performance, reliability, maintainability and availability of complex integrated systems, it proposes a comprehensive method of improving the entire process. The book provides numerous qualitative and quantitative analyses and examples of varied systems to help readers understand and interpret the derived results and outcomes. In addition, it examines and reviews foundational work associated with decision and control systems for information systems, to inspire researchers and industry professionals to develop new and integrated foundations, theories, principles, and tools for information systems. It also offers guidance and suggests best practices for the research community and practitioners alike. The book's twenty-two chapters examine and address current and future research topics in areas like vulnerability analysis, secured software requirements analysis, progressive models for planning and enhancing system efficiency, cloud computing, healthcare management, and integrating data-information-knowledge in decision-making. As such it enables organizations to adopt integrated approaches to system and software engineering, helping them implement technological advances and drive performance. This in turn provides actionable insights on each and every technical and managerial level so that timely action-based decisions can be taken to maintain a competitive edge. Featuring conceptual work and best practices in integrated systems and software engineering applications, this book is also a valuable resource for all researchers, graduate and undergraduate students, and management professionals with an interest in the fields of e-commerce, cloud computing, software engineering, software & system security and analysis, data-information-knowledge systems and integrated systems.
During the last few years, software evolution research has explored new domains such as the study of socio-technical aspects and collaboration between different individuals contributing to a software system, the use of search-based techniques and meta-heuristics, the mining of unstructured software repositories, the evolution of software requirements, and the dynamic adaptation of software systems at runtime. Also more and more attention is being paid to the evolution of collections of inter-related and inter-dependent software projects, be it in the form of web systems, software product families, software ecosystems or systems of systems. With this book, the editors present insightful contributions on these and other domains currently being intensively explored, written by renowned researchers in the respective fields of software evolution. Each chapter presents the state of the art in a particular topic, as well as the current research, available tool support and remaining challenges. The book is complemented by a glossary of important terms used in the community, a reference list of nearly 1,000 papers and books and tips on additional resources that may be useful to the reader (reference books, journals, standards and major scientific events in the domain of software evolution and datasets).This book is intended for all those interested in software engineering, and more particularly, software maintenance and evolution. Researchers and software practitioners alike will find in the contributed chapters an overview of the most recent findings, covering a broad spectrum of software evolution topics. In addition, it can also serve as the basis of graduate or postgraduate courses on e.g., software evolution, requirements engineering, model-driven software development or social informatics.
Since its first volume in 1960, Advances in Computers has presented detailed coverage of innovations in computer hardware, software, theory, design, and applications. It has also provided contributors with a medium in which they can explore their subjects in greater depth and breadth than journal articles usually allow. As a result, many articles have become standard references that continue to be of significant, lasting value in this rapidly expanding field.
A concise and thorough handbook on requirements analysis, this book is a desk guide for your systems or software development work. It enables you to identify the real customer requirements for your projects and control changes and additions to these requirements. The book helps you understand the importance of requirements, leverage effective requirements practices, and better utilize resources. You also learn how to strengthen interpersonal relationships and communications, which are major contributors to project effectiveness. Moreover, this reference identifies and describes the roles, desired skills and characteristics of the effective requirements analyst, and includes examples and checklists to help you implement best practices. It goes on to describe what comprises an integrated quality approach on a project or in an organization and explains how to achieve it. The book concludes with a vision for the field of requirements engineering and provides case studies that draw on actual experience.
This textbook provides a detailed introduction to the use of software in combination with simple and economical hardware (a sound level meter with calibrated AC output and a digital recording system) to obtain sophisticated measurements usually requiring expensive equipment. It emphasizes the use of free, open source, and multiplatform software. Many commercial acoustical measurement systems use software algorithms as an integral component; however the methods are not disclosed. This book enables the reader to develop useful algorithms and provides insight into the use of digital audio editing tools to document features in the signal. Topics covered include acoustical measurement principles, in-depth critical study of uncertainty applied to acoustical measurements, digital signal processing from the basics, and metrologically-oriented spectral and statistical analysis of signals. The student will gain a deep understanding of the use of software for measurement purposes; the ability to implement software-based measurement systems; familiarity with the hardware necessary to acquire and store signals; an appreciation for the key issue of long-term preservation of signals; and a full grasp of the often neglected issue of uncertainty in acoustical measurements. Pedagogical features include in-text worked-out examples, end-of-chapter problems, a glossary of metrology terms, and extensive appendices covering statistics, proofs, additional examples, file formats, and underlying theory.
System Quality and Software Architecture collects state-of-the-art knowledge on how to intertwine software quality requirements with software architecture and how quality attributes are exhibited by the architecture of the system. Contributions from leading researchers and industry evangelists detail the techniques required to achieve quality management in software architecting, and the best way to apply these techniques effectively in various application domains (especially in cloud, mobile and ultra-large-scale/internet-scale architecture) Taken together, these approaches show how to assess the value of total quality management in a software development process, with an emphasis on architecture. The book explains how to improve system quality with focus on attributes such as usability, maintainability, flexibility, reliability, reusability, agility, interoperability, performance, and more. It discusses the importance of clear requirements, describes patterns and tradeoffs that can influence quality, and metrics for quality assessment and overall system analysis. The last section of the book leverages practical experience and evidence to look ahead at the challenges faced by organizations in capturing and realizing quality requirements, and explores the basis of future work in this area.
This book introduces Software Thermal Management (STM) as a means of reducing power consumption in a computing system in order to manage heat, improve component reliability and increase system safety. Readers will benefit from this pragmatic guide to the field of STM for embedded systems and its catalog of software power management techniques. Since thermal management is a key bottleneck in embedded systems design, this book focuses on root cause of heat in embedded systems: power. Since software has an enormous impact on power consumption in an embedded system, this book urges software engineers to manage heat effectively by understanding, categorizing and developing new ways to reduce static and dynamic power consumption. Whereas most books on thermal management describe mechanisms to remove heat, this book focuses on ways for software engineers to avoid generating heat in the first place.
The Business Analysts completely dissolves the perception that the IT industry dictates to businesses what IT systems they will use and dispels the myth that business users and IT technicians are from different planets. It suggests how to create an environment in which everybody works together in an exciting and refreshing way – a paradigm shift in the way business analysis projects are done. The IT industry has to move to a point where it realises that the users of IT systems and the technical personnel are both equally responsible for getting the system to work. The users of the IT system should be an integral part of the team when the system is being put together. This, unfortunately, is not the norm within the industry. It is the business analyst’s responsibility, among others, to make sure that communication flows freely between all the parties involved. This book gives the business analyst the tools and techniques to find out what the business users of IT systems really need and to guide the project to meet those needs.
This book describes pragmatic instruments and methods that enable business experts and software engineers to develop a common understanding of the software to be created, to determine their key requirements, and to manage the project in a way that fosters trust, encourages innovation and distributes risk fairly between clients and contractors. After an introduction to the fundamentals of agile software development in Part I, Part II describes the Interaction Room, an actual room where digitalization and mobilization strategies are developed, where technology potentials are evaluated, where software projects are planned and managed, and where business and technical stakeholders can communicate face to face, visualize complex relationships intuitively, and highlight value, effort and risk drivers that are keys to the project's success. After addressing these constructive aspects, the book focuses on the commercial aspects of software development: The adVANTAGE contract model described in Part III ensures that the insight-driven innovation process of software development does not just function, but is allowed to flourish in a trusted client-contractor relationship. Even though software contracting and construction may be grounded in two different academic disciplines, they are inseparable in practice, and how they interact is illustrated in the case study of developing a private health insurance benefit system in Part IV. Ultimately though, the success of every software project depends on the skills of the stakeholders. Part V therefore describes the qualification profile that software engineers and domain experts have to satisfy today. This book is aimed at CIOs, project managers and software engineers in industrial software development practice who want to learn how to effectively deal with the inevitable uncertainty of complex projects, who want to achieve higher levels of understanding and cooperation in their relationships with clients and contractors, and who want to run lower-risk software projects despite their inherent uncertainties.
"Economics-driven Software Architecture" presents a guide for engineers and architects who need to understand the economic impact of architecture design decisions: the long term and strategic viability, cost-effectiveness, and sustainability of applications and systems. Economics-driven software development can increase quality, productivity, and profitability, but comprehensive knowledge is needed to understand the architectural challenges involved in dealing with the development of large, architecturally challenging systems in an economic way. This book covers how to apply economic considerations during the
software architecting activities of a project. Architecture-centric
approaches to development and systematic evolution, where managing
complexity, cost reduction, risk mitigation, evolvability,
strategic planning and long-term value creation are among the major
drivers for adopting such approaches. It assists the objective
assessment of the lifetime costs and benefits of evolving systems,
and the identification of legacy situations, where architecture or
a component is indispensable but can no longer be evolved to meet
changing needs at economic cost. Such consideration will form the
scientific foundation for reasoning about the economics of
nonfunctional requirements in the context of architectures and
architecting.
Modern optimization approaches have attracted an increasing number of scientists, decision makers, and researchers. As new issues in this field emerge, different optimization methodologies must be developed and implemented. Exploring Critical Approaches of Evolutionary Computation is a vital scholarly publication that explores the latest developments, methods, approaches, and applications of evolutionary models in a variety of fields. It also emphasizes evolutionary models of computation such as genetic algorithms, evolutionary strategies, classifier systems, evolutionary programming, genetic programming, and related fields such as swarm intelligence and other evolutionary computation techniques. Highlighting a range of pertinent topics such as neural networks, data mining, and data analytics, this book is designed for IT developers, IT theorists, computer engineers, researchers, practitioners, and upper-level students seeking current research on enhanced information exchange methods and practical aspects of computational systems. |
![]() ![]() You may like...
Ultimate Spider-Man Vol. 1 - Married…
Jonathan Hickman, Marco Checchetto
Paperback
Rotating Machinery and Signal Processing…
Ahmed Felkaoui, Fakher Chaari, …
Hardcover
R4,691
Discovery Miles 46 910
Introduction to the Boost C++ Libraries…
Robert Demming, Daniel J. Duffy
Hardcover
R1,587
Discovery Miles 15 870
3D Point Cloud Analysis - Traditional…
Shan Liu, Min Zhang, …
Hardcover
R3,357
Discovery Miles 33 570
Blockchain Life - Making Sense of the…
Kary Oberbrunner, Lee Richter
Hardcover
R543
Discovery Miles 5 430
|