Just Enough Software Architecture: A Risk-Driven Approach

Marshall & Brainerd
15
Free sample

This is a practical guide for software developers, and different than other software architecture books. Here's why:

It teaches risk-driven architecting. There is no need for meticulous designs when risks are small, nor any excuse for sloppy designs when risks threaten your success. This book describes a way to do just enough architecture. It avoids the one-size-fits-all process tar pit with advice on how to tune your design effort based on the risks you face.

It democratizes architecture. This book seeks to make architecture relevant to all software developers. Developers need to understand how to use constraints as guiderails that ensure desired outcomes, and how seemingly small changes can affect a system's properties.

It cultivates declarative knowledge. There is a difference between being able to hit a ball and knowing why you are able to hit it, what psychologists refer to as procedural knowledge versus declarative knowledge. This book will make you more aware of what you have been doing and provide names for the concepts.

It emphasizes the engineering. This book focuses on the technical parts of software development and what developers do to ensure the system works not job titles or processes. It shows you how to build models and analyze architectures so that you can make principled design tradeoffs. It describes the techniques software designers use to reason about medium to large sized problems and points out where you can learn specialized techniques in more detail.

It provides practical advice. Software design decisions influence the architecture and vice versa. The approach in this book embraces drill-down/pop-up behavior by describing models that have various levels of abstraction, from architecture to data structure design.
Read more
Collapse

About the author

Dr. George Fairbanks has been teaching software architecture and object-oriented design for over a decade. He holds a Ph.D. in Software Engineering from Carnegie Mellon University. He has publications on frameworks and software architecture in selective academic conferences, including OOPSLA and ICSE.

He has written production code for telephone switches, plugins for the Eclipse IDE, and everything for his own web dot-com startup. He maintains a network of Linux servers in his spare time.

George has been a program committee member for the Working International Conference on Software Architecture (WICSA), the International Conference on Software Maintenance (ICSM), and the European Conference on Software Architecture (ECSA). He has been a referee for IEEE Transactions on Software Engineering (TSE) and IEEE Software.
Read more
Collapse
3.7
15 total
Loading...

Additional Information

Publisher
Marshall & Brainerd
Read more
Collapse
Published on
Aug 30, 2010
Read more
Collapse
Pages
376
Read more
Collapse
ISBN
9780984618101
Read more
Collapse
Read more
Collapse
Read more
Collapse
Language
English
Read more
Collapse
Genres
Computers / Software Development & Engineering / General
Computers / Software Development & Engineering / Quality Assurance & Testing
Computers / Software Development & Engineering / Systems Analysis & Design
Computers / Software Development & Engineering / Tools
Read more
Collapse
Content Protection
This content is DRM free.
Read more
Collapse
Read Aloud
Available on Android devices
Read more
Collapse

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).

MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.

The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away.

The book is organized into two main parts.

The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes. The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects.

The second edition of the book features:

a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture complete revision of examples, figures, and text, for improving readability, understandability, and coherence better formulation of definitions, dependencies between concepts and ideas addition of a complete index of book content

In addition to the contents of the book, more resources are provided on the book's website http://www.mdse-book.com, including the examples presented in the book.

Learn from an expert on how to use Kubernetes, the most adopted container orchestration platform.About This BookGet a detailed, hands-on exploration of everything from the basic to the most advanced aspects of KubernetesExplore the tools behind not only the official project but also the third-party add-onsLearn how to create a wide range of tools, including clusters, Role Bindings, and Ingress Resources with default backends, among many applicable, real-word creationsDiscover how to deploy and manage highly available and fault-tolerant applications at scale with zero downtimeWho This Book Is For

This book is for professionals experienced with Docker, looking to get a detailed overview from the basics to the advanced features of Kubernetes.

What You Will LearnLet Viktor show you the wide range of features available in Kubernetes—from the basic to the most advanced featuresLearn how to use the tools not only from the official project but also from the wide range of third-party add-onsUnderstand how to create a pod, how to Scale Bids with Replica Sets, and how to install both Kubectl and MinikubeExplore the meaning of terms such as container scheduler and KubernetesDiscover how to create a local Kubernetes cluster and what to do with itIn Detail

Building on The DevOps 2.0 Toolkit, The DevOps 2.1 Toolkit: Docker Swarm, and The DevOps 2.2 Toolkit: Self-Sufficient Docker Clusters, Viktor Farcic brings his latest exploration of the DevOps Toolkit as he takes you on a journey to explore the features of Kubernetes.

The DevOps 2.3 Toolkit: Kubernetes is a book in the series that helps you build a full DevOps Toolkit. This book in the series looks at Kubernetes, the tool designed to, among other roles, make it easier in the creation and deployment of highly available and fault-tolerant applications at scale, with zero downtime.

Within this book, Viktor will cover a wide range of emerging topics, including what exactly Kubernetes is, how to use both first and third-party add-ons for projects, and how to get the skills to be able to call yourself a “Kubernetes ninja.”

Work with Viktor and dive into the creation and exploration of Kubernetes with a series of hands-on guides.

Style and approach

Readers join Viktor Farcic as he continues his exploration of DevOps and begins to explore the opportunities presented by Kubernetes.

“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.”

–Randy Stafford, Architect At-Large, Oracle Coherence Product Development

“This book is a must-read for anybody looking to put DDD into practice.”

–Udi Dahan, Founder of NServiceBus

Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.

Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.

The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

Coverage includes

Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities–and learning when to use Value Objects instead Mastering DDD’s powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases

Software Systems Architecture, Second Edition is a highly regarded, practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices.

With this book you will learn how to

Design and communicate an architecture that reflects and balances the different needs of its stakeholders Focus on architecturally significant aspects of design, including frequently overlooked areas such as performance, resilience, and location Use scenarios and patterns to drive the creation and validation of your architecture Document your architecture as a set of related views

Reflecting new standards and developments in the field, this new edition extends and updates much of the content, and

Adds a “system context viewpoint” that documents the system’s interactions with its environment Expands the discussion of architectural principles, showing how they can be used to provide traceability and rationale for architectural decisions Explains how agile development and architecture can work together Positions requirements and architecture activities in the project context Presents a new lightweight method for architectural validation

Whether you are an aspiring or practicing software architect, you will find yourself referring repeatedly to the practical advice in this book throughout the lifecycle of your projects. A supporting Web site containing further information can be found at www.viewpoints-and-perspectives.info.

What are the ingredients of robust, elegant, flexible, and maintainable software architecture? Beautiful Architecture answers this question through a collection of intriguing essays from more than a dozen of today's leading software designers and architects. In each essay, contributors present a notable software architecture, and analyze what makes it innovative and ideal for its purpose.

Some of the engineers in this book reveal how they developed a specific project, including decisions they faced and tradeoffs they made. Others take a step back to investigate how certain architectural aspects have influenced computing as a whole. With this book, you'll discover:

How Facebook's architecture is the basis for a data-centric application ecosystemThe effect of Xen's well-designed architecture on the way operating systems evolveHow community processes within the KDE project help software architectures evolve from rough sketches to beautiful systemsHow creeping featurism has helped GNU Emacs gain unanticipated functionalityThe magic behind the Jikes RVM self-optimizable, self-hosting runtimeDesign choices and building blocks that made Tandem the choice platform in high-availability environments for over two decadesDifferences and similarities between object-oriented and functional architectural viewsHow architectures can affect the software's evolution and the developers' engagement

Go behind the scenes to learn what it takes to design elegant software architecture, and how it can shape the way you approach your own projects, with Beautiful Architecture.

©2019 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.