Home/Authors/Donald Firesmith/Series/Donald Firesmith Technical Books
Cover for Donald Firesmith Technical Books series
ongoing11 books
Photo of Donald Firesmith
By Donald Firesmith

Donald Firesmith Technical Books

Showing 11 of 11 books in this series
Cover for Object Oriented Requirements Analysis And Logical Design

Using a rigorous, technical approach, it is written by a leader in the field who has developed his own object-oriented design techniques. Covers object-oriented design of software from requirements analysis to design, principles that can be applied for all types of software ranging from large to extremely complex to real time systems. The methods discussed can be used with either object-oriented or object-based language. Contains a copious amount of practical examples.

Details
Cover for The Simulation Theory of Consciousness

Have you ever wondered what our robots might be thinking? What do our cars experience as they use their sensors to observe the world around them and increasingly take over our driving duties? When we play computer games, are we the only ones who experience the simulated virtual worlds they create? More generally, are our computer-driven creations sentient with their own internal, subjective streams of conscious? Named a distinguished engineer by the Association of Computing Machinery, Donald Firesmith uses his 40 years of experience developing complex, software-intensive systems toargue that the answer is yes. The many functional analogies between humans and cyber-physical systems produce a strong argument that every software-reliant physical system that creates a real-time simulation of itself and its environment is consciously aware of that simulation. Just as neuroscientists study consciousness in terms of the neural correlates of consciousness (NCC), software and system engineers will study artificial consciousness in terms of the corresponding cyber correlates of consciousness (CCC). The consciousness of our creations is not just an issue for engineers and academics. As our cyber-physical systems become more intelligent and pervasive, it is time for all of us to consider the social, ethical, and legal ramifications of their intelligence. To do less could have dire consequences.

Details

A comprehensive text presenting object-oriented standards and procedures for the institutionalization of the major object-oriented methods. The standards and procedures are designed as foundations which development organizations can tailor for their specific needs. The methods can be mixed and matched for specific application domains and existing CASE tools.

Details
Cover for Dictionary of Object Technology

Dictionary of Object Technology: The Definitive Desk Reference is the only reference of its kind dedicated to the terminology used in the object technology field. With over 3,000 main entries and over 600 pages, this long-awaited and much needed dictionary is cross-referenced by major components and includes complete appendices specific to industry standards, languages, and more. This fundamental reference will aid information technology (IT) professionals in maintaining consistent language usage across the entire spectrum of the object technology field.

Details
Cover for OPEN Modeling Language

OPEN (Object-oriented Process, Environment and Notation) is an international de facto standard object-oriented development method developed and maintained by the OPEN Consortium. OPEN consists of the OPEN Modeling Language (OML) as well as process, metrics, etc. This book specifies OML, a small but vital component of the complete OPEN method. It uses diagrams, tables, Web references and text to present the syntax, semantics and rationale behind OML. It documents version 1.0 of OML so that object-oriented modelers can learn and use it, and upperCASE vendors can support it.

Details
Cover for Documenting a Complete Java Application Using Open

Based on a hands-on training course, Documenting a Complete Java Application Using OPEN provides a reference for the entire object-oriented development process from beginning to end, from requirements through design and implementation to testing. Aimed at developers new to object-oriented technology, the example application - a vending machine - has been specifically developed to illustrate a wide range of potentially problematical circumstances that might be encountered by any software engineer. The documentation of the example included in the book provides a format that any software engineer may follow to document his/her own software, together with advice on what information should be included and what may be excluded given time and resource constraints. The design process is described using OPEN, an international, non-proprietary object-oriented development method and process framework. The application is implemented in Java. Appendices show how to map the process to UML and include Smalltalk code implementation details.

Details
Cover for The Open Process Framework(With: Brian Henderson-Sellers)

"[The authors] have done an excellent job of bringing forth the power and the flexibility of this most useful framework in an easy to read and understand introduction. Although it has been written to be an introductory text in OPF, I found [it] also readily useable as a handbook for initial process definition, an accessible treatment of important issues in software process design, and a textbook in OPF." Houman Younessi Associate Professor of Computer Science, Rensselaer Polytechnic Institute The OPEN Process Framework provides a template for generating flexible, yet disciplined, processes for developing high-quality software and system applications within a predictable schedule and budget. Using this framework as a starting point, you can create and tailor a process to meet the specific needs of the project.

Details
Cover for The Method Framework for Engineering System Architectures

The architects of today’s large and complex systems all too often struggle with the lack of a consistent set of principles and practices that adequately address the entire breadth of systems architecture. The Method Framework for Engineering System Architectures (MFESA) enables system architects and process engineers to create methods for effectively and efficiently engineering high-quality architecture for systems, subsystems, and software components. Meets the Needs of Specific Projects The book begins by documenting the common challenges that must be addressed by system architecture engineering. It explores the major principles answering these challenges and forming the basis of MFESA. Next, the authors introduce MFESA, including its primary goals, inputs, tasks, outputs, and assumptions. Then they describe the fundamental concepts and terminology on which the systems architecture engineering is founded. This is followed by a description of each of the ten system architecture engineering tasks including associated goals and objectives, preconditions, inputs, steps, postconditions, work products, guidelines, and pitfalls. Finally, the book documents the relationship between quality and architecture, explains the quality model underlying MFESA, and provides a summary of MFESA method framework, as well as a list of points to remember and future directions planned for MFESA. Explains Specific Rationales Organized as a handy desk reference, this book harnesses more than 100 years of the authors’ combined professional experience to provide extensive guidelines, best practices, and tips on avoiding possible pitfalls. It presents a direct rationale of why steps are taken, how things can go wrong, and guidance for how and when to tailor the model for a system’s specific context. CRC Press is pleased to announce that The Method Framework for Engineering System Architectures has been added to Intel Corporation’s Recommended Reading List . Intel’s Recommended Reading program provides technical professionals a simple and handy reference list of what to read to stay abreast of new technologies. Dozens of industry technologists, corporate fellows, and engineers have helped by suggesting books and reviewing the list. This is the most comprehensive reading list available for professional computer developers.

Details
Cover for Security And Safety Requirements For Software Intensive Systems

Safety and security are major concerns with most non-trivial software-intensive systems, as hazards and threats raise the risk of accidents and attacks. Because requirements engineers, safety engineers, and security engineers do not know how to collaborate to produce proper safety and security requirements, systems are built with significant vulnerabilities that are difficult and expensive to fix. Security and Safety Requirements for Software-Intensive Systems addresses this issue by integrating these areas and providing enough basic information to allow for effective collaboration. With examples, this book provides a practical process for identifying, reusing, and managing requirements.

Details
Cover for Common System and Software Testing Pitfalls

“Don’s book is a very good addition both to the testing literature and to the literature on quality assurance and software engineering… . [It] is likely to become a standard for test training as well as a good reference for professional testers and developers. I would also recommend this book as background material for negotiating outsourced software contracts. I often work as an expert witness in litigation for software with very poor quality, and this book might well reduce or eliminate these lawsuits….” –Capers Jones, VP and CTO, Namcook Analytics LLC Software and system testers repeatedly fall victim to the same pitfalls. Think of them as “anti-patterns”: mistakes that make testing far less effective and efficient than it ought to be. In Common System and Software Testing Pitfalls, Donald G. Firesmith catalogs 92 of these pitfalls. Drawing on his 35 years of software and system engineering experience, Firesmith shows testers and technical managers and other stakeholders how to avoid falling into these pitfalls, recognize when they have already fallen in, and escape while minimizing their negative consequences. Firesmith writes for testing professionals and other stakeholders involved in large or medium-sized projects. His anti-patterns and solutions address both “pure software” applications and “software-reliant systems,” encompassing heterogeneous subsystems, hardware, software, data, facilities, material, and personnel. For each pitfall, he identifies its applicability, characteristic symptoms, potential negative consequences and causes, and offers specific actionable recommendations for avoiding it or limiting its consequences. This guide will help you Pinpoint testing processes that need improvement–before, during, and after the project Improve shared understanding and collaboration among all project participants Develop, review, and optimize future project testing programs Make your test documentation far more useful Identify testing risks and appropriate risk-mitigation strategies Categorize testing problems for metrics collection, analysis, and reporting Train new testers, QA specialists, and other project stakeholders With 92 common testing pitfalls organized into 14 categories, this taxonomy of testing pitfalls should be relatively complete. However, in spite of its comprehensiveness, it is also quite likely that additional pitfalls and even missing categories of pitfalls will be identified over time as testers read this book and compare it to their personal experiences. As an enhancement to the print edition, the author has provided the following location on the web where readers can find major additions and modifications to this taxonomy of pitfalls: http://donald.firesmith.net/home/common-testing-pitfalls Please send any recommended changes and additions to dgf (at) sei (dot) cmu (dot) edu, and the author will consider them for publication both on the website and in future editions of this book.

Details