Prévia do material em texto
Área: TI & Computação Unidade Curricular: Modelos, métodos e técnicas da engenharia de software Professor: Gustavo A. Fernandes Trabalho Prático: Arquitetura de Software Objetivo Escolha um conceito de sistema e proponha uma arquitetura de software adequada com base em suas necessidades e restrições. Seu objetivo é justificar por que a arquitetura escolhida atende melhor aos requisitos do sistema, em vez de focar em tecnologias ou stacks específicos. Instruções: 1. Selecione um Sistema: Pense em um sistema ou aplicativo com requisitos específicos. Pode ser um sistema de e-commerce, redes sociais, saúde, mensagens em tempo real, armazenamento de arquivos, monitoramento de IoT, ou qualquer outro domínio de interesse. 2. Identifique os Principais Requisitos: ○ Descreva o propósito e a funcionalidade principal do sistema. ○ Destaque quaisquer requisitos específicos (não funcionais) que o sistema possa ter, tais como: ■ Necessidades de escalabilidade em funcionalidade, usuários/requisições e recursos computacionais ■ Requisitos de segurança ■ Expectativas de desempenho em tempo real ou alta performance ■ Considerações sobre a experiência do usuário e interface ■ Distribuição geográfica ou capacidade offline 3. Escolha uma Arquitetura: ○ Com base nos requisitos identificados, escolha o estilo de arquitetura de software que você acredita ser o mais adequado para este sistema. ○ Exemplos: Monolítica, Microsserviços, N-Camadas, MVC, MVP, MVVM, Peer-to-Peer (P2P), Orientada a Eventos, Serverless, Edge Computing, Pipeline (muito comum em processamento de dados ou sistemas ETL), Micro-Frontends (extensão de Microsserviços para o desenvolvimento do Frontend, quebrando a UI em partes menores e independentes), dentre outros. Alguns desses exemplos discutidos em sala de aula, são clássicos e muito usados, já outros são derivações modernas com propostas mais eficientes para determinados domínios de problemas. Veja esta paleta de arquiteturas. 4. Justifique sua Escolha: ○ Forneça uma justificativa clara para explicar por que essa arquitetura é a melhor para o sistema. Explique como ela atende aos requisitos do sistema, incluindo benefícios e possíveis desvantagens. ○ Considere aspectos como flexibilidade, facilidade de manutenção, escalabilidade, tolerância a falhas, implantação, documentação e testabilidade. https://medium.com/@xsronhou/12-software-architecture-styles-software-engineer-should-know-ee92e3b1f9ac https://medium.com/@xsronhou/12-software-architecture-styles-software-engineer-should-know-ee92e3b1f9ac https://drive.google.com/file/d/1Di1m7gi9LKLUw2_mcqT48P5TwkvrFDxB/view?usp=sharing 5. Diagrama Arquitetural: ○ Esboce um diagrama da arquitetura para ilustrar como os diferentes componentes do sistema interagiriam dentro da arquitetura escolhida. Entregáveis: ● Relatório Escrito: Inclua a descrição do sistema, os principais requisitos, a arquitetura escolhida e a justificativa para sua escolha. ● Diagrama: Uma ilustração de alto nível do design arquitetônico do sistema. ● Apresentação: Apresentação em sala de aula dos principais pontos no relatório, bem como o Diagrama. Critérios de Avaliação: ● Compreensão clara da arquitetura escolhida. ● Racional forte para a seleção da arquitetura com base nos requisitos do sistema. ● Consideração tanto dos benefícios quanto das limitações potenciais. Pontuação e entrega: ● 10 pontos que compreendem entre: ○ relatório entregue via ulife em formato PDF, apenas. Não será aceito outro formato. ○ diagrama (contido no relatório). ○ apresentação em grupo de até 3 pessoas. ● Data para apresentação e entrega do relatório via ulife: ○ 04/12/2024 e 05/12/2024, no mesmo laboratório dos encontros práticos, respeitando o dia de aula prática do seu grupo. ○ o grupo deve preparar todos os recursos necessários para a apresentação.