|
Books > Computing & IT > Computer programming > Software engineering
If you look around you will find that all computer systems, from
your portable devices to the strongest supercomputers, are
heterogeneous in nature. The most obvious heterogeneity is the
existence of computing nodes of different capabilities (e.g.
multicore, GPUs, FPGAs, ...). But there are also other
heterogeneity factors that exist in computing systems, like the
memory system components, interconnection, etc. The main reason for
these different types of heterogeneity is to have good performance
with power efficiency. Heterogeneous computing results in both
challenges and opportunities. This book discusses both. It shows
that we need to deal with these challenges at all levels of the
computing stack: from algorithms all the way to process technology.
We discuss the topic of heterogeneous computing from different
angles: hardware challenges, current hardware state-of-the-art,
software issues, how to make the best use of the current
heterogeneous systems, and what lies ahead. The aim of this book is
to introduce the big picture of heterogeneous computing. Whether
you are a hardware designer or a software developer, you need to
know how the pieces of the puzzle fit together. The main goal is to
bring researchers and engineers to the forefront of the research
frontier in the new era that started a few years ago and is
expected to continue for decades. We believe that academics,
researchers, practitioners, and students will benefit from this
book and will be prepared to tackle the big wave of heterogeneous
computing that is here to stay.
To provide the necessary security and quality assurance activities
into Internet of Things (IoT)-based software development,
innovative engineering practices are vital. They must be given an
even higher level of importance than most other events in the
field. Integrating the Internet of Things Into Software Engineering
Practices provides research on the integration of IoT into the
software development life cycle (SDLC) in terms of requirements
management, analysis, design, coding, and testing, and provides
security and quality assurance activities to IoT-based software
development. The content within this publication covers agile
software, language specification, and collaborative software and is
designed for analysts, security experts, IoT software programmers,
computer and software engineers, students, professionals, and
researchers.
Chatbots offer exceptional services to end-users due to various
factors including the ability to respond to customers' requests
quickly according to their convenience. Given the magnitude of
research and interest in chatbots, further study on several vital
and evolving concerns including human-bot interaction, chatbot
adoption, chatbot architecture and design considerations, and
chatbot evaluation is required to ensure the technology is utilized
appropriately. Trends, Applications, and Challenges of Chatbot
Technology provides novel research content and reviews of current
chatbot technology and sheds light on challenges and open questions
as well as possible research directions. Covering key topics such
as human-computer interaction, customer support, and algorithms,
this reference work is ideal for computer scientists, industry
professionals, policymakers, researchers, academicians,
practitioners, scholars, instructors, and students.
The highly dynamic world of information technology service
management stresses the benefits of the quick and correct
implementation of IT services. A disciplined approach relies on a
separate set of assumptions and principles as an agile approach,
both of which have complicated implementation processes as well as
copious benefits. Combining these two approaches to enhance the
effectiveness of each, while difficult, can yield exceptional
dividends. Balancing Agile and Disciplined Engineering and
Management Approaches for IT Services and Software Products is an
essential publication that focuses on clarifying theoretical
foundations of balanced design methods with conceptual frameworks
and empirical cases. Highlighting a broad range of topics including
business trends, IT service, and software development, this book is
ideally designed for software engineers, software developers,
programmers, information technology professionals, researchers,
academicians, and students.
An integral element of software engineering is model engineering.
They both endeavor to minimize cost, time, and risks with quality
software. As such, model engineering is a highly useful field that
demands in-depth research on the most current approaches and
techniques. Only by understanding the most up-to-date research can
these methods reach their fullest potential. Advancements in
Model-Driven Architecture in Software Engineering is an essential
publication that prepares readers to exercise modeling and model
transformation and covers state-of-the-art research and
developments on various approaches for methodologies and platforms
of model-driven architecture, applications and software development
of model-driven architecture, modeling languages, and modeling
tools. Highlighting a broad range of topics including cloud
computing, service-oriented architectures, and modeling languages,
this book is ideally designed for engineers, programmers, software
designers, entrepreneurs, researchers, academicians, and students.
As human activities moved to the digital domain, so did all the
well-known malicious behaviors including fraud, theft, and other
trickery. There is no silver bullet, and each security threat calls
for a specific answer. One specific threat is that applications
accept malformed inputs, and in many cases it is possible to craft
inputs that let an intruder take full control over the target
computer system. The nature of systems programming languages lies
at the heart of the problem. Rather than rewriting decades of
well-tested functionality, this book examines ways to live with the
(programming) sins of the past while shoring up security in the
most efficient manner possible. We explore a range of different
options, each making significant progress towards securing legacy
programs from malicious inputs. The solutions explored include
enforcement-type defenses, which excludes certain program
executions because they never arise during normal operation.
Another strand explores the idea of presenting adversaries with a
moving target that unpredictably changes its attack surface thanks
to randomization. We also cover tandem execution ideas where the
compromise of one executing clone causes it to diverge from another
thus revealing adversarial activities. The main purpose of this
book is to provide readers with some of the most influential works
on run-time exploits and defenses. We hope that the material in
this book will inspire readers and generate new ideas and
paradigms.
Software development and design is an intricate and complex process
that requires a multitude of steps to ultimately create a quality
product. One crucial aspect of this process is minimizing potential
errors through software fault prediction. Enhancing Software Fault
Prediction With Machine Learning: Emerging Research and
Opportunities is an innovative source of material on the latest
advances and strategies for software quality prediction. Including
a range of pivotal topics such as case-based reasoning, rate of
improvement, and expert systems, this book is an ideal reference
source for engineers, researchers, academics, students,
professionals, and practitioners interested in novel developments
in software design and analysis.
Digital image processing is a field that is constantly improving.
Gaining high-level understanding from digital images is a key
requirement for computing. One aspect of study that is assisting
with this advancement is fractal theory. This new science has
gained momentum and popularity as it has become a key topic of
research in the area of image analysis. Examining Fractal Image
Processing and Analysis is an essential reference source that
discusses fractal theory applications and analysis, including
box-counting analysis, multi-fractal analysis, 3D fractal analysis,
and chaos theory, as well as recent trends in other soft computing
techniques. Featuring research on topics such as image compression,
pattern matching, and artificial neural networks, this book is
ideally designed for system engineers, computer engineers,
professionals, academicians, researchers, and students seeking
coverage on problem-oriented processing techniques and imaging
technologies.
In this book the author presents some techniques for exploring
trees and graphs. He illustrates the linear search technique and
the backtracking technique, and as instances of tree exploration
methods he presents various algorithms for parsing subclasses of
context-free languages. He also illustrates some tree and graph
exploration and manipulation methods by presenting, among others,
algorithms for visiting trees, evaluating Boolean expressions,
proving propositional formulas, computing paths in graphs, and
performing string matching. This book has been used for advanced
undergraduate and graduate courses on automata and formal
languages, and assumes some prior exposure to the basic notions in
that area. Sample programs are presented in Java and Prolog.
The development of software has expanded substantially in recent
years. As these technologies continue to advance, well-known
organizations have begun implementing these programs into the ways
they conduct business. These large companies play a vital role in
the economic environment, so understanding the software that they
utilize is pertinent in many aspects. Researching and analyzing the
tools that these corporations use will assist in the practice of
software engineering and give other organizations an outline of how
to successfully implement their own computational methods. Tools
and Techniques for Software Development in Large Organizations:
Emerging Research and Opportunities is an essential reference
source that discusses advanced software methods that prominent
companies have adopted to develop high quality products. This book
will examine the various devices that organizations such as Google,
Cisco, and Facebook have implemented into their production and
development processes. Featuring research on topics such as
database management, quality assurance, and machine learning, this
book is ideally designed for software engineers, data scientists,
developers, programmers, professors, researchers, and students
seeking coverage on the advancement of software devices in today's
major corporations.
Complex systems are pervasive in many areas of science. With the
increasing requirement for high levels of system performance,
complex systems has become an important area of research due to its
role in many industries. Advances in System Dynamics and Control
provides emerging research on the applications in the field of
control and analysis for complex systems, with a special emphasis
on how to solve various control design and observer design
problems, nonlinear systems, interconnected systems, and singular
systems. Featuring coverage on a broad range of topics, such as
adaptive control, artificial neural network, and synchronization,
this book is an important resource for engineers, professionals,
and researchers interested in applying new computational and
mathematical tools for solving the complicated problems of
mathematical modeling, simulation, and control.
|
|