Software Design X-Rays


Book Description

Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.




New Directions in Supply-Chain Management


Book Description

Technology has introduced dramatic new efficiencies to supply chain design, management, and control--but only to those who can open their minds to these new methods and strategies. This book presents innovative articles from eighteen of today's top young Ph.D. scholars, each based on discussions at the 2000 Frank Batten Young Leaders Forum of the College of William and Mary. These ""rising stars"" from the country's most prestigious operations management programs each take a fresh perspective on current practices and future directions in supply chain management and overall business strategy. Provocative yet valuable questions are asked--and answers provided--on subjects including: * Development of effective performance metrics * Techniques to streamline the order management cycle * Methods to leverage product design and manufacture to reduce supply chain costs * Ways to share knowledge throughout an organization concerning forecasts, manufacturing and sourcing plans, and distribution.




Software Engineering for Variability Intensive Systems


Book Description

This book addresses the challenges in the software engineering of variability-intensive systems. Variability-intensive systems can support different usage scenarios by accommodating different and unforeseen features and qualities. The book features academic and industrial contributions that discuss the challenges in developing, maintaining and evolving systems, cloud and mobile services for variability-intensive software systems and the scalability requirements they imply. The book explores software engineering approaches that can efficiently deal with variability-intensive systems as well as applications and use cases benefiting from variability-intensive systems.




Systems Engineering for Business Process Change: New Directions


Book Description

Systems Engineering for Business Process Change: New Directions is a collection of papers resulting from an EPSRC managed research programme set up to investigate the relationships between Legacy IT Systems and Business Processes. The papers contained in this volume report the results from the projects funded by the programme, which ran between 1997 and 2001. An earlier volume, published in 2000, reported interim results. Bringing together researchers from diverse backgrounds in Computer Science, Information Systems, Engineering and Business Schools, this book explores the problems experienced by IT-dependent businesses that have to implement changing business processes in the context of their investment in legacy systems. The book presents some of the solutions investigated through the collaborations set up within the research programme. Whether you are a researcher interested in the ideas that were generated by the research programme, or a user trying to understand the nature of the problems and their solutions, you cannot fail to be inspired by the writings contained in this volume.







New Directions for Computing Education


Book Description

Why should every student take a computing course? What should be the content of these courses? How should they be taught, and by whom? This book addresses these questions by identifying the broader reaches of computing education, problem-solving and critical thinking as a general approach to learning. The book discusses new approaches to computing education, and considers whether the modern ubiquity of computing requires an educational approach that is inherently interdisciplinary and distinct from the traditional computer science perspective. The alternative approach that the authors advocate derives its mission from an intent to embed itself within an interdisciplinary arts and science context. An interdisciplinary approach to computing is compellingly valuable for students and educational institutions alike. Its goal is to support the educational and intellectual needs of students with interests in the entire range of academic disciplines. It capitalizes on students’ focus on career development and employers’ demand for technical, while also engaging a diverse student body that may not possess a pre-existing interest in computing for computing’s sake. This approach makes directly evident the applicability of computer science topics to real-world interdisciplinary problems beyond computing and recognizes that technical and computational abilities are essential within every discipline. The book offers a valuable resource for computer science and computing education instructors who are presently re-thinking their curricula and pedagogical approaches and are actively trying new methods in the classroom. It will also benefit graduate students considering a future of teaching in the field, as well as administrators (in both higher education and high schools) interested in becoming conversant in the discourse surrounding the future of computing education.




Agile Software Development


Book Description

Agile software development has become an umbrella term for a number of changes in how software developers plan and coordinate their work, how they communicate with customers and external stakeholders, and how software development is organized in small, medium, and large companies, from the telecom and healthcare sectors to games and interactive media. Still, after a decade of research, agile software development is the source of continued debate due to its multifaceted nature and insufficient synthesis of research results. Dingsøyr, Dybå, and Moe now present a comprehensive snapshot of the knowledge gained over many years of research by those working closely with or in the industry. It shows the current state of research on agile software development through an introduction and ten invited contributions on the main research fields, each written by renowned experts. These chapters cover three main issues: foundations and background of agile development, agile methods in practice, and principal challenges and new frontiers. They show the important results in each subfield, and in addition they explain what these results mean to practitioners as well as for future research in the field. The book is aimed at reflective practitioners and researchers alike, and it also can serve as the basis for graduate courses at universities.




Software Engineering and Algorithms in Intelligent Systems


Book Description

This book presents new software engineering approaches and methods, discussing real-world problems and exploratory research that describes novel approaches, modern design techniques, hybrid algorithms and empirical methods. This book constitutes part of the refereed proceedings of the Software Engineering and Algorithms in Intelligent Systems Section of the 7th Computer Science On-line Conference 2018 (CSOC 2018), held in April 2018.




Software Engineering and Computer Systems, Part III


Book Description

This Three-Volume-Set constitutes the refereed proceedings of the Second International Conference on Software Engineering and Computer Systems, ICSECS 2011, held in Kuantan, Malaysia, in June 2011. The 190 revised full papers presented together with invited papers in the three volumes were carefully reviewed and selected from numerous submissions. The papers are organized in topical sections on software engineering; network; bioinformatics and e-health; biometrics technologies; Web engineering; neural network; parallel and distributed; e-learning; ontology; image processing; information and data management; engineering; software security; graphics and multimedia; databases; algorithms; signal processing; software design/testing; e- technology; ad hoc networks; social networks; software process modeling; miscellaneous topics in software engineering and computer systems.




Design Requirements Engineering: A Ten-Year Perspective


Book Description

Since its inception in 1968, software engineering has undergone numerous changes. In the early years, software development was organized using the waterfall model, where the focus of requirements engineering was on a frozen requirements document, which formed the basis of the subsequent design and implementation process. Since then, a lot has changed: software has to be developed faster, in larger and distributed teams, for pervasive as well as large-scale applications, with more flexibility, and with ongoing maintenance and quick release cycles. What do these ongoing developments and changes imply for the future of requirements engineering and software design? Now is the time to rethink the role of requirements and design for software intensive systems in transportation, life sciences, banking, e-government and other areas. Past assumptions need to be questioned, research and education need to be rethought. This book is based on the Design Requirements Workshop, held June 3-6, 2007, in Cleveland, OH, USA, where leading researchers met to assess the current state of affairs and define new directions. The papers included were carefully reviewed and selected to give an overview of the current state of the art as well as an outlook on probable future challenges and priorities. After a general introduction to the workshop and the related NSF-funded project, the contributions are organized in topical sections on fundamental concepts of design; evolution and the fluidity of design; quality and value-based requirements; requirements intertwining; and adapting requirements practices in different domains.