![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
This book presents a design methodology that is practically applicable to the architectural design of a broad range of systems. It is based on fundamental design concepts to conceive and specify the required functional properties of a system, while abstracting from the specific implementation functions and technologies that can be chosen to build the system. Abstraction and precision are indispensable when it comes to understanding complex systems and precisely creating and representing them at a high functional level. Once understood, these concepts appear natural, self-evident and extremely powerful, since they can directly, precisely and concisely reflect what is considered essential for the functional behavior of a system. The first two chapters present the global views on how to design systems and how to interpret terms and meta-concepts. This informal introduction provides the general context for the remainder of the book. On a more formal level, Chapters 3 through 6 present the main basic design concepts, illustrating them with examples. Language notations are introduced along with the basic design concepts. Lastly, Chapters 7 to 12 discuss the more intricate basic design concepts of interactive systems by focusing on their common functional goal. These chapters are recommended to readers who have a particular interest in the design of protocols and interfaces for various systems. The didactic approach makes it suitable for graduate students who want to develop insights into and skills in developing complex systems, as well as practitioners in industry and large organizations who are responsible for the design and development of large and complex systems. It includes numerous tangible examples from various fields, and several appealing exercises with their solutions.
This book summarizes the new research results presented at the 12th Joint Conference on Knowledge-Based Software Engineering (JCKBSE 2018), which took place on August 27-30, 2018 on the island of Corfu, Greece. The JCKBSE is a well-established international biennial conference that focuses on the applications of Artificial Intelligence in Software Engineering. The JCKBSE 2018 was organized by the Department of Informatics of the University of Piraeus, the Department of Computer and Information Engineering of Nippon Institute of Technology, and the Department of Informatics of Ionian University. The book will benefit not only experts and researchers in the field of (Knowledge-Based) Software Engineering, but also general readers in the fields of Artificial Intelligence, Computational Intelligence and Computer Science who wish to learn more about the field of (Knowledge-Based) Software Engineering and its applications. An extensive list of bibliographic references at the end of each paper encourages readers to probe further into the application areas that interest them most.
This book provides readers with an in-depth discussion of circuit simulation, combining basic electrical engineering circuit theory with Python programming. It fills an information gap by describing the development of Python Power Electronics, an open-source software for simulating circuits, and demonstrating its use in a sample circuit. Unlike typical books on circuit theory that describe how circuits can be solved mathematically, followed by examples of simulating circuits using specific, commercial software, this book has a different approach and focus. The author begins by describing every aspect of the open-source software, in the context of non-linear power electronic circuits, as a foundation for aspiring or practicing engineers to embark on further development of open source software for different purposes. By demonstrating explicitly the operation of the software through algorithms, this book brings together the fields of electrical engineering and software technology.
Over the last four decades, computer systems have required increasingly complex software development and maintenance support. The marriage of software engineering, the application of engineering principals to produce economical and reliable software, to software development tools and methods promised to simplify software development while improving accuracy and speed, tools have evolved that use computer graphics to represent concepts that generate code from integrated design specifications. Practicing Software Engineering in the 21st Century addresses the tools and techniques utilized when developing and implementing software engineering practices into computer systems.
* Deals with powerful concepts in a simple way * Highlights
important characteristics of Operating systems and other abstract
entities in a new way * Explores the tenets of the UNIX operating
system philosophy
This book focuses on innovative strategies to manage and build software systems for generating new knowledge from large archaeological data sets The book also reports on two case studies carried out in real-world scenarios within the Cultural Heritage setting. The book presents an original conceptual framework for developing software solutions to assist the knowledge generation process in connection with large archaeological data sets and related cultural heritage information- a context in which the inputs are mainly textual sources written in freestyle, i.e. without a predetermined, standard structure. Following an in-depth exploration of recent works on the knowledge generation process in the above-mentioned context and IT-based options for facilitating it, the book proposes specific new techniques capable of capturing the structure and semantics implicit in such textual sources, and argues for using this information in the knowledge generation process. The main result is the development of a conceptual framework that can accommodate textual sources and integrate the information included in them into a software engineering framework. The said framework is meant to assist cultural heritage professionals in general, and archaeologists in particular, in both knowledge extraction and the subsequent decision-making process.
Despite pressures of economic slowdown and the e-commerce bubble burst, moving towards e-services is a compelling necessity for today's organizations. Companies that are reluctant to adopt a service-oriented architecture in their IT systems will be missing out on unprecedented opportunities to create business value with relatively small IT investments. ""Engineering Service Oriented Systems: A Model-Driven Approach"" combines concepts from systems theory, model driven software engineering, and ontologies for software engineering into a systematic method for engineering service oriented systems while integrating both business and software perspectives.
This book gathers 12 of the most promising papers presented at the 15th International Conference on Software Engineering, Artificial Intelligence Research, Management and Applications (SERA 2017) held on June 7-9, 2017 at the University of Greenwich, London, UK. The aim of this 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, to share their experiences and to exchange new ideas and information in a meaningful way. The book also presents research findings regarding all aspects (theory, applications and tools) of computer and information science, and discusses the practical challenges encountered along the way and the solutions adopted to solve them.
This book highlights the advantages and disadvantages of various software development lifecycle models, and describes when to apply testing -- and when to use other, more cost-effective techniques. It also shows how to incorporate V&V techniques if your organization does not have a written procedure, and explains how to implement the inspection process.
This book constitutes the refereed proceedings of the 14th IFIP WG 2.13 International Conference on Open Source Systems, OSS 2018, held in Athens, Greece, in June 2018. The 14 revised full papers and 2 short papers presented were carefully reviewed and selected from 38 submissions. The papers cover a wide range of topics in the field of free/libre open source software (FLOSS) and are organized in the following thematic sections: organizational aspects of OSS projects, OSS projects validity, mining OSS data, OSS in public administration, OSS governance, and OSS reusability.
(This book is available at a reduced price for course adoption when ordering six copies or more. Please contact [email protected] for more information.) The purpose of Experimentation in Software Engineering: An Introduction is to introduce students, teachers, researchers, and practitioners to experimentation and experimental evaluation with a focus on software engineering. The objective is, in particular, to provide guidelines for performing experiments evaluating methods, techniques and tools in software engineering. The introduction is provided through a process perspective. The focus is on the steps that we go through to perform experiments and quasi-experiments. The process also includes other types of empirical studies. The motivation for the book emerged from the need for support we experienced when turning our software engineering research more experimental. Several books are available which either treat the subject in very general terms or focus on some specific part of experimentation; most focus on the statistical methods in experimentation. These are important, but there were few books elaborating on experimentation from a process perspective, none addressing experimentation in software engineering in particular. The scope of Experimentation in Software Engineering: An Introduction is primarily experiments in software engineering as a means for evaluating methods, techniques and tools. The book provides some information regarding empirical studies in general, including both case studies and surveys. The intention is to provide a brief understanding of these strategies and in particular to relate them to experimentation. Experimentation inSoftware Engineering: An Introduction is suitable for use as a textbook or a secondary text for graduate courses, and for researchers and practitioners interested in an empirical approach to software engineering.
This book addresses mechanisms for reducing model heterogeneity induced by the absence of explicit semantics expression in the formal techniques used to specify design models. More precisely, it highlights the advances in handling both implicit and explicit semantics in formal system developments, and discusses different contributions expressing different views and perceptions on the implicit and explicit semantics. The book is based on the discussions at the Shonan meeting on this topic held in 2016, and includes contributions from the participants summarising their perspectives on the problem and offering solutions. Divided into 5 parts: domain modelling, knowledge-based modelling, proof-based modelling, assurance cases, and refinement-based modelling, and offers inspiration for researchers and practitioners in the fields of formal methods, system and software engineering, domain knowledge modelling, requirement analysis, and explicit and implicit semantics of modelling languages.
How do we define the nature of our business, gather everything that we know about it, and then centralize our information in one, easily accessed place within the organization? Breslin and McGann call such knowledge our ways of working and the place where it will be found a business knowledge repository. All of a company's accumulated operations data, its manuals and procedures, its records of compliance with myriad regulations, its audits, disaster recovery plans--are essential information that today's management needs at its fingertips, and information that tomorroW's management must be sure can easily be found. Breslin and McGann show clearly and comprehensively how business knowledge repositories can be established and maintained, what should go into them and how to get it out, who should have access, and all of the other details that management needs to make the most of this valuable resource and means of doing business. An essential study and guide for management at upper levels in all types of organizations, both public and private. Breslin and McGann show that once an organization's knowledge of itself is formulated into its ways of working, its so-called object orientation makes it easily maintained. The repository approach to organizing and consolidating knowledge makes it possible for all of its potential users to access it easily, without having to go to one source for one thing they need and to another for another thing, a tedious and costly procedure in many organizations that have allowed their information and knowledge resources to not only grow but become duplicated as well. The repository approach also makes it possible for management to organize and access information by job functions, and to make it available to employees more easily in training situations. Regulators and auditors are also more easily served. As a result, CFOs will find their annual audit and various compliance fees considerably reduced. Breslin and McGann's book is thus a blueprint for the creation of knowledge repositories and a discussion of how graphical communication between information systems creators and their client end users can be made to flow smoothly and efficiently.
Cloud service benchmarking can provide important, sometimes surprising insights into the quality of services and leads to a more quality-driven design and engineering of complex software architectures that use such services. Starting with a broad introduction to the field, this book guides readers step-by-step through the process of designing, implementing and executing a cloud service benchmark, as well as understanding and dealing with its results. It covers all aspects of cloud service benchmarking, i.e., both benchmarking the cloud and benchmarking in the cloud, at a basic level. The book is divided into five parts: Part I discusses what cloud benchmarking is, provides an overview of cloud services and their key properties, and describes the notion of a cloud system and cloud-service quality. It also addresses the benchmarking lifecycle and the motivations behind running benchmarks in particular phases of an application lifecycle. Part II then focuses on benchmark design by discussing key objectives (e.g., repeatability, fairness, or understandability) and defining metrics and measurement methods, and by giving advice on developing own measurement methods and metrics. Next, Part III explores benchmark execution and implementation challenges and objectives as well as aspects like runtime monitoring and result collection. Subsequently, Part IV addresses benchmark results, covering topics such as an abstract process for turning data into insights, data preprocessing, and basic data analysis methods. Lastly, Part V concludes the book with a summary, suggestions for further reading and pointers to benchmarking tools available on the Web. The book is intended for researchers and graduate students of computer science and related subjects looking for an introduction to benchmarking cloud services, but also for industry practitioners who are interested in evaluating the quality of cloud services or who want to assess key qualities of their own implementations through cloud-based experiments.
This book presents some of the emerging techniques and technologies used to handle Web data management. Authors present novel software architectures and emerging technologies and then validate using experimental data and real world applications. The contents of this book are focused on four popular thematic categories of intelligent Web data management: cloud computing, social networking, monitoring and literature management. The Volume will be a valuable reference to researchers, students and practitioners in the field of Web data management, cloud computing, social networks using advanced intelligence tools.
This book covers both theory and applications in the automation of software testing tools and techniques for various types of software (e.g. object-oriented, aspect-oriented, and web-based software). When software fails, it is most often due to lack of proper and thorough testing, an aspect that is even more acute for object-oriented, aspect-oriented, and web-based software. Further, since it is more difficult to test distributed and service-oriented architecture-based applications, there is a pressing need to discuss the latest developments in automated software testing. This book discusses the most relevant issues, models, tools, challenges, and applications in automated software testing. Further, it brings together academic researchers, scientists, and engineers from a wide range of industrial application areas, who present their latest findings and identify future challenges in this fledging research area.
This book details the conceptual foundations, design and implementation of the domain-specific language (DSL) development system DjDSL. DjDSL facilitates design-decision-making on and implementation of reusable DSL and DSL-product lines, and represents the state-of-the-art in language-based and composition-based DSL development. As such, it unites elements at the crossroads between software-language engineering, model-driven software engineering, and feature-oriented software engineering. The book is divided into six chapters. Chapter 1 ("DSL as Variable Software") explains the notion of DSL as variable software in greater detail and introduces readers to the idea of software-product line engineering for DSL-based software systems. Chapter 2 ("Variability Support in DSL Development") sheds light on a number of interrelated dimensions of DSL variability: variable development processes, variable design-decisions, and variability-implementation techniques for DSL. The three subsequent chapters are devoted to the key conceptual and technical contributions of DjDSL: Chapter 3 ("Variable Language Models") explains how to design and implement the abstract syntax of a DSL in a variable manner. Chapter 4 ("Variable Context Conditions") then provides the means to refine an abstract syntax (language model) by using composable context conditions (invariants). Next, Chapter 5 ("Variable Textual Syntaxes") details solutions to implementing variable textual syntaxes for different types of DSL. In closing, Chapter 6 ("A Story of a DSL Family") shows how to develop a mixed DSL in a step-by-step manner, demonstrating how the previously introduced techniques can be employed in an advanced example of developing a DSL family. The book is intended for readers interested in language-oriented as well as model-driven software development, including software-engineering researchers and advanced software developers alike. An understanding of software-engineering basics (architecture, design, implementation, testing) and software patterns is essential. Readers should especially be familiar with the basics of object-oriented modelling (UML, MOF, Ecore) and programming (e.g., Java).
This book is written for engineering students and working professionals. Technical professionals are increasingly involved in IT issues, such as implementing IT systems, managing them, and taking part in requirements analysis/vendor selection. In this book, the basics of production planning systems (PPS) are covered, as well as their implementation in ERP-Systems like SAP. Readers also learn the basics of practical IT management and software creation through detailed, real-world examples. The book serves as a full 5 ECTS study module, which fits into any engineering curriculum. 150 multiple-choice quizzes, practical exercises and a text filled with experiential examples make it a convenient choice for selfstudy and for classroom use.
Information Systems Development: Reflections, Challenges and New Directions, is the collected proceedings of the 20th International Conference on Information Systems Development held in Edinburgh, Scotland, August 24 - 26, 2011. It follows in the tradition of previous conferences in the series in exploring the connections between industry, research and education. These proceedings represent ongoing reflections within the academic community on established information systems topics and emerging concepts, approaches and ideas. It is hoped that the papers herein contribute towards disseminating research and improving practice
While a number of books on the market deal with software requirements, this is the first resource to offer a methodology for discovering and testing the real business requirements that software products must meet in order to provide value.
As the software industry continues to evolve, professionals are continually searching for practices that can assist with the various problems and challenges in information technology (IT). Agile development has become a popular method of research in recent years due to its focus on adapting to change. There are many factors that play into this process, so success is no guarantee. However, combining agile development with other software engineering practices could lead to a high rate of success in problems that arise during the maintenance and development of computing technologies. Software Engineering for Agile Application Development is a collection of innovative research on the methods and implementation of adaptation practices in software development that improve the quality and performance of IT products. The presented materials combine theories from current empirical research results as well as practical experiences from real projects that provide insights into incorporating agile qualities into the architecture of the software so that the product adapts to changes and is easy to maintain. While highlighting topics including continuous integration, configuration management, and business modeling, this book is ideally designed for software engineers, software developers, engineers, project managers, IT specialists, data scientists, computer science professionals, researchers, students, and academics.
This book summarizes the research findings presented at the 13th International Joint Conference on Knowledge-Based Software Engineering (JCKBSE 2020), which took place on August 24-26, 2020. JCKBSE 2020 was originally planned to take place in Larnaca, Cyprus. Unfortunately, the COVID-19 pandemic forced it be rescheduled as an online conference. JCKBSE is a well-established, international, biennial conference that focuses on the applications of artificial intelligence in software engineering. The 2020 edition of the conference was organized by Hiroyuki Nakagawa, Graduate School of Information Science and Technology, Osaka University, Japan, and George A. Tsihrintzis and Maria Virvou, Department of Informatics, University of Piraeus, Greece. This research book is a valuable resource for experts and researchers in the field of (knowledge-based) software engineering, as well as general readers in the fields of artificial and computational Intelligence and, more generally, computer science wanting to learn more about the field of (knowledge-based) software engineering and its applications. An extensive list of bibliographic references at the end of each paper helps readers to probe further into the application areas of interest to them. |
![]() ![]() You may like...
Hardware Accelerator Systems for…
Shiho Kim, Ganesh Chandra Deka
Hardcover
AI and Cloud Computing, Volume 120
Suyel Namasudra, Sheng Wu
Hardcover
Research Anthology on Architectures…
Information R Management Association
Hardcover
R13,716
Discovery Miles 137 160
The Blockchain Technology for Secure and…
Neeraj Kumar, Shubhani Aggarwal, …
Hardcover
Essential Java for Scientists and…
Brian Hahn, Katherine Malan
Paperback
R1,341
Discovery Miles 13 410
Balancing Agile and Disciplined…
Manuel Mora, Jorge Marx Gomez, …
Hardcover
R6,798
Discovery Miles 67 980
Dark Silicon and Future On-chip Systems…
Suyel Namasudra, Hamid Sarbazi-Azad
Hardcover
R4,186
Discovery Miles 41 860
|