Buscar

Engenharia de Software - sua natureza e seus processos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIÃO BRASILEIRA DE FACULDADES
CURSO: DESENVOLVIMENTO DE SISTEMAS COM JAVA
DISCIPLINA: ENGENHARIA E QUALIDADE DE SOFTWARE
ALUNA: 
A Natureza da Engenharia de Software
Os sistemas informatizados estão introduzidos cada vez mais no mundo moderno. De acordo com a demanda, o software assume um papel que atende e propõe soluções às mais diversas necessidades.
Podemos definir um software como uma sequência lógica de instruções que realizam tarefas que atendem uma necessidade específica para ao qual foi criado. Porém é necessário compreender que a Engenharia de Software está focada no desenvolvimento profissional de sistemas e compreende aspectos que vão além de linhas de código, tais como, documentação relacionada às configurações de operação do sistema, especificações e definições dos requisitos do software e base de dados. 
Ao final da década de 60, o termo “Crise do Software” foi utilizado para representar as dificuldades enfrentadas na produção de software, que crescia em demasia, porém ainda não existiam metodologias e técnicas maduras e bem estabelecidas que permitissem um bom planejamento, desenvolvimento, validação e manutenção dos sistemas produzidos.
A “Crise do Software” motivou a criação da Engenharia de Software, que em 1968, a OTAN (Organização do Tratado do Atlântico Norte), designou o termo para a adoção de técnicas e práticas sistêmicas e controladas de diversas áreas da engenharia e aplicou ao processo de desenvolvimento de software.
O objetivo da Engenharia de Software consiste em mitigar os problemas inerentes ao desenvolvimento dos projetos de software, tais como:
· Compreensão da problemática do sistema insuficiente;
· Levantamento de requisitos insuficiente;
· Estimativa de tempo imprecisa;
· Estimativa de custos imprecisa
· Uso de tecnologias obsoletas;
· Dificuldade em testar e validar os requisitos;
· Dificuldade na manutenibilidade e escalonamento do sistema.
Por meio da aplicação de ferramentas, técnicas e processos sistematizados, visa garantir a produção segura e eficiente de produtos de qualidade e fácil manutenção.
Assim, observamos que a Engenharia de Software compreende todos os aspectos de produção, iniciando no planejamento e especificações do sistema, partindo para o desenvolvimento onde o sistema é programado, a validação que consistem em verificar se as necessidades do cliente foram atendidas e a evolução, que reflete as mudanças de requisitos do cliente.
Processos de Software
Processo de software é definido como uma sequência de atividades uniformizadas e sistêmicas, aplicadas durante o desenvolvimento de um sistema.
Um processo de software deve ser composto por algumas etapas fundamentais, consideradas necessárias para a produção de um sistema que atenda aos objetivos propostos. São elas:
· Especificação: define os requisitos operacionais que constituem as funcionalidades do sistema:
· Engenharia de Sistema: estabelece uma solução geral para o problema, envolvendo questões extra software.
· Análise de Requisitos: levantamento das necessidades do software a ser implementado. A Análise tem como objetivo produzir uma especificação de requisitos, que convencionalmente é um documento.
· Especificação de Sistema: descrição funcional do sistema. Pode incluir um plano de testes para verificar adequação.
· Projeto
· Projeto Arquitetural: onde é desenvolvido um modelo conceitual para o sistema, composto de módulos mais ou menos independentes.
· Projeto de Interface: onde cada módulo tem sua interface de comunicação estudada e definida.
· Projeto Detalhado: onde os módulos em si são definidos, e possivelmente traduzidos para pseudocódigo.
· Implementação: codificação do Codificação: a implementação em si do sistema em uma linguagem de computador, software de modo a atender aos requisitos que foram solicitados pelo cliente.
· Validação: garantir que os requisitos foram atendidos de acordo com a descrição dos requisitos do software.
· Teste de Unidade e Módulo: a realização de testes para verificar a presença de erros e comportamento adequado a nível das funções e módulos básicos do sistema.
· Integração: a reunião dos diferentes módulos em um produto de software homogêneo, e a verificação da interação entre estes quando operando em conjunto.
· Manutenção e Evolução: Refere-se a evolução do sistema para atender as novas necessidades do cliente, bem como do mercado ao qual está inserido.
· Nesta fase, o software em geral entra em um ciclo iterativo que abrange todas as fases anteriores.
Modelos de Processos de Desenvolvimento de Software
Os modelos de processos de software são representações simplificadas do processo de software. Existem diversos modelos de processo de software, vale ressaltar que para qualquer modelo as atividades básicas (especificação, projeto, implementação, validação, manutenção e evolução) devem ser atendidas, porém cada modelo é descrito por uma perspectiva particular, podendo se diferenciar do outro em diversos aspectos.
Os modelos não prescrevem de maneira definitiva o processo, pois os mesmos podem ser adaptados, expandidos e atualizados, de acordo com a necessidade específica de cada projeto.
Modelo Cascata
O modelo Cascata foi criado em 1970 por Winston Walker Royce, também conhecido como Modelo Sequencial Linear, é o mais antigo de todos os processos e possui esse nome pelo fato de sua forma sequencial de estilo em cascata, apresentando um encadeamento de uma fase para a outra. É um modelo dirigido a plano, ou seja, primeiro é realizado um planejamento das atividades para em seguida iniciar o trabalho delas. As atividades são descritas conforme definido por Sommerville (2011):
· Análise de definição de requisitos: consiste na especificação do sistema conforme requisitos do cliente.
· Projeto de sistema e software: alocação dos requisitos e definição da arquitetura geral do sistema
· Implementação e teste unitário: após a definição do sistema, é implementado cada “unidade do programa” e realizado os testes para validar que estas unidades desenvolvidas atendem os requisitos levantados. 
· Integração de testes e sistema: após os testes unitários, é realizado a integração e teste das unidades a fim de compor um sistema completo. Ao final, o software é entregue ao cliente.
· Operação e manutenção: esta fase é responsável pela correção dos erros e/ou evolução do sistema.
Figura 1 - Modelo de Processo Cascata
Ainda segundo Sommerville (2011), uma fase não deve ser iniciada sem que a anterior seja concluída e a validação de cada fase se dar por meio de documentação (“assinados”).
Modelo Espiral
O modelo espiral foi proposto em 1988 por Boehm. O modelo é representado em espiral e constitui-se de uma série de pequenos ciclos, que percorrem todas as fases do processo de desenvolvimento.2 - Avaliação e redução de riscos
1 - Definição de objetivos
4 - Planejamento e especificação
3 - Implementação e validação
Figura 2 - Modelo Espiral
· Definição de objetivos: definição dos objetivos desta fase e identificação das restrições, preparando um plano de gerenciamento detalhado que inclui todos os possíveis riscos do projeto;
· Avaliação e redução de riscos: para cada risco identificado é feita uma “Análise de Risco” detalhada com o objetivo de identificar estratégias para reduzi-lo ou evitá-lo.
· Implementação e validação: com as estratégias definidas, é escolhido um modelo de desenvolvimento, como por exemplo, o “Modelo em Cascata”, “Modelo Incremental” etc. Pode-se utilizar modelos diferentes em cada volta de implementação, conforme a necessidade.
· Planejamento e Especificação: o projeto todo é analisado para verificar o que foi realizado e planejar quais serão os próximos passos para iniciar novas voltas do espiral ou concluir o sistema.
Modelo Iterativo e Incremental
Este modelo é baseado no modelo espiral, porém mais formal e rigoroso. Uma vez que, a produção de um sistema comercial requer esforço de vários meses, possivelmente um ano ou mais, pode ser mais prático dividir o trabalho em partes menores ou iterações. Cada iteração resultará numincremento. 
Iterações são passos em fluxo de trabalho e incrementos são crescimentos do produto. A cada iteração são realizadas as seguintes tarefas:
· Análise: refinamento de requisitos, refinamento do modelo conceitual.
· Projeto: refinamento do projeto arquitetural, projeto de baixo nível.
· Implementação: codificação e testes.
· Transição para produto: documentação, instalação.
Referências
Portal Educação. A crise do Software. https://siteantigo.portaleducacao.com.br/conteudo/artigos/informatica/a-crise-do-software/55859. Acesso em: 25 de outubro de 2020.
Portal Educação. O que são softwares. https://www.portaleducacao.com.br/conteudo/artigos/direito/o-que-sao-softwares/66459. Acesso em: 25 de outubro de 2020.
SOMMERVILLE, I. Engenharia de software. 9. ed. São Paulo: Pearson, 2011.

Outros materiais