Patterns kompakt fasst die wichtigsten Entwurfsmuster zusammen, die Sie für Software-Entwicklung benötigen. Software-Entwickler, -Architekten und -Designer finden darin effektiv anwendbare Lösungen für tägliche Entwurfsprobleme. Die vierte Auflage wurde um aktuelle Patterns erweitert und komplett überarbeitet. Das Buch gliedert Patterns anhand typischer Aspekte des Software-Entwurfs: Basismuster für mehr Flexibilität und Wartbarkeit, Präsentation, Kommunikation und Verteilung, Integration und Persistenz. Patterns kompakt richtet sich an Praktiker: Software-Entwickler, -Designer, -Architekten und alle, die einen praxisorientierten Überblick zu Entwurfsmustern benötigen.
Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testing framework in use today. Agile coach and test automation expert Gerard Meszaros describes 68 proven patterns for making tests easier to write, understand, and maintain. He then shows you how to make them more robust and repeatable--and far more cost-effective. Loaded with information, this book feels like three books in one. The first part is a detailed tutorial on test automation that covers everything from test strategy to in-depth test coding. The second part, a catalog of 18 frequently encountered test smells, provides trouble-shooting guidelines to help you determine the root cause of problems and the most applicable patterns. The third part contains detailed descriptions of each pattern, including refactoring instructions illustrated by extensive code samples in multiple programming languages. Topics covered include Writing better tests--and writing them faster The four phases of automated tests: fixture setup, exercising the system under test, result verification, and fixture teardown Improving test coverage by isolating software from its environment using Test Stubs and Mock Objects Designing software for greater testability Using test smells (including code smells, behavior smells, and project smells) to spot problems and know when and how to eliminate them Refactoring tests for greater simplicity, robustness, and execution speed This book will benefit developers, managers, and testers working with any agile or conventional development process, whether doing test-driven development or writing the tests last. While the patterns and smells are especially applicable to all members of the xUnit family, they also apply to next-generation behavior-driven development frameworks such as RSpec and JBehave and to other kinds of test automation tools, including recorded test tools and data-driven test tools such as Fit and FitNesse. Visual Summary of the Pattern Language Foreword Preface Acknowledgments Introduction Refactoring a Test PART I: The Narratives Chapter 1 A Brief Tour Chapter 2 Test Smells Chapter 3 Goals of Test Automation Chapter 4 Philosophy of Test Automation Chapter 5 Principles of Test Automation Chapter 6 Test Automation Strategy Chapter 7 xUnit Basics Chapter 8 Transient Fixture Management Chapter 9 Persistent Fixture Management Chapter 10 Result Verification Chapter 11 Using Test Doubles Chapter 12 Organizing Our Tests Chapter 13 Testing with Databases Chapter 14 A Roadmap to Effective Test Automation PART II: The Test Smells Chapter 15 Code Smells Chapter 16 Behavior Smells Chapter 17 Project Smells PART III: The Patterns Chapter 18 Test Strategy Patterns Chapter 19 xUnit Basics Patterns Chapter 20 Fixture Setup Patterns Chapter 21 Result Verification Patterns Chapter 22 Fixture Teardown Patterns Chapter 23 Test Double Patterns Chapter 24 Test Organization Patterns Chapter 25 Database Patterns Chapter 26 Design-for-Testability Patterns Chapter 27 Value Patterns PART IV: Appendixes Appendix A Test Refactorings Appendix B xUnit Terminology Appendix C xUnit Family Members Appendix D Tools Appendix E Goals and Principles Appendix F Smells, Aliases, and Causes Appendix G Patterns, Aliases, and Variations Glossary References Inde
This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.
You´re not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don´t want to reinvent the wheel (or worse, a flat tire), so you look to Design Patternsthe lessons learned by those who´ve faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matterwhy to use them, when to use them, how to use them (and when NOT to use them). But you don´t just want to see how patterns look in a book, you want to know how they look ´´in the wild´´. In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java´s built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you´re up a creek without a design pattern. Most importantly, you want to learn the ´´secret language´´ of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You´ll easily counter with your deep understanding of why Singleton isn´t as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you´ll avoid the embarrassment of thinking Decorator is something from the ´´Trading Spaces´´ show. Best of all, in a way that won´t put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.If you´ve read a Head First book, you know what to expecta visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team. What´s so special about design patterns? At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns - now updated for Java 8 - shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you´ll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed. What´s so special about this book? We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
Dieses Lehrbuch des international bekannten Autors und Software-Entwicklers Craig Larman ist ein Standardwerk zur objektorientierten Analyse und Design unter Verwendung von UML 2.0 und Patterns. Das Buch zeichnet sich insbesondere durch die Fähigkeit des Autors aus, komplexe Sachverhalte anschaulich und praxisnah darzustellen. Der Leser erhält grundlegende OOA/D-Fertigkeiten sowie umfassende Erläuterungen zur iterativen Entwicklung und zum Unified Process (UP). Anschließend werden zwei Fallstudien vorgestellt, anhand derer die einzelnen Analyse- und Designprozesse des UP in Form einer Inception-, Elaboration- und Construction-Phase durchgespielt werden. Der Leser wird Schritt für Schritt mit Use Case- und Domänenmodellen vertraut gemacht und lernt, wie er diese mit UML-Diagrammen visualisieren kann. Darüber hinaus wird der Objektentwurf anhand von Patterns, insbesondere die ´´Gang of Four´´-Patterns und GRASP, erläutert. Zudem erfährt der Leser, wie er aus seinen Diagrammen Klassendefinitionen und Methoden ableiten und schließlich in Code umsetzen kann. Hierbei werden UML und Patterns im Kontext des Softwareentwicklungsprozesses nicht nur erläutert, sondern insbesondere auch konkret und praxisnah angewendet. Auch weiterführende Analyse- und Designthemen, wie z.B. Zustandsmodellierung, Paketdesign und Architekturanalyse, werden besprochen.
For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming. Written for software engineers ?in the trenches,? this text focuses on the technology?the principles, patterns, and process?that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers. Features + Benefits Comprehensive, pragmatic tutorial on Agile Development and eXtreme programming written by one of the founding father of Agile Development. Teaches software developers how to get projects done on time, and on budget using the power of Agile Development. Uses real-world case studies to show how to of plan, test, refactor, and pair program using eXtreme programming. Focuses on solving customer oriented systems problems using UML and Design Patterns I. AGILE DEVELOPMENT. 1. Agile Practices. 2. Overview of Extreme Programming. 3. Planning. 4. Testing. 5. Refactoring. 6. A Programming Episode. II. AGILE DESIGN. 7. What Is Agile Design? 8. SRP: The Single-Responsibility Principle. 9. OCP: The Open-Closed Principle. 10. LSP: The Liskov Substitution Principle. 11. DIP: The Dependency-Inversion Principle. 12. ISP: The Interface-Segregation Principle. III. THE PAYROLL CASE STUDY. 13. Command and Active Object. 14. Template Method & Strategy: Inheritance vs. Delegation. 15. Facade and Mediator. 16. Singleton and Monostate. 17. Null Object. 18. The Payroll Case Study: Iteration One Begins. 19. The Payroll Case Study: Implementation. IV. PACKAGING THE PAYROLL SYSTEM. 20. Principles of Package Design. 21. Factory. 22. The Payroll Case Study (Part 2). V. THE WEATHER STATION CASE STUDY. 23. Composite. 24. Observer?Backing into a Pattern. 25. Abstract Server, Adapter, and Bridge. 26. Proxy and Stairway to Heaven: Managing Third Party APIs. 27. Case Study: Weather Station. VI. THE ETS CASE STUDY. 28. Visitor. 29. State. 30. The ETS Framework. Appendix A. UML Notation I: The CGI Example. Appendix B. UML Notation II: The Statmux. Appendix C. A Satire of Two Companies. Index. For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming. Written for software engineers ´´in the trenches,´´ this text focuses on the technology - the principles, patterns, and process - that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.
For courses in Software Engineering, Software Development, or Object-Oriented Design and Analysis at the Junior/Senior or Graduate level. This text can also be utilized in short technical courses or in short, intensive management courses. Shows students how to use both the principles of software engineering and the practices of various object-oriented tools, processes, and products. Using a step-by-step case study to illustrate the concepts and topics in each chapter, Bruegge and Dutoit emphasize learning object-oriented software engineer through practical experience: students can apply the techniques learned in class by implementing a real-world software project. The third edition addresses new trends, in particular agile project management (Chapter 14 Project Management) and agile methodologies (Chapter 16 Methodologies).
Die wichtigsten Entwurfsmuster in einem Band. Von Observer, Decorator, Factory, Singleton, Flyweight bis MVC finden Sie in diesem Buch alle gängigen Muster für die Softwarearchitektur. Für jedes Muster gibt es Einsatzempfehlungen und Best Practices. Egal, ob Sie sich in die Designprinzipien und -muster einarbeiten wollen oder eine Referenz für die tägliche Arbeit suchen: Dieses Buch gibt zuverlässig Auskunft. Aus dem Inhalt: Die wichtigsten Designprinzipien Erzeugungsmuster (Abstract Factory, Builder, Singleton ...) Strukturmuster (Adapter, Flyweight, Proxy ...) Verhaltensmuster (Chain Of Responsibility, Template Method ...) Data-Patterns (Data Source Patterns, Lazy Loading Pattern ...) OO Patterns (Dependency Injection ...) GUI-Patterns (Model View Controller (MVC) ...) Galileo Press heißt jetzt Rheinwerk Verlag.
This book constitutes the revised selected papers of the Third International Conference on Information Systems Security and Privacy, ICISSP 2017, held in Porto, Portugal, in February 2017. The 13 full papers presented were carefully reviewed and selected from a total of 100 submissions. They are dealing with topics such as vulnerability analysis and countermeasures, attack patterns discovery and intrusion detection, malware classification and detection, cryptography applications, data privacy and anonymization, security policy analysis, enhanced access control, and socio-technical aspects of security.
Interested in developing embedded systems? Since they don´t tolerate inefficiency, these systems require a disciplined approach to programming. This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements. Written by an expert who´s created embedded systems ranging from urban surveillance and DNA scanners to children´s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use. Optimize your system to reduce cost and increase performance Develop an architecture that makes your software robust in resource-constrained environments Explore sensors, motors, and other I/O devices Do more with less: reduce RAM consumption, code space, processor cycles, and power consumption Learn how to update embedded code directly in the processor Discover how to implement complex mathematics on small processors Understand what interviewers look for when you apply for an embedded systems job ´´Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. It´s very well written - entertaining, even - and filled with clear illustrations.´´ - Jack Ganssle, author and embedded system expert.