Software architectures for dependable systems. - De Lemos, Rogerio (Software engineering notes.)