etc, assim garantimos mais exatidao na hora da entrega :D.3 - Arquitetura de SoftwareA arquitetura de software e a fase que o desenvolvedor da as cartas, claro que se pensarmos no Domain Driven Design o desenvolvedor participa de TUDO, mas veja bem, e aqui que ele decide os componentes de software, sua regras basicas internas, suas propriedades externas, e seus relacionamentos com outros softwares. Essa fase tem como objetivo manter o sistema organizado no quesito estrutural e comportamental, garantindo que os dados tratados pelo software tenham comportamento coeso e definido, permitindo tambem mudancas logicas sem afetar seu funcionamento. A arquitetura de software e necesseraria para definir padroes e o design de uma aplicacao, e aqui por exemplo que iriamos falar de Hexagonal Architecture, mas nao vou falar sobre isso hoje pois eu me alongaria muito e tbm n tenho conhecimentos soloidos sobre isso rs.Vou pegar um trecho que escrevi no segundo ano da faculdade sobre a arquitetura de software (que trabalho para copiar do caderno kkkkkk)"Ocampo da ciencia da computacao tem lidado com problemasassociados, como a complexidade da informacao, desde sua criacao.Os primeiros problemas de complexidade foram resolvidos pelosdesenvolvedores atraves da escolha da estrutura de dados, dodesenvolvimento de algoritmos e pela aplicacao de conceitos deseparacao de escopos. Embora o termo arquitetura de software sejarelativamente novo na industria, os principios fundamentais destecampo vem sendo aplicados esporadicamente pela engenharia desoftware desde o inicio dos anos 80. As primeiras tentativas decapturar e explicar a arquitetura de software do sistema foramimprecisas e desorganizadas frequentemente caracterizadas por umconjunto de diagramas. Durante o decorrer da decada de 90 houve umesforco concentrado para definir e codificar os aspectosfundamentais desta disciplina. Inicialmente um conjunto de padroesde projeto, estilo, melhores praticas, descricao de linguagens, elogica formal foram desenvolvidas durante este periodo."4 - ImplementacaoAnalistas falem o que for essa e a parte mais PICA de todas, todo software e escrito em uma linguagem de programacao, embora seja possivel, com alguma dificuldade, escreve-lo diretamente em linguagem de maquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens, diferente do que o processo de software comum prega nessa fase tambem testamos o nosso codigo como prega o processo TDD "TDD e o desenvolvimento de software orientado a testes. Entenda mais detalhes e como usa-lo! TDD e o desenvolvimento de software orientado a testes, ou em ingles, Test Driven Development. Mas mais do que simplesmente testar seu codigo, TDD e uma filosofia, uma cultura.".Diferentes linguagens de programacao funcionam de diferentes modos. Por esse motivo, os programadores podem criar programas muito diferentes para diferentes linguagens; muito embora, teoricamente, a maioria das linguagens possa ser usada para criar qualquer programa.Ha varias decadas se debate se a programacao e mais semelhante a uma arte (Donald Knuth), a uma ciencia, a matematica (Edsger Dijkstra), a engenharia (David Parnas), ou se e um campo completamente novo. Ao meu ver desenvolvimento e uma mescla de arte com engenharia mas isso e minha opiniao.Para alguma tecnologias OPEN SOURCE o desenvolvedor precisa fazer tudo, TUDO mesmo, subir ambiente, banco de dados, entao eu acredito que essa fase precisa de MUITA mas