![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > Computer programming > Software engineering
Object-oriented design methods are commonplace in computing systems development, but are often dismissed as 'boxes & arrows'. If systems developers are to gain full advantage from such methods, they should be able to achieve designs that are not merely the subject of heated argument, but can be improved by careful, rigorous & machine-supported analysis. This book describes an object-oriented design approach that combines the benefits of abstract modelling with the analytic power of formal methods, to give designs that can be rigorously validated & assured with automated support. Aimed at software architects, designers & developers as well as computer scientists, no prior knowledge of formal methods is assumed. The elements of functional modelling are introduced using numerous examples & exercises, industrial case studies & experience reports. Industry-strength tools support the text. Go to www.vdmbook.com to download free-of-charge VDMTools Lite, which gives the possibility to try out examples from the book
This book constitutes the thoroughly refereed post-conference proceedings of the 11th IFIP WG 6.11 Conference on e-Business, e-Services and e-Society, I3E 2011, held in Kaunas, Lithuania, in October 2011. The 25 revised papers presented were carefully reviewed and selected from numerous submissions. They are organized in the following topical sections: e-government and e-governance, e-services, digital goods and products, e-business process modeling and re-engineering, innovative e-business models and implementation, e-health and e-education, and innovative e-business models.
Research on real-time Java technology has been prolific over the past decade, leading to a large number of corresponding hardware and software solutions, and frameworks for distributed and embedded real-time Java systems. This book is aimed primarily at researchers in real-time embedded systems, particularly those who wish to understand the current state of the art in using Java in this domain. Much of the work in real-time distributed, embedded and real-time Java has focused on the Real-time Specification for Java (RTSJ) as the underlying base technology, and consequently many of the Chapters in this book address issues with, or solve problems using, this framework.Describes innovative techniques in: scheduling, memory management, quality of service and communication systems supporting real-time Java applications;Includes coverage of multiprocessor embedded systems and parallel programming;Discusses state-of-the-art resource management for embedded systems, including Java's real-time garbage collection and parallel collectors;Considers hardware support for the execution of Java programs including how programs can interact with functional accelerators;Includes coverage of Safety Critical Java for development of safety critical embedded systems."
Process calculi are among the most successful models of concurrent systems. Various behavior equivalences between processes are central notions in CCS (calculus of communicating systems) and other process calculi. In the real applications, specification and implementation are described as two processes, and correctness of programs is treated as a certain behavior equivalence between them. The purpose of this book is to establish a theory of approximate correctness and infinite evolution of concurrent programs by employing some notions and tools from point-set topology. This book is restricted to CCS for simplicity, but the main idea also applies to some other process calculi. The concept of bisimulation limits, useful for the understanding and analysis of infinite evolution of processes, is introduced. In addition, the notions of near bisimulations and bisimulation indexes, suitable in describing approximate correctness of concurrent programs, are proposed. The book will be of particular interest to researchers in the fields of theoretical computer science, especially theory of concurrency and hybrid systems, and graduate students in related disciplines. It will also be valuable to practical system designers developing concurrent and/or real-time systems.
This book presents the latest research findings and state-of-the-art solutions on optimization techniques and provides new research direction and developments. Both the theoretical and practical aspects of the book will be much beneficial to experts and students in optimization and operation research community. It selects high quality papers from The International Conference on Optimization: Techniques and Applications (ICOTA2013). The conference is an official conference series of POP (The Pacific Optimization Research Activity Group; there are over 500 active members). These state-of-the-art works in this book authored by recognized experts will make contributions to the development of optimization with its applications.
The book provides a platform for dealing with the flaws and failings of the soft computing paradigm through different manifestations. The different chapters highlight the necessity of the hybrid soft computing methodology in general with emphasis on several application perspectives in particular. Typical examples include (a) Study of Economic Load Dispatch by Various Hybrid Optimization Techniques, (b) An Application of Color Magnetic Resonance Brain Image Segmentation by Para Optimus LG Activation Function, (c) Hybrid Rough-PSO Approach in Remote Sensing Imagery Analysis, (d) A Study and Analysis of Hybrid Intelligent Techniques for Breast Cancer Detection using Breast Thermograms, and (e) Hybridization of 2D-3D Images for Human Face Recognition. The elaborate findings of the chapters enhance the exhibition of the hybrid soft computing paradigm in the field of intelligent computing.
Over the past two decades, software engineering has come a long way from object-based to object-oriented to component-based design and development. Invasive software composition is a new technique that unifies and extends recent software engineering concepts like generic programming, aspect-oriented development, architecture systems, or subject-oriented development. To improve reuse, this new method regards software components as grayboxes and integrates them during composition. Building on a minimal set of program transformations, composition operator libraries can be developed that parameterize, extend, connect, mediate, and aspect-weave components. The book is centered around the JAVA language and the freely available demonstrator library COMPOST. It provides a wealth of materials for researchers, students, and professional software architects alike.
Recent growth in knowledge management concepts has played a vital role in the improvement of organizational performance. These knowledge management approaches have been influential in achieving the goal of efficient production of software development processes. Knowledge-Based Processes in Software Development focuses on the inherent issues to help practitioners in gaining understanding of software development processes. The best practices highlighted in this publication will be essential to software professionals working in the industry as well as students and researchers in the domain of software engineering in order to successfully employ knowledge management procedures.
The growing demand for high quality, safety, and security of software systems can only be met by rigorous application of formal methods during software design. Tools for formal methods in general, however, do not provide a sufficient level of automatic processing. This book methodically investigates the potential of first-order logic automated theorem provers for applications in software engineering.Illustrated by complete case studies on verification of communication and security protocols and logic-based component reuse, the book characterizes proof tasks to allow an assessment of the provers capabilities. Necessary techniques and extensions, e.g., for handling inductive and modal proof tasks, or for controlling the prover, are covered in detail. The book demonstrates that state-of-the-art automated theorem provers are capable of automatically handling important tasks during the development of high-quality software and it provides many helpful techniques for increasing practical usability of the automated theorem prover for successful applications.
Basics of Software Engineering Experimentation is a practical guide to experimentation in a field which has long been underpinned by suppositions, assumptions, speculations and beliefs. It demonstrates to software engineers how Experimental Design and Analysis can be used to validate their beliefs and ideas. The book does not assume its readers have an in-depth knowledge of mathematics, specifying the conceptual essence of the techniques to use in the design and analysis of experiments and keeping the mathematical calculations clear and simple. Basics of Software Engineering Experimentation is practically oriented and is specially written for software engineers, all the examples being based on real and fictitious software engineering experiments.
Problem solving is an essential part of every scientific discipline. It has two components: (1) problem identification and formulation, and (2) solution of the formulated problem. One can solve a problem on its own using ad hoc techniques or follow those techniques that have produced efficient solutions to similar problems. This requires the understanding of various algorithm design techniques, how and when to use them to formulate solutions and the context appropriate for each of them. This book advocates the study of algorithm design techniques by presenting most of the useful algorithm design techniques and illustrating them through numerous examples.
Templates are used to generate all kinds of text, including computer code. The last decade, the use of templates gained a lot of popularity due to the increase of dynamic web applications. Templates are a tool for programmers, and implementations of template engines are most times based on practical experience rather than based on a theoretical background. This book reveals the mathematical background of templates and shows interesting findings for improving the practical use of templates. First, a framework to determine the necessary computational power for the template metalanguage is presented. The template metalanguage does not need to be Turing-complete to be useful. A non-Turing-complete metalanguage enforces separation of concerns between the view and model. Second, syntactical correctness of all languages of the templates and generated code is ensured. This includes the syntactical correctness of the template metalanguage and the output language. Third, case studies show that the achieved goals are applicable in practice. It is even shown that syntactical correctness helps to prevent cross-site scripting attacks in web applications. The target audience of this book is twofold. The first group exists of researcher interested in the mathematical background of templates. The second group exists of users of templates. This includes designers of template engines on one side and programmers and web designers using templates on the other side"
Many approaches have been proposed to enhance software productivity and reliability. These approaches typically fall into three categories: the engineering approach, the formal approach, and the knowledge-based approach. The optimal gain in software productivity cannot be obtained if one relies on only one of these approaches. Thus, the integration of different approaches has also become a major area of research. No approach can be said to be perfect if it fails to satisfy the following two criteria. Firstly, a good approach should support the full life cycle of software development. Secondly, a good approach should support the development of large-scale software for real use in many application domains. Such an approach can be referred to as a five-in-one approach. The authors of this book have, for the past eight years, conducted research in knowledge-based software engineering, of which the final goal is to develop a paradigm for software engineering which not only integrates the three approaches mentioned above, but also fulfils the two criteria on which the five-in-one approach is based. Domain Modeling- Based Software Engineering: A Formal Approach explores the results of this research. Domain Modeling-Based Software Engineering: A Formal Approach will be useful to researchers of knowledge-based software engineering, students and instructors of computer science, and software engineers who are working on large-scale projects of software development and want to use knowledge-based development methods in their work.
Advice involves recommendations on what to think; through thought, on what to choose; and via choices, on how to act. Advice is information that moves by communication, from advisors to the recipient of advice. Ivan Jureta offers a general way to analyze advice. The analysis applies regardless of what the advice is about and from whom it comes or to whom it needs to be given, and it concentrates on the production and consumption of advice independent of the field of application. It is made up of two intertwined parts, a conceptual analysis and an analysis of the rationale of advice. He premises that giving advice is a design problem and he treats advice as an artifact designed and used to influence decisions. What is unusual is the theoretical backdrop against which the author's discussions are set: ontology engineering, conceptual analysis, and artificial intelligence. While classical decision theory would be expected to play a key role, this is not the case here for one principal reason: the difficulty of having relevant numerical, quantitative estimates of probability and utility in most practical situations. Instead conceptual models and mathematical logic are the author's tools of choice. The book is primarily intended for graduate students and researchers of management science. They are offered a general method of analysis that applies to giving and receiving advice when the decision problems are not well structured, and when there is imprecise, unclear, incomplete, or conflicting qualitative information.
A practical step-by-step approach for improving the software development process within a company, using the Software Engineering Institute's Capability Maturity Model (CMM). The text explains common misconceptions associated with Software Business Improvement and CMM, using real-world examples. The book includes a reference table of key software metrics, which: help the reader evaluate measurements in relation to the functioning of his/her organisation; direct the software development to achieve higher levels of CMM in a timely manner; link measurement techniques to specific KPAs in a practical manner; and improve software process definition and improvement techniques with CMM as a guideline.
Since the early 1990s, genetic programming (GP) a discipline whose
goal is to enable the automatic generation of computer programs has
emerged as one of the most promising paradigms for fast, productive
software development. GP combines biological metaphors gleaned from
Darwin's theory of evolution with computer-science approaches drawn
from the field of machine learning to create programs that are
capable of adapting or recreating themselves for open-ended tasks.
The purpose of the 11th International Conference on Software Engineering Research, Management and Applications (SERA 2013) held on August 7 - 9, 2012 in Prague, Czech Republic was to bring together scientists, engineers, computer users, and students to share their experiences and exchange new ideas and research results about all aspects (theory, applications and tools) of Software Engineering Research, Management and Applications, and to discuss the practical challenges encountered along the way and the solutions adopted to solve them. The conference organizers selected 17 outstanding papers from those papers accepted for presentation at the conference in order to publish them in this volume. The papers were chosen based on review scores submitted by members of the program committee, and further rigorous rounds of review.
The book provides the reader with a clear understanding of what software reuse is, where the problems are, what benefits to expect, the activities, and different forms of software reuse. The reader is also given an overview of what sofware components are, different kinds of components and compositions, a taxonomy thereof, and examples of successful component reuse. An introduction to software engineering and software process models is also provided. Consequences and influences of systematic reuse of software components are depicted, and activities like domain engineering, component engineering and application engineering are described. The importance of documentation is taken into consideration as well.
The methodology described in this book is the result of many years of research experience in the field of synthesizable VHDL design targeting FPGA based platforms. VHDL was first conceived as a documentation language for ASIC designs. Afterwards, the language was used for the behavioral simulation of ASICs, and also as a design input for synthesis tools. VHDL is a rich language, but just a small subset of it can be used to write synthesizable code, from which a physical circuit can be obtained. Usually VHDL books describe both, synthesis and simulation aspects of the language, but in this book the reader is conducted just through the features acceptable by synthesis tools. The book introduces the subjects in a gradual and concise way, providing just enough information for the reader to develop their synthesizable digital systems in VHDL. The examples in the book were planned targeting an FPGA platform widely used around the world.
The core idea of this book is that object- oriented technology is a generic technology whose various technical aspects can be presented in a unified and consistent framework. This applies to both practical and formal aspects of object-oriented technology. Course tested in a variety of object-oriented courses, numerous examples, figures and exercises are presented in each chapter. The approach in this book is based on typed technologies, and the core notions fit mainstream object-oriented languages such as Java and C#. The book promotes object-oriented constraints (assertions), their specification and verification. Object-oriented constraints apply to specification and verification of object-oriented programs, specification of the object-oriented platform, more advanced concurrent models, database integrity constraints and object-oriented transactions, their specification and verification.
The author introduces the reader to the creation and implementation of space-related models by applying a learning-by-doing and problem-oriented approach. The required procedural skills are rarely taught at universities and many scientists and engineers struggle to transfer a model into a computer program. The purpose of this book is to fill this gap. It moves from simple to more complex applications, covering various important topics in the sequence: dynamic matrix processing, 2D and 3D graphics, databases, Java applets and parallel computing. A file (SMOP.zip) with all examples can be downloaded free of charge from the Internet at http: //de.geocities.com/bsttc2/book.
Providing a wide variety of technologies for ensuring the safety and dependability of cyber-physical systems (CPS), this book offers a comprehensive introduction to the architecture-centric modeling, analysis, and verification of CPS. In particular, it focuses on model driven engineering methods including architecture description languages, virtual prototyping, and formal analysis methods. CPS are based on a new design paradigm intended to enable emerging software-intensive systems. Embedded computers and networks monitor and control the physical processes, usually with the help of feedback loops where physical processes affect computations and vice versa. The principal challenges in system design lie in this constant interaction of software, hardware and physics. Developing reliable CPS has become a critical issue for the industry and society, because many applications such as transportation, power distribution, medical equipment and tele-medicine are dependent on CPS. Safety and security requirements must be ensured by means of powerful validation tools. Satisfying such requirements, including quality of service, implies having formally proven the required properties of the system before it is deployed. The book is concerned with internationally standardized modeling languages such as AADL, SysML, and MARTE. As the effectiveness of the technologies is demonstrated with industrial sample cases from the automotive and aerospace sectors, links between the methods presented and industrial problems are clearly understandable. Each chapter is self-contained, addressing specific scientific or engineering problems, and identifying further issues. In closing, it includes perspectives on future directions in CPS design from an architecture analysis viewpoint.
|
You may like...
|