![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
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.
How to structure and build an automated testing regime that will give lasting benefits. Software testing is vitally important in the software development process, as illustrated by the growing market for automated testing tools. However, many attempts to automate software testing are not successful. At first glance, it seems easy to automate testing: just buy one
of the popular test execution tools, record the manual tests, and
play them back whenever you want to. Unfortunately, as those who
tried it have discovered, it doesn't work like that in practice.
Just as there is more to software design than knowing a programming
language, there is more to automating testing than knowing a
testing tool. "This first comprehensive treatment of software test automation
provides the equivalent of 2 or 3 years of on the job
experience." Features:
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 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.
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.
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods. This kernel, Essence, is a vocabulary for defining methods and practices. Essence was envisioned and originally created by Ivar Jacobson and his colleagues, developed by Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group (OMG) as a standard in 2014. Essence is a practice-independent framework for thinking and reasoning about the practices we have and the practices we need. Essence establishes a shared and standard understanding of what is at the heart of software development. Essence is agnostic to any particular method, lifecycle independent, programming language independent, concise, scalable, extensible, and formally specified. Essence frees the practices from their method prisons. The first part of the book describes Essence, the essential elements to work with, the essential things to do and the essential competencies you need when developing software. The other three parts describe more and more advanced use cases of Essence. Using real but manageable examples, it covers the fundamentals of Essence and the innovative use of serious games to support software engineering. It also explains how current practices such as user stories, use cases, Scrum, and micro-services can be described using Essence, and illustrates how their activities can be represented using the Essence notions of cards and checklists. The fourth part of the book offers a vision how Essence can be scaled to support large, complex systems engineering. Essence is supported by an ecosystem developed and maintained by a community of experienced people worldwide. From this ecosystem, professors and students can select what they need and create their own way of working, thus learning how to create ONE way of working that matches the particular situation and needs.
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 focuses on crisis management in software development which includes forecasting, responding and adaptive engineering models, methods, patterns and practices. It helps the stakeholders in understanding and identifying the key technology, business and human factors that may result in a software production crisis. These factors are particularly important for the enterprise-scale applications, typically considered very complex in managerial and technological aspects and therefore, specifically addressed by the discipline of software engineering. Therefore, this book throws light on the crisis responsive, resilient methodologies and practices; therewith, it also focuses on their evolutionary changes and the resulting benefits.
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.
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 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.
Modern embedded systems are used for connected, media-rich, and highly integrated handheld devices such as mobile phones, digital cameras, and MP3 players. All of these embedded systems require networking, graphic user interfaces, and integration with PCs, as opposed to traditional embedded processors that can perform only limited functions for industrial applications. While most books focus on these controllers, "Modern Embedded Computing" provides a thorough understanding of the platform architecture of modern embedded computing systems that drive mobile devices. The book offers a comprehensive view of developing a framework
for embedded systems-on-chips. Examples feature the Intel Atom
processor, which is used in high-end mobile devices such as
e-readers, Internet-enabled TVs, tablets, and net books. Beginning
with a discussion of embedded platform architecture and Intel
Atom-specific architecture, modular chapters cover system boot-up,
operating systems, power optimization, graphics and multi-media,
connectivity, and platform tuning. Companion lab materials
compliment the chapters, offering hands-on embedded design
experience.
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 edited book presents the scientific outcomes of the 17th International Conference on Software Engineering, Artificial Intelligence Research, Management and Applications (SERA 2019) held on May 29-31, 2019 in Honolulu, Hawaii. The aim of the 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. This book includes 13 of the conference's most promising papers featuring recent research in software engineering, management and applications
Since 1960, Advances in Computers has chronicled the constantly
shifting theories and methods of Information Technology which
greatly shapes our lives today
This book presents and discusses the state of the art and future trends in software engineering education, with a focus on agile methods and their budgetary implications. It introduces new and innovative methods, models and frameworks to focus the training towards the industry's requirements. The range of topics covered includes education models for software engineering, development of the software engineering discipline, innovation and evaluation of software engineering education, curricula for software engineering education, requirements and cultivation of outstanding software engineers for the future and cooperation models for industry and software engineering education.
This book brings together enterprise modeling and software specification, providing a conceptual background and methodological guidelines that concern the design of enterprise information systems. In this, two corresponding disciplines (enterprise engineering and software engineering) are considered in a complementary way. This is how the widely recognized gap between domain experts and software engineers could be effectively addressed. The content is, on the one hand, based on a conceptual invariance (embracing concepts whose essence transcends the barriers between social and technical disciplines) while on the other, the book is featuring a modeling duality, by bringing together social theories (that are underlying with regard to enterprise engineering) and computing paradigms (that are underlying as it concerns software engineering). In addition, the proposed approach as well as its guidelines and related notations further foster such enterprise-software modeling, by facilitating modeling generations and transformations. Considering unstructured business information in the beginning, the modeling process would progress through the methodological construction of enterprise models, to reach as far as a corresponding derivation of software specifications. Finally, the enterprise-software alignment is achieved in a component-based way, featuring a potential for re-using modeling constructs, such that the modeling effectiveness and efficiency are further stimulated. For the sake of grounding the presented studies, a case study and illustrative examples are considered. They are not only justifying the idea of bringing together (in a component-based way) enterprise modeling and software specification but they are also demonstrating various strengths and limitations of the proposed modeling approach. The book was mainly written for researchers and graduate students in enterprise information systems, and also for professionals whose work involves the specification and realization of such systems. In addition, researchers and practitioners entering these fields will benefit from the blended view on enterprise modeling and software specification, for the sake of an effective and efficient design of enterprise information systems.
This book deals with the problem of finding suitable languages that can represent specific classes of Petri nets, the most studied and widely accepted model for distributed systems. Hence, the contribution of this book amounts to the alphabetization of some classes of distributed systems. The book also suggests the need for a generalization of Turing computability theory. It is important for graduate students and researchers engaged with the concurrent semantics of distributed communicating systems. The author assumes some prior knowledge of formal languages and theoretical computer science.
This book constitutes the refereed proceedings of the 4th IFIP WG 8.1 Working Conference on Method Engineering, ME 2011, held in Paris, France, in April 2011. The 13 revised full papers and 6 short papers presented together with the abstracts of two keynote talks were carefully reviewed and selected from 30 submissions. The papers are organized in topical sections on situated method engineering, method engineering foundations, customized methods, tools for method engineering, new trends to build methods, and method engineering services.
Since 1960, Advances in Computers has chronicled the constantly
shifting theories and methods of Information Technology which
greatly shapes our lives today. "Highly Dependable Software" is the
58th volume in this Series. The seven chapters describe various
approaches towards dependability: software development
measurability, transformation oriented programming, Bounded Model
Checking, GUI testing, history and lessons from software
inspections, impact and problems related to errors in software, the
evolution of the various security policies. This book would be an
invaluable addition to any university course in computer
technology, and an excellent reference tool for industrial
practitioners.
This book addresses extensible and adaptable computing, a broad range of methods and techniques used to systematically tackle the future growth of systems and respond proactively and seamlessly to change. The book is divided into five main sections: Agile Software Development, Data Management, Web Intelligence, Machine Learning and Computing in Education. These sub-domains of computing work together in mutually complementary ways to build systems and applications that scale well, and which can successfully meet the demands of changing times and contexts. The topics under each track have been carefully selected to highlight certain qualitative aspects of applications and systems, such as scalability, flexibility, integration, efficiency and context awareness. The first section (Agile Software Development) includes six contributions that address related issues, including risk management, test case prioritization and tools, open source software reliability and predicting the change proneness of software. The second section (Data Management) includes discussions on myriad issues, such as extending database caches using solid-state devices, efficient data transmission, healthcare applications and data security. In turn, the third section (Machine Learning) gathers papers that investigate ML algorithms and present their specific applications such as portfolio optimization, disruption classification and outlier detection. The fourth section (Web Intelligence) covers emerging applications such as metaphor detection, language identification and sentiment analysis, and brings to the fore web security issues such as fraud detection and trust/reputation systems. In closing, the fifth section (Computing in Education) focuses on various aspects of computer-aided pedagogical methods. |
![]() ![]() You may like...
Dark Silicon and Future On-chip Systems…
Suyel Namasudra, Hamid Sarbazi-Azad
Hardcover
R4,084
Discovery Miles 40 840
Data Prefetching Techniques in Computer…
Pejman Lotfi-Kamran, Hamid Sarbazi-Azad
Hardcover
R4,067
Discovery Miles 40 670
The Blockchain Technology for Secure and…
Neeraj Kumar, Shubhani Aggarwal, …
Hardcover
R4,105
Discovery Miles 41 050
Edge/Fog Computing Paradigm: The…
Pethuru Raj, Kavita Saini, …
Hardcover
R4,112
Discovery Miles 41 120
Essential Java for Scientists and…
Brian Hahn, Katherine Malan
Paperback
R1,296
Discovery Miles 12 960
|