![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
Requirements engineering is a field of knowledge concerned with the systematic process of eliciting, analyzing and modeling requirements. Though it is usually understood in relation to software system requirements, most of its principles and some of its techniques can be adapted to other problems dealing with complex sets of requirements. The engineering vision indicates that this should be a practical and well-defined process where trade-offs have to be considered to obtain the best results. Mature software development needs mature requirements engineering. This was true ten years ago when requirements engineering became an important component of the software development process. It remains true today when the pressure to deliver code on time and on budget is increasing, and the demand for higher quality software also increases. requirements. Each chapter addresses a specific problem where the authors summarize their experiences and results to produce well-fit and traceable requirements. Chapters highlight familiar issues with recent results and experiences which are accompanied by chapters describing well-tuned new methods for specific domains. The book is designed for a professional audience, composed of researchers and practitioners in industry. It is also suitable as a secondary text for graduate-level students in computer science and engineering.
Grounded in the user-centered design movement, this book offers a broad consideration of how our civilization has evolved its technical infrastructure for human purpose to help us make sense of the contemporary world of information infrastructure and online existence. The author incorporates historical, cultural and aesthetic approaches to situating information and its underlying technologies across time in the collective, lived experiences of humanity. In today's digital information world, user experience is vital to the success of any product or service. Yet as the user population expands to include us all, designing for people who vary in skills, abilities, preferences and backgrounds is challenging. This book provides an integrated understanding of users, and the methods that have evolved to identify usability challenges, that can facilitate cohesive and earlier solutions. The book treats information creation and use as a core human behavior based on acts of representation and recording that humans have always practiced. It suggests that the traditional ways of studying information use, with their origins in the distinct layers of social science theories and models is limiting our understanding of what it means to be an information user and hampers our efforts at being truly user-centric in design. Instead, the book offers a way of integrating the knowledge base to support a richer view of use and users in design education and evaluation. Understanding Users is aimed at those studying or practicing user-centered design and anyone interested in learning how people might be better integrated in the design of new technologies to augment human capabilities and experiences.
Business practices are rapidly changing due to technological advances in the workplace. Organizations are challenged to implement new programs for more efficient business while maintaining their standards of excellence and achievement. Achieving Enterprise Agility through Innovative Software Development brings together the necessary methodologies and resources for organizations to understand the challenges and discover the solutions that will enhance their businesses. Including chapters on recent advances in software engineering, this publication will be an essential reference source for researchers, practitioners, students, and professionals in the areas of agile software methodologies, lean development, knowledge engineering, artificial intelligence, cloud computing, software project management, and component-based software engineering.
The object oriented paradigm has become one of the dominant forces in the computing world. According to a recent survey, by the year 2000, more than 80% of development organizations are expected to use object technology as the basis for their distributed development strategies.
This state-of-the-art book aims to address problems and solutions in implementing complex and high quality systems past the year 2000. In particular, it focuses on the development of languages, methods and tools and their further evaluation. Among the issues discussed are the following: evolution of software systems; specific application domains; supporting portability and reusability of software components; the development of networking software; and software architectures for various application domains. This book comprises the proceedings of the International Conference on Systems Implementation 2000: Languages, Methods and Tools, sponsored by the International Federation for Information Processing (IFIP) and was held in Germany, in February 1998. It will be particularly relevant to researchers in the field of software engineering and to software developers working in larger companies.
By proposing and forming a mobile manipulator for modern multi-floor buildings, A Robotic Framework for the Mobile Manipulator: Theory and Application helps readers visualize an end-to-end workflow for making a robot system work in a targeted environment. From a product-oriented viewpoint, this book is considered as a bridge from theories to real products, in which robotic software modules and the robotic system integration are mainly concerned. In the end, readers will have an overview of how to build and integrate various single robotic modules to execute a list of designed tasks in the real world, as well as how to make a robot system work independently, without human interventions. With references and execution guidelines provided at the end of each chapter, the book will be a useful tool for developers and researchers looking to expand their knowledge about the robotics and the robotic software.
"Handbook of Open Source Tools" introduces a comprehensive collection of advanced open source tools useful in developing software applications. The book contains information on more than 200 open-source tools which include software construction utilities for compilers, virtual-machines, database, graphics, high-performance computing, OpenGL, geometry, algebra, graph theory, GUIs and more. Special highlights for software construction utilities and application libraries are included. Each tool is covered in the context of a real like application development setting. This unique handbook presents a comprehensive discussion of advanced tools, a valuable asset used by most application developers and programmers; includes a special focus on Mathematical Open Source Software not available in most Open Source Software books, and introduces several tools (eg ACL2, CLIPS, CUDA, and COIN) which are not known outside of select groups, but are very powerful. "Handbook of Open Source Tools "is designed for application developers and programmers working with Open Source Tools. Advanced-level students concentrating on Engineering, Mathematics and Computer Science will find this reference a valuable asset as well.
A survey of the state of the art of deterministic resource-constrained project scheduling with time windows. General temporal constraints and several different types of limited resources are considered. A large variety of time-based, financial, and resource-based objectives - important in practice - are studied. A thorough structural analysis of the feasible region of project scheduling problems and a classification and detailed investigation of objective functions are performed, which can be exploited for developing efficient exact and heuristic solution methods. New interesting applications of project scheduling to production and operations management as well as investment projects are discussed in the second edition.
DNA or Deoxyribonucleic Acid computing is an emerging branch of computing that uses DNA sequence, biochemistry, and hardware for encoding genetic information in computers. Here, information is represented by using the four genetic alphabets or DNA bases, namely A (Adenine), G (Guanine), C (Cytosine), and T (Thymine), instead of the binary representation (1 and 0) used by traditional computers. This is achieved because short DNA molecules of any arbitrary sequence of A, G, C, and T can be synthesized to order. DNA computing is mainly popular for three reasons: (i) speed (ii) minimal storage requirements, and (iii) minimal power requirements. There are many applications of DNA computing in the field of computer science. Nowadays, DNA computing is widely used in cryptography for achieving a strong security technique, so that unauthorized users are unable to retrieve the original data content. In DNA-based encryption, data are encrypted by using DNA bases (A, T, G, and C) instead of 0 and 1. As four DNA bases are used in the encryption process, DNA computing supports more randomness and makes it more complex for attackers or malicious users to hack the data. DNA computing is also used for data storage because a large number of data items can be stored inside the condensed volume. One gram of DNA holds approx DNA bases or approx 700 TB. However, it takes approx 233 hard disks to store the same data on 3 TB hard disks, and the weight of all these hard disks can be approx 151 kilos. In a cloud environment, the Data Owner (DO) stores their confidential encrypted data outside of their own domain, which attracts many attackers and hackers. DNA computing can be one of the best solutions to protect the data of a cloud server. Here, the DO can use DNA bases to encrypt the data by generating a long DNA sequence. Another application of DNA computing is in Wireless Sensor Network (WSN). Many researchers are trying to improve the security of WSN by using DNA computing. Here, DNA cryptography is used along with Secure Socket Layer (SSL) that supports a secure medium to exchange information. However, recent research shows some limitations of DNA computing. One of the critical issues is that DNA cryptography does not have a strong mathematical background like other cryptographic systems. This edited book is being planned to bring forth all the information of DNA computing. Along with the research gaps in the currently available books/literature, this edited book presents many applications of DNA computing in the fields of computer science. Moreover, research challenges and future work directions in DNA computing are also provided in this edited book.
The 130th volume is an eclectic volume inspired by recent issues of interest in research and development in computer science and computer engineering. The volume is a collection of five chapters.
A Paradigm for Decentralized Process Modeling presents a novel approach to decentralized process modeling that combines both trends and suggests a paradigm for decentralized PCEs, supporting concerted efforts among geographically-dispersed teams - each local individual or team with its own autonomous process - with emphasis on flexible control over the degree of collaboration versus autonomy provided. A key guideline in this approach is to supply abstraction mechanisms whereby pre-existing processes (or workflows) can be encapsulated and retain security of their internal artifacts and status data, while agreeing with other processes on formal interfaces through which all their interactions are conducted on intentionally shared information. This book is primarily intended to provide an in-depth discussion of decentralized process modeling and enactment technology, covering both high-level concepts and a full-blown realization of these concepts in a concrete system. Either the whole book or selected chapters could be used in a graduate course on software engineering, software process, or software development environments, or even for a course on workflow systems outside computer science (e.g., in a classical engineering department for engineering design, or in a business school for business practices or enterprise-wide management, or in the medical informatics department of a health science institution concerned with computer-assistance for managed care). Selected portions of the book, such as section 2.2 on Marvel, could also be employed as a case study in advanced undergraduate software engineering courses. A Paradigm for Decentralized Process Modeling is a valuable resource for both researchers and practitioners, particularly in software engineering, software development environments, and software process and workflow management, but also in electrical, mechanical, civil and other areas of engineering which have analogous needs for design processes, environmental support and concurrent engineering, and beyond to private and public sector workflow management and control, groupware support, and heterogeneous distributed systems in general.
Conquer the world of Android app development Android has taken over the mobile and TV markets and become unstoppable! Android offers a vast stage for developers to serve millions--and rake in the profits--with diverse and wide-ranging app ideas. Whether you're a raw recruit or a veteran programmer, you can get in on the action and become a master of the Android programming universe with the new edition of Android Application Development For Dummies All-in-One. In addition to receiving guidance on mobile and TV development, you'll find overviews of native code, watch, car, Android wear, and other device development. This friendly, easy-to-follow book kicks off by offering a fundamental understanding of Android's major technical ideas, including functional programming techniques. It moves on to show you how to work effectively in Studio, program cool new features, and test your app to make sure it's ready to release to a waiting world. You'll also have an opportunity to brush up on your Kotlin and develop your marketing savvy. There are millions of potential customers out there, and you want to stand out from the crowd! Understand new features and enhancements Get development best-practices Know your Android hardware Access online materials With a market share like Android's, the stakes couldn't be higher. Android Application Development For Dummies All-in-One levels the field and gives you the tools you need to take on the world.
This book presents the research challenges that are due to the introduction of the 3rd dimension in chips for researchers and covers the whole architectural design approach for 3D-SoCs. Nowadays the 3D-Integration technologies, 3D-Design techniques, and 3D-Architectures are emerging as interesting, truly hot, broad topics. The present book gathers the recent advances in the whole domain by renowned experts in the field to build a comprehensive and consistent book around the hot topics of three-dimensional architectures and micro-architectures. This book includes contributions from high level international teams working in this field.
At first glance the concepts of time and of Petri nets are quite contrary: while time determines the occurrences of events in a system, classic Petri nets consider their causal relationships and they represent events as concurrent systems. But if we take a closer look at how time and causality are intertwined we realize that there are many possible ways in which time and Petri nets interact. This book takes a closer look at three time-dependent Petri nets: Time Petri nets, Timed Petri nets, and Petri nets with time windows. The author first explains classic Petri nets and their fundamental properties. Then the pivotal contribution of the book is the introduction of different algorithms that allow us to analyze time-dependent Petri nets. For Time Petri nets, the author presents an algorithm that proves the behavioral equivalence of a net where time is designed once with real and once with natural numbers, so we can reduce the state space and consider the integer states exclusively. For Timed Petri nets, the author introduces two time-dependent state equations, providing a sufficient condition for the non-reachability of states, and she also defines a local transformation for converting these nets into Time Petri nets. Finally, she shows that Petri nets with time-windows have the ability to realize every transition sequence fired in the net omitting time restrictions. These classes of time-dependent Petri nets show that time alone does not change the power of a Petri net, in fact time may or may not be used to force firing. For Time Petri nets and Timed Petri nets we can say that they are Turing-powerful, and thus more powerful than classic Petri nets, because there is a compulsion to fire at some point in time. By contrast, Petri nets with time-windows have no compulsion to fire, their expressiveness power is less than that of Turing-machines. This book derives from advanced lectures, and the text is supported throughout withexamples and exercises. It issuitable for graduate courses in computer science, mathematics, engineering, and related disciplines, and as a reference for researchers."
With the rapid growth of networking and high-computing power, the demand for large-scale and complex software systems has increased dramatically. Many of the software systems support or supplant human control of safety-critical systems such as flight control systems, space shuttle control systems, aircraft avionics control systems, robotics, patient monitoring systems, nuclear power plant control systems, and so on. Failure of safety-critical systems could result in great disasters and loss of human life. Therefore, software used for safety critical systems should preserve high assurance properties. In order to comply with high assurance properties, a safety-critical system often shares resources between multiple concurrently active computing agents and must meet rigid real-time constraints. However, concurrency and timing constraints make the development of a safety-critical system much more error prone and arduous. The correctness of software systems nowadays depends mainly on the work of testing and debugging. Testing and debugging involve the process of de tecting, locating, analyzing, isolating, and correcting suspected faults using the runtime information of a system. However, testing and debugging are not sufficient to prove the correctness of a safety-critical system. In contrast, static analysis is supported by formalisms to specify the system precisely. Formal verification methods are then applied to prove the logical correctness of the system with respect to the specification. Formal verifica tion gives us greater confidence that safety-critical systems meet the desired assurance properties in order to avoid disastrous consequences."
Due to increasing practical needs, software support of environmental protection and research tasks is growing in importance and scope. Software systems help to monitor basic data, to maintain and process relevant environmental information, to analyze gathered information and to carry out decision processes, which often have to take into account complex alternatives with various side effects. Therefore software is an important tool for the environmental domain. When the first software systems in the environmental domain grew - 10 to 15 years ag- users and developers were not really aware of the complexity these systems are carrying with themselves: complexity with respect to entities, tasks and procedures. I guess nobody may have figured out at that time that the environmental domain would ask for solutions which information science would not be able to provide and - in several cases - can not provide until today. Therefore environmental informatics - as we call it today - is also an important domain of computer science itself, because practical solutions need to deal with very complex, interdisciplinary, distributed, integrated, sometimes badly defined, user-centered decision processes. I doubt somebody will state that we are already capable of building such integrated systems for end users for reasonable cost on a broad range. The development of the first scientific community for environmental informatics started around 1985 in Germany, becoming a technical committee and working group of the German Computer Society in 1987.
The papers in this volume aim at obtaining a common understanding of the challenging research questions in web applications comprising web information systems, web services, and web interoperability; obtaining a common understanding of verification needs in web applications; achieving a common understanding of the available rigorous approaches to system development, and the cases in which they have succeeded; identifying how rigorous software engineering methods can be exploited to develop suitable web applications; and at developing a European-scale research agenda combining theory, methods and tools that would lead to suitable web applications with the potential to implement systems for computation in the public domain.
Developing software systems which are easy to use while simultaneously increasing the productivity, performance and satisfaction of users is still a major challenge in software engineering. Thus a large number of usability engineering methods have been proposed to systematically develop software with high usability. A large number of studies indicate that even basic usability engineering methods are not integrated in software development lifecycles practiced in industrial settings. Yet problems in the adoption of methods by project teams are rarely examined. This book provides a new perspective on the integration and adoption of usability engineering methods by software development teams. The adoption of methods by project teams - contrary to popular belief - is not assured just because it is mandated by the organization. This work argues that usability engineering methods can only be regarded as integrated in the software development process of an organization when these methods are practiced and accepted by development teams. So far no frameworks for examining the acceptance of methods by project teams and for exploiting such data for guiding project teams in method deployment are available. To address this problem, this book presents an approach which consists of a process meta-model for guiding project teams in the deployment of usability en- neering methods and a measurement framework for measuring the acceptance of the deployed methods. The approach is called Adoption-Centric Usability Engineering.
This authoritative text/reference describes the state of the art in requirements engineering for software systems for distributed computing. A particular focus is placed on integrated solutions, which take into account the requirements of scalability, flexibility, sustainability and operability for distributed environments. Topics and features: discusses the latest developments, tools, technologies and trends in software requirements engineering; reviews the relevant theoretical frameworks, practical approaches and methodologies for service requirements; examines the three key components of the requirements engineering process, namely requirements elicitation, requirements specification, and requirements validation and evaluation; presents detailed contributions from an international selection of highly reputed experts in the field; offers guidance on best practices, and suggests directions for further research in the area.
The 6th meeting sponsored by IFIP Working Group 7.5, on reliability and optimization of structural systems, took place in September 1994 in Assisi, Italy. This book contains the papers presented at the working conference including topics such as reliability of special structures, fatigue, failure modes and time-variant systems relibility.
Business process management is usually treated from two different perspectives: business administration and computer science. While business administration professionals tend to consider information technology as a subordinate aspect in business process management for experts to handle, by contrast computer science professionals often consider business goals and organizational regulations as terms that do not deserve much thought but require the appropriate level of abstraction. Matthias Weske argues that all communities involved need to have a common understanding of the different aspects of business process management. To this end, he details the complete business process lifecycle from the modeling phase to process enactment and improvement, taking into account all different stakeholders involved. After starting with a presentation of general foundations and abstraction models, he explains concepts like process orchestrations and choreographies, as well as process properties and data dependencies. Finally, he presents both traditional and advanced business process management architectures, covering, for example, workflow management systems, service-oriented architectures, and data-driven approaches. In addition, he shows how standards like WfMC, SOAP, WSDL, and BPEL fit into the picture. This textbook is ideally suited for classes on business process management, information systems architecture, and workflow management. This 2nd edition contains major updates on BPMN Version 2 process orchestration and process choreographies, and the chapter on BPM methodologies has been completely rewritten. The accompanying website www.bpm-book.com contains further information and additional teaching material.
This monograph discusses software reuse and how it can be applied at different stages of the software development process, on different types of data and at different levels of granularity. Several challenging hypotheses are analyzed and confronted using novel data-driven methodologies, in order to solve problems in requirements elicitation and specification extraction, software design and implementation, as well as software quality assurance. The book is accompanied by a number of tools, libraries and working prototypes in order to practically illustrate how the phases of the software engineering life cycle can benefit from unlocking the potential of data. Software engineering researchers, experts, and practitioners can benefit from the various methodologies presented and can better understand how knowledge extracted from software data residing in various repositories can be combined and used to enable effective decision making and save considerable time and effort through software reuse. Mining Software Engineering Data for Software Reuse can also prove handy for graduate-level students in software engineering.
The advanced state of computer networking and telecommunications technology makes it possible to view computers as parts of a global computation platform, sharing their resources in terms of hardware, software and data. The possibility of exploiting the resources on a global scale has given rise to a new paradigm - the mobile computation paradigm - for computation in large scale distributed networks. The key characteristic of this paradigm is to give programmers control over the mobility of code or active computations across the network by providing appropriate language features. The dynamism and flexibility offered by mobile computation however, brings about a set of problems, the most challenging of which are relevant to safety and security. Several recent experiences prove that identifying the causes of these problems usually requires a rigorous investigation using formal methods. Functional languages are known for their well-understood computational models and their amenability to formal reasoning. They also have strong expressive power due to higher-order features. Functions can flow from one program point to another as other first-class values. These facts suggest that functional languages can provide the core of mobile computation language. Functions that represent mobile agents and formal systems for reasoning about functional programs can be further exploited to reason about the behavior of agents. Mobile Computation with Functions explores distributed computation with languages which adopt functions as the main programming abstraction and support code mobility through the mobility of functions between remote sites. It aims to highlight the benefits of using languages of this family in dealing with the challenges of mobile computation. The possibility of exploiting existing static analysis techniques suggests that having functions at the core of mobile code language is a particularly apt choice. A range of problems which have impact on the safety, security and performance are discussed. It is shown that types extended with effects and other annotations can capture a significant amount of information about the dynamic behavior of mobile functions, and offer solutions to the problems under investigation. This book includes a survey of the languages Concurrent ML, Facile and PLAN which inherit the strengths of the functional paradigm in the context of concurrent and distributed computation. The languages which are defined in the subsequent chapters have their roots in these languages. Mobile Computation with Functions is designed to meet the needs of a professional audience composed of researchers and practitioners in industry and graduate level students in Computer Science.
A large international conference in Intelligent Automation and Computer Engineering was held in Hong Kong, March 18-20, 2009, under the auspices of the International MultiConference of Engineers and Computer Scientists (IMECS 2009). The IMECS is organized by the International Association of Engineers (IAENG). Intelligent Automation and Computer Engineering contains 37 revised and extended research articles written by prominent researchers participating in the conference. Topics covered include artificial intelligence, decision supporting systems, automated planning, automation systems, control engineering, systems identification, modelling and simulation, communication systems, signal processing, and industrial applications. Intelligent Automation and Computer Engineering offers the state of the art of tremendous advances in intelligent automation and computer engineering and also serves as an excellent reference text for researchers and graduate students, working on intelligent automation and computer engineering.
This book offers a practical introduction to the use of artificial intelligence (AI) techniques to improve and optimise the various phases of the software development process, from the initial project planning to the latest deployment. All chapters were written by leading experts in the field and include practical and reproducible examples. Following the introductory chapter, Chapters 2-9 respectively apply AI techniques to the classic phases of the software development process: project management, requirement engineering, analysis and design, coding, cloud deployment, unit and system testing, and maintenance. Subsequently, Chapters 10 and 11 provide foundational tutorials on the AI techniques used in the preceding chapters: metaheuristics and machine learning. Given its scope and focus, the book represents a valuable resource for researchers, practitioners and students with a basic grasp of software engineering. |
![]() ![]() You may like...
Intelligent Control - A Stochastic…
Kaushik Das Sharma, Amitava Chatterjee, …
Hardcover
R4,632
Discovery Miles 46 320
Trusted Artificial Intelligence in…
John Soldatos, Dimosthenis Kyriazis
Hardcover
R2,553
Discovery Miles 25 530
Applications of Hybrid Metaheuristic…
Diego Oliva, Salvador Hinojosa
Hardcover
R4,612
Discovery Miles 46 120
Visual Content Indexing and Retrieval…
Jenny Benois-Pineau, Patrick Le Callet
Hardcover
R3,595
Discovery Miles 35 950
Vision, Sensing and Analytics…
MD Atiqur Rahman Ahad, Atsushi Inoue
Hardcover
R5,153
Discovery Miles 51 530
Creativity in Computing and DataFlow…
Suyel Namasudra, Veljko Milutinovic
Hardcover
R4,467
Discovery Miles 44 670
|