O projeto de programação alude às principais estruturas de um sistema de software e ao controle da fabricação de tais estruturas e sistemas. Cada estrutura envolve componentes de programação, relações entre eles, e propriedades dos dois componentes e relações. A engenharia de um sistema de software de produto é uma ilustração, praticamente equivalente à engenharia de um edifício. Funciona como um diagrama para o sistema e o empreendimento criador, espalhando as tarefas não importantes a serem executadas pelas equipes de planejamento.
A engenharia de programação está ligada à tomada de decisões auxiliares cruciais que, uma vez atualizadas, são dispendiosas de serem alteradas. As decisões de engenharia de programação incorporam alternativas básicas explícitas a partir de potenciais resultados no plano de programação. Por exemplo, os frameworks que controlavam o veículo de despacho do transporte espacial tinham a necessidade de serem rápidos e verdadeiramente confiáveis. Desta forma, seria escolhida uma linguagem de processamento constante e adequada. Além disso, para atender ao requisito de qualidade inabalável, poderia ser tomada a decisão de ter vários excessos e duplicatas do programa criadas de forma autônoma e de executar essas duplicatas em equipamentos livres enquanto se cruzam os resultados.
A engenharia de gravação de programação estimula a correspondência entre parceiros, captura escolhas antecipadas sobre a estrutura de níveis elevados e permite a reutilização de segmentos do plano entre projetos.
A engenharia de programação mostra o acompanhamento:
Um grande número de sócios: os sistemas de software precisam levar em conta um sortimento de sócios, por exemplo, chefes de negócios, proprietários, clientes e administradores. Todos esses sócios têm suas próprias preocupações com relação à estrutura. Ajustar estas preocupações e mostrar como elas são tratadas é uma parte do planejamento do sistema.:29-31 Isto infere a engenharia inclui o gerenciamento de uma ampla gama de preocupações e parceiros e tem uma natureza multidisciplinar.
Divisão de preocupações: a rota construída pelos planejadores para diminuir a imprevisibilidade é isolar as preocupações que impulsionam a estrutura. A documentação de engenharia mostra que todas as preocupações dos parceiros são tendenciosas, demonstrando e retratando o projeto a partir de perspectivas isoladas relacionadas às diferentes preocupações dos parceiros. Estes diferentes retratos são chamados de building sees (veja por exemplo o Modelo de Visão Estrutural 4+1).
Qualidade: a configuração exemplar da programação (por exemplo, programas de computador Jackson Organized Writing) foi impulsionada pela utilidade necessária e pela progressão da informação através do framework, mas a percepção atual:26-28 é que o design de um framework de produto é ainda mais firmemente identificado com seus traços de qualidade, por exemplo, adaptação à falha interna, em semelhança inversa, extensibilidade, confiabilidade, praticidade, acessibilidade, segurança, facilidade de uso, e outras – doenças. As preocupações dos parceiros freqüentemente se convertem em pré-requisitos desses traços de qualidade, que são diferentemente chamados de necessidades não-úteis, pré-requisitos extrapráticos, pré-requisitos sociais ou pré-requisitos de propriedade de qualidade.
Estilos repetitivos: assim como o projeto de estruturas, a disciplina de engenharia de produto criou abordagens padronizadas para lidar com preocupações repetitivas. Essas “formas padrão” são chamadas por diferentes nomes em diferentes graus de deliberação. As expressões normais para arranjos repetitivos são estilo de construção,:273-277 tática,:70-72 arquitetura de referência e padrão estrutural.:203-205
Retidão teórica: um termo apresentado por Fred Creeks em The Legendary Man-Month para significar a possibilidade de que o desenho de uma estrutura de produto fala a uma visão geral do que deve fazer e como deve fazê-lo. Esta visão deve ser isolada de seu uso. O planejador espera o trabalho de “guardião da visão”, assegurando que os aumentos da estrutura estejam de acordo com o design, salvaguardando assim a integridade teórica.:41-50
Limitações psicológicas: uma percepção previamente feita em 1967 pelo engenheiro de software Melvin Conway de que as associações que planejam frameworks são obrigadas a entregar estruturas que são duplicatas das estruturas correspondentes dessas associações. Da mesma forma, com razoável honestidade, foi Fred Streams quem o conheceu com uma multidão mais extensa quando se referiu ao trabalho e ao pensamento em seu primoroso grande The Legendary Man-Month, chamando-o de “Lei de Conway”.
Atividades de arquitetura
Há inúmeros exercícios que o arquiteto do produto realiza. Um desenhista de produto normalmente trabalha com administradores de empreendimentos, examina necessidades estruturalmente críticas com parceiros, planeja uma engenharia de produto, avalia uma configuração, fala com planejadores e parceiros, arquiva o plano de composição e muito mais. Há quatro exercícios centrais no projeto de programação. Estes exercícios de engenharia do centro são realizados iterativamente e em várias fases do ciclo de vida de avanço da programação subjacente, assim como sobre o desenvolvimento de uma estrutura.
A investigação construtiva é o caminho para entender a natureza em que uma ou mais estruturas propostas funcionarão e decidir os pré-requisitos para a estrutura. As informações ou pré-requisitos para a ação de investigação podem surgir de qualquer número de parceiros e incorporar coisas, por exemplo,
o que o sistema vai fazer quando estiver operacional (os pré-requisitos práticos)
quão bem o sistema executará as necessidades não utilitárias de tempo de execução, por exemplo, qualidade inabalável, operabilidade, produtividade de execução, segurança, similaridade caracterizada na norma ISO/IEC 25010:2011
tempo de avanço necessidades não práticas, por exemplo, viabilidade e transferibilidade caracterizadas na norma ISO 25010:2011
necessidades empresariais e cenários naturais de uma estrutura que pode mudar após algum tempo, por exemplo, preocupações legais, sociais, relacionadas com o dinheiro, agressivas e de inovação[26].
Os rendimentos do movimento de exame são aqueles pré-requisitos que afetam de forma mensurável a engenharia de uma estrutura de produto, chamados de requisitos de composição dignos de nota.
Uma mistura ou configuração estrutural é o caminho para fazer engenharia. Dadas as necessidades críticas de composição controladas pela investigação, o estado atual da estrutura e as conseqüências de quaisquer exercícios de avaliação, o plano é feito e aperfeiçoado.:311-326
A avaliação de engenharia é o caminho para decidir quão bem a estrutura atual ou um segmento da mesma cumpre os pré-requisitos determinados durante o exame. Uma avaliação pode acontecer em qualquer ponto em que um projetista esteja pensando na escolha de um plano, pode acontecer depois de um pouco da estrutura ter sido finalizada, pode acontecer depois da última configuração ter sido finalizada ou pode acontecer depois de a estrutura ter sido desenvolvida. Uma parte dos procedimentos acessíveis de avaliação da engenharia de programação incorpora a Design Tradeoff Investigation Strategy (ATAM) e TARA.[28] Estruturas para contrastar as estratégias são faladas em sistemas, por exemplo, SARA Report[16] e Design Audits: Prática e Experiência[29].
O avanço do projeto é o caminho para manter e ajustar uma engenharia de programação atual para atender às mudanças nas necessidades e condições. Como a engenharia de programação dá uma estrutura básica de uma estrutura de produto, seu desenvolvimento e suporte afetaria essencialmente sua estrutura básica. Nessa capacidade, o avanço do projeto está preocupado em incluir novas utilidades, assim como manter a utilidade existente e a conduta do framework.
A engenharia requer exercícios básicos de apoio. Estes exercícios de suporte acontecem através do processo de engenharia de programação do centro. Eles incorporam informações no quadro e correspondência, pensamento de planejamento e liderança básica e documentação.
Atividades de apoio à arquitetura
Os exercícios de apoio à engenharia de programação são completados durante os exercícios de projeto de programação central. Estes exercícios de suporte ajudam um engenheiro de produto a completar a investigação, fusão, avaliação e avanço. Por exemplo, um modelador precisa montar informações, fazer escolhas e registrar durante a fase de investigação.
Informações no quadro e correspondência é a demonstração da investigação e supervisão de informações básicas para o planejamento de um projeto de produto. Um designer de produto não trabalha em segregação. Eles recebem insumos, pré-requisitos utilitários e não práticos, e planejam configurações, de diferentes parceiros; e dão rendimentos aos parceiros. A informação do projeto de programação é freqüentemente inferida e é mantida na cabeça dos parceiros. As informações do projeto de programação são vinculadas à descoberta, ao transporte e à retenção de informações. Como as questões de configuração de engenharia de programação são alucinantes e dependentes, um buraco de informação no pensamento de configuração pode causar erro no projeto de engenharia de programação[23][30] Instâncias de informação que a placa e exercícios de correspondência incorporam procurando por projetos de configuração, prototipando, perguntando a engenheiros e planejadores experientes, avaliando as estruturas de estruturas comparativas, transmitindo informações a diferentes originadores e parceiros, e relatando o envolvimento com uma página wiki.
O pensamento de configuração e liderança básica é a ação de avaliar as escolhas do plano. Esta ação é básica para cada uma das três atividades de engenharia de programação do centro[9][31] Envolve montagem e escolha de parceiros, detalhando questões de escolha de estrutura, descobrindo alternativas de arranjos e avaliando tradeoffs antes de decidir. Este procedimento acontece em vários graus de granularidade de escolha, enquanto avalia necessidades estruturais notáveis e escolhas de projeto de programação, e investigação de engenharia de programação, amalgamação e avaliação. Os exercícios de reflexão incorporam a compreensão dos efeitos de um pré-requisito ou de um plano sobre os traços de qualidade, examinando as questões que uma estrutura pode causar, levantando alternativas de arranjos concebíveis e avaliando os tradeoffs entre arranjos.
A documentação é a demonstração do registro da estrutura criada durante o processo de projeto do produto. A configuração de um framework é descrita utilizando alguns poucos, vendo que grande parte do tempo incorpora uma visão estática indicando a estrutura do código do framework, uma visão única demonstrando as atividades do framework durante a execução, e uma visão da organização indicando como um framework é definido nos equipamentos para execução. A visão 4+1 de Kruchten propõe uma representação das perspectivas normalmente utilizadas para a arquitetura de programação de relatórios;[32] Arquivando Estruturas de Programação: Perspectives and Past (Perspectivas e Passado) tem retratos dos tipos de documentação que poderiam ser utilizados dentro da descrição da visão;[1] Instâncias de exercícios de documentação estão compondo uma determinação, registrando um modelo de configuração de framework, arquivando um método de planejamento de raciocínio, construindo uma perspectiva, arquivando vistas.