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®) MBT syllabus for certification.
This book shows that a formation approach to discovering and creating stable design patterns accords with Alexander’s current understanding of architectural patterns. Stable design patterns are a type of knowledge pattern that underline human problem solving methods and appeal to the pattern community.
This book examines software design patterns with respect to four central themes:How do we develop a solution for the problem through software stability concepts? This book offers a direct application of using software stability concepts for modeling solutions. How do we achieve software stability over time and design patterns that are effective to use? What are the unique roles of stable design patterns in modeling the accurate solution of the problem at hand and in providing stable and undisputed design for such problems? This book enumerates a complete and domain-less list of stable patterns that are useful for designing and modeling solutions for frequently recurring problems. What is the most efficient way to document the stable design patters to ensure efficient reusability? This book is an extension to the contemporary templates that are used in documenting design patterns.
This book gives a pragmatic and a novel approach toward understanding the problem domain and in proposing stable solutions for engineering stable software systems, components, and frameworks.
Introduction to Software Engineering, Second Edition equips students with the fundamentals to prepare them for satisfying careers as software engineers regardless of future changes in the field, even if the changes are unpredictable or disruptive in nature. Retaining the same organization as its predecessor, this second edition adds considerable material on open source and agile development models.
The text helps students understand software development techniques and processes at a reasonably sophisticated level. Students acquire practical experience through team software projects. Throughout much of the book, a relatively large project is used to teach about the requirements, design, and coding of software. In addition, a continuing case study of an agile software development project offers a complete picture of how a successful agile project can work.
The book covers each major phase of the software development life cycle, from developing software requirements to software maintenance. It also discusses project management and explains how to read software engineering literature. Three appendices describe software patents, command-line arguments, and flowcharts.
The Fourth Edition:
Emphasizes technical inspections and is supplemented by an appendix with a full package of documents required for a sample Use Case technical inspection Introduces an innovative approach that merges the Event-Driven Petri Nets from the earlier editions with the "Swim Lane" concept from the Unified Modeling Language (UML) that permits model-based testing for four levels of interaction among constituents in a System of Systems Introduces model-based development and provides an explanation of how to conduct testing within model-based development environments Presents a new section on methods for testing software in an Agile programming environment Explores test-driven development, reexamines all-pairs testing, and explains the four contexts of software testing
Thoroughly revised and updated, Software Testing: A Craftsman’s Approach, Fourth Edition is sure to become a standard reference for those who need to stay up to date with evolving technologies in software testing. Carrying on the tradition of previous editions, it will continue to serve as a valuable reference for software testers, developers, and engineers.
"A fabulous book: well written, well paced, fun, and informative. I also love the sense of humor. It's very good at disarming the fear. And it's gorgeous. I'll be recommending this book highly."
--Tom Igoe, author of Physical Computing and Making Things Talk
Want to learn the fundamentals of electronics in a fun, hands-on way? With Make: Electronics, you'll start working on real projects as soon as you crack open the book. Explore all of the key components and essential principles through a series of fascinating experiments. You'll build the circuits first, then learn the theory behind them!
Build working devices, from simple to complex You'll start with the basics and then move on to more complicated projects. Go from switching circuits to integrated circuits, and from simple alarms to programmable microcontrollers. Step-by-step instructions and more than 500 full-color photographs and illustrations will help you use -- and understand -- electronics concepts and techniques.Discover by breaking things: experiment with components and learn from failure Set up a tricked-out project space: make a work area at home, equipped with the tools and parts you'll need Learn about key electronic components and their functions within a circuit Create an intrusion alarm, holiday lights, wearable electronic jewelry, audio processors, a reflex tester, and a combination lock Build an autonomous robot cart that can sense its environment and avoid obstacles Get clear, easy-to-understand explanations of what you're doing and why