Show
Você já viu o que é processo de software nesse artigo e sabe que ele é composto por 4 atividades principais: especificação, desenvolvimento, validação e evolução. Agora, você irá aprender sobre cada uma delas, destacando seus aspectos mais importantes. Está pronto(a)?EspecificaçãoNa especificação de software (ou engenharia de requisitos), se definequais os serviços que são necessários no sistema e identificaas restrições na sua operação e desenvolvimento.
O objetivo da engenharia de requisitos é produzir um documento que especifica o sistema a ser desenvolvido satisfazendo os requisitos das partes interessadas. Eles são geralmente apresentados em dois níveis de detalhes: alto nível para usuários finais e clientes; e baixo nível (mais detalhado) para os desenvolvedores. Figura 1 — Atividades da Engenharia de requisitosExistem quatro atividades principais na engenharia de requisitos (Figura 1):
Na prática, essas atividades não seguem uma ordem. A análise de requisitos continua durante a especificação e novos requisitos aparecem em qualquer momento do processo. Portanto, as atividades de análise, especificação e validação são intercaladas. Em métodos ágeis, os requisitos são desenvolvidos de forma incremental de acordo com as prioridades do cliente e a elicitação de requisitos vem dos usuários que fazem parte da equipe de desenvolvimento. Design e implementaçãoNesse estágio, a especificação é convertida em um sistema executável, através de processos de design e programação do software. O design de software é a descrição da arquitetura do sistema a ser implementado, dos modelos e estruturas de dados que serão usados, das interfaces entre os componentes e, às vezes, dos algoritmos utilizados. Os designers e projetistas de software desenvolvem o projeto iterativamente, adicionando formalidade e detalhes à medida que constroem o design, com retrocesso constante para corrigir versões anteriores. A Figura 2 é um modelo abstrato da fase de design, mostrando as entradas para o processo de design, as atividades intermediárias e os documentos produzidos como saídas. Figura 2 — Modelo de designO diagrama sugere que os estágios do processo de design sejam sequenciais. Na verdade, eles são intercalados, já que existe o feedback de um estágio para outro e o consequente retrabalho do design. As entradas do processo de design são:
As atividades do processo de design variam dependendo do tipo de sistema que está sendo desenvolvido. Por exemplo, sistemas em tempo real exigem design de temporização, mas podem não precisar de um banco de dados e, portanto, não há design de banco de dados. O diagrama da Figura 2 mostra quatro atividades que podem fazer parte do processo de design para sistemas de informação:
Essas atividades levam a um conjunto de saídas, que também são mostradas na Figura 2. O detalhamento e representação dessas saídas variam para cada tipo de software. Para sistemas críticos (ditos os softwares que exigem alta segurança e confiabilidade, como os para bancos e companhias aéreas), as especificações devem ser bem detalhadas e claras. Se a abordagem estiver associada a algum modelo, essas saídas podem ser diagramas. Quando são usados métodos ágeis de desenvolvimento, as saídas do processo de design podem ser representadas no próprio código do programa. ValidaçãoValidação de software — ou, comumente, verificação e validação (V & V) — tem a intenção de mostrar que um sistema está em conformidade com sua especificação e atende às expectativas do cliente. A validação também pode envolver a inspeção de cada estágio do processo de software (desde a definição dos requisitos até o desenvolvimento do programa), com a finalidade de checar se o programa foi construído da forma correta. Uma maneira de validar um software é realizar testes. Os testes mais comuns são:
Idealmente, os defeitos dos componentes são descobertos no início do processo e os problemas de interface são encontrados quando o sistema é integrado. No entanto, erros nos componentes do programa podem surgir durante o teste do sistema, por exemplo. Quando um defeito é descoberto, o programa deve ser depurado e isso pode exigir que outras etapas do processo de teste sejam repetidas. O processo de teste é, portanto, iterativo, com informações sendo retornadas para etapas anteriores frequentemente. Normalmente, as partes de teste de componentes e de sistema são intercalados. Os programadores criam seus próprios dados de teste e testam incrementalmente o código à medida que ele é desenvolvido. Na abordagem Extreme programming (XP), os testes são desenvolvidos em conjunto com os requisitos antes do início do desenvolvimento. Isso ajuda os testadores e desenvolvedores a entender os requisitos e garante que não haja atrasos à medida que os casos de teste são criados. Para sistemas críticos, o teste é realizado por uma equipe de testadores e conduzido por um conjunto de planos de testes desenvolvidos a partir da especificação e do design do sistema. O teste de aceitação é, às vezes, subdividido nos chamados “teste alfa” e “teste beta”. Os testes alfa são realizados pelo próprio time de desenvolvimento ou por outros funcionários internos que simulam usuários reais. Já nos testes beta, uma versão do sistema é entregue à potenciais usuários que utilizam o sistema em seu ambiente real e relatam problemas aos desenvolvedores. EvoluçãoEsta é a última e a mais longa etapa do ciclo de vida do software. Aqui, o programa passa por mudanças para corrigir defeitos e deficiências que foram encontrados durante o uso operacional e adicionar novas funcionalidades a fim de melhorar a aplicabilidade e usabilidade do software. Todos os erros, relatados pelos usuários durante sua utilização ou por meios dos testes executados pela própria equipe após a entrega do produto, são localizados e corrigidos para gerar novas versões do software, que são as conhecidas atualizações. Existem três tipos de evolução/manutenção de software:
Quando se trata de migrar o software para uma nova tecnologia, seja de hardware ou de software, há uma diferença quanto à classificação dessa manutenção. Se a tecnologia for imposta (por estar obsoleta, por exemplo), a manutenção é classificada como adaptativa. Se a tecnologia for uma solução para melhorar o sistema, é classificada como evolutiva. Quais as atividades do processo de desenvolvimento de software?Existem diversos processos de desenvolvimento de software, no entanto há algumas atividades básicas comuns à grande parte dos processos existentes, nesse artigo será descrito algumas dessas atividades, como: Levantamento de requisitos; Análise de Requisitos; Projeto; Implementação; Testes; Implantação.
Quais os processos de desenvolvimento de software?Existem quatro atividades fundamentais que são comuns a todos os processos de software:. Especificação. ... . Desenvolvimento. ... . Validação. ... . Evolução.. Quais são as principais atividades de engenharia de software?Entre as principais atribuições do engenheiro de software, estão:. Desenvolver softwares e apps.. Gerenciar projetos ligados aos softwares.. Arquitetar o design estrutural dos programas.. Realizar testes nos sistemas.. |