![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
(This book is available at a reduced price for course adoption when ordering six copies or more. Please contact [email protected] for more information.) The purpose of Experimentation in Software Engineering: An Introduction is to introduce students, teachers, researchers, and practitioners to experimentation and experimental evaluation with a focus on software engineering. The objective is, in particular, to provide guidelines for performing experiments evaluating methods, techniques and tools in software engineering. The introduction is provided through a process perspective. The focus is on the steps that we go through to perform experiments and quasi-experiments. The process also includes other types of empirical studies. The motivation for the book emerged from the need for support we experienced when turning our software engineering research more experimental. Several books are available which either treat the subject in very general terms or focus on some specific part of experimentation; most focus on the statistical methods in experimentation. These are important, but there were few books elaborating on experimentation from a process perspective, none addressing experimentation in software engineering in particular. The scope of Experimentation in Software Engineering: An Introduction is primarily experiments in software engineering as a means for evaluating methods, techniques and tools. The book provides some information regarding empirical studies in general, including both case studies and surveys. The intention is to provide a brief understanding of these strategies and in particular to relate them to experimentation. Experimentation inSoftware Engineering: An Introduction is suitable for use as a textbook or a secondary text for graduate courses, and for researchers and practitioners interested in an empirical approach to software engineering.
This book addresses mechanisms for reducing model heterogeneity induced by the absence of explicit semantics expression in the formal techniques used to specify design models. More precisely, it highlights the advances in handling both implicit and explicit semantics in formal system developments, and discusses different contributions expressing different views and perceptions on the implicit and explicit semantics. The book is based on the discussions at the Shonan meeting on this topic held in 2016, and includes contributions from the participants summarising their perspectives on the problem and offering solutions. Divided into 5 parts: domain modelling, knowledge-based modelling, proof-based modelling, assurance cases, and refinement-based modelling, and offers inspiration for researchers and practitioners in the fields of formal methods, system and software engineering, domain knowledge modelling, requirement analysis, and explicit and implicit semantics of modelling languages.
How do we define the nature of our business, gather everything that we know about it, and then centralize our information in one, easily accessed place within the organization? Breslin and McGann call such knowledge our ways of working and the place where it will be found a business knowledge repository. All of a company's accumulated operations data, its manuals and procedures, its records of compliance with myriad regulations, its audits, disaster recovery plans--are essential information that today's management needs at its fingertips, and information that tomorroW's management must be sure can easily be found. Breslin and McGann show clearly and comprehensively how business knowledge repositories can be established and maintained, what should go into them and how to get it out, who should have access, and all of the other details that management needs to make the most of this valuable resource and means of doing business. An essential study and guide for management at upper levels in all types of organizations, both public and private. Breslin and McGann show that once an organization's knowledge of itself is formulated into its ways of working, its so-called object orientation makes it easily maintained. The repository approach to organizing and consolidating knowledge makes it possible for all of its potential users to access it easily, without having to go to one source for one thing they need and to another for another thing, a tedious and costly procedure in many organizations that have allowed their information and knowledge resources to not only grow but become duplicated as well. The repository approach also makes it possible for management to organize and access information by job functions, and to make it available to employees more easily in training situations. Regulators and auditors are also more easily served. As a result, CFOs will find their annual audit and various compliance fees considerably reduced. Breslin and McGann's book is thus a blueprint for the creation of knowledge repositories and a discussion of how graphical communication between information systems creators and their client end users can be made to flow smoothly and efficiently.
Cloud service benchmarking can provide important, sometimes surprising insights into the quality of services and leads to a more quality-driven design and engineering of complex software architectures that use such services. Starting with a broad introduction to the field, this book guides readers step-by-step through the process of designing, implementing and executing a cloud service benchmark, as well as understanding and dealing with its results. It covers all aspects of cloud service benchmarking, i.e., both benchmarking the cloud and benchmarking in the cloud, at a basic level. The book is divided into five parts: Part I discusses what cloud benchmarking is, provides an overview of cloud services and their key properties, and describes the notion of a cloud system and cloud-service quality. It also addresses the benchmarking lifecycle and the motivations behind running benchmarks in particular phases of an application lifecycle. Part II then focuses on benchmark design by discussing key objectives (e.g., repeatability, fairness, or understandability) and defining metrics and measurement methods, and by giving advice on developing own measurement methods and metrics. Next, Part III explores benchmark execution and implementation challenges and objectives as well as aspects like runtime monitoring and result collection. Subsequently, Part IV addresses benchmark results, covering topics such as an abstract process for turning data into insights, data preprocessing, and basic data analysis methods. Lastly, Part V concludes the book with a summary, suggestions for further reading and pointers to benchmarking tools available on the Web. The book is intended for researchers and graduate students of computer science and related subjects looking for an introduction to benchmarking cloud services, but also for industry practitioners who are interested in evaluating the quality of cloud services or who want to assess key qualities of their own implementations through cloud-based experiments.
As the software industry continues to evolve, professionals are continually searching for practices that can assist with the various problems and challenges in information technology (IT). Agile development has become a popular method of research in recent years due to its focus on adapting to change. There are many factors that play into this process, so success is no guarantee. However, combining agile development with other software engineering practices could lead to a high rate of success in problems that arise during the maintenance and development of computing technologies. Software Engineering for Agile Application Development is a collection of innovative research on the methods and implementation of adaptation practices in software development that improve the quality and performance of IT products. The presented materials combine theories from current empirical research results as well as practical experiences from real projects that provide insights into incorporating agile qualities into the architecture of the software so that the product adapts to changes and is easy to maintain. While highlighting topics including continuous integration, configuration management, and business modeling, this book is ideally designed for software engineers, software developers, engineers, project managers, IT specialists, data scientists, computer science professionals, researchers, students, and academics.
This book presents some of the emerging techniques and technologies used to handle Web data management. Authors present novel software architectures and emerging technologies and then validate using experimental data and real world applications. The contents of this book are focused on four popular thematic categories of intelligent Web data management: cloud computing, social networking, monitoring and literature management. The Volume will be a valuable reference to researchers, students and practitioners in the field of Web data management, cloud computing, social networks using advanced intelligence tools.
This book covers both theory and applications in the automation of software testing tools and techniques for various types of software (e.g. object-oriented, aspect-oriented, and web-based software). When software fails, it is most often due to lack of proper and thorough testing, an aspect that is even more acute for object-oriented, aspect-oriented, and web-based software. Further, since it is more difficult to test distributed and service-oriented architecture-based applications, there is a pressing need to discuss the latest developments in automated software testing. This book discusses the most relevant issues, models, tools, challenges, and applications in automated software testing. Further, it brings together academic researchers, scientists, and engineers from a wide range of industrial application areas, who present their latest findings and identify future challenges in this fledging research area.
This book details the conceptual foundations, design and implementation of the domain-specific language (DSL) development system DjDSL. DjDSL facilitates design-decision-making on and implementation of reusable DSL and DSL-product lines, and represents the state-of-the-art in language-based and composition-based DSL development. As such, it unites elements at the crossroads between software-language engineering, model-driven software engineering, and feature-oriented software engineering. The book is divided into six chapters. Chapter 1 ("DSL as Variable Software") explains the notion of DSL as variable software in greater detail and introduces readers to the idea of software-product line engineering for DSL-based software systems. Chapter 2 ("Variability Support in DSL Development") sheds light on a number of interrelated dimensions of DSL variability: variable development processes, variable design-decisions, and variability-implementation techniques for DSL. The three subsequent chapters are devoted to the key conceptual and technical contributions of DjDSL: Chapter 3 ("Variable Language Models") explains how to design and implement the abstract syntax of a DSL in a variable manner. Chapter 4 ("Variable Context Conditions") then provides the means to refine an abstract syntax (language model) by using composable context conditions (invariants). Next, Chapter 5 ("Variable Textual Syntaxes") details solutions to implementing variable textual syntaxes for different types of DSL. In closing, Chapter 6 ("A Story of a DSL Family") shows how to develop a mixed DSL in a step-by-step manner, demonstrating how the previously introduced techniques can be employed in an advanced example of developing a DSL family. The book is intended for readers interested in language-oriented as well as model-driven software development, including software-engineering researchers and advanced software developers alike. An understanding of software-engineering basics (architecture, design, implementation, testing) and software patterns is essential. Readers should especially be familiar with the basics of object-oriented modelling (UML, MOF, Ecore) and programming (e.g., Java).
This book is written for engineering students and working professionals. Technical professionals are increasingly involved in IT issues, such as implementing IT systems, managing them, and taking part in requirements analysis/vendor selection. In this book, the basics of production planning systems (PPS) are covered, as well as their implementation in ERP-Systems like SAP. Readers also learn the basics of practical IT management and software creation through detailed, real-world examples. The book serves as a full 5 ECTS study module, which fits into any engineering curriculum. 150 multiple-choice quizzes, practical exercises and a text filled with experiential examples make it a convenient choice for selfstudy and for classroom use.
Information Systems Development: Reflections, Challenges and New Directions, is the collected proceedings of the 20th International Conference on Information Systems Development held in Edinburgh, Scotland, August 24 - 26, 2011. It follows in the tradition of previous conferences in the series in exploring the connections between industry, research and education. These proceedings represent ongoing reflections within the academic community on established information systems topics and emerging concepts, approaches and ideas. It is hoped that the papers herein contribute towards disseminating research and improving practice
While a number of books on the market deal with software requirements, this is the first resource to offer a methodology for discovering and testing the real business requirements that software products must meet in order to provide value.
This book summarizes the research findings presented at the 13th International Joint Conference on Knowledge-Based Software Engineering (JCKBSE 2020), which took place on August 24-26, 2020. JCKBSE 2020 was originally planned to take place in Larnaca, Cyprus. Unfortunately, the COVID-19 pandemic forced it be rescheduled as an online conference. JCKBSE is a well-established, international, biennial conference that focuses on the applications of artificial intelligence in software engineering. The 2020 edition of the conference was organized by Hiroyuki Nakagawa, Graduate School of Information Science and Technology, Osaka University, Japan, and George A. Tsihrintzis and Maria Virvou, Department of Informatics, University of Piraeus, Greece. This research book is a valuable resource for experts and researchers in the field of (knowledge-based) software engineering, as well as general readers in the fields of artificial and computational Intelligence and, more generally, computer science wanting to learn more about the field of (knowledge-based) software engineering and its applications. An extensive list of bibliographic references at the end of each paper helps readers to probe further into the application areas of interest to them.
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.
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 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. |
![]() ![]() You may like...
Introduction to Video Search Engines
David C Gibbon, Zhu Liu
Hardcover
R1,551
Discovery Miles 15 510
Machine Learning - A Practical Approach…
Rodrigo F Mello, Moacir Antonelli Ponti
Hardcover
R2,929
Discovery Miles 29 290
Proceedings of ELM-2015 Volume 1…
Jiuwen Cao, Kezhi Mao, …
Hardcover
|