Buscar

ENGENHARIA DE SOFTWARE I PIM IV

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

ENGENHARIA DE SOFTWARE:
É uma área da computação voltada à especificação, desenvolvimento, manutenção e criação de software, com a aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando organização, produtividade e qualidade.
A Engenharia de Software capacita as pessoas com a utilização de teorias, técnicas e ferramentas da Ciência da Computação para a produção e desenvolvimento de sistemas de softwares.
O objetivo dessa engenharia é sempre acompanhar as inovações e ensinar aos alunos as melhores técnicas e modelos a serem seguidos.
ciclo de vida:
O ciclo de vida de um software é uma estrutura que indica processos e atividades envolvidas no desenvolvimento, operação e manutenção de um software, abrangendo de fato toda a vida do sistema. Neste ciclo, existem modelos que definem como o software será desenvolvido, lançado, aprimorado e finalizado. A escolha desse modelo, que definirá a sequência de etapas das atividades, é feita entre o cliente e a equipe de desenvolvimento e várias coisas podem impactá-la, como negócio, tempo disponível, custo, equipe etc. A ordem das fases é que vai definir o ciclo de vida do seu software.
fases básicas de um ciclo de software:
Existem 3 fases básicas de um ciclo de software:
1- Definição
Deve-se conhecer a situação atual e fazer a identificação do problema para buscar uma resolução do mesmo. É na definição que você fará a modelagem dos processos e a análise do sistema. O modelo de ciclo de vida é a primeira escolha a ser feita no processo de software.
2- Desenvolvimento
Esta etapa envolve atividades relacionadas a design, prototipagem, codificação, testes, entre outras atividades que forem necessárias, como por exemplo, a integração com um outro sistema. É importante ressaltar que essas atividades devem seguir o que foi descrito nas etapas anteriores, pois é aí que entra as regras de negócio.
3- Operação
Nesta etapa o software já estará em produção e você dará o devido suporte aos usuários e, claro, corrigir possíveis bugs que possam aparecer. Aí também entra a continuidade do software se for preciso, como atender novos requisitos, novas funcionalidades. Porém, tudo depende do modelo de ciclo de vida adotado pelo projeto.
Modelos de processo de desenvolvimento de software
Os modelos de processo que foram utilizados no desenvolvimento do projeto foi o incremental e o cascata pois tem métodos de ambos os ciclos de vida do software identificados nele. 
Etapas de processo de software:
Modelo incremental: 
No modelo de ciclo de vida incremental a empresa divide os requisitos e funcionalidades em módulos. Cada um deles é, então, avaliado e classificado com um nível de prioridades. Sendo assim, o time pode planejar etapas com foco nos módulos prioritários.
Ao término de cada etapa, o cliente recebe uma amostra do software com as funcionalidades já criadas. Isso permite que os recursos mais importantes sejam testados rapidamente no ambiente de produção. Ou seja, a empresa terá mais meios para coletar dados sobre o uso da aplicação e o que pode ser feito pra otimizá-la.
As chances de o cliente ter elevado satisfação também são maiores. Afinal, ele poderá entregar um feedback contínuo sobre os recursos e as suas expectativas. Portanto, a empresa pode criar maior alinhamento com o usuário e as suas demandas.
Funcionamento:
No modelo de ciclo de vida incremental a empresa divide os requisitos e funcionalidades em módulos. Cada um deles é, então, avaliado e classificado com um nível de prioridades. Sendo assim, o time pode planejar etapas com foco nos módulos prioritários.
Ao término de cada etapa, o cliente recebe uma amostra do software com as funcionalidades já criadas. Isso permite que os recursos mais importantes sejam testados rapidamente no ambiente de produção. Ou seja, a empresa terá mais meios para coletar dados sobre o uso da aplicação e o que pode ser feito pra otimizá-la.
As chances de o cliente ter elevado satisfação também são maiores. Afinal, ele poderá entregar um feedback contínuo sobre os recursos e as suas expectativas. Portanto, a empresa pode criar maior alinhamento com o usuário e as suas demandas.
Vantagens: 
Entregas parciais facilitam a identificação e correção de erros entre os componentes do software.
Necessidades não especificadas nas fases iniciais podem ser desenvolvidas nos incrementos.
Os incrementos podem ser desenvolvidos por menos pessoas.
Entrega dos incrementos (partes do Software)
Permite o cumprimento do prazo especificado.
Facilita a manutenção dos “módulos”.
O Modelo Incremental inclui o uso do software pelo usuário para que as mudanças sejam feitas de acordo com o próprio usuário.
É flexível e fácil de gerenciar para fazer um software melhor com uma melhor estrutura.
Os testes são simples.
Desvantagens: 
Podem surgir problemas relativos à arquitetura do sistema, porque nem todos os requisitos estão reunidos na frente de todo o ciclo de vida do software.
O modelo Incremental precisa ser relativamente pequeno.
Número de iterações não pode ser definido no início do processo.
O fim do processo não pode ser previamente definido.
Gerenciamento e manutenção do sistema completo podem se tornar complexos.
Gerenciamento do custo é mais complexo devido ao número de iterações (dinheiro pode acabar).
Etapas do modelo incremental:
modelo cascata:
O Modelo em Cascata é um modelo de desenvolvimento de software sequencial no qual o processo é visto como um fluir constante para frente (como uma cascata) através das fases de análise de requisitos, projeto, implementação, testes (validação), integração, e manutenção de software.
A origem do termo cascata é frequentemente citada como sendo um artigo publicado em 1970 por W. W. Royce; ironicamente, Royce defendia uma abordagem iterativa para o desenvolvimento de software e nem mesmo usou o termo cascata.
Royce originalmente descreve o que é hoje conhecido como o modelo em cascata como um exemplo de um método que ele argumentava ser um risco e um convite para falhas.
O modelo em cascata apresenta uma grande vantagem quando o escopo do trabalho é claramente definido, como licitações e serviços específicos para órgãos públicos, neste cenário o modelo em cascata leva vantagem.
Entretanto percebe-se a fragilidade do modelo nos dias de hoje em virtude da pouca ou quase nenhuma flexibilidade do modelo, daí então surgem os modelos lineares e iterativos.
Vantagens:
Por causa de sua natureza separada em unidades, o modelo em cascata possibilita a implementação concorrente entre vários programadores, agilizando a entrega.
É útil quando o pessoal envolvido no projeto é fraco tecnicamente.
O modelo apresenta uma grande vantagem quando o escopo do trabalho é claramente definido.
Se as especificações estiverem corretas (o que é muito difícil em projetos de médio e grande porte), um software pode ser desenvolvido de forma muito rápida.
Desvantagens:
Projetos reais raramente seguem um fluxo sequencial.
Em geral, é difícil para o cliente estabelecer todos os requisitos a priorizar.
Difícil se adequar a mudanças inevitáveis de requisitos.
Uma versão executável somente ficará pronta na fase final do projeto.
O modelo cascata exige que o cliente estabeleça todos os requisitos no início do projeto.
O cliente irá visualizar alguma coisa apenas perto do fim do projeto.
Um esforço considerável na fase de teste do projeto e ocorrências de alguns “estados de bloqueio”, nos quais alguns membros de equipe do projeto precisam esperar que outros membros terminem as tarefas dependentes para que o projeto prossiga.
O congelamento prematuro de partes da implementação pode resultar em um sistema que não faça o que o usuário quer. Também pode “levar a sistemas mal estruturados, quando os problemas de projeto são contornados por artifícios de implementação.
Etapas do modelo cascata:
Comparação dos modelos de processo:
Enquanto que no modelo cascata a entrega da primeira versão funcional do software ocorre somente no final da sua construção, o modelo incremental entrega a primeira versão funcionalconsideravelmente antes, pois o software é entregue por incrementos. Com isso, a utilização de métodos incrementais o investimento inicial seja menor que o de métodos cascatas.
Com já foi mencionado modelos incrementais liberam a primeira versão funcional do software em produção mais rápido do que modelos cascatas. Com base nisso, o retorno sobre o investimento é mais rápido, pois os usuários já estão usufruindo do software e colhendo os benefícios que ele proporciona.
técnicas utilizadas:
as técnicas que foram usadas para desenvolver o sistema foi fazer por partes e testes, corrigindo falhas e erros junto à equipe do projeto para aprimoração do software e junto a isso foi se atentar a todas as regras e requisitos.
Ferramentas utilizadas:
1- CodeBlocks
CodeBlocks: é um ambiente de desenvolvimento integrado de código aberto e multiplataforma. Ele foi desenvolvido em C++, usando wxWidgets. Sua arquitetura é orientada a plugin, de forma que suas funcionalidades são definidas pelos plugins fornecidos a ele.
CodeBlocks é voltado para o desenvolvimento em C/C++ e Fortran, podendo também ser usado para a criação de ARM, AVR, D (linguagem de programação), DirectX, FLTK, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, OGRE, OpenGL, Qt, SDL, SFML, STL, SmartWin e programas ou aplicativos com wx, embora, em certos casos, a instalação de SDKs ou frameworks seja necessária.
O CodeBlocks está sendo desenvolvido para Windows e Linux. Alguns usuários também compilaram com sucesso o CodeBlocks para FreeBSD [3] e Mac OS X [4] (com alguns problemas na interface.
2- Compilador
MinGW (Minimalist GNU for Windows) é o compilador que utilizamos pois já veio integrado ao CodeBlocks. Este software inclui um conjunto de arquivos cabeçalho para a API do Windows que permite aos desenvolvedores usar o GCC para criar programas nativos em Windows sem precisar contar com uma emulação em tempo real de um sistema Unix-like.
3- Inno Setup
Inno setup foi usado pra criar o instalador do sistema é um criador de instalador dirigido a scripts, criado por Jordan Russell, em 1997. É programa de código aberto e é implementado em Delphi.

Continue navegando