Aprendar a desenvolver software de forma eficiente e eficaz.
Início
Engenharia de Software
Perfis
SDLC
Natureza dos Softwares
Importância das metodologias
SCRUM
Agile
Ferramentas Case
Créditos
Introdução a engenharia de software
A engenharia de software é o processo de projectar, criar, testar e manter software. É um campo da engenharia que combina ciência da computação, matemática e gestão de negócios para criar soluções de software eficientes e eficazes.
Engenharia de Software, o que é?
A engenharia de software é o processo de projectar, criar, testar e manter software. É um campo da engenharia que combina ciência da computação, matemática e gestão de negócios para criar soluções de software eficientes e eficazes. O primeiro passo na engenharia de software é entender as necessidades do cliente. Isso requer uma análise cuidadosa e documentação dos requisitos do cliente. Uma vez que os requisitos são entendidos, o próximo passo é projectar uma solução que atenda a essas necessidades. A fase de projecto inclui a criação de um modelo do sistema proposto e o desenvolvimento de um plano para implementação. Após a fase de design vem a implementação, que envolve escrever o código e testá-lo para garantir que ele atenda a todos os requisitos. O teste pode ser feito manualmente ou com ferramentas automatizadas. Finalmente, uma vez que o software é lançado, ele deve ser mantido ao longo do tempo. Isso inclui garantir que ele continue funcionando à medida que novas plataformas de hardware e software forem lançadas e corrigir quaisquer bugs descobertos.
Diferentes Perfis
Existem muitos tipos diferentes de perfis de equipas de desenvolvimento de software que podem ser encontrados nas empresas actuais. Cada perfil tem o seu próprio conjunto único de competências e responsabilidades. Aqui está uma breve visão geral de alguns dos perfis mais comuns: O gestor do projecto é responsável pelo planeamento, execução, e monitorização do processo de desenvolvimento de software. Trabalham em estreita colaboração com a equipa de desenvolvimento para assegurar que os prazos dos projectos são cumpridos e que os padrões de qualidade são cumpridos. O chefe de desenvolvimento é responsável por supervisionar o processo de desenvolvimento e assegurar que todo o código cumpre os padrões exigidos. Trabalham também em estreita colaboração com outros programadores para fornecer mentoria e orientação. O programador sénior é responsável por desenvolver um código de alta qualidade que satisfaça todos os requisitos. Fornecem também mentoria e orientação aos programadores júnior. O programador júnior é responsável pela redacção de um código que satisfaça todos os requisitos. Fornecem também apoio aos programadores seniores e ajuda na resolução de problemas. O engenheiro de garantia de qualidade é responsável por assegurar que todo o código cumpre as normas exigidas. Eles também criam e executam planos de teste para encontrar bugs e erros no código. O engenheiro DevOps é responsável pela automatização e gestão do processo de desenvolvimento de software. Trabalham em estreita colaboração com a equipa de desenvolvimento para assegurar que todo o código é devidamente implementado e que todos os sistemas estão a funcionar sem problemas.
Ciclo de vida de desenvolvimento de software
O ciclo de desenvolvimento de software é o processo que ocorre entre o início de um projecto e a entrega do produto final. Inclui todas as actividades, desde o planeamento e recolha de requisitos até aos testes e implementação. Existem muitos modelos e estruturas diferentes para gerir o ciclo de desenvolvimento de software, mas todos eles partilham algumas fases comuns:
1. Planeamento e recolha de requisitos: É aqui que a equipa do projecto define o âmbito, objectivos e metas para o projecto. Também identificam quaisquer riscos ou problemas potenciais que possam ter impacto no seu sucesso.
2. Concepção: A fase seguinte é conceber a solução. Isto envolverá a criação de especificações detalhadas de como o software deve funcionar. A equipa terá também de decidir sobre quais as tecnologias a utilizar e como serão integradas em conjunto.
3. Implementação: Uma vez concluída a concepção, é altura de começar a construir o software real. Esta fase pode envolver a escrita de código, a criação de bases de dados e a configuração de servidores.
4. Teste: Uma vez construído, o software precisa de ser testado minuciosamente antes de poder ser lançado aos utilizadores. Esta fase de testes identificará quaisquer erros ou problemas para que possam ser corrigidos antes de entrar em funcionamento.
5. Implementação: Quando tudo estiver pronto, o software pode ser implantado em servidores de produção e disponibilizado aos utilizadores . Dependendo da dimensão e complexidade do projecto, este processo pode levar de algumas horas a várias semanas.
7. Manutenção e apoio: Mesmo após a conclusão de um projecto, pode ainda haver algum trabalho em curso necessário em termos de manutenção e apoio. Isto pode incluir a correcção de bugs, a adição de novas funcionalidades ou a prestação de apoio ao utilizador.
Características do Software
A maioria dos produtos de software tem alguns recursos-chave que são essenciais para sua função. Por exemplo, um programa de processamento de texto precisa ser capaz de criar e editar documentos de texto, enquanto um programa de planilha precisa ser capaz de criar e editar dados numéricos em células. Alguns produtos de software também possuem recursos especializados que os tornam mais adequados para determinadas tarefas do que outros. Por exemplo, um programa projetado para criar apresentações pode ter modelos e ferramentas integrados para adicionar conteúdo multimídia.
- Facilidade de uso: O software deve ser fácil de usar, com uma interface simples e fácil de navegar. Os botões e ícones devem ser intuitivos e autoexplicativos.
- Funcionalidade: O software deve ser capaz de executar todas as tarefas para as quais foi projetado, sem falhas ou bugs. Deve ser confiável e estável.
- Desempenho: O software deve ser executado de forma rápida e suave, sem atrasos ou travamentos.
- Compatibilidade: O software deve ser compatível com diferentes sistemas operacionais, navegadores e dispositivos.
- Segurança: O software deve ser seguro, com recursos de segurança robustos para proteger os dados dos usuários.
Importância das Metodologia de Desenvolvimento
Metodologias e ferramentas de análise são importantes no desenvolvimento de produtos de software porque fornecem uma abordagem estruturada para o desenvolvimento de software e ajudam a garantir que todas as etapas necessárias sejam tomadas durante o processo de desenvolvimento. Além disso, metodologias e ferramentas de análise podem ajudar a identificar possíveis problemas no início do processo de desenvolvimento, o que pode economizar tempo e dinheiro posteriormente. Existem muitas metodologias de desenvolvimento de software diferentes disponíveis, e cada uma tem seus próprios pontos fortes e fracos. É importante seleccionar a metodologia que melhor se adapta às necessidades do projecto em questão. Além disso, diferentes ferramentas de análise podem ser usadas para ajudar a avaliar a viabilidade de um projecto, identificar riscos potenciais e acompanhar o progresso durante o desenvolvimento.
SCRUM
Scrum é uma metodologia ágil de desenvolvimento de software que se concentra na entrega de software de trabalho através de ciclos curtos e iterativos chamados sprints. É uma escolha popular para organizações que querem melhorar o seu processo de desenvolvimento de software e acelerar a entrega de novas funcionalidades aos clientes. A metodologia Scrum foi descrita pela primeira vez no início dos anos 90 por Jeff Sutherland e Ken Schwaber, que a desenvolveram como uma forma de abordar algumas das questões que viram com as abordagens tradicionais de cascata ao desenvolvimento de software. O Scrum é agora um dos métodos ágeis mais utilizados para o desenvolvimento de software. No seu núcleo, Scrum baseia-se em certos papéis alguns deles são: proprietário do produto, mestre do Scrum, e membro da equipa. O proprietário do produto é responsável por definir o que precisa de ser construído e assegurar que este satisfaz as necessidades do cliente. O scrum master é responsável por facilitar o processo e remover quaisquer impedimentos que possam impedir a equipa de ser produtiva. Os membros da equipa são responsáveis pela construção efectiva do software.
AGILE
A metodologia AGILE é um ramo da engenharia de software que enfatiza a entrega contínua de software em funcionamento. Ele defende o planejamento adaptativo, desenvolvimento evolutivo, entrega antecipada e melhoria contínua. Essa abordagem ajuda as organizações a responder rapidamente às necessidades em constante mudança de seus clientes. A abordagem Agile foi proposta pela primeira vez por um grupo de desenvolvedores de software em 2001.
Eles criaram 12 princípios que acreditavam que ajudariam a criar software melhor mais rapidamente. Esses princípios foram posteriormente adaptados por outras organizações e ficaram conhecidos como Manifesto Ágil.
O Manifesto Ágil consiste em quatro valores: 1) Indivíduos e interações mais que processos e ferramentas; 2) Software funcionando mais que documentação abrangente; 3) Colaboração do cliente mais que negociação de contratos; 4) Responder a mudanças mais que seguir um plano;
Ferramentas Case
As ferramentas CASE são ferramentas para engenharia de software, que são concebidas para ajudar no desenvolvimento, manutenção e reengenharia de sistemas de software. As ferramentas CASE podem ser utilizadas para uma variedade de tarefas, tais como recolha de requisitos, planejamento, engenharia inversa, concepção e modelação, geração de códigos e testes. As principais vantagens das ferramentas CASE são:
‣ Ajudam a automatizar o processo de desenvolvimento de software.
‣ Melhoram a qualidade dos sistemas de software.
‣ Ajudam a reduzir o custo de desenvolvimento de sistemas de software.