Utility trees and quality attributes

Utility trees and quality attributes

I recently answered this question in Stackoverflow : What is an utility tree and what is it’s purpose in case of Architecture tradeoff analysis method(ATAM)?  I did answer the question there but here’s a better explanation with lots of examples base on the initial version for chapter 1 of SOA Patterns (which didn’t make it into the final version of the book). There are two...

Read More

SOA Patterns : Composite Frontend (PDF)

SOA Patterns : Composite Frontend (PDF)

I got a few request for a PDF version of the pattern so here it is :  Composite Frontend Pattern

Read More

Evolving Architectures – Part VII – Parallel

Evolving Architectures – Part VII – Parallel

(This is part seven of a series. You might want to check the previous parts first) Parallel and Simplification are the yin and yang of architecture evolution. Simplification, as mentioned previously, is about having foresight and thus provides for,relatively, easy evolution (i.e. architectural additions and not changes). Parallel is about reacting to changes in requirements as they come (no...

Read More

Azure Page Blobs vs. Liskov Substitution Principle

Azure Page Blobs vs. Liskov Substitution Principle

“Liskov Substitution Principle” or LSP is one of the basic principles for proper object orientation. LSP definition is: “Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T.” In plain english that means that if CloudPageBlob inherits from CloudBlob and...

Read More

Mixins in .NET

Mixins in .NET

Mixins are a good way to weave functionality into a class. Wikipedia defines Mixin as follows “In object-oriented programming languages, a mixin is a class that provides a certain functionality to be inherited by a subclass, while not meant for instantiation (the generation of objects of that class). Inheriting from a mixin is not a form of specialization but is rather a means of collecting...

Read More