![]() |
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
Unit Integration Testing (UIT) had been a challenge because there was no tool that could help in XHR programming and unit integration validations in an efficient way until Cypress arrived. Cypress started releasing versions in 2015 and became popular in 2018 with version 2.0.0. This book explores Cypress scripts that help implement 'shift left testing', which is a dream come true for many software testers. Shift left occurs in the majority of testing projects, but could not be implemented fully because tools were unavailable and knowledge was lacking about the possibilities of testing early in the life cycle. Shift left is a key testing strategy to help testing teams focus less on defect identifications and more on developing practices to prevent defects. Cypress scripts can help front-end developers and quality engineers to work together to find defects soon after web components are built. These components can be tested immediately after they are built with Cypress Test Driven Development (TDD) scripts. Thus, defects can be fixed straight away during the development stage. Testing teams do not have to worry about finding these same defects in a later development stage because Cypress tests keep verifying components in the later stages. Defect fixing has become much cheaper with Cypress than when other tools are used. The book also covers Behaviour Driven Development (BDD)-based Gherkin scripts and the Cypress Cucumber preprocessor, which can improve test scenario coverage. Automated Software Testing with Cypress is written to fulfil the BDD and TDD needs of testing teams. Two distinct open source repositories are provided in Github to help start running Cypress tests in no time!
Software programs are formal entities with precise meanings independent of their programmers, so the transition from ideas to programs necessarily involves a formalisation at some point. The first part of this graduate-level introduction to formal methods develops an understanding of what constitutes formal methods and what their place is in Software Engineering. It also introduces logics as languages to describe reasoning and the process algebra CSP as a language to represent behaviours. The second part offers specification and testing methods for formal development of software, based on the modelling languages CASL and UML. The third part takes the reader into the application domains of normative documents, human machine interfaces, and security. Use of notations and formalisms is uniform throughout the book. Topics and features: Explains foundations, and introduces specification, verification, and testing methods Explores various application domains Presents realistic and practical examples, illustrating concepts Brings together contributions from highly experienced educators and researchers Offers modelling and analysis methods for formal development of software Suitable for graduate and undergraduate courses in software engineering, this uniquely practical textbook will also be of value to students in informatics, as well as to scientists and practical engineers, who want to learn about or work more effectively with formal theories and methods. Markus Roggenbach is a Professor in the Dept. of Computer Science of Swansea University. Antonio Cerone is an Associate Professor in the Dept. of Computer Science of Nazarbayev University, Nur-Sultan. Bernd-Holger Schlingloff is a Professor in the Institut fur Informatik of Humboldt-Universitat zu Berlin. Gerardo Schneider is a Professor in the Dept. of Computer Science and Engineering of University of Gothenburg. Siraj Ahmed Shaikh is a Professor in the Institute for Future Transport and Cities of Coventry University.
Communication is one of the main activities in software projects, many such projects fail or encounter serious problems because the stakeholders involved have different understandings of the problem domain and/or they use different terminologies. Ontologies can help to mitigate these communication problems. Calero and her coeditors mainly cover two applications of ontologies in software engineering and software techonology: sharing knowledge of the problem domain and using a common terminology among all stakeholders; and filtering the knowledge when defining models and metamodels. The editors structured the contributions into three parts: first, a detailed introduction into the use of ontologies in software engineering and software technology in general; second, the use of ontologies to conceptualize different process-related domains such as software maintenance, software measurement, or SWEBOK, initiated by IEEE; third, the use of ontologies as artifacts in several software processes, like, for example, in OMGa (TM)s MOF or MDA. By presenting the advanced use of ontologies in software research and software projects, this book is of benefit to software engineering researchers in both academia and industry.
The book discusses the main issues of coordination in complex sociotechnical systems, covering distributed, self-organising, and pervasive systems. A chemistry-inspired model of coordination, a situated architecture and coordination language, and a cognitive model of interaction are the ingredients of the Molecules of Knowledge (MoK) model for self-organisation of knowledge presented in this book. The MoK technology is discussed, along with some case studies in the fields of collaborative systems, academic research, and citizen journalism. The target audience includes researchers and practitioners in the field of complex software systems engineering. The book is also appropriate for graduate and late undergraduate students in computer science and engineering.
Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts. Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks. Part 1 introduces the core, essential skills of a master explorer. You'll learn to craft charters to guide your exploration, to observe what's really happening (hint: it's harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways. Part 2 builds on that foundation. You'll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you'll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer's arsenal. Part 3 brings the techniques back into the context of a software project. You'll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning. You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you'll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.
Over the last two decades, a major challenge for researchers working on modeling and evaluation of computer-based systems has been the assessment of system Non Functional Properties (NFP) such as performance, scalability, dependability and security. In this book, the authors present cutting-edge model-driven techniques for modeling and analysis of software dependability. Most of them are based on the use of UML as software specification language. From the software system specification point of view, such techniques exploit the standard extension mechanisms of UML (i.e., UML profiling). UML profiles enable software engineers to add non-functional properties to the software model, in addition to the functional ones. The authors detail the state of the art on UML profile proposals for dependability specification and rigorously describe the trade-off they accomplish. The focus is mainly on RAMS (reliability, availability, maintainability and safety) properties. Among the existing profiles, they emphasize the DAM (Dependability Analysis and Modeling) profile, which attempts to unify, under a common umbrella, the previous UML profiles from literature, providing capabilities for dependability specification and analysis. In addition, they describe two prominent model-to-model transformation techniques, which support the generation of the analysis model and allow for further assessment of different RAMS properties. Case studies from different domains are also presented, in order to provide practitioners with examples of how to apply the aforementioned techniques. Researchers and students will learn basic dependability concepts and how to model them usingUML and its extensions. They will also gain insights into dependability analysis techniques through the use of appropriate modeling formalisms as well as of model-to-model transformation techniques for deriving dependability analysis models from UML specifications. Moreover, software practitioners will find a unified framework for the specification of dependability requirements and properties of UML, and will benefit from the detailed case studies."
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.
Digital Systems Design and Prototyping: Using Field Programmable Logic and Hardware Description Languages, Second Edition covers the subject of digital systems design using two important technologies: Field Programmable Logic Devices (FPLDs) and Hardware Description Languages (HDLs). These two technologies are combined to aid in the design, prototyping, and implementation of a whole range of digital systems from very simple ones replacing traditional glue logic to very complex ones customized as the applications require. Three HDLs are presented: VHDL and Verilog, the widely used standard languages, and the proprietary Altera HDL (AHDL). The chapters on these languages serve as tutorials and comparisons are made that show the strengths and weaknesses of each language. A large number of examples are used in the description of each language providing insight for the design and implementation of FPLDs. The CD-ROM included with the book contains the Altera MAX+PLUS II development environment which is ready to compile and simulate all examples. With the addition of the Altera UP-1 prototyping board, all examples can be tested and verified in a real FPLD. Digital Systems Design and Prototyping: Using Field Programmable Logic and Hardware Description Languages, Second Edition is designed as an advanced level textbook as well as a reference for the professional engineer.
1. Background and Introduction.- 1.1 The Problem.- 1.2 Concepts and Definitions.- 1.3 Research Activities.- 1.4 Status of Reuse Practice.- 1.5 Scope and Organization of this Book.- 1.6 References.- 2. Managerial Guidelines.- 2.1 Managerial Issues and Approaches.- 2.1.1 Organizational Management and Structure.- 2.1.2 Organizational Behavior.- 2.1.3 Contractual and Legal Considerations.- 2.1.4 Financial Considerations.- 2.1.5 Case Study: Reuse Program at Hartford Insurance Group.- 2.2 Software Development and Maintenance Incorporating Reuse.- 2.2.1 The Software Process.- 2.2.2 Life-Cycle Models.- 2.2.3 A Generic Reuse/Reusability Model.- 2.2.4 Establishing a Process.- 2.2.5 Case Study: JIAWG Reuse-Based Process Plan.- 2.3 References.- 3. Technical Guidelines.- 3.1 Domain Analysis.- 3.1.1 Overview.- 3.1.2 Case Study: The Domain Analysis Project at Software Engineering Institute (SEI).- 3.2 Creating Reusable Components.- 3.2.1 Spanning the Life Cycle.- 3.2.2 Requirements and Designs.- 3.2.2.1 Overview.- 3.2.2.2 Object-Oriented Approaches.- 3.2.3 Code Components.- 3.2.3.1 Code Component Structures.- 3.2.3.2 Programming Style.- 3.2.4 Component Quality.- 3.2.5 Classifying and Storing Components.- 3.2.6 Case Study: A Design Study of Telephony Software at Ericsson Telecom.- 3.3 Reusing Components.- 3.3.1 Cognitive Aspects.- 3.3.2 Searching and Retrieving.- 3.3.3 Understanding and Assessing Components.- 3.3.4 Adapting Components.- 3.3.5 Composition of Code Components.- 3.3.6 Case Study: A Quantitative Study of Spacecraft Control Software Reuse at GSFC.- 3.3.7 Case Study: The Reusable Software Library (RSL) at Intermetrics, Inc..- 3.4 Tools and Environments.- 3.5 References.- 4. Getting Started.- 4.1 Discussion.- 4.2 A Phased Approach.- 4.3 References.- Appendix A: Collected Guidelines.- Appendix B: Guidelines for Reusable Ada Code.
This book celebrates the 10-year anniversary of Software Center (a collaboration between 18 European companies and five Swedish universities) by presenting some of the most impactful and relevant journal or conference papers that researchers in the center have published over the last decade. The book is organized around the five themes around which research in Software Center is organized, i.e. Continuous Delivery, Continuous Architecture, Metrics, Customer Data and Ecosystems Driven Development, and AI Engineering. The focus of the Continuous Delivery theme is to help companies to continuously build high quality products with the right degree of automation. The Continuous Architecture theme addresses challenges that arise when balancing the need for architectural quality and more agile ways of working with shorter development cycles. The Metrics theme studies and provides insight to understand, monitor and improve software processes, products and organizations. The fourth theme, Customer Data and Ecosystem Driven Development, helps companies make sense of the vast amounts of data that are continuously collected from products in the field. Eventually, the theme of AI Engineering addresses the challenge that many companies struggle with in terms of deploying machine- and deep-learning models in industrial contexts with production quality. Each theme has its own part in the book and each part has an introduction chapter and then a carefully selected reprint of the most important papers from that theme. This book mainly aims at researchers and advanced professionals in the areas of software engineering who would like to get an overview about the achievement made in various topics relevant for industrial large-scale software development and management - and to see how research benefits from a close cooperation between industry and academia.
Software quality is vitally important to the success of a business. A single undetected error or defect during the software development process could have disastrous consequences during a business operation. Software review is one of the methods used to detect defects. This process maintains the quality of the product by reviewing interim deliverables during development. ""Modern Software Review: Techniques and Technologies"" provides an understanding of the critical factors affecting software review performance and gives practical guidelines for software reviews.
Computer software and technologies are advancing at an amazing rate. The accessibility of these software sources allows for a wider power among common users as well as rapid advancement in program development and operating information. Free and Open Source Software in Modern Data Science and Business Intelligence: Emerging Research and Opportunities is a critical scholarly resource that examines the differences between the two types of software, integral in the FOSS movement, and their effect on the distribution and use of software. Featuring coverage on a wide range of topics, such as FOSS Ecology, graph mining, and project tasks, this book is geared towards academicians, researchers, and students interested in current research on the growing importance of FOSS and its expanding reach in IT infrastructure.
This edited book presents scientific results of the 16th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2015) which was held on June 1 - 3, 2015 in Takamatsu, Japan. 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 and to share their experiences and exchange new ideas and information in a meaningful way. Research results about all aspects (theory, applications and tools) of computer and information science, and to discuss the practical challenges encountered along the way and the solutions adopted to solve them.
In this book the author presents some techniques for exploring trees and graphs. He illustrates the linear search technique and the backtracking technique, and as instances of tree exploration methods he presents various algorithms for parsing subclasses of context-free languages. He also illustrates some tree and graph exploration and manipulation methods by presenting, among others, algorithms for visiting trees, evaluating Boolean expressions, proving propositional formulas, computing paths in graphs, and performing string matching. This book has been used for advanced undergraduate and graduate courses on automata and formal languages, and assumes some prior exposure to the basic notions in that area. Sample programs are presented in Java and Prolog.
Digital Image Processing with C++ presents the theory of digital image processing, and implementations of algorithms using a dedicated library. Processing a digital image means transforming its content (denoising, stylizing, etc.), or extracting information to solve a given problem (object recognition, measurement, motion estimation, etc.). This book presents the mathematical theories underlying digital image processing, as well as their practical implementation through examples of algorithms implemented in the C++ language, using the free and easy-to-use CImg library. Chapters cover in a broad way the field of digital image processing and proposes practical and functional implementations of each method theoretically described. The main topics covered include filtering in spatial and frequency domains, mathematical morphology, feature extraction and applications to segmentation, motion estimation, multispectral image processing and 3D visualization. Students or developers wishing to discover or specialize in this discipline, teachers and researchers wishing to quickly prototype new algorithms, or develop courses, will all find in this book material to discover image processing or deepen their knowledge in this field.
Discusses concepts such as Basic Programming Principles, OOP Principles, Database Programming, GUI Programming, Network Programming, Data Analytics and Visualization, Statistical Analysis, Virtual Reality, Web Development, Machine Learning, Deep Learning Provides the code and the output for all the concepts discussed Includes a case study at the end of each chapter
Creativity and rationale comprise an essential tension in design. They are two sides of the coin; contrary, complementary, but perhaps also interdependent. Designs always serve purposes. They always have an internal logic. They can be queried, explained, and evaluated. These characteristics are what design rationale is about. But at the same time designs always provoke experiences and insights. They open up possibilities, raise questions, and engage human sense making. Design is always about creativity. "Creativity and Rationale: Enhancing Human Experience by Design" comprises 19 complementary chapters by leading experts in the areas of human-computer interaction design, sociotechnical systems design, requirements engineering, information systems, and artificial intelligence. Researchers, research students and practitioners in human-computer interaction and software design will find this state of the art volume invaluable.
Explores the history of telepresence from the 1948 developments of master-slave manipulation, through to current telepresence technology used in space, undersea, surgery and telemedicine, operations in nuclear and other hazardous environments, policing and surveillance, agriculture, construction, mining, warehousing, education, amusement, social media and other contexts Reviews the differing technologies for visual, haptic, tactile remote sensing at the remote site, and the corresponding means of the display to the human operator Reviews the sensing and control technology, its history, and likely future, and discusses the many research and policy issues Reviews psychological experiments in telepresence with relation to virtual and augmented reality Examines social and ethical concerns: ease of spying, mischief, and crime via remote control of an avatar
This book explores the possibility of integrating design thinking into today's technical contexts. Despite the popularity of design thinking in research and practice, this area is still too often treated in isolation without a clear, consistent connection to the world of software development. The book presents design thinking approaches and experiences that can facilitate the development of software-intensive products and services. It argues that design thinking and related software engineering practices, including requirements engineering and user-centric design (UX) approaches, are not mutually exclusive. Rather, they provide complementary methods and tools for designing software-intensive systems with a human-centric approach. Bringing together prominent experts and practitioners to share their insights, approaches and experiences, the book sheds new light on the specific interpretations and meanings of design thinking in various fields such as engineering, management, and information technology. As such, it provides a framework for professionals to demonstrate the potential of design thinking for software development, while offering academic researchers a roadmap for further research.
Software exists in a wide array of products, ranging from toys, entertainment systems, medical systems, and home appliances to large-scale products such as aircraft and communication systems. Knowledge Engineering for Software Development Life Cycles: Support Technologies and Applications bridges the best practices and design principles successfully employed over last two decades with modern Knowledge Engineering (KE), which has provided some of the most valuable techniques and tools to support encoding knowledge and experiences. Through its identification and exploration of software development practices, captured as software guidelines that can be represented to automated software development, decision making, and knowledge management, this book brings industry and academia together to address the need for the growing applications and supporting knowledge-based approaches to software development.
Formal methods for the specification and verification of hardware and software systems are becoming more and more important as systems increase in size and complexity. The aim of the book is to illustrate progress in formal methods, based on Petri net formalisms. It contains a collection of examples arising from different fields, such as flexible manufacturing, telecommunication and workflow management systems.The book covers the main phases in the life cycle of design and implementation of a system, i.e., specification, model checking techniques for verification, analysis of properties, code generation, and execution of models. These techniques and their tool support are discussed in detail including practical issues. Amongst others, fundamental concepts such as composition, abstraction, and reusability of models, model verification, and verification of properties are systematically introduced.
This book is the first attempt to bring together current research findings in the domain of interactive horizontal displays. The novel compilation will integrate and summarise findings from the most important international tabletop research teams. It will provide a state-of-the art overview of this research domain and therefore allow for discussion of emerging and future directions in research and technology of interactive horizontal displays. Latest advances in interaction and software technologies and their increasing availability beyond research labs, refuels the interest in interactive horizontal displays. In the early 1990s Mark Weiser s vision of Ubiquitous Computing redefined the notion of Human Computer Interaction. Interaction was no longer considered to happen only with standard desktop computers but also with elements of their environment. This book is structured in three major areas: under, on/above and around tabletops. These areas are associated with different research disciplines such as Hardware/Software and Computer Science, Human Computer Interaction (HCI) and Computer Supported Collaborative Work (CSCW). However, the comprehensive and compelling presentation of the topic of the book results from its interdisciplinary character. The book addresses fellow researchers who are interested in this domain and practitioners considering interactive tabletops in real-world projects. It will also be a useful introduction into tabletop research that can be used for the academic curriculum."
Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.
How do you build a product that delights users? You must first know who your users are and how they plan to use what you're building. With this practical book, you'll explore the often-misunderstood practice of user story mapping, and learn how it can help keep your team stay focused on users and their experience throughout the development process. You and your team will learn that user stories aren't a way to write better specifications, but a way to organize and have better conversations. This book will help you understand what kinds of conversations you should be having, when to have them, and what to keep track of when you do.Learn the key concepts used to create a great story mapUnderstand how user stories really work, and how to make good use of them in agile and lean projectsExamine the nuts and bolts of managing stories through the development cycleUse strategies that help you continue to learn before and after the product's release to customers and users "User Story Mapping" is ideal for agile and lean software development team members, product managers and UX practitioners in commercial product companies, and business analysts and project managers in IT organizations--whether you're new to this approach or want to understand more about it. |
You may like...
Research Anthology on Architectures…
Information R Management Association
Hardcover
R12,620
Discovery Miles 126 200
Research Anthology on Architectures…
Information R Management Association
Hardcover
R12,630
Discovery Miles 126 300
Hardware Accelerator Systems for…
Shiho Kim, Ganesh Chandra Deka
Hardcover
R3,950
Discovery Miles 39 500
Clean Architecture - A Craftsman's Guide…
Robert Martin
Paperback
(1)
Dark Silicon and Future On-chip Systems…
Suyel Namasudra, Hamid Sarbazi-Azad
Hardcover
R3,940
Discovery Miles 39 400
Essential Java for Scientists and…
Brian Hahn, Katherine Malan
Paperback
R1,266
Discovery Miles 12 660
|