Etapa 1 E 2 De Atps De Organização De Computadores
Exames: Etapa 1 E 2 De Atps De Organização De Computadores. Pesquise 862.000+ trabalhos acadêmicosPor: • 9/6/2014 • 1.946 Palavras (8 Páginas) • 414 Visualizações
FACULDADE ANHAGUERA DE ANÁPOLIS
CIÊNCIA DA COMPUTAÇÃO
ENGENHARIA DE SOFTWARE E ANÁLISE DE PROJETO DE SISTEMAS
ALUNOS:
ATPS
PROFESSOR:
ANÁPOLIS, 19 DE MARÇO DE 2014
METODOLOGIAS DE PROCESSOS
MODELO CASCATA
Processo de software é como uma metodologia para as atividades, ações e tarefas necessárias para desenvolver software de alta qualidade. Dessa forma, um processo de software é como uma série de passos previsíveis, ou um roteiro, que ajudará na criação de um produto ou sistema de alta qualidade e dentro do prazo estabelecido entre as partes.
Um processo de software pode ser diferente dependendo da organização ou do projeto, ou seja, ele é adaptável às necessidades. Esse processo conta com a ajuda de toda a equipe de desenvolvimento, equipe de testes, gerentes, entre outros, além também dos próprios solicitantes do software que devem colaborar com a definição, construção e teste do software.
A grande importância de um processo se dá pela estabilidade, controle e organização que ele estabelece para uma atividade que, sem controle, poderia ser terrível levando inclusive ao caos.
Veremos no restante do artigo os modelos prescritivos e mais especificamente o modelo em cascata que ainda é utilizado na indústria de software, muitas vezes utilizado erroneamente em projetos que não se adequam corretamente ao que o modelo prega. Em outras situações veremos que o modelo cascata é o mais indicado.
Modelos Prescritivos
Um modelo de processo prescritivo foi originalmente concebido para trazer ordem ao caos que existia na área de desenvolvimento de software. Durante todos esses anos que os modelos prescritivos têm sido estudados e utilizados conclui-se que esses modelos tradicionais proporcionaram uma grande contribuição quanto a sua estrutura utilizável e, além disso, eles forneceram um roteiro razoavelmente eficaz para as equipes que desenvolvem software. No entanto, esse modelo mostrou que o trabalho de engenharia de software e o seu produto ainda permanecem instáveis ou parcialmente estruturados.
Esse modelo é denominado prescritivo, pois esses modelos prescrevem um conjunto de elementos de processo como atividades específicas do método, ações de engenharia de software, tarefas, produtos, garantia da qualidade, controles e mudanças para cada projeto. Cada modelo de processo também define um fluxo de processo, ou seja, como os elementos do processo estão inter-relacionados.
Modelo Cascata
O modelo cascata é utilizado principalmente quando os requisitos de um determinado problema são bem compreendidos. Uma forma de utilizar o modelo cascata é quando precisamos fazer adaptações ou aperfeiçoamentos em um sistema já existente. Por exemplo, quando temos um sistema já pronto e precisamos fazer uma adaptação porque alguma lei governamental foi alterada ou criada.
Também podemos utilizar o modelo cascata quando um software necessita de uma nova funcionalidade e os requisitos estão bem definidos e são estáveis.
O modelo cascata também é chamado de ciclo de vida clássico ou tradicional.
Este modelo sugere uma abordagem sequencial e sistemática para o desenvolvimento de software. Dessa forma, começamos com o levantamento de requisitos ou necessidades junto ao cliente, depois vamos para a fase de planejamento onde definimos estimativas, cronograma e acompanhamento, após isso partimos para a modelagem onde fazemos a análise e projeto, seguindo da construção onde codificamos e testamos, passamos para a implantação ou emprego onde efetuamos a entrega, suporte e feedback do software concluído.
Basicamente na etapa de levantamentos de requisitos ou necessidades estabelecemos junto aos clientes os requisitos do produto desejado pelo cliente que consiste dos serviços que devem ser fornecidos, limitações e objetivos do software. Esta etapa também consiste da documentação e o estudo de viabilidade do projeto para determinarmos o processo de inicio de desenvolvimento do projeto do sistema. Na etapa de planejamento temos a definição de estimativas, cronograma e acompanhamento baseando-se nos requisitos e na determinação das tarefas que, por sua vez, são determinadas pelos requisitos. A etapa de modelagem é uma prévia da próxima etapa de construção, nesta etapa define-se a estrutura de dados, arquitetura do software, interfaces, etc. A etapa de construção abrange a implementação, onde os programas são efetivamente criados e também os testes que é onde se testam as lógicas internas do software e as funcionalidades externas. As funcionalidades internas normalmente são realizadas com o uso de testes unitários e as fases externas podem ser realizadas por testadores e pelo próprio cliente. Por fim, a etapa de emprego ou implantação abrange e entrega efetiva do software no cliente que é onde instalamos o software no servidor ou na máquina do cliente junto com outros utilitários como banco de dados ou outros itens dependendo do software sendo construído. O suporte é onde tiramos dúvidas dos clientes e a manutenção consiste na correção de erros que não foram previamente detectados.
A Figura 1 demonstra as etapas discutidas acima.
Figura 1. Ilustrando o Modelo cascata.
O modelo cascata também possui algumas variações como o "modelo v". Este modelo pode ser visto na Figura 2.
Figura 2. Ilustrando o Modelo V.
Este modelo descreve a relação entre ações da garantia da qualidade (representado no lado direito da figura) e as ações associadas à comunicação, modelagem e atividades de construção. O modelo é seguido de cima para baixo a partir do lado esquerdo e depois parte de baixo para cima no lado direito quando o código estiver finalizado no lado esquerdo, ou seja, quando possuirmos um software executável efetivamente subimos no modelo. Não existe diferença entre o modelo V e o modelo tradicional. O modelo V apenas enfatiza uma forma para visualizar como a verificação e as ações de validação são aplicadas ao trabalho de engenharia que são realizadas no lado esquerdo.
O modelo cascata é o paradigma mais antigo da engenharia de software. Porém, mesmo sendo bastante antigo e ainda utilizado na indústria esse processo recebe muitas críticas que gerou questionamentos sobre a sua eficácia até mesmo pelos seus maiores defensores.
Os principais problemas encontrados no modelo cascata são:
• Os projetos de software reais construídos e evoluídos na indústria de software raramente seguem o fluxo sequencial que o modelo prega. Apesar de que esse modelo em forma sequencial possa conter iterações, onde poderíamos passar diversas vezes pelas mesmas atividades, ele o faz indiretamente. Como resultado tem-se que mudanças podem provocar bastante confusão na medida em que a equipe de projeto prossegue.
• É muito raro e difícil para o cliente saber e estabelecer explicitamente todas as suas necessidades. O modelo cascata é muito fortemente baseado nisso e tem dificuldade para adequar a incerteza natural que existem no inicio dos projetos.
• O cliente precisa ter muita paciência, o que raramente acontece. Uma versão operacional (pronta para ser executada no cliente) não estará disponível até estarmos próximo ao final do projeto. Se tivermos um erro grave nas etapas iniciais, como uma especificação mal compreendida e mal especificada, podemos ter um resultado desastroso.
Outro grande problema que temos com os projetos que usam modelos cascata é o bloqueio que existe em alguns membros da equipe que precisam esperar que os outros completem as suas tarefas para que eles possam dar sequencia ao trabalho. O tempo gasto nessa espera pode exceder o tempo gasto em trabalho produtivo que levaria à conclusão do projeto. Estudos mostram que o estado de bloqueio tende a prevalecer no início e no final de um processo sequencial linear. Um exemplo clássico disso é a brincadeira das moedas. Imagine que temos 5 moedas de 10 centavos na mão esquerda e faremos uma rodinha com 5 pessoas sendo que existe uma cadeira ao lado de cada pessoa para que possamos colocar as moedas já lançadas. Cada pessoa deve pegar uma moeda da mão esquerda com a sua mão direita e atirar essa moeda para cima e deixar a moeda cair na mesma mão direita, após isso colocamos a moeda na cadeira ao lado. Após lançarmos todas as moedas e colocarmos na cadeira ao lado o próximo colega deve pegar essas cinco moedas deixadas na cadeira pelo colega anterior e novamente lançar as moedas, repetindo os mesmo procedimentos do colega anterior. Agora vamos recomeçar a brincadeira e o colega deve lançar as moedas novamente, porém quando tivermos duas moedas na cadeira o próximo colega deverá começar a lançar as moedas, sem precisar esperar que as cinco moedas estejam disponível. Calcule o tempo gasto nas duas brincadeiras. Veremos que há uma boa diferença quando não precisamos esperar até que cad um realize toda a atividade para que possamos começar o trabalho. Temos um grande ganho de produtividade.
Atualmente também temos um ritmo bastante acelerado no desenvolvimento de software e estamos cada vez mais sujeitos a uma cadeia de mudanças que são intermináveis que surgem desde necessidades do negócio, necessidades dos clientes até exigências impostas por leis governamentais. O modelo cascata é inapropriado para este trabalho. Como dito anteriormente o modelo cascata é útil apenas em situações onde os requisitos são fixos e o trabalho deve ser todo finalizado de forma linear.
Com isso, neste artigo vimos o que são processos e quais são seus principais conceitos e princípios. Também vimos sobre os modelos prescritivos e o modelo cascata. O modelo cascata é útil em determinados tipos de projeto e não adequado em outros quando temos muitas mudanças e ambientes imprevisíveis.
REUSO DE SOFTWARE
O reuso de software visa reaproveitar grande parte do software produzido e informações associadas em novos projetos, diminuindo o custo, aumentando a produtividade no desenvolvimento e proporcionando o compartilhamento do conhecimento durante as fases de desenvolvimento.
A ideia básica é que componentes de software sejam especificados e projetados de forma que possam ser reusados em aplicações diferentes. Antigamente, a idéia era construir bibliotecas de códigos com o objetivo de serem reutilizados em aplicações científicas e de reengenharia sendo, portanto, de um domínio de aplicação limitado. Os geradores de aplicação ou geradores de código também surgiram com o objetivo de facilitar a criação de aplicações a partir de sua especificação em uma linguagem de alto nível. Tais geradores representavam a preocupação com o reuso nos diferentes níveis do processo de desenvolvimento de software, apesar de ficarem limitados a poucos domínios de aplicação.
MODELO EM ESPIRAL
Durante muitos anos, o modelo cascata foi a base da maior parte do desenvolvimento de projetos de software, mas em 1988 Barry Boehm sugeriu o modelo em espiral. Do modelo em espiral para desenvolvimento de software saltam a vista dois aspectos: a análise de risco e prototipagem. O modelo espiral incorpora-os de uma forma iterativa permitindo que as ideias e o progresso sejam verificados e avaliados constantemente. Cada iteração à volta da espiral pode ser baseada num modelo diferente e pode ter diferentes atividades. No caso da espiral, não foi a necessidade do envolvimento dos utilizadores que inspirou a introdução de iteração mas sim a necessidade de identificar e controlar riscos. No modelo espiral para engenharia de requisitos mostra-se que as diferentes atividades são repetidas até uma decisão ser tomada e o documento de especificação de requisitos ser aceito. Se forem encontrados problemas numa versão inicial do documento, reentra-se nas fases de levantamento, análise, documentação e validação. Isto repete-se até que seja produzido um documento aceitável ou até que fatores externos, tais como prazos e falta de recursos ditem o final do processo de engenharia de requisitos.
TABELA 1
MODELO CASCATA
REUSO DE SOFTWARE
MODELO EM ESPIRAL
CUSTO BAIXO NP P NP
EFICIÊNCIA NP P NP
FUNCIONALIDADE P P P
MANUTEMBILIDADE PP NA PP
CREDIBILIDADE P PP P
TABELA 2
VANTAGENS DESVANTAGENS
MODELO CASCATA
Credibilidade, segurança, proteção, confiança e manutembilidade. Custo de implantação muito elevado, e tempo muito longo para ser impçantado.
REUSO DE SOFTWARE
Ecicacia, eficiência, funcionalidade e rapidez na implantação. Pouca aplicabilidade, poucos requisitos não funcionais.
MODELO EM ESPIRAL
Inovador, seguro e eficaz Pode demorar a ser desenvolvido e pode gerar muitos gastos
RESUMO
De acordo com os dados das tabelas, e com os conhecimentos adquiridos em sala de aula, e por se tratar de uma micro empresa individual que não possui muitos recursos para investir em software. Optamos pelo reuso de software, por se tratar de um modelo de que possui agilidade na implantação, custo baixo, e funcionalidade.
BIBLIOGRAFIA
Mike Cohns: Succeding with Agile. Disponível em http://www.mountaingoatsoftware.com/blog/
Helen Sharp ; Yvonne Rogers ; Jenny Preece. Interaction Design: Beyond Human-computer Interaction (em Inglês). 2 ed. [S.l.]: John Wiley & Sons, 2002. 519 p
...