![]() |
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
Applicable to any problem that requires a finite number of solutions, finite state-based models (also called finite state machines or finite state automata) have found wide use in various areas of computer science and engineering. Handbook of Finite State Based Models and Applications provides a complete collection of introductory materials on finite state theories, algorithms, and the latest domain applications. For beginners, the book is a handy reference for quickly looking up model details. For more experienced researchers, it is suitable as a source of in-depth study in this area. The book first introduces the fundamentals of automata theory, including regular expressions, as well as widely used automata, such as transducers, tree automata, quantum automata, and timed automata. It then presents algorithms for the minimization and incremental construction of finite automata and describes Esterel, an automata-based synchronous programming language for embedded system software development. Moving on to applications, the book explores regular path queries on graph-structured data, timed automata in model checking security protocols, pattern matching, compiler design, and XML processing. It also covers other finite state-based modeling approaches and applications, including Petri nets, statecharts, temporal logic, and UML state machine diagrams.
Written by the author of the best-selling HyperText &
HyperMedia, this book is an excellent guide to the methods of
usability engineering. The book provides the tools needed to avoid
usability surprises and improve product quality. Step-by-step
information on which method to use at various stages during the
development lifecycle are included, along with detailed information
on how to run a usability test and the unique issues relating to
international usability.
In areas such as military, security, aerospace, and disaster management, the need for performance optimization and interoperability among heterogeneous systems is increasingly important. Model-driven engineering, a paradigm in which the model becomes the actual software, offers a promising approach toward systems of systems (SoS) engineering. However, model-driven engineering has largely been unachieved in complex dynamical systems and netcentric SoS, partly because modeling and simulation (M&S) frameworks are stove-piped and not designed for SoS composability. Addressing this gap, Netcentric System of Systems Engineering with DEVS Unified Process presents a methodology for realizing the model-driven engineering vision and netcentric SoS using DEVS Unified Process (DUNIP). The authors draw on their experience with Discrete Event Systems Specification (DEVS) formalism, System Entity Structure (SES) theory, and applying model-driven engineering in the context of a netcentric SoS. They describe formal model-driven engineering methods for netcentric M&S using standards-based approaches to develop and test complex dynamic models with DUNIP. The book is organized into five sections: Section I introduces undergraduate students and novices to the world of DEVS. It covers systems and SoS M&S as well as DEVS formalism, software, modeling language, and DUNIP. It also assesses DUNIP with the requirements of the Department of Defense's (DoD) Open Unified Technical Framework (OpenUTF) for netcentric Test and Evaluation (T&E). Section II delves into M&S-based systems engineering for graduate students, advanced practitioners, and industry professionals. It provides methodologies to apply M&S principles to SoS design and reviews the development of executable architectures based on a framework such as the Department of Defense Architecture Framework (DoDAF). It also describes an approach for building netcentric knowledge-based contingency-driven systems. Section III guides graduate students, advanced DEVS users, and industry professionals who are interested in building DEVS virtual machines and netcentric SoS. It discusses modeling standardization, the deployment of models and simulators in a netcentric environment, event-driven architectures, and more. Section IV explores real-world case studies that realize many of the concepts defined in the previous chapters. Section V outlines the next steps and looks at how the modeling of netcentric complex adaptive systems can be attempted using DEVS concepts. It touches on the boundaries of DEVS formalism and the future work needed to utilize advanced concepts like weak and strong emergence, self-organization, scale-free systems, run-time modularity, and event interoperability. This groundbreaking work details how DUNIP offers a well-structured, platform-independent methodology for the modeling and simulation of netcentric system of systems.
In his latest work, author Paul C Jorgensen takes his well-honed craftsman's approach to mastering model-based testing (MBT). To be expert at MBT, a software tester has to understand it as a craft rather than an art. This means a tester should have deep knowledge of the underlying subject and be well practiced in carrying out modeling and testing techniques. Judgment is needed, as well as an understanding of MBT the tools. The first part of the book helps testers in developing that judgment. It starts with an overview of MBT and follows with an in-depth treatment of nine different testing models with a chapter dedicated to each model. These chapters are tied together by a pair of examples: a simple insurance premium calculation and an event-driven system that describes a garage door controller. The book shows how simpler models-flowcharts, decision tables, and UML Activity charts-express the important aspects of the insurance premium problem. It also shows how transition-based models-finite state machines, Petri nets, and statecharts-are necessary for the garage door controller but are overkill for the insurance premium problem. Each chapter describes the extent to which a model can support MBT. The second part of the book gives testers a greater understanding of MBT tools. It examines six commercial MBT products, presents the salient features of each product, and demonstrates using the product on the insurance premium and the garage door controller problems. These chapters each conclude with advice on implementing MBT in an organization. The last chapter describes six Open Source tools to round out a tester's knowledge of MBT. In addition, the book supports the International Software Testing Qualifications Board's (ISTQB (R)) MBT syllabus for certification.
Software analysis patterns play an important role in reducing the overall cost and compressing the time of software project lifecycles. However, building reusable and stable software analysis patterns is still considered a major and delicate challenge. This book proposes a novel concept for building analysis patterns based on software stability and is a modern approach for building stable, highly reusable, and widely applicable analysis patterns. The book also aims to promote better understanding of problem spaces and discusses how to focus requirements analysis accurately. It demonstrates a new approach to discovering and creating stable analysis patterns (SAPs). This book presents a pragmatic approach to understanding problem domains, utilizing SAPs for any field of knowledge, and modeling stable software systems, components, and frameworks. It helps readers attain the basic knowledge that is needed to analyze and extract analysis patterns from any domain of interest. Readers also learn to master methods to document patterns in an effective, easy, and comprehensible manner. Bringing significant contributions to the field of computing, this book is a unique and comprehensive reference manual on SAPs. It provides insight on handling the understanding of problem spaces and supplies methods and processes to analyze user requirements accurately as well as ways to use SAPs in building myriad cost-effective and highly maintainable systems. The book also shows how to link SAPs to the design phase thereby ensuring a smooth transition between analysis and design.
The work presented in this book is based on empirical study undertaken as a case study to understand the challenges faced in massively open online course (MOOC) based learning and experimentation to understand the challenges for presenting theoretical and practical courses. The book proposes a flexible online platform. This solution provides flexibility in distance learning processes including course enrollment, learning, evaluation, and outcome of degrees. The proposed system not only gives students freedom to choose their courses in accordance with their needs but also use earned credit towards online degrees of any university of their choice.
This book shows how to identify potential design errors and modify procedures in the design process to mitigate design-induced error. Real life examples are used to demonstrate the points being made. Many of the concerns raised in the book have come from a worldwide study conducted with designers, managers, and end-users.
Features Teaches software design by showing programmers how to build the tools they use every day. Each chapter includes exercises to help readers check and deepen their understanding. All the example code can be downloaded, re-used, and modified under an open license.
1. Provides a toolkit of templates for common VR interactions, as well as practical advice on when to use them and how to tailor them for specific use cases; 2. Includes case studies detailing the practical application of interaction theory discussed in each chapter; 3. Presents tables of guidelines for practicing VR developers, for reference during software development; 4. Covers procedures for Interface Evaluation - formulas and testing methodologies to ensure that VR interfaces are effective, efficient, engaging, error-tolerant, and easy to learn; 5. Non-linear organisation - chapters of the book on different concepts can be read to gain knowledge on a single topic, without requiring other chapters to be read beforehand; 6. Includes ancillaries - PowerPoint slides, 3D models, videos, and a teacher's guide
This work provides a comprehensive overview of research and practical issues relating to component-based development information systems (CBIS). Spanning the organizational, developmental, and technical aspects of the subject, the original research included here provides fresh insights into successful CBIS technology and application. Part I covers component-based development methodologies and system architectures. Part II analyzes different aspects of managing component-based development. Part III investigates component-based development versus commercial off-the-shelf products (COTS), including the selection and trading of COTS products.
From fundamental concepts and theories to implementation protocols and cutting-edge applications, the Handbook of Mobile Systems Applications and Services supplies a complete examination of the evolution of mobile services technologies. It examines service-oriented architecture (SOA) and explains why SOA and service oriented computing (SOC) will play key roles in the development of future mobile services. Investigating current service discovery frameworks, the book covers the basics of mobile services and applications developed in various contexts. The first section provides readers with the required background in mobile services architecture. Next, it details of middleware support for mobile services. The final section discusses security and applications of mobile services. Containing the contributions of leading researchers and academics from around the world, the book: Introduces a new location-based access control model Unveils a simple, yet powerful enhancement that enables Web services to locally manage workflow dependencies and handle messages resulting from multiple workflows Examines an event-based location aware query model that continuously aggregates data in specific areas around mobile sensors of interest Addresses the problem of location-based access control in the context of privacy protection Presents a layered architecture of context-aware middleware Considers the development of assistive technology solutions for the blind or visually impaired Discussing architecture for supporting multi-mode terminals in integrated heterogeneous wireless networks, this book addresses the network availability constraint to serve all mobile services originating from a single-user terminal. It examines QoS protocols and their enhancements in supporting user mobility. Analyzing mobile services security vulnerabilities, it details security design best practices that mobile service developers can use to improve the security of their mobile systems.
The definition and parameters of teacher education have recently been changed by the concept of mentoring. Supporters of the concept maintain that it is an effective technique for inducting and retaining new teachers, but who and what are mentors, and what attributes do they possess? Previous research has identified collaboration, enthusiasm, emotional commitment, and sensitivity as the necessary traits of an effective mentor. It has also been found that mentors are available, give immediate feedback, listen attentively, and collaboratively solve problems with mentees. Epistemological structures that best serve the mentor-novice relationship, gender issues between mentors and proteges, and moral development orientations within the mentor-intern relationship have also been investigated. Thus, mentoring is a complex activity that involves a mentor, an intern or novice, and a process within a predetermined structure. The articles in this special issue validate the fact that the terms "good mentor" and "effective mentoring relationship" often elude easy definition. However, a common theme emerges: The mentor-mentee relationship is a transformative one that can change the course of one's life.
(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.
Is Internet software so different from "ordinary" software? This book practically answers this question through the presentation of a software design method based on the State Chart XML W3C standard along with Java. Web enterprise, Internet-of-Things, and Android applications, in particular, are seamlessly specified and implemented from "executable models." Internet software puts forward the idea of event-driven or reactive programming, as pointed out in Boner et al.'s "Reactive Manifesto" (http://www.reactivemanifesto.org). It tells us that reactiveness is a must. However, beyond concepts, software engineers require effective means with which to put reactive programming into practice. This book's purpose is to outline and explain such means. The lack of professional examples in the literature that illustrate how reactive software should be shaped can be quite frustrating. Therefore, this book helps to fill in that gap by providing in-depth professional case studies that contain comprehensive details and meaningful alternatives. Furthermore, these case studies can be downloaded for further investigation. Internet software requires higher adaptation, at run time in particular. After reading Reactive Internet Programming, the reader therefore will be ready to enter the forthcoming Internet era.
The Cloud in IoT-enabled Spaces addresses major issues and challenges in IoT-based solutions proposed for the Cloud. It paves the way for IoT-enabled spaces in the next generation cloud computing paradigm and opens the door for further innovative ideas. Topics include Cloud-based optimization in the IoT era, scheduling and routing, medium access, data caching, secure access, uncertainty, home automation, machine learning in wearable devices, energy monitoring, and plant phenotyping in farming. Smart spaces are solutions where Internet of Things (IoT)-enabling technologies have been employed towards further advances in the lifestyle. It tightly integrates with the existing Cloud infrastructure to impact several fields in academia and industry. The Cloud in IoT-enabled Spaces provides an overview of the issues around small spaces and proposes the most up-to-date alternatives and solutions. The objective is to pave the way for IoT-enabled spaces in the next-generation Cloud computing and open the door for further innovative ideas.
This reference text provides the theoretical foundations, the emergence, and the application areas of Blockchain in an easy-to-understand manner that would be highly helpful for the researchers, academicians, and industry professionals to understand the disruptive potentials of Blockchain. It explains Blockchain concepts related to Industry 4.0, Smart Healthcare, and the Internet of Things (IoT) and explores Smart Contracts and Consensus algorithms. This book will serve as an ideal reference text for graduate students and academic researchers in electrical engineering, electronics and communication engineering, computer engineering, and information technology. This book * Discusses applications of blockchain technology in diverse sectors such as industry 4.0, education, finance, and supply chain. * Provides theoretical concepts, applications, and research advancements in the field of blockchain. * Covers industry 4.0 digitization platform and blockchain for data management in industry 4.0 in a comprehensive manner. * Emphasizes analysis and design of consensus algorithms, fault tolerance, and strategy to choose the correct consensus algorithm. * Introduces security issues in the industrial internet of things, internet of things, blockchain integration, and blockchain-based applications. The text presents in-depth coverage of theoretical concepts, applications and advances in the field of blockchain technology. This book will be an ideal reference for graduate students and academic researchers in diverse engineering fields such as electrical, electronics and communication, computer, and information technology.
Property-based testing helps you create better, more solid tests with little code. By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time. Most tests only demonstrate that the code behaves how the developer expected it to behave, and therefore carry the same blind spots as their authors when special conditions or edge cases show up. Learn how to see things differently with property tests written in PropEr. Start with the basics of property tests, such as writing stateless properties, and using the default generators to generate test cases automatically. More importantly, learn how to think in properties. Improve your properties, write custom data generators, and discover what your code can or cannot do. Learn when to use property tests and when to stick with example tests with real-world sample projects. Explore various testing approaches to find the one that's best for your code. Shrink failing test cases to their simpler expression to highlight exactly what breaks in your code, and generate highly relevant data through targeted properties. Uncover the trickiest bugs you can think of with nearly no code at all with two special types of properties based on state transitions and finite state machines. Write Erlang and Elixir properties that generate the most effective tests you'll see, whether they are unit tests or complex integration and system tests. What You Need Basic knowledge of Erlang, optionally Elixir For Erlang tests: Erlang/OTP >= 20.0, with Rebar >= 3.4.0 For Elixir tests: Erlang/OTP >= 20.0, Elixir >= 1.5.0
Is Internet software so different from "ordinary" software? This book practically answers this question through the presentation of a software design method based on the State Chart XML W3C standard along with Java. Web enterprise, Internet-of-Things, and Android applications, in particular, are seamlessly specified and implemented from "executable models." Internet software puts forward the idea of event-driven or reactive programming, as pointed out in Boner et al.'s "Reactive Manifesto" (http://www.reactivemanifesto.org). It tells us that reactiveness is a must. However, beyond concepts, software engineers require effective means with which to put reactive programming into practice. This book's purpose is to outline and explain such means. The lack of professional examples in the literature that illustrate how reactive software should be shaped can be quite frustrating. Therefore, this book helps to fill in that gap by providing in-depth professional case studies that contain comprehensive details and meaningful alternatives. Furthermore, these case studies can be downloaded for further investigation. Internet software requires higher adaptation, at run time in particular. After reading Reactive Internet Programming, the reader therefore will be ready to enter the forthcoming Internet era.
Updates content and introduces topics such as business changes and outsourcing. Addresses new cyber security risks such as IoT and Distributed Networks (i.e., blockchain). Covers strategy based on the OODA loop in the cycle. Demonstrates application of the concepts through short case studies of real-world incidents chronologically delineating related events. Discusses certifications and reference manuals in cyber security and digital forensics. Includes an entire chapter on tools used by professionals in the field.
Software Quality Assurance: Integrating Testing, Security, and Audit focuses on the importance of software quality and security. It defines various types of testing, recognizes factors that propose value to software quality, and provides theoretical and real-world scenarios that offer value and contribute quality to projects and applications. The practical synopsis on common testing tools helps readers who are in testing jobs or those interested in pursuing careers as testers. It also helps test leaders, test managers, and others who are involved in planning, estimating, executing, and maintaining software. The book is divided into four sections: The first section addresses the basic concepts of software quality, validation and verification, and audits. It covers the major areas of software management, software life cycle, and life cycle processes. The second section is about testing. It discusses test plans and strategy and introduces a step-by-step test design process along with a sample test case. It also examines what a tester or test lead needs to do before and during test execution and how to report after completing the test execution. The third section deals with security breaches and defects that may occur. It discusses documentation and classification of incidences as well as how to handle an occurrence. The fourth and final section provides examples of security issues along with a security policy document and addresses the planning aspects of an information audit. This section also discusses the definition, measurement, and metrics of reliability based on standards and quality metrics methodology CMM models. It discusses the ISO 15504 standard, CMMs, PSP, and TSP and includes an appendix containing a software process improvement sample document.
The reliability of software is becoming increasingly important to a large range of industries that rely on complex computer systems and machinery with computer control. The reliability of a system depends on both the hardware and the software that comprise the system. Although faults in design can continue to give problems, the issues and the techniques for meeting severe reliability requirements in hardware have been understood for some time. In the case of software both the techniques and a positive attitude of software developers to the achievement of reliability are much less well established. They are particularly crucial in the development of software dependent safety-critical systems. There are genuine differences between software and hardware: software has no physical existence; software includes data as well as logic; few software quality metrics exist; it is deceptively easy to introduce changes into software; effects of software changes propagate explosively; software developments have traditionally made very little use of pre-existing components; software may have much higher complexity than hardware (to the extent of attempting to implement functionality of a complicity that would be unacceptable for hardware). However, in many ways software development is like hardware development and can be managed and controlled using very similar techniques to those used in any other engineering discipline. The differences listed above are the very factors which make a genuine engineering approach essential for the successful development of reliable software. Improvements in the technology of software development have reached the point where the major issues have been identified and considerable progress has been made in addressing them. Methods for technical software development are well defined and practical working tools to support improved software production are commonly available. Experience shows that application of the right methods can bring significant improvements in quality and productivity, and this handbook brings together the various aspects of software development into an integrated coverage of the subject of developing reliable software. This handbook represents a unique reference work which provides: complete and comprehensive subject matter - based on real experience rather than hypothesis; straightforward reading - a reference point for technical staff, managers and customers; extensive references - for experts who require more in-depth subject coverage; appendices - containing technical material supporting the subject of software reliability. The Software Reliability Handbook provides an essential contribution to the successful production of reliable software systems. Sponsored by the Alvey Directorate, this book will be an essential tool for those involved with the increasing reliance placed on computer software in control systems of aircraft, power stations and vehicles, especially where life is at risk.
Program management in a technical environment is as much art as it is science. Effective program managers are able to combine management and leadership skills for the good of the program and the people entrusted to them. This book illuminates the entire life cycle of the program-from the customer's original concept to successful completion. It includes many helpful ideas and insights into why programs and program managers can fail. Much more importantly, it provides insights about how program managers can succeed. Program Management in Defense and High Tech Environments is organized as a chronological "tale" of a program life cycle, with "side trips" that cover the important concepts of leadership, claims and claims avoidance, earned value measurement (EVM), communication basics, negotiations, and coaching. The book begins with an overview of program management, discussing the role of program managers, their required skills and experience, and the types of programs and contracts. The remainder of the book provides more detail on the program manager's role and the environment in which he or she works. Understanding that academic explanations of program management activities can be dry, the author uses true-to-life stories to present the nuts and bolts of the work. These stories illustrate the science of program management and the art that is necessary for success. The book discusses many of the common program pitfalls. It explains how to detect and avoid scope creep-the unintended expansion of program scope. It details both internal and external scope creep and stresses the importance of constant vigilance to prevent cost overruns and schedule delays. Program Management in Defense and High Tech Environments is a comprehensive guide for early- and mid-career program managers to understand what they need to do to be successful. It is also a valuable resource for later-career program managers who want to learn through other program managers' successes and failures.
Written for those starting a career in IT or whose career is well advanced, this career guide shows how to blaze a path to success through the jungle of modern IT. With a career spanning five decades, the author shares lessons he learned the hard way so readers do not have to learn them the hard way. By emphasizing the importance of business processes and applications to IT, this book explains how to understand the value and positioning of hardware and software technology in order to make appropriate decisions. It addresses the importance of IT architecture and the roles service and systems management play. It also explains service level agreements (SLAs) and provides sample SLAs. Readers learn how to conduct IT assessments using SWOT (strengths, weaknesses, opportunities, and threats) analysis. It also shows how to use root-cause analysis (RCA) to detect the sources of failure and poor performance. An overview of risk management and the steps involved in developing a business continuity plan are also included. The book looks at all facets of an IT professional's career. It explains how to build an IT team and examines the roles and responsibilities within the team. It shows how to provide professional customer care to IT clients. Business executives recognize the importance of IT, and this book shows technology professionals how to thrive in the business world. It covers: Making effective presentations Report and proposal writing Negotiating and persuasion skills Running productive meetings Time and stress management The book also discusses such important career skills as listening, continual and incremental learning, and communicating at all levels. From its templates and checklists to its comprehensive and holistic view of a successful IT career, this book is an indispensable guide for every professional working in IT today and tomorrow.
In many of nowadays web-based environments for electronic marketing and commerce, that present large multimedia product and service catalogues, it becomes more and more difficult to provide naive end users, such as private consumers or commercial business partners, with intuitive user interfaces to access the large multimedia collections describing the presented products and services. The same holds for marketing managers and other employees responsible for managing and maintaining the large and constantly changing set of multimedia information chunks and fragments contained in these collections. As a consequence, many efforts are devoted to improve the quality of the interaction between users and databases. Virtual Reality (VR) techniques are a promising interaction paradigm particularly suited to novice and/or occasional users. The users are facilitated in the database navigation since the system proposes them an environment that reproduces a real situation and gives the possibility of interacting by manipulating objects that have a direct correspondence with known objects.
* Provides simple, conceptual descriptions of everyday technologies * Includes clear examples and diagrams that demonstrate the principles and techniques, not just a "how-to" punch list * Covers advanced topics for readers who want to dive into the deep end of the technology pool * Avoids jargon-where terminology does appear, the text will provide clear, concise definitions |
You may like...
Visualization in Medicine and Life…
Lars Linsen, Hans Hagen, …
Hardcover
R4,056
Discovery Miles 40 560
Cohabitation among Students in…
Elia Shabani Mligo, Jael Omanga Otieno
Hardcover
Pearson Edexcel International A Level…
Joe Skrakowski, Harry Smith
Paperback
R925
Discovery Miles 9 250
Blockchain Technology and Computational…
Shahnawaz Khan, Mohammad Haider, …
Hardcover
R6,648
Discovery Miles 66 480
|