Software Architecture Quality Attributes

DZone

Software projects are becoming complex, larger, more integrated, and are implemented by the use of several varieties of technologies. Quality attributes usually assessed and analyzed at the architecture level, not at the code level. However, some experts start talking about it, for example, I highly recommend you to attend Global Software Architecture Summit in Barcelona ( October, 1-2), where Alexander von Zitzewitz will talk about “Software Metrics for Architects”.

The topics to watch in software architecture

O'Reilly Software

Microservices, serverless, AI, ML, and Kubernetes are among the most notable topics in our analysis of proposals from the O’Reilly Software Architecture Conference. The speaker proposals we receive for the O’Reilly Software Architecture Conference are valuable because they come from speakers who are often the leading names in their fields. They also understand that business and architecture can no longer be compartmentalized, and that revenue is at stake.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The Relationship Between Software Architecture And Business Models (and more)

Strategic Tech

If every significant architecture decision has business consequences, then knowing the business model and which trade-offs to choose is maybe the most important skill of architects. But what is the actual relationship between a business model and a software architecture?

How to Choose the Best Software Architecture Patterns?

Simform

Choosing the right architecture pattern for any software is very important. Each software pattern has its own merits and demerits which can directly affect the overall attributes of software, thereby affecting the business. The post How to Choose the Best Software Architecture Patterns? Software Development

Highlights from the O'Reilly Software Architecture Conference in London 2018

O'Reilly Software

People from across the software architecture world came together in London for the O'Reilly Software Architecture Conference. Why software architects fail and what to do about it. Stefan Tilkov looks at common software architecture pitfalls and explains how they can be avoided. Watch " Why software architects fail and what to do about it.". Continue reading Highlights from the O'Reilly Software Architecture Conference in London 2018

Highlights from the O'Reilly Software Architecture Conference in New York 2019

O'Reilly Software

Watch highlights from expert talks covering cloud-native programming, software architecture career advice, and more. People from across the software architecture world are coming together in New York for the O'Reilly Software Architecture Conference. Gregor Hohpe explains how software architects can use what they know about technical systems to help refactor organizations. Design and architecture: Special Dumpster Fire Unit.

Highlights from the O'Reilly Software Architecture Conference in San Jose 2019

O'Reilly Software

Experts explore software architecture security, design heuristics, Next Architecture, and more. Experts from across the software architecture world are coming together in San Jose for the O'Reilly Software Architecture Conference. Michael Carducci takes an entertaining look at why humans are so easy to fool, and he explores what we can do to overcome our weaknesses and build more secure software. Next Architecture.

10 talks to look for at the 2018 O'Reilly Software Architecture Conference in London

O'Reilly Software

From chaos architecture to event streaming to leading teams, the O'Reilly Software Architecture Conference offers a unique depth and breadth of content. We received more than 200 abstracts for talks for the 2018 O'Reilly Software Architecture Conference in London—on both expected and surprising topics. Two of the outstanding features of the O'Reilly Software Architecture Conference are the depth and breadth of our content.

The Benefits of Software Architecture: Hierarchical Digital Twins

ScaleOut Software

Having just concluded participation in another In-Memory Computing Summit , it has become even more clear to me that the key to mainstream adoption of in-memory computing software platforms is architecture — the root of a platform’s value to applications. This notion has been reinforced through four decades of work in computer architecture and software after it was first driven home to me by a luminary in computer architecture at Intel Corporation, the late George Cox.

The Benefits of Software Architecture: Hierarchical Digital Twins

ScaleOut Software

Having just concluded participation in another In-Memory Computing Summit , it has become even more clear to me that the key to mainstream adoption of in-memory computing software platforms is architecture — the root of a platform’s value to applications. This notion has been reinforced through four decades of work in computer architecture and software after it was first driven home to me by a luminary in computer architecture at Intel Corporation, the late George Cox.

Highlights from the O'Reilly Software Architecture Conference in New York 2018

O'Reilly Software

Watch highlights covering the latest tools and techniques of software architecture. From the O'Reilly Software Architecture Conference in New York 2018. Experts from across the software architecture world came together in New York for the O'Reilly Software Architecture Conference. Defining software architecture. Watch " Defining software architecture.". --> Turning request-response on its head.

Fundamentals of software architecture

O'Reilly Software

Get a comprehensive overview and hands-on training on software architecture's many aspects. There is no single—or clearly defined—path to becoming a software architect. The sessions at the O’Reilly Software Architecture Conference reflect this fact. Fundamentals of software architecture (Mark Richards). Case Study: Maturing an agile organization with intentional architecture (Nimisha Ashatagiri).

Highlights from the O'Reilly Software Architecture Conference in Berlin 2019

O'Reilly Software

Experts explore new trends, tools, and techniques in software architecture. Continue reading Highlights from the O'Reilly Software Architecture Conference in Berlin 2019

Bounded Context Canvas Recipe: Use Case Swimlanes

Strategic Tech

If you’re not familiar with the Bounded Context Canvas it is a tool for visualising the key design choices of a Bounded Context or a sub-system in your software architecture. domain-driven-design domain-modelling ddd software-architecture

Ready for changes with Hexagonal Architecture

The Netflix TechBlog

Leveraging Hexagonal Architecture We needed to support the ability to swap data sources without impacting business logic , so we knew we needed to keep them decoupled. We decided to build our app based on principles behind Hexagonal Architecture and Uncle Bob’s Clean Architecture. The idea of Hexagonal Architecture is to put inputs and outputs at the edges of our design. The dependency graph in Hexagonal Architecture goes inward.

Scalability?: ?Think in Terms Of TCO

DZone

To make an easy-to-scale system, it is crucial to have an evolutionary way of thinking about the software development cycle. An architect should focus on designing a scalable software architecture from the early phase of the product life cycle. performance domain driven design software design principles tco software architecture design scaleablility

There’s a straight line between strong decision-making and good software architecture

O'Reilly Software

Thoughtful and effective decision-making was a key trend at the O’Reilly Software Architecture Conference in Berlin 2019. The ability to make good decisions might be the most important aspect of a software architecture practitioner’s job. Every day.every week.every month, you make critical architectural decisions. Conversely, bad software architecture decisions have the potential to leave an organization hamstrung for years.

Legacy Architecture Modernisation With Strategic Domain-Driven Design

Strategic Tech

Most organisations go through an architecture modernisation effort at some point as their systems drift into a state of intolerable maintenance costs and they diverge too far from modern technological advances. What architecture will be optimal for enabling that business vision?

Re-Architecting the Video Gatekeeper

The Netflix TechBlog

Old Gatekeeper Architecture This model had several problems associated with it: This process was completely I/O bound and put a lot of load on upstream systems. New Gatekeeper Architecture With this model, liveness evaluation is conceptually separated from the data retrieval from upstream systems. and we can do so with a higher level of safety than was possible in the previous architecture. caching software-architecture programming open-source software-engineering

Self-documenting Architecture

Strategic Tech

One of the biggest time costs in software development is understanding how a system works. As we continuously develop software systems, the complexity slowly increases and we don’t fully realise it. Why not self-documenting architecture?

AB Testing?—?So You Know What Really Works

Adrian Cockcroft

ab-test personalization software-architecture netflixWhen I joined Netflix in 2007 I was managing a team that built the personalized home page for the DVD shipping web site. The first thing I… Continue reading on The Startup ».

DDD Pattern: Library Contexts

Strategic Tech

Is there any way it’s possible to predict the future so that our architecture can easily absorb the changes we need to make of it? One thing I want you to notice is that good architecture is about more than just defining good boundaries. Getting the interactions right between the components of your architecture is equally important for loose coupling and evolvability. In DDD a bounded context is an independent, loosely-coupled architectural component.

Strategic DDD Remote Collaboration Toolkit

Strategic Tech

If you want to get started with Strategic DDD to gain deeper insights into your domain and to align your software architecture with your domain, you can use this Miro board: [link] No sign up, installation, or payment is required to view the board. Core Domain Chart Architecture Migration Chart The Architecture Migration Chart is a slightly modified core domain chart which visualises the cost and benefit of migrating each part of your architecture.

Modelling Bounded Contexts with the Bounded Context Design Canvas: A Workshop Recipe

Strategic Tech

domain-driven-design software-architecture domain-modelingHow do we break a large system into smaller, more manageable modular components? This is the question I get asked the most, so I’ve put together this article describing a workshop recipe you can use. In Domain-Driven Design, a large system is decomposed into bounded contexts , which become natural boundaries in code as microservices and as teams in the organisation. There is no shortcut to identifying good boundaries.

Analyzing Software Failure on the NASA Mars Climate Orbiter

cdemi

Because of software error, the spacecraft encountered Mars at a lower than anticipated altitude and disintegrated due to atmospheric stresses. According to this report, the primary cause of this failure was that one piece of ground software supplied by Lockheed Martin produced results in a United States customary unit, while a second system, supplied by NASA, expected those results to be in SI units. Space Software Development Programming Software Architecture

Visualising Sociotechnical Architecture with DDD and Team Topologies

Strategic Tech

I’ve been disappointed for a long time with the way in which companies organise software development teams. I remember as a young, naive software developer, I assumed there would be structured processes and patterns similar to those used for designing a software architecture. Visualising Sociotechnical Architecture as Strategy vs Investment Laying out your technical capabilities on a core domain chart communicates aspects of your technology strategy.

What is Serverless Architecture?

cdemi

Let's talk about the elephant in the room; Serverless doesn't really mean that there are no Software or Hardware servers. It just means that from Software Development perspective, servers are abstracted and outsourced to another entity, so you don't need to worry about it. Serverless is currently a hot topic in many modern architectural patterns. This has a huge impact on application architecture, however having said that, it's not necessarily a bad idea.

Byzantine Fault Tolerance

cdemi

Several system architectures were designed that implement Byzantine Fault Tolerance. Systems Architecture Software Architecture Distributed ComputingIn distributed computer systems, Byzantine Fault Tolerance is a characteristic of a system that tolerates the class of failures known as the Byzantine Generals' Problem ; for which there is an unsolvability proof. The Byzantine Generals' Problem.

AB Testing?—?So You Know What Really Works

Adrian Cockcroft

ab-test personalization software-architecture netflixAB Testing?—?So So You Know What Really Works ??Castillo Castillo San Cristo?bal?, bal?, ?San San Juan?, picture by Adrian When I joined Netflix in 2007 I was managing a team that built the personalized home page for the DVD shipping web site. The first thing I found was that every user visible change we made went through an A/B test.

Consumer-driven Coupling: Patterns and Anti-patterns

Strategic Tech

Organisations maximising the advantages provided by microservices tend to be organisations which view microservices not just as a technical tool, but a sociotechnical tool.The way software systems are shaped determines the communication paths and the coupling between development teams. Layers start to emerge and as a result, shipping new customer-facing features require changes that cut through multiple layers of the architecture.

Design Patterns: Cache-Aside Pattern

cdemi

Software Architecture Design Patterns: Data Managment Design Patterns: Performance & Scalability Design Patterns Software DevelopmentApplications that rely heavily on a data-store usually can benefit greatly from using the Cache-Aside Pattern. If used correctly, this pattern can improve performance and help maintain consistency between the cache and the underlying data store. This post is part of a Design Patterns series. Reading Data.

Cache 49

Design Patterns: Queue-Based Load Leveling Pattern

cdemi

Modern software usually involves running tasks that invoke services. Software Architecture Design Patterns: Messaging Design Patterns: Availability Design Patterns: Performance & Scalability Design Patterns Software Development RabbitMQIf the service is subjected to intermittent heavy loads, it can cause performance or reliability issues.

Sociotechnical Design Variables

Strategic Tech

how to design software architectures and organise teams around them. software-architecture sociotechnical-arch sociotechnical domain-driven-designOver the past few years I have focused much of my learning and work choices around learning about the design of sociotechnical systems?—?how Looking through the history of my talks and my posts you can see evolutions in my thinking.

Design Patterns: Series Introduction

cdemi

This is not going to be the usual, gang of four design patterns series, but rather more suited towards building a modern application architecture that caters for the increasing requirements for east-west communication and easily scaling up and deploying. Design Patterns Software Development Software ArchitectureI have decided to write a series on some common and modern Design Patterns that are useful in today's horizontally scalable (such as cloud-hosted) applications.

Design Patterns: Competing Consumer Pattern

cdemi

Software Architecture Design Patterns: Messaging Design Patterns: Performance & Scalability Design Patterns Software DevelopmentBuilding on the Queue-Based Load Leveling Pattern , the Competing Consumer Pattern enables a system to process multiple messages concurrently to optimize throughput, to improve scalability and availability, and to balance the workload. During the lifetime of an application, the number of requests may vary significantly over time.

Should We Create a Shared Service? A Decision-making Checklist

Strategic Tech

One of the key decisions we need to make in software architecture and in our organisations is when and where to create shared services and organise teams to build them. The Head of Architecture, the CTO, and the Chief Product Officer have all given their blessing to the new shared service so there is alignment on moving to the new service. Typically they deploy software once a quarter and love to have code freezes.

Mapper Contexts & Supercontexts: Decoupling Domain-Specific and Domain-Generic Bounded Contexts

Strategic Tech

You’re building a new system and two members of your team propose alternative architectures for sending notifications. How will you design the most effective architecture which supports short-term goals and long-term evolution? The implementation may look the same, but having more precise terminology is useful in allowing you to communicate your architecture more clearly. sociotechnical domain-driven-design software-architecture

Gateway Interchange Contexts

Strategic Tech

When your software system communicates with external systems or devices, there is good reason to isolate all communication with the external system into a single place and perform the relevant translation there. It’s an independent piece of software that sits conceptually at the edge of your architecture and mediates communication between agents outside the architecture and those within it. microservices software-architecture domain-driven-design

The ‘Chocolate Sauce’ Design Heuristic

Strategic Tech

A trip to the supermarket can teach you a lot about designing software systems and shaping teams to build them… I was recently in need of some chocolate sauce. The Chocolate Sauce Heuristic for Software Design There are a few lessons about software development we can learn from this story, but I want to focus on design. As software architects, we have to make the same challenging choices. A Software Example Consider the example of a marketplace for financial products.

Alignment Efficiency: When to Sacrifice Speed for Greater Alignment

Strategic Tech

I’ll show you some example scenarios to help you understand this concept, and I’ll demonstrate sociotechnical architecture patterns you can apply in your organisation to optimise your alignment efficiency. domain-driven-design software-architecture organization-design sociotechnicalIn the perfect world, each team in our organisation would spend 100% of their time on improving products and delivering value to customers.

Primary Sociotechnical Design Heuristics

Strategic Tech

There are thousands of ways we can shape the software systems we build and organise our teams around them. The products themselves are software systems which grow harder and harder to reason about as they scale and age. Lack of accountability leads to unmaintainable software that grows harder and harder to change. Sometimes, we may have very well maintained software but the architecture doesn’t align with how we’d like to set up our teams.

Revisiting “Serverless Architectures”

The Symphonia

I started writing “ Serverless Architectures ” in May 2016. I added a section on “ Globally distributed architectures ” … take a read and see what you think. :) In the testing section here I added explicit reference to testing-in-production and monitoring driven development?—?two Revisiting “Serverless Architectures” was originally published in The Symphonium on Medium, where people are continuing the conversation by highlighting and responding to this story.

Why software architects fail and what to do about it

O'Reilly Software

Stefan Tilkov looks at common software architecture pitfalls and explains how they can be avoided. Continue reading Why software architects fail and what to do about it