Conceito, Contexto e Partido na Computação

Conclusão de Conceito, Contexto e Partido na Computação

Recentemente vi minha esposa estudando arquitetura (construção civil), sobre como projetos de sua área se dão. Então ela trouxe essa tríade que é uma referência para esses estudos. Confesso que achei interessante e propuz uma mesclagem, fazendo assim o artigo Conceito, Contexto e Partido na Computação. Então, a ideia é estruturar conhecimentos dos projetos de software e sistemas de TI, considerando que eles sejam funcionais e adaptados ao seu objetivo específico.

Bom, alem disso, aqui no blog também temos diversos outros artigos sobre desenvolvimento, gestão, devops, etc. Veja alguns exemplos: Diferenças entre Paradigmas, Axiomas e HipótesesDesenvolver na empresa ou comprar prontoFuja da otimização prematura, entre outros.

A tríade: “Conceito, Contexto e Partido”

A tríade de “Conceito, Contexto e Partido” visa garantir que projetos de arquitetura sejam bonitos ao mesmo tempo que funcionais e integrados ao ambiente. Todos os arquitetos que ajudaram a definir a tríade acreditavam na importância de considerar o ambiente e as necessidades dos usuários finais no design de prédios, casas e espaços urbanos.

Imagem que explica as diferenças entre o Conceito e o Partido utilizados em Projetos de Arquitetura.

Vitruvius foi um dos primeiros a estabelecer princípios de design focados em função, firmeza e beleza, conceitos que influenciam o design moderno. Além dele, Le Corbusier realiza suas abordagens inovadoras e pela profunda consideração do contexto em seus projetos. E também, Christopher Alexander destacou a importância do contexto e da adaptabilidade no design arquitetônico, enquanto Aldo Rossi enfatizou a relevância do contexto histórico e cultural no planejamento urbano e na arquitetura.

A matéria do Software

No mundo de verdade, a matéria se manifesta de diversas formas: átomos e suas estruturas subatômicas formam moléculas complexas, que por sua vez constroem objetos tangíveis como cadeiras, cidades, planetas e até galáxias. Entretanto, há uma diferença enorme entre esses níveis de complexidade. Quem projeta e fabrica cadeiras, por exemplo, não precisa se preocupar com as estruturas subatômicas dos materiais. A fabricação de cadeiras é uma prática que lida com uma realidade tangível e prática, sem a necessidade de se aprofundar nas leis da física.

Por outro lado, o software opera em um especto fundamentalmente diferente. Tanto softwares de baixo nível escritos em Assembly x86 e de alto nível escritos em C# ou Java manipulam bits e bytes e forma semelhante. Independentemente do nível de abstração, a “matéria” do software — os bits e bytes — permanece constante. Isso cria uma flexibilidade e versatilidade que são distintas daquelas encontradas no mundo físico.

A flexibilidade do software vem do fato de que todos os artefatos são essencialmente mentais. Enquanto no mundo físico há limitações impostas pela matéria e pela física. Já no mundo do software, a única limitação é a nossa imaginação.

O Design do Software

O termo “design” no contexto de software abrange a aparência visual mas também à forma como o software é estruturado e provoca sensações nos usuários. Em termos gerais, design pode referir-se ao layout de uma interface (UI), mas também inclui como o software se comporta e como os usuários experienciam suas interações com ele (UX).

Além da experiência do usuário, o design de software também se ocupa das interações entre os abstrações e metáforas que formam o software. Isso inclui aspectos como camadas de abstração, interfaces, conexões, APIs e a construção desses conceitos. O design de software pode ser altamente teórico, definindo conceitos fundamentais como aqueles encontrados no Domain-Driven Design (DDD), que estabelece princípios para modelar e organizar sistemas complexos. No entanto, ele também inclui práticas concretas, como a definição da topologia de um sistema de software, que se refere à organização dos componentes e suas interações.

Outra dimensão importante do design é o design do dado, que se concentra em como os dados são gerenciados, processados e estruturados. Isso envolve áreas como engenharia de dados, ciência de dados e governança de dados, etc. O design do dado também abrange a escolha entre arquiteturas de processamento de dados, como a arquitetura Kappa e Lambda, que diferem na forma como lidam com dados em lote (batch) e dados em tempo real. Essas arquiteturas influenciam significativamente como os dados são coletados, processados e analisados, impactando a eficiência e a eficácia do sistema como um todo.

Conceito, Contexto e Partido na Computação

No campo da computação, “Conceito, Contexto e Partido” serve como uma estrutura para a compreensão e desenvolvimento de sistemas e software. Esta tríade, originalmente formulada no design arquitetônico, foi aqui adaptada para abordar as nuances da engenharia de software.

Conceito, Contexto e Partido

  1. Conceito: No âmbito da computação, o conceito refere-se à ideia fundamental que orienta o desenvolvimento de um sistema ou software. É o objetivo principal que o software pretende alcançar ou o problema que ele visa resolver. Por exemplo, o conceito de um sistema de gerenciamento de projetos pode ser a facilitação da colaboração entre equipes e o rastreamento eficiente de tarefas.
  2. Contexto: O contexto diz respeito ao ambiente e às condições nas quais o sistema será implementado e utilizado. Isso inclui a infraestrutura tecnológica existente, as necessidades e expectativas dos usuários, as restrições e regulamentos relevantes, e o ambiente operacional. No design de software, entender o contexto é básico para garantir que a solução seja prática e relevante para seu ambiente específico.
  3. Partido: o partido refere-se à abordagem estratégica adotada para implementar o conceito dentro do contexto. Envolve decisões sobre arquitetura, design de interfaces, escolha de tecnologias e a maneira como diferentes componentes interagem. É o plano de ação para concretizar o conceito no ambiente específico, garantindo que o sistema seja eficiente e eficaz.

Relação com a Arquitetura de Software

Na computação, a tríade “Conceito, Contexto e Partido” define softwares que tecnicamente bem feitos ao mesmo tempo que oferecem um resultado funcional pleno para o usuário.

A relação e organização dos componentes define um software em específico, ainda que sua materialidade seja sempre de bits e bytes. Assim a interação entre as interfaces de um sistema é onde a verdadeira complexidade e a experiência do usuário se manifestam. Então, o design e a arquitetura do software podem criar experiências únicas e escaláveis, variando desde sistemas simples a complexas infraestruturas distribuídas.

Conclusão de Conceito, Contexto e Partido na Computação

A arquitetura civil gerou a tríade “Conceito, Contexto e Partido” para garantir que os projetos de construção fossem esteticamente agradáveis, funcionais e bem integrados ao seu ambiente. Adaptada para a arquitetura de software, ela assegura que os sistemas e aplicações cumpram seus objetivos principais, se encaixem bem nas condições de uso e sejam desenvolvidos com uma estratégia eficaz. Assim, a tríade contribui para criar soluções práticas, adaptáveis e eficientes, mesmo que o software seja baseado em bits e bytes.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.