ETAPS 2001 is the fourth instance of the European Joint Conferences on Theory and Practice of Software. ETAPS is an annual federated conference that was established in 1998 by combining a number of ...existing and new conferences. This year it comprises ve conferences (FOSSACS, FASE, ESOP, CC, TACAS), ten satellite workshops (CMCS, ETI Day, JOSES, LDTA, MMAABS, PFM, RelMiS, UNIGRA, WADT, WTUML), seven invited lectures, a debate, and ten tutorials. The events that comprise ETAPS address various aspects of the system - velopment process, including speci cation, design, implementation, analysis and improvement. The languages, methodologies and tools which support these - tivities are all well within its scope. Di erent blends of theory and practice are represented, with an inclination towards theory with a practical motivation on one hand and soundly-based practice on the other. Many of the issues involved in software design apply to systems in general, including hardware systems, and the emphasis on software is not intended to be exclusive.
Analyzing Social Media Networks with NodeXL offers backgrounds in information studies, computer science, and sociology. This book is divided into three parts: analyzing social media, NodeXL tutorial, ...and social-media network analysis case studies. Part I provides background in the history and concepts of social media and social networks. Also included here is social network analysis, which flows from measuring, to mapping, and modeling collections of connections. The next part focuses on the detailed operation of the free and open-source NodeXL extension of Microsoft Excel, which is used in all exercises throughout this book. In the final part, each chapter presents one form of social media, such as e-mail, Twitter, Facebook, Flickr, and Youtube. In addition, there are descriptions of each system, the nature of networks when people interact, and types of analysis for identifying people, documents, groups, and events. * Walks you through NodeXL, while explaining the theory and development behind each step, providing takeaways that can apply to any SNA * Demonstrates how visual analytics research can be applied to SNA tools for the mass market * Includes case studies from researchers who use NodeXL on popular networks like email, Facebook, Twitter, and wikis * Download companion materials and resources at https://nodexl.codeplex.com/documentation
Practical Remote Pair Programming provides a hands-on approach to using remote pair programming in your day-to-day work. With this book, you'll learn how to leverage the tools, techniques, and tips ...and tricks to boost your productivity and enhance your pair programming experience while working in distributed teams.
This textbook addresses students, professionals, lecturers and researchers interested in software product line engineering. With more than 100 examples and about 150 illustrations, the authors ...describe in detail the essential foundations, principles and techniques of software product line engineering.
The authors are professionals and researchers who significantly influenced the software product line engineering paradigm and successfully applied software product line engineering principles in industry. They have structured this textbook around a comprehensive product line framework.
Software product line engineering has proven to be the paradigm for developing a diversity of software products and software-intensive systems in shorter time, at lower cost, and with higher quality. It facilitates platform-based development and mass customisation. The authors elaborate on the two key principles behind software product line engineering: (1) the separation of software development in two distinct processes, domain and application engineering; (2) the explicit definition and management of the variability of the product line across all development artefacts.
As a student, you will find a detailed description of the key processes, their activities and underlying techniques for defining and managing software product line artefacts. As a researcher or lecturer, you will find a comprehensive discussion of the state of the art organised around the comprehensive framework. As a professional, you will find guidelines for introducing this paradigm in your company and an overview of industrial experiences with software product line engineering.
A developer's field-guide to designing scalable services using Kubernetes Key Features * Develop and run your software using containers within a Kubernetes environment * Get hands-on experience of ...using Kubernetes with DevOps concepts such as continuous integration, benchmark testing, monitoring, and so on * Pragmatic example-based approach showing how to use Kubernetes in the development process Book Description Kubernetes is documented and typically approached from the perspective of someone running software that has already been built. Kubernetes may also be used to enhance the development process, enabling more consistent testing and analysis of code to help developers verify not only its correctness, but also its efficiency. This book introduces key Kubernetes concepts, coupled with examples of how to deploy and use them with a bit of Node.js and Python example code, so that you can quickly replicate and use that knowledge. You will begin by setting up Kubernetes to help you develop and package your code. We walk you through the setup and installation process before working with Kubernetes in the development environment. We then delve into concepts such as automating your build process, autonomic computing, debugging, and integration testing. This book covers all the concepts required for a developer to work with Kubernetes. By the end of this book, you will be in a position to use Kubernetes in development ecosystems. What you will learn * Build your software into containers * Deploy and debug software running in containers within Kubernetes * Declare and add configuration through Kubernetes * Define how your application fits together, using internal and external services * Add feedback to your code to help Kubernetes manage your services * Monitor and measure your services through integration testing and in production deployments Who this book is for If you are a full-stack or back-end software developers interested, curious, or being asked to test as well as run the code you're creating, you can leverage Kubernetes to make that process simpler and consistent regardless of where you deploy. If you're looking for developer focused examples in NodeJS and Python for how to build, test, deploy, and run your code with Kubernetes, this is perfect for you.
The focus of Software for Dependable Systems is a set of fundamental principles that underlie software system dependability and that suggest a different approach to the development and assessment of ...dependable software.Unfortunately, it is difficult to assess the dependability of software. The field of software engineering suffers from a pervasive lack of evidence about the incidence and severity of software failures; about the dependability of existing software systems; about the efficacy of existing and proposed development methods; about the benefits of certification schemes; and so on. There are many anecdotal reports, which-although often useful for indicating areas of concern or highlighting promising avenues of research-do little to establish a sound and complete basis for making policy decisions regarding dependability. The committee regards claims of extraordinary dependability that are sometimes made on this basis for the most critical of systems as unsubstantiated, and perhaps irresponsible. This difficulty regarding the lack of evidence for system dependability leads to two conclusions: (1) that better evidence is needed, so that approaches aimed at improving the dependability of software can be objectively assessed, and (2) that, for now, the pursuit of dependability in software systems should focus on the construction and evaluation of evidence.The committee also recognized the importance of adopting the practices that are already known and used by the best developers; this report gives a sample of such practices. Some of these (such as systematic configuration management and automated regression testing) are relatively easy to adopt; others (such as constructing hazard analyses and threat models, exploiting formal notations when appropriate, and applying static analysis to code) will require new training for many developers. However valuable, though, these practices are in themselves no silver bullet, and new techniques and methods will be required in order to build future software systems to the level of dependability that will be required.
Agile Project Management, Assurance and Auditing - A practical
guide for auditors, reviewers and project teams
Adopting the Agile methodology helps organisations develop the
flexibility and ...adaptability necessary in such fast-paced
environments. The use of Agile for non-IT projects - such as
introducing new products, refurbishing retail outlets, and even
planning and running audits - means that general auditors and other
reviewers, as well as IT specialist auditors, need to understand
Agile practices.
This guide provides an overview of Agile for auditors, reviewers
and project teams
This guide covers:
Agile project management audit objectives;
The risks covered by each objective;
What controls to expect and how these can be audited;
Case studies illustrating Agile project initiation and
high-level requirements; and
Hints and tips for performing an audit review.
For experienced auditors and project management teams, this
guide demonstrates how they can adapt and reuse audit skills that
they may have gained during traditional waterfall, CRAMM (CCTA Risk
Analysis and Management Method), or PRINCE2® implementation/audits.
For those less experienced, it will encourage them to consider
these good practices and their application to Agile audits.
An ideal introduction to Agile project management for auditors,
project managers, Agile teams and students
Presents a novel metrics-based approach for detecting design problems in object-oriented software. Introduces an important suite of detection strategies for the identification of different well-known ...design flaws as well as some rarely mentioned ones.
Today, when computing is pervasive and deployed over a range of devices by a multiplicity of users, we need to develop computer software to interact with both the ever-increasing complexity of the ...technical world and the growing fluidity of social organizations. The Art of Agent-Oriented Modeling presents a new conceptual model for developing software systems that are open, intelligent, and adaptive. It describes an approach for modeling complex systems that consist of people, devices, and software agents in a changing environment (sometimes known as distributed sociotechnical systems). The authors take an agent-oriented view, as opposed to the more common object-oriented approach. Thinking in terms of agents (which they define as the human and man-made components of a system), they argue, can change the way people think of software and the tasks it can perform. The book offers an integrated and coherent set of concepts and models, presenting the models at three levels of abstraction corresponding to a motivation layer (where the purpose, goals, and requirements of the system are described), a design layer, and an implementation layer. It compares platforms by implementing the same models in four different languages; compares methodologies by using a common example; includes extensive case studies; and offers exercises suitable for either class use or independent study.