![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
This book provides formal and informal definitions and taxonomies for self-aware computing systems, and explains how self-aware computing relates to many existing subfields of computer science, especially software engineering. It describes architectures and algorithms for self-aware systems as well as the benefits and pitfalls of self-awareness, and reviews much of the latest relevant research across a wide array of disciplines, including open research challenges. The chapters of this book are organized into five parts: Introduction, System Architectures, Methods and Algorithms, Applications and Case Studies, and Outlook. Part I offers an introduction that defines self-aware computing systems from multiple perspectives, and establishes a formal definition, a taxonomy and a set of reference scenarios that help to unify the remaining chapters. Next, Part II explores architectures for self-aware computing systems, such as generic concepts and notations that allow a wide range of self-aware system architectures to be described and compared with both isolated and interacting systems. It also reviews the current state of reference architectures, architectural frameworks, and languages for self-aware systems. Part III focuses on methods and algorithms for self-aware computing systems by addressing issues pertaining to system design, like modeling, synthesis and verification. It also examines topics such as adaptation, benchmarks and metrics. Part IV then presents applications and case studies in various domains including cloud computing, data centers, cyber-physical systems, and the degree to which self-aware computing approaches have been adopted within those domains. Lastly, Part V surveys open challenges and future research directions for self-aware computing systems. It can be used as a handbook for professionals and researchers working in areas related to self-aware computing, and can also serve as an advanced textbook for lecturers and postgraduate students studying subjects like advanced software engineering, autonomic computing, self-adaptive systems, and data-center resource management. Each chapter is largely self-contained, and offers plenty of references for anyone wishing to pursue the topic more deeply.
A new product can be easy or difficult to use, it can be efficient or cumbersome, engaging or dispiriting, it can support the way we work and think - or not. What options are available for systematically addressing such parameters and provide users with an appropriate functionality, usability and experience? In the last decades, several fields have evolved that encompass a user-centred approach to create better products for the people who use them. This book provides a comprehensible introduction to the subject. It is aimed first and foremost at people involved in software and product development - product managers, project managers, consultants and analysts, who face the major challenge of developing highly useful and usable products. Topics include: The most important user-centred techniques and their alignment in the development process Planning examples of user-centred activities for projects User-oriented approaches for organisations Real-life case studies Checklists, tips and a lot of background information provide help for practitioners
Computer Aided Software Engineering (CASE) tools typically support individual users in the automation of a set of tasks within a software development process. Such tools have helped organizations in their efforts to develop better software within budget and time constraints. However, many organizations are failing to take full advantage of CASE technology as they struggle to make coordinated use of collections of tools, often obtained at different times from different vendors. This book provides an in-depth analysis of the CASE tool integration problem, and describes practical approaches that can be used with current CASE technology to help your organization take greater advantage of integrated CASE.
This book summarizes the results of Design Thinking Research Program at Stanford University in Palo Alto, California, USA and the Hasso Plattner Institute in Potsdam, Germany. Offering readers a closer look at design thinking, its innovation processes and methods, it covers topics ranging from how to design ideas, methods and technologies, to creativity experiments and creative collaboration in the real world, and the interplay between designers and engineers. But the topics go beyond this in their detailed exploration of design thinking and its use in IT systems engineering fields, and even from a management perspective. The authors show how these methods and strategies actually work in companies, and introduce new technologies and their functions. Furthermore, readers learn how special-purpose design thinking can be used to solve thorny 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. This edition offers a historic perspective on the theoretical foundations of design thinking. Within the four topic areas, various frameworks, methodologies, mindsets, systems and tools are explored and further developed. The first topic area focuses on team interaction, while the second part addresses tools and techniques for productive collaboration. The third section explores new approaches to teaching and enabling creative skills and lastly the book examines how design thinking is put into practice. All in all, the contributions shed light and provide deeper insights into how to support the collaboration of design teams in order to systematically and successfully develop innovations and design progressive solutions for tomorrow.
In recent years, searching for source code on the web has become increasingly common among professional software developers and is emerging as an area of academic research. This volume surveys past research and presents the state of the art in the area of "code retrieval on the web." This work is concerned with the algorithms, systems, and tools to allow programmers to search for source code on the web and the empirical studies of these inventions and practices. It is a label that we apply to a set of related research from software engineering, information retrieval, human-computer interaction, management, as well as commercial products. The division of code retrieval on the web into snippet remixing and component reuse is driven both by empirical data, and analysis of existing search engines and tools. Contributors include leading researchers from human-computer interaction, software engineering, programming languages, and management. "Finding Source Code on the Web for Remix and Reuse" consists of five parts. Part I is titled "Programmers and Practices," and consists of a retrospective chapter and two empirical studies on how programmers search the web for source code. Part II is titled "From Data Structures to Infrastructures," and covers the creation of ground-breaking search engines for code retrieval required ingenuity in the adaptation of existing technology and in the creation of new algorithms and data structures. Part III focuses on "Reuse: Components and Projects," which are reused with minimal modification. Part IV is on "Remix: Snippets and Answers," which examines how source code from the web can also be used as solutions to problems and answers to questions. The book concludes with Part V, "Looking Ahead," that looks at future programming and the legalities of software reuse and remix and the implications of current intellectual property law on the future of software development. The story, "Richie Boss: Private Investigator Manager," was selected as the winner of a crowdfunded short story contest."
Object-oriented inheritance has been in widespread use for a decade, and it is now realised that although inheritance is a powerful modelling tool with many associated advantages, its benefits are not automatically conferred on systems that simply use it.This book introduces a model of inheritance based around five fundamental inheritance relationships. Each relationship has a clear conceptual basis, representing a fundamental, specialised use of inheritance. The resulting model replaces a confused notion of inheritance with five distinct conceptual relationships supporting more precise modelling of systems and capturing the semantic intent of each use of inheritance within a system.
Scala is a new and exciting programming language that is a hybrid between object oriented languages such as Java and functional languages such as Haskell. As such it has its own programming idioms and development styles. Scala Design Patterns looks at how code reuse can be successfully achieved in Scala. A major aspect of this is the reinterpretation of the original Gang of Four design patterns in terms of Scala and its language structures (that is the use of Traits, Classes, Objects and Functions). It includes an exploration of functional design patterns and considers how these can be interpreted in Scala's uniquely hybrid style. A key aspect of the book is the many code examples that accompany each design pattern, allowing the reader to understand not just the design pattern but also to explore powerful and flexible Scala language features. Including numerous source code examples, this book will be of value to professionals and practitioners working in the field of software engineering.
This book constitutes the refereed post-conference proceedings of the 10th IFIP WG 5.14 International Conference on Computer and Computing Technologies in Agriculture, CCTA 2016, held in Dongying, China, in October 2016. The 55 revised papers presented were carefully reviewed and selected from 128 submissions. They cover a wide range of interesting theories and applications of information technology in agriculture, including intelligent sensing, cloud computing, key technologies of the Internet of Things, precision agriculture, animal husbandry information technology, including Internet + modern animal husbandry, livestock big data platform and cloud computing applications, intelligent breeding equipment, precision production models, water product networking and big data , including fishery IoT, intelligent aquaculture facilities, and big data applications.
Das Buch behandelt Prinzipien und Methoden der Software-Entwicklung fA1/4r Kommunikationsnetze, basierend auf praktischen Erfahrungen aus einer Reihe von Software-Projekten. Die spezifischen Merkmale dieser Software sind parallele AblAufe, zeitkritisches Antwortverhalten, komplexe FunktionalitAt und sehr hohe QualitAtsanforderungen. Eine wesentliche Rolle bei der Beherrschung der Software-KomplexitAt spielt die Architektur. Sie stellt die Regeln und Methoden fA1/4r einen effektiven Systementwurf zur VerfA1/4gung, auf dem sich der gesamte Entwicklungsprozess abstA1/4tzen kann. Dazu gehArt eine vollstAndige Spezifikationsmethodik auf der Grundlage einer formalen Sprache, deren Semantik an den typischen Merkmalen von Kommunikations-Software ausgerichtet ist. Schwerpunkt der AusfA1/4hrungen ist die Anpassung der Software-Entwicklung an die steigenden Anforderungen bezA1/4glich FunktionalitAt, Marktorientierung, Kosten und Zeit.
This is the first book that presents a comprehensive overview of sustainability aspects in software engineering. Its format follows the structure of the SWEBOK and covers the key areas involved in the incorporation of green aspects in software engineering, encompassing topics from requirement elicitation to quality assurance and maintenance, while also considering professional practices and economic aspects. The book consists of thirteen chapters, which are structured in five parts. First the Introduction gives an overview of the primary general concepts related to Green IT, discussing what Green "in" Software Engineering is and how it differs from Green "by" Software Engineering.Next Environments, Processes and Construction presents green software development environments, green software engineering processes and green software construction in general. The third part, Economic and Other Qualities, details models for measuring how well software supports green software engineering techniques and for performing trade-off analyses between alternative green practices from an economic perspective. Software Development Process then details techniques for incorporating green aspects at various stages of software development, including requirements engineering, design, testing, and maintenance. In closing, Practical Issues addresses the repercussions of green software engineering on decision-making, stakeholder participation and innovation management. The audience for this book includes software engineering researchers in academia and industry seeking to understand the challenges and impact of green aspects in software engineering, as well as practitioners interested in learning about the state of the art in Green in Software Engineering. "
This book describes in contributions by scientists and practitioners the development of scientific concepts, technologies, engineering techniques and tools for a service-based society. The focus is on microservices, i.e cohesive, independent processes deployed in isolation and equipped with dedicated memory persistence tools, which interact via messages. The book is structured in six parts. Part 1 "Opening" analyzes the new (and old) challenges including service design and specification, data integrity, and consistency management and provides the introductory information needed to successfully digest the remaining parts. Part 2 "Migration" discusses the issue of migration from monoliths to microservices and their loosely coupled architecture. Part 3 "Modeling" introduces a catalog and a taxonomy of the most common microservices anti-patterns and identifies common problems. It also explains the concept of RESTful conversations and presents insights from studying and developing two further modeling approaches. Next , Part 4 is dedicated to various aspects of "Development and Deployment". Part 5 then covers "Applications" of microservices, presenting case studies from Industry 4.0, Netflix, and customized SaaS examples. Eventually, Part 6 focuses on "Education" and reports on experiences made in special programs, both at academic level as a master program course and for practitioners in an industrial training. As only a joint effort between academia and industry can lead to the release of modern paradigm-based programming languages, and subsequently to the deployment of robust and scalable software systems, the book mainly targets researchers in academia and industry who develop tools and applications for microservices.
This book provides advanced analytics and decision management techniques and tools for developing sustainable competitive advantages in the studied target context. In order to achieve sustainable economy, the capacity to endure, it is essential to understand and study the mechanisms for interactions and impact from and among these perspectives.
The aim of this book is to explain to high-performance computing (HPC) developers how to utilize the Intel(r) Xeon Phi series products efficiently. To that end, it introduces some computing grammar, programming technology and optimization methods for using many-integrated-core (MIC) platforms and also offers tips and tricks for actual use, based on the authors first-hand optimization experience. The material is organized in three sections. The first section, Basics of MIC, introduces the fundamentals of MIC architecture and programming, including the specific Intel MIC programming environment. Next, the section on Performance Optimization explains general MIC optimization techniques, which are then illustrated step-by-step using the classical parallel programming example of matrix multiplication. Finally, Project development presents a set of practical and experience-driven methods for using parallel computing in application projects, including how to determine if a serial or parallel CPU program is suitable for MIC and how to transplant a program onto MIC. This book appeals to two main audiences: First, software developers for HPC applications it will enable them to fully exploit the MIC architecture and thus achieve the extreme performance usually required in biological genetics, medical imaging, aerospace, meteorology and other areas of HPC. Second, students and researchers engaged in parallel and high-performance computing it will guide them on how to push the limits of system performance for HPC applications. "
This book provides comprehensive coverage of verification and debugging techniques for embedded software, which is frequently used in safety critical applications (e.g., automotive), where failures are unacceptable. Since the verification of complex systems needs to encompass the verification of both hardware and embedded software modules, this book focuses on verification and debugging approaches for embedded software with hardware dependencies. Coverage includes the entire flow of design, verification and debugging of embedded software and all key approaches to debugging, dynamic, static, and hybrid verification. This book discusses the current, industrial embedded software verification flow, as well as emerging trends with focus on formal and hybrid verification and debugging approaches.
Nowadays embedded and real-time systems contain complex software. The complexity of embedded systems is increasing, and the amount and variety of software in the embedded products are growing. This creates a big challenge for embedded and real-time software development processes and there is a need to develop separate metrics and benchmarks. "Embedded and Real Time System Development: A Software Engineering Perspective: Concepts, Methods and Principles" presents practical as well as conceptual knowledge of the latest tools, techniques and methodologies of embedded software engineering and real-time systems. Each chapter includes an in-depth investigation regarding the actual or potential role of software engineering tools in the context of the embedded system and real-time system. The book presents state-of-the art and future perspectives with industry experts, researchers, and academicians sharing ideas and experiences including surrounding frontier technologies, breakthroughs, innovative solutions and applications. The book is organized into four parts "Embedded Software Development Process", "Design Patterns and Development Methodology", "Modelling Framework" and "Performance Analysis, Power Management and Deployment" with altogether 12 chapters. The book is aiming at (i) undergraduate students and postgraduate students conducting research in the areas of embedded software engineering and real-time systems; (ii) researchers at universities and other institutions working in these fields; and (iii) practitioners in the R&D departments of embedded system. It can be used as an advanced reference for a course taught at the postgraduate level in embedded software engineering and real-time systems.
This book provides essential insights on the adoption of modern software engineering practices at large companies producing software-intensive systems, where hundreds or even thousands of engineers collaborate to deliver on new systems and new versions of already deployed ones. It is based on the findings collected and lessons learned at the Software Center (SC), a unique collaboration between research and industry, with Chalmers University of Technology, Gothenburg University and Malmoe University as academic partners and Ericsson, AB Volvo, Volvo Car Corporation, Saab Electronic Defense Systems, Grundfos, Axis Communications, Jeppesen (Boeing) and Sony Mobile as industrial partners. The 17 chapters present the "Stairway to Heaven" model, which represents the typical evolution path companies move through as they develop and mature their software engineering capabilities. The chapters describe theoretical frameworks, conceptual models and, most importantly, the industrial experiences gained by the partner companies in applying novel software engineering techniques. The book's structure consists of six parts. Part I describes the model in detail and presents an overview of lessons learned in the collaboration between industry and academia. Part II deals with the first step of the Stairway to Heaven, in which R&D adopts agile work practices. Part III of the book combines the next two phases, i.e., continuous integration (CI) and continuous delivery (CD), as they are closely intertwined. Part IV is concerned with the highest level, referred to as "R&D as an innovation system," while Part V addresses a topic that is separate from the Stairway to Heaven and yet critically important in large organizations: organizational performance metrics that capture data, and visualizations of the status of software assets, defects and teams. Lastly, Part VI presents the perspectives of two of the SC partner companies. The book is intended for practitioners and professionals in the software-intensive systems industry, providing concrete models, frameworks and case studies that show the specific challenges that the partner companies encountered, their approaches to overcoming them, and the results. Researchers will gain valuable insights on the problems faced by large software companies, and on how to effectively tackle them in the context of successful cooperation projects.
This book is open access under a CC BY-NC 4.0 license. This volume presents several case studies highlighting the latest findings in Industry 4.0 projects utilizing S-BPM features. Their potential is explored in detail, while the limits of engineering a company from a communication-centred perspective are also discussed. After a general introduction and an overview of the book in chapter 1, chapter 2 starts by condensing the industrial challenges driven by the German "Industry 4.0" trend to form a concrete vision for future production industries. Subsequently, chapter 3 introduces the basic concepts of S-BPM and its capabilities, in particular for supporting the restructuring of processes. The next three chapters then present various case studies, e.g. at an SME offering the production of atypical, unique and special purpose machinery, equipment and technologically complex units particularly useful in the automotive and electronic industries; and at a further SME producing highly-customized floor cleaning machines. Rounding out the coverage, the last two chapters summarize the achievements and lessons learned with regard to the road ahead. Overall, the book provides a realistic portrait of the status quo based on current findings, and outlines the future activities to be pursued in order to establish stakeholder-centred digital production systems. As such, developers, educators, and practitioners will find both the conceptual background and results from the field reflecting the state-of-the-art in vertical and horizontal process integration.
This book describes the implementation of green IT in various human and industrial domains. Consisting of four sections: "Development and Optimization of Green IT", "Modelling and Experiments with Green IT Systems", "Industry and Transport Green IT Systems", "Social, Educational and Business Aspects of Green IT", it presents results in two areas - the green components, networks, cloud and IoT systems and infrastructures; and the industry, business, social and education domains. It discusses hot topics such as programmable embedded and mobile systems, sustainable software and data centers, Internet servicing and cyber social computing, assurance cases and lightweight cryptography in context of green IT. Intended for university students, lecturers and researchers who are interested in power saving and sustainable computing, the book also appeals to engineers and managers of companies that develop and implement energy efficient IT applications.
Control system design is a challenging task for practicing engineers. It requires knowledge of different engineering fields, a good understanding of technical specifications and good communication skills. The current book introduces the reader into practical control system design, bridging the gap between theory and practice. The control design techniques presented in the book are all model based., considering the needs and possibilities of practicing engineers. Classical control design techniques are reviewed and methods are presented how to verify the robustness of the design. It is how the designed control algorithm can be implemented in real-time and tested, fulfilling different safety requirements. Good design practices and the systematic software development process are emphasized in the book according to the generic standard IEC61508. The book is mainly addressed to practicing control and embedded software engineers - working in research and development - as well as graduate students who are faced with the challenge to design control systems and implement them in real-time."
This book illustrates how goal-oriented, automated measurement can be used to create Lean organizations and to facilitate the development of Lean software, while also demonstrating the practical implementation of Lean software development by combining tried and trusted tools. In order to be successful, a Lean orientation of software development has to go hand in hand with a company's overall business strategy. To achieve this, two interrelated aspects require special attention: measurement and experience management. In this book, Janes and Succi provide the necessary knowledge to establish "Lean software company thinking," while also exploiting the latest approaches to software measurement. A comprehensive, company-wide measurement approach is exactly what companies need in order to align their activities to the demands of their stakeholders, to their business strategy, etc. With the automatic, non-invasive measurement approach proposed in this book, even small and medium-sized enterprises that do not have the resources to introduce heavyweight processes will be able to make their software development processes considerably more Lean. The book is divided into three parts. Part I, "Motivation for Lean Software Development," explains just what "Lean Production" means, why it can be advantageous to apply Lean concepts to software engineering, and which existing approaches are best suited to achieving this. Part II, "The Pillars of Lean Software Development," presents the tools needed to achieve Lean software development: Non-invasive Measurement, the Goal Question Metric approach, and the Experience Factory. Finally, Part III, "Lean Software Development in Action," shows how different tools can be combined to enable Lean Thinking in software development. The book primarily addresses the needs of all those working in the field of software engineering who want to understand how to establish an efficient and effective software development process. This group includes developers, managers, and students pursuing an M.Sc. degree in software engineering.
The biggest challenges faced by the software industry are cost control and schedule control. As such, effective strategies for process improvement must be researched and implemented. Analyzing the Role of Risk Mitigation and Monitoring in Software Development is a critical scholarly resource that explores software risk and development as organizations continue to implement more applications across multiple technologies and a multi-tiered environment. Featuring coverage on a broad range of topics such as quantitative risk assessment, threat analysis, and software vulnerability management, this book is a vital resource for engineers, academicians, professionals, and researchers seeking current research on the importance of risk management in software development.
This book focuses on the methodological treatment of UML/P and addresses three core topics of model-based software development: code generation, the systematic testing of programs using a model-based definition of test cases, and the evolutionary refactoring and transformation of models. For each of these topics, it first details the foundational concepts and techniques, and then presents their application with UML/P. This separation between basic principles and applications makes the content more accessible and allows the reader to transfer this knowledge directly to other model-based approaches and languages. After an introduction to the book and its primary goals in Chapter 1, Chapter 2 outlines an agile UML-based approach using UML/P as the primary development language for creating executable models, generating code from the models, designing test cases, and planning iterative evolution through refactoring. In the interest of completeness, Chapter 3 provides a brief summary of UML/P, which is used throughout the book. Next, Chapters 4 and 5 discuss core techniques for code generation, addressing the architecture of a code generator and methods for controlling it, as well as the suitability of UML/P notations for test or product code. Chapters 6 and 7 then discuss general concepts for testing software as well as the special features which arise due to the use of UML/P. Chapter 8 details test patterns to show how to use UML/P diagrams to define test cases and emphasizes in particular the use of functional tests for distributed and concurrent software systems. In closing, Chapters 9 and 10 examine techniques for transforming models and code and thus provide a solid foundation for refactoring as a type of transformation that preserves semantics. Overall, this book will be of great benefit for practical software development, for academic training in the field of Software Engineering, and for research in the area of model-based software development. Practitioners will learn how to use modern model-based techniques to improve the production of code and thus significantly increase quality. Students will find both important scientific basics as well as direct applications of the techniques presented. And last but not least, the book will offer scientists a comprehensive overview of the current state of development in the three core topics it covers.
This book aims to promote an understanding of the origins and dynamics of the software industry in a number of key emerging markets - Brazil, China, India and Israel, and to establish what experiences, if any, are potentially replicable in other prevailing markets. In-depth interviews with leading players in the industry are combined with other new data to provide a comparative study of the dynamics of the sector in emerging markets, to emphasise the public policy implications of these developments, and place them in a wider international context. The last 25 years have seen an explosive growth in the software industry, which is still overwhelmingly dominated by firms from North America and Europe. The authors argue that a number of companies from emerging markets have made significant headway and have even consolidated their positions on account of major cost advantages. They go on to explain the factors behind these developments, and conclude that the software industry, through its ability to project good corporate governance, its lack of hierarchy and widespread use of motivating working practices and compensation schemes, has proved a powerful example to other sectors in these emerging market economies. This book will be of immense interest to both academics and practitioners with an interest in development economics or technology.
This well structured book discusses lifecycle optimization of software projects for crisis management by means of software engineering methods and tools. Its outcomes are based on lessons learned from the software engineering crisis which started in the 1960s. The book presents a systematic approach to overcome the crisis in software engineering depends which not only depends on technology-related but also on human-related factors. It proposes an adaptive methodology for software product development, which optimizes the software product lifecycle in order to avoid "local" crises of software production. The general lifecycle pattern and its stages are discussed, and their impact on the time and budget of the software product development is analyzed. The book identifies key advantages and disadvantages for various models selected and concludes that there is no "silver bullet", or universal model, which suits all software products equally well. It approaches software architecture in terms of process, data and system perspectives and proposes an incremental methodology for crisis-agile development of large-scale, distributed heterogeneous applications. The book introduces a number of specialized approaches which are widely used in industry but are often ignored in general writings because of their vendor-specificity. In doing so, the book builds a helpful bridge from academic conceptions of software engineering to the world of software engineering practice. With its systematic coverage of different software engineering methodologies and the presented rich systems engineering examples the book will be beneficial for a broader audience. |
![]() ![]() You may like...
Nonequilibrium Thermodynamics…
Yasar Demirel, Vincent Gerbaud
Paperback
The Unicode Cookbook for Linguists
Steven Moran, Michael Cysouw
Hardcover
R1,059
Discovery Miles 10 590
Crises in Oil, Gas and Petrochemical…
Mohammad Reza Rahimpour, Babak Omidvar, …
Paperback
R4,853
Discovery Miles 48 530
Modern Applications in Membrane Science…
Isabel Escobar, Bart Van der Bruggen
Hardcover
R5,821
Discovery Miles 58 210
Stability of Happiness - Theories and…
Kennon M. Sheldon, Richard E. Lucas
Paperback
R1,666
Discovery Miles 16 660
Carbon-based Polymer Nanocomposites for…
Ahmad Fauzi Ismail, Pei Sean Goh
Paperback
|