Sharing Data and Models in Software Engineering


Book Description

Data Science for Software Engineering: Sharing Data and Models presents guidance and procedures for reusing data and models between projects to produce results that are useful and relevant. Starting with a background section of practical lessons and warnings for beginner data scientists for software engineering, this edited volume proceeds to identify critical questions of contemporary software engineering related to data and models. Learn how to adapt data from other organizations to local problems, mine privatized data, prune spurious information, simplify complex results, how to update models for new platforms, and more. Chapters share largely applicable experimental results discussed with the blend of practitioner focused domain expertise, with commentary that highlights the methods that are most useful, and applicable to the widest range of projects. Each chapter is written by a prominent expert and offers a state-of-the-art solution to an identified problem facing data scientists in software engineering. Throughout, the editors share best practices collected from their experience training software engineering students and practitioners to master data science, and highlight the methods that are most useful, and applicable to the widest range of projects. - Shares the specific experience of leading researchers and techniques developed to handle data problems in the realm of software engineering - Explains how to start a project of data science for software engineering as well as how to identify and avoid likely pitfalls - Provides a wide range of useful qualitative and quantitative principles ranging from very simple to cutting edge research - Addresses current challenges with software engineering data such as lack of local data, access issues due to data privacy, increasing data quality via cleaning of spurious chunks in data




How to Engineer Software


Book Description

A guide to the application of the theory and practice of computing to develop and maintain software that economically solves real-world problem How to Engineer Software is a practical, how-to guide that explores the concepts and techniques of model-based software engineering using the Unified Modeling Language. The author—a noted expert on the topic—demonstrates how software can be developed and maintained under a true engineering discipline. He describes the relevant software engineering practices that are grounded in Computer Science and Discrete Mathematics. Model-based software engineering uses semantic modeling to reveal as many precise requirements as possible. This approach separates business complexities from technology complexities, and gives developers the most freedom in finding optimal designs and code. The book promotes development scalability through domain partitioning and subdomain partitioning. It also explores software documentation that specifically and intentionally adds value for development and maintenance. This important book: Contains many illustrative examples of model-based software engineering, from semantic model all the way to executable code Explains how to derive verification (acceptance) test cases from a semantic model Describes project estimation, along with alternative software development and maintenance processes Shows how to develop and maintain cost-effective software that solves real-world problems Written for graduate and undergraduate students in software engineering and professionals in the field, How to Engineer Software offers an introduction to applying the theory of computing with practice and judgment in order to economically develop and maintain software.




A Philosophy of Software Design


Book Description

"This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly and cheaply."--Amazon.




Software Modeling and Design


Book Description

This book covers all you need to know to model and design software applications from use cases to software architectures in UML and shows how to apply the COMET UML-based modeling and design method to real-world problems. The author describes architectural patterns for various architectures, such as broker, discovery, and transaction patterns for service-oriented architectures, and addresses software quality attributes including maintainability, modifiability, testability, traceability, scalability, reusability, performance, availability, and security. Complete case studies illustrate design issues for different software architectures: a banking system for client/server architecture, an online shopping system for service-oriented architecture, an emergency monitoring system for component-based software architecture, and an automated guided vehicle for real-time software architecture. Organized as an introduction followed by several short, self-contained chapters, the book is perfect for senior undergraduate or graduate courses in software engineering and design, and for experienced software engineers wanting a quick reference at each stage of the analysis, design, and development of large-scale software systems.




Contemporary Empirical Methods in Software Engineering


Book Description

This book presents contemporary empirical methods in software engineering related to the plurality of research methodologies, human factors, data collection and processing, aggregation and synthesis of evidence, and impact of software engineering research. The individual chapters discuss methods that impact the current evolution of empirical software engineering and form the backbone of future research. Following an introductory chapter that outlines the background of and developments in empirical software engineering over the last 50 years and provides an overview of the subsequent contributions, the remainder of the book is divided into four parts: Study Strategies (including e.g. guidelines for surveys or design science); Data Collection, Production, and Analysis (highlighting approaches from e.g. data science, biometric measurement, and simulation-based studies); Knowledge Acquisition and Aggregation (highlighting literature research, threats to validity, and evidence aggregation); and Knowledge Transfer (discussing open science and knowledge transfer with industry). Empirical methods like experimentation have become a powerful means of advancing the field of software engineering by providing scientific evidence on software development, operation, and maintenance, but also by supporting practitioners in their decision-making and learning processes. Thus the book is equally suitable for academics aiming to expand the field and for industrial researchers and practitioners looking for novel ways to check the validity of their assumptions and experiences. Chapter 17 is available open access under a Creative Commons Attribution 4.0 International License via link.springer.com.




Concepts and Methodologies for Modeling and Simulation


Book Description

This comprehensive text presents cutting-edge advances in the theory and methodology of modeling and simulation (M&S) and reveals how this work has been influenced by the fundamental contributions of Prof. Tuncer Ören to this field. Exploring the synergies among the domains of M&S and systems engineering (SE), the book describes how M&S and SE can help to address the complex problems identified as “Grand Challenges” more effectively under a model-driven and simulation-directed systems engineering framework. Features: examines frameworks for the development of advanced simulation methodologies; presents a focus on advanced modeling methodologies; reviews the reliability and quality assurance of models; discusses the specification and simulation of human and social behavior, including models of personality, emotions, conflict management, perception and anticipation; provides a survey of the body of knowledge in M&S; highlights the foundations established by the pioneering work of Prof. Tuncer Ören.







Systems Engineering and Its Application to Industrial Product Development


Book Description

Mastering the complexity of innovative systems is a challenging aspect of design and product development. Only a systematic approach can help to embed an increasing degree of smartness in devices and machines, allowing them to adapt to variable conditions or harsh environments. At the same time, customer needs have to be identified before they can be translated into consistent technical requirements. The field of Systems Engineering provides a method, a process, suitable tools and languages to cope with the complexity of various systems such as motor vehicles, robots, railways systems, aircraft and spacecraft, smart manufacturing systems, microsystems, and bio-inspired devices. It makes it possible to trace the entire product lifecycle, by ensuring that requirements are matched to system functions, and functions are matched to components and subsystems, down to the level of assembled parts. This book discusses how Systems Engineering can be suitably deployed and how its benefits are currently being exploited by Product Lifecycle Management. It investigates the fundamentals of Model Based Systems Engineering (MBSE) through a general introduction to this topic and provides two examples of real systems, helping readers understand how these tools are used. The first, which involves the mechatronics of industrial systems, serves to reinforce the main content of the book, while the second describes an industrial implementation of the MBSE tools in the context of developing the on-board systems of a commercial aircraft.




Mechanical Life Cycle Handbook


Book Description

"Explains how Design for the Environment (SFE) and Life Cycle Engineering (LCE) processes may be integrated into business an dmanufacturing practices. Examines major environmental laws and regulations in the U.S. and Europe, qualitative and quantitative analyses of ""green design"" decision variables, and heuristic search programs for a proactive future in ecological improvement."




Innovative Data Integration and Conceptual Space Modeling for COVID, Cancer, and Cardiac Care


Book Description

In recent years, scientific research and translation medicine have placed increased emphasis on computational methodology and data curation across many disciplines, both to advance underlying science and to instantiate precision-medicine protocols in the lab and in clinical practice. The nexus of concerns related to oncology, cardiology, and virology (SARS-CoV-2) presents a fortuitous context within which to examine the theory and practice of biomedical data curation. Innovative Data Integration and Conceptual Space Modeling for COVID, Cancer, and Cardiac Care argues that a well-rounded approach to data modeling should optimally embrace multiple perspectives inasmuch as data-modeling is neither a purely formal nor a purely conceptual discipline, but rather a hybrid of both. On the one hand, data models are designed for use by computer software components, and are, consequently, constrained by the mechanistic demands of software environments; data modeling strategies must accept the formal rigors imposed by unambiguous data-sharing and query-evaluation logic. In particular, data models are not well-suited for software-level deployment if such models do not translate seamlessly to clear strategies for querying data and ensuring data integrity as information is moved across multiple points. On the other hand, data modeling is, likewise, constrained by human conceptual tendencies, because the information which is managed by databases and data networks is ultimately intended to be visualized/utilized by humans as the end-user. Thus, at the intersection of both formal and humanistic methodology, data modeling takes on elements of both logico-mathematical frameworks (e.g., type systems and graph theory) and conceptual/philosophical paradigms (e.g., linguistics and cognitive science). The authors embrace this two-sided aspect of data models by seeking non-reductionistic points of convergence between formal and humanistic/conceptual viewpoints, and by leveraging biomedical contexts (viz., COVID, Cancer, and Cardiac Care) so as to provide motivating examples and case-studies in this volume. - Provides an analysis of how conceptual spaces and related cognitive linguistic approaches can inspire programming and query-processing models - Outlines the vital role that data modeling/curation has played in significant medical breakthroughs - Presents readers with an overview of how information-management approaches intersect with precision medicine, providing case studies of data-modeling in concrete scientific practice - Explores applications of image analysis and computer vision in the context of precision medicine - Examines the role of technology in scientific publishing, replication studies, and dataset curation