Showing posts with label Architecture. Show all posts
Showing posts with label Architecture. Show all posts

Friday, November 09, 2007

Processos Ágeis: Disponível 2a. Edição da Revista "Visão Ágil"


(image from http://www.agilemodeling.com/essays/proof.htm)
Está disponível a 2a. edição da revista eletrônica "Visão Ágil". Você pode baixar gratuitamente o PDF desta, e da 1a. edição, desta revista que tem foco em metodologias e processos ágeis. Não conhecia esta iniciativa do Manuel Medeiros (editor) que, a propósito, está de parabéns.

Veja abaixo a capa desta edição:

Tuesday, October 16, 2007


A Revista Mundo Java n.25 tem uma série de reportagens sobre o Arquiteto de Software.

Destaco nesta edição a excelente de capa com o título "O Papel do Arquiteto de Software".

Algumas definições são básicas mas, exatamente por serem fundamentais, é sempre bom traze-las à memória:
  • Arquitetura é infra-estrutura na qual a aplicação estará "calçada". É a fundação que vai garantir que o sistema poderá crescer e expandir sem problemas de "rachaduras". O arquiteto(a) responde por decisões como:
    • qual framework utilizar
    • como será a integração com os demais sistemas
    • como devem ser tratados os requisitos de performance, segurança, usabilidade...
    • padrões a serem adotados
  • O que deve guiar a arquitetura? Requisitos
  • Um bom arquiteto deve saber ouvir a equipe de desenvolvimento
  • Qualidades como negociação e capacidade de se comunicar na mesma lingua do usuário também são importantes e são esperadas de um bom arquiteto(a)
  • Deve ser adepto da filosofia KISS!: Keep It Simple, stupid!
Por fim uma frase do texto: "A melhor arquitetura é aquela que resolve os requisitos da maneira mais simples possível"

Se você pensa em ser arquiteto, é arquiteto ou "pensa que é " arquiteto, recomendo a leitura.

Wednesday, February 21, 2007

What Is Software Architecture?

In this blog I write posts and more posts about SOA, ESBs, RIA... ...all these subjects and terms are related to Software Architecture. But, what is software architecture? Besides definition that you can find at Wikipedia, there is an excellent source of many definitions at SEI.CMU website. SEI is the Software Engineering Institute at Carnegie Mellon University.

Below some examples:
  • First, architecture defines elements. The architecture embodies information about how the elements relate to each other. This means that architecture specifically omits certain information about elements that does not pertain to their interaction. Thus, an architecture is foremost an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements. In nearly all modern systems, elements interact with each other by means of interfaces that partition details about an element into public and private parts. Architecture is concerned with the public side of this division; private details of elements—details having to do solely with internal implementation—are not architectural
  • Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution (note from Davi: this is my best definition ever)
  • A software system architecture comprises
    - A collection of software and system components, connections, and constraints.
    - A collection of system stakeholders' need statements.
    - A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders' need statements.
  • [Crispen 94]: An Architecture, as we intend to use the term, consists of (a) a partitioning strategy and (b) a coordination strategy. The partitioning strategy leads to dividing the entire system in discrete, non-overlapping parts or components. The coordination strategy leads to explicitly defined interfaces between those parts.