Buscar

Prévia do material em texto

PROJETO DE DESENVOLVIMENTO DE SISTEMAS
CCT0462
Gregori de Arruda Moreira
Desenvolvimento de software é o processo de tomada de um conjunto
de requisitos de um usuário (o enunciado do problema), analisá-los,
projetar uma solução, e então implementa-la em um computador.
O desenvolvimento de software é um estreitamento do foco da
engenharia de software no que diz respeito à criação do software
real. E é uma ampliação do foco da programação que inclui questões
de análise, projeto e implantação funcional.
Ciclo de Vida
Concepção
A fase de planejamento é o processo fundamental de compreensão por que um
sistema de informação deve ser construído e determinar como a equipe do projeto o
construirá.
Esta é uma fase de análise e investigação, onde se respondem as perguntas:
• qual o perfil do usuário?
• o que o sistema irá fazer?
• onde e quando será utilizado?
Durante esta fase, a equipe do projeto:
* investiga algum sistema atual(is);
• identifica oportunidades de melhoria;
• e desenvolve um conceito para o novo sistema.
Levantameto, Exploração, Modelagem
A fase de projeto decide como o sistema irá operar, em termos de: hardware,
software e infra-estrutura de rede; a interface de usuário, formulários e relatórios; os
programas específicos, bancos de dados e arquivos que serão necessários.
Projeto
A produção deve garantir a execução bem sucedida de todos os aspectos de desempenho de
sistemas. Durante a produção, há a necessidade de se estabelecer como os problemas serão
atendidos, que o pessoal de apoio estará disponível, e quando e como as perguntas serão
respondidas e resolvidas. Este componente de produção pode iniciar novos ciclos de
desenvolvimento e testes por causa de necessidades de redesenho.
Codificação e Depuração
O sistema é construído e testado para garantir que funcione como projetado. O teste é um
dos passos mais críticos na implementação. A maioria das organizações leva mais tempo e
atenção ao teste do que para escrever os programas.
Testes
A instalação é o processo pelo qual o antigo sistema é desligado (caso exista) e o novo
é ativado.
Instalação
Pode incluir três abordagens de transição:
• Direta: o novo sistema substitui imediatamente o sistema antigo;
• Conversão paralelo: ambos os sistemas, o antigos e o novo são operados por um ou dois
meses até que seja evidente que não existam erros no sistema novo;
• Conversão escalonada: o novo sistema é instalado em uma parte da organização como um
ensaio inicial e depois, gradualmente, instalado em outros. Um dos aspectos mais
importantes de conversão é o desenvolvimento de um plano de treinamento para ensinar os
usuários utilizarem o novo sistema e ajudar a gerenciar as mudanças provocadas pelo novo
sistema.
Instalação
A equipe de analistas estabelece um plano de suporte ao sistema. Este plano geralmente
inclui uma revisão formal ou informal de pós-implementação, bem como uma maneira
sistemática para identificar as alterações maiores e menores necessárias para o sistema.
Manutenção, Operação e Evolução
Aposentadoria
Concepção
Levantamento
Projeto
Codificação
Testes
Instalação
Manutenção, Operação e Evolução
Aposentadoria
Ciclo de Vida do 
software
Questão 1: Liste as fases principais do ciclo
de vida de desenvolvimento de sistemas
(CVDS) e as suas características.
Um modelo de processo de software deve ser 
escolhido com base:
Nos controles e produtos que precisam ser entregues
Na natureza do projeto e da aplicação;
Nos métodos e ferramentas a serem utilizados;
Principais Modelos de Processos
Modelo em Cascata
Sistemático e seqüencial
Engenharia de 
Sistemas
Análise
Projeto
Codificação
Teste
Manutenção
Base para os outros
Modelo em Cascata
Problemas
O mais antigo e amplamente usado.
Projetos reais raramente seguem o fluxo seqüencial que ele
propõe. Ocorrem iterações que trazem problemas na aplicação
do paradigma.
É difícil para o cliente declarar todas as exigências
explicitamente. É difícil acomodar as incertezas naturais que
existem no começo de muitos projetos.
Modelo em Cascata
Modelo em Cascata
Problemas:
O cliente deve ter paciência. Uma versão do software só estará
disponível em um ponto tardio do cronograma. Um erro crasso,
pode ser desastroso.
Desenvolvedores Ociosos.
Só é apropriado quando os requisitos são bem conhecidos.
Modelo de Prototipação
Modelo de Prototipação
Modelo de Prototipação
Modelo de Prototipação
Modelo de Prototipação
Modelo de Incremental
Modelo Incremental
Modelo Incremental
Modelo Espiral
Modelo Espiral
Modelo Espiral
Modelo Espiral
Modelo Cascata Modelo de Prototipação
Modelo em Espiral
RUP
RUP
RUP
RUP
OpenUP
OpenUP é um processo para o desenvolvimento de
produtos de software que agrega muitos conceitos
do RUP e adiciona valor e práticas ágeis
principalmente de metodologias como o XP e o
Scrum.
OpenUP
O OpenUP é baseado em 4 princípios básicos que são:
• Colaborar para alinhar interesses e compartilhar
conhecimento;
• Focar na articulação da arquitetura;
• Balancear prioridades concorrentes com o retorno de valor
para o Stakeholder;
• Envolvimento continuo para obtenção de feedback e
melhorias.
Tal modelo se propõe a entregar software com o mínimo de formalismo e 
artefatos gerados.
Algumas questões que diferenciam o OpenUp do RUP:
- menor quantidade e formalidade de produtos de trabalho;
- conceito de micro incrementos que representa a execução de uma
pequena unidade do trabalho (work item) e deve ser bem definido para que
a equipe possa controlar e monitorar o progresso diário.
- é um processo não padronizado que permite que trabalhos complexos
sejam gerenciados com mais agilidade e facilidade usando o conceito
auto-organização do time de projeto.
- realiza reuniões rápidas diárias (Scrum Daily meetings) para que a equipe
inteira do projeto possa compreender o que os outros membros já
realizaram e assim, remover possíveis barreiras planejando o que será
feito até a próxima reunião.
OpenUP
OpenUP
- As funcionalidades a serem implementadas em um projeto são mantidas 
em uma lista que é conhecida como Product Backlog. 
- No início de cada Sprint, faz-se um Sprint Planning Meeting, ou seja, uma 
reunião de planejamento na qual o Product Owner prioriza os itens do 
Product Backlog e a equipe seleciona as atividades que ela será capaz de 
implementar durante o Sprint que se inicia. 
- As tarefas alocadas em um Sprint são transferidas do Product Backlog para 
o Sprint Backlog.
- A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de 
manhã), chamada Daily Scrum. O objetivo é disseminar conhecimento 
sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o 
trabalho do dia que se inicia.
- Ao final de um Sprint, a equipe apresenta as funcionalidades 
implementadas em uma Sprint Review Meeting.
- Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o 
planejamento do próximo Sprint. Assim reinicia-se o ciclo.
SCRUM
Seleção de Projeto de Sistemas
“Vivemos em um país reconhecido mundialmente como
o campeão da burocracia governamental, o que acaba
gerando um lastro de ineficiência operacional em várias
camadas da sociedade, especialmente no segundo setor.
Esse burocrático e inóspito ambiente exige das
organizações processos internos que acelerem o tempo
de resposta ao mercado e as mantenham competitivas.
Esse desafio da busca pela
desburocratização é exatamente o
pilar central do Project Model
Canvas, modelo de planejamento
ágil deprojetos idealizado pelo
brasileiro José Finocchio Jr.
José Finocchio Jr.
O objetivo deste modelo é representar de forma visual e
em apenas uma folha chamada Canvas (“tela”, em
inglês) treze componentes fundamentais para a
composição do plano do projeto.
Durante a construção do Canvas é imprescindível que o
facilitador tenha sólidos conhecimentos e experiência em
gerenciamento de projetos. Além disso, é desejável que crie
um ambiente confortável para que os envolvidos na criação
do plano contribuam em um processo estruturado de
brainstorming, coordenado de forma visual, para que se
promova a criatividade e a colaboração
Gerenciamento de Projetos
É um empreendimento temporário
realizado para criar um produto, serviço ou
resultado distinto.
O que é um Projeto?
Aspectos de um Projeto?
- Temporário: todo projeto tem um início e um fim. A duração é sempre
finita, ainda que possa ser longa. O resultado de um projeto pode ser
duradouro, mas a oportunidade de sua realização e a equipe que nele
trabalha também são geralmente de natureza temporária .
- Geração de produtos, serviços ou resultados distintos: cada projeto
resulta em uma entrega singular, distinta de outras entregas.
- Elaboração progressiva: projetos são realizados por etapas, de forma
incremental.
- Escopo do produto: o conjunto das características que descrevem um
produto, serviço ou resultado.
- Escopo do projeto: o trabalho que precisa ser realizado para entregar um
produto, serviço ou resultado com as características e funções especificadas.
No desenvolvimento de software, o escopo de um produto é definido por
seus requisitos. Portanto, a definição final do escopo de um produto,, é o Modelo
do problema, ou a Especificação dos requisitos, dele derivada. Como a própria
produção desse artefato requer a execução de um conjunto de atividades que
podem ser complexas, é preciso dispor de um artefato de partida, pelo menos
para o planejamento inicial.
Levantamento de Requisitos
Requisito é simplesmente uma declaração do
que o sistema deve fazer ou de quais
características ele precisa possuir.
A análise dos requisitos do sistema é necessária para a
aceitação da proposta do sistema. Sendo assim, é
importante que o cliente apresente suas necessidades ou
demandas, que todas as pessoas envolvidas conheçam os
objetivos do projeto.
REQUISITOS DE NEGÓCIO
Definem os objetivos gerais do sistema e esclarecem as contribuições que
o sistema fará ao sucesso da organização
 Desenvolver produtos conforme a necessidade do usuário;
 Economizar tempo e dinheiro;
 Entender as necessidades do cliente;
 Comparar o que você esta entregando com a necessidade 
do cliente;
REQUISITOS FUNCIONAIS
Um requisito funcional está diretamente relacionado a um processo que o
sistema precisa realizar como parte do suporte fornecido a uma tarefa do usuário
e/ou à informação que o sistema precisa fornecer quando o usuário estiver
realizando uma tarefa.
REQUISITOS NÃO FUNCIONAIS
São os atributos de qualidade, as restrições de design e implementação e
as interfaces externas que um produto deve possuir. Essa categoria de
requisitos inclui importantes propriedades comportamentais que o sistema deve
ter, tais como desempenho e usabilidade.
Ex: A habilidade de acessar o sistema por meio de um dispositivo móvel
seria considerada um requisito não funcional. Esses requisitos são usados
principalmente na fase de design, quando são tomadas decisões sobre a
interface com o usuário, o hardware e o software e a arquitetura básica do
sistema. Entretanto, muitos desses requisitos serão descobertos durante
os diálogos com os usuários na fase de análise e devem ser registrados
quando forem descobertos.
Técnicas de Obtenção de Requisitos
 Conduzir uma sessão de brainstorming;
 Entrevistar usuários;
 Enviar questionários;
 Trabalhar no ambiente alvo;
 Estudar sistemas semelhantes;
 Examinar sugestões e relatórios de 
problemas;
 Conversar com equipes de suporte;
 Estudar melhorias feitas pelos 
usuários;
 Conduzir workshops;
Análise de Requisitos
Coletamos os requisitos e agora?
A FASE DE ANÁLISE
A fase de análise é chamada assim porque o termo análise se refere a 
dividir um todo em suas partes, com a intenção de entender a natureza, a 
função e os inter-relacionamentos dessas mesmas partes.
O processo básico de análise envolve três etapas:
- Entender a situação existente (sistema no estado em que se encontra 
atualmente);
- Identificar as melhorias;
- Definir os requisitos do novo sistema (o sistema futuro);
Análise de Documentos
As equipes de projeto usam frequentemente a análise de documentos
para compreender o sistema atual existente. Em condições ideais, a
equipe de projeto que o desenvolveu produziu uma documentação, que foi,
em seguida, atualizada para todos os projetos subsequentes. Nesse caso, a
equipe de projeto pode começar revendo a documentação e examinando o
próprio sistema.
Observação
A observação, o ato de verificar atentamente processos em execução,
é uma ferramenta poderosa para obter uma noção sobre o sistema
existente. Ela permite ao analista ver a realidade de uma situação, em vez
de escutar outras pessoas descrevê-la em entrevistas. Diversos estudos de
pesquisas têm mostrado que, na realidade, muitos gerentes não se
lembram da forma como trabalham e alocam seu tempo.
Análise do Problema
A estratégia de análise de requisitos mais simples (e provavelmente a mais
usada em geral) é a análise do problema. A análise do problema significa pedir
aos usuários e gerentes que identifiquem os problemas com o sistema atual
existente e descrevam como resolvê-los no sistema futuro. A maioria dos
usuários tem uma boa ideia das modificações que gostariam de ver, e a maior parte
deles estará bastante disponível para sugeri-las. A maioria das modificações tende a
resolver os problemas em vez de aproveitar as oportunidades, mas isso também é
possível. As melhorias da análise dos problemas tendem a ser pequenas e
incrementais (por exemplo, adicionar um campo para armazenar o telefone celular
do cliente, fornecer um novo relatório que não existe atualmente).
Análise da Causa Principal (Causa Raiz)
As ideias produzidas pela análise do problema tendem a ser soluções para os
problemas. Todas as soluções adotam hipóteses sobre a natureza do problema,
hipóteses que podem ou não ser válidas. De acordo com nossa experiência, os
usuários (e a maioria das pessoas em geral) tendem a adotar rápido as
soluções sem considerar completamente a natureza do problema. Algumas
vezes as soluções são apropriadas, mas muitas vezes eles tratam de um sintoma
do problema, e não do problema real ou propriamente da causa raiz (causa
principal).
Análise da Duração
A análise da duração exige um exame detalhado da quantidade de tempo
necessária para realizar cada processo no sistema atual existente. Os
analistas começam determinando a quantidade total de tempo que levam, em
média, para realizar um conjunto de processos do negócio para uma determinada
entrada. Assim, eles medem o tempo de cada etapa isolada (ou de cada
subprocesso) no processo do negócio.
Análise Comparativa (Benchmarking Informal)
A análise comparativa ou benchmarking se refere ao estudo de como as
organizações realizam um processo de negócio a fim de aprender de que
forma sua organização pode fazer algo melhor. O benchmarking ajuda a
organização introduzindo ideias que os funcionários podem nunca ter levado em
consideração, mas que possuam o potencial de agregar valor.
Análise de Resultados
A análise de resultados concentra-se no entendimentodos resultados
fundamentais que fornecem valor aos clientes. Embora esses resultados
pareçam óbvios, frequentemente não o são. Por exemplo, suponha que
você esteja em uma companhia de seguros, e um de seus clientes acabou
de sofrer um acidente de carro. Qual é o resultado fundamental sob a
perspectiva do cliente? Tradicionalmente, as companhias de seguro
respondem a essa pergunta admitindo que o cliente deseje receber
rápido o pagamento do seguro. Entretanto, para o cliente, o pagamento
é apenas um meio para o resultado real: um carro consertado. A
companhia de seguros pode se beneficiar por ampliar sua visão do
processo do negócio além de suas fronteiras tradicionais afim de
incluir não apenas o pagamento dos reparos, como também realizar os
reparos ou contratar uma oficina autorizada para fazer isso.
Análise de Tecnologia
Muitas modificações importantes nos negócios, ao longo da última década,
foram possibilitadas por novas tecnologias. Portanto, a análise de tecnologia
inicia com os analistas e os gerentes desenvolvendo uma lista de
tecnologias importantes e interessantes. Então, o grupo identifica
sistematicamente como cada uma das tecnologias poderia ser aplicada ao
processo do negócio e identifica como o negócio poderia se beneficiar delas.
Design do Sistema
TRANSIÇÃO DOS REQUISITOS PARA O DESIGN
A finalidade da fase de análise é compreender quais são as necessidades
do negócio, e decidir como construí-las é a finalidade da fase de projeto.
O design do sistema é a determinação da arquitetura global do sistema,
trata-se de um conjunto de componentes físicos de processamento,
hardware, software, pessoas e a comunicação entre eles, que satisfará
os requisitos essenciais do sistema.
Durante a parte inicial do design, a equipe de projeto converte os requisitos
do negócio em requisitos do sistema, que descrevem os detalhes técnicos para
a construção dos mesmos. Diferente dos requisitos do negócio, que são
listados na definição de requisitos e transmitidos por meio de diagramas,
canvas, histórias de usuário, casos de uso, modelos de dados e de processos
lógicos, os requisitos do sistema são transmitidos fazendo uso de um grupo
de documentos de design e modelos de dados e de processos físicos.
Juntos, os documentos de design e os modelos físicos constituem o projeto
gráfico do novo sistema.
DESIGN DE ARQUITETURA
Os componentes arquitetônicos mais importantes de qualquer sistema são o
software e o hardware. Os componentes de software mais importantes do sistema
em desenvolvimento precisam ser identificados e, em seguida, alocados aos vários
componentes de hardware nos quais o sistema será executado. Cada um desses
componentes pode ser combinado de muitas maneiras diferentes.
Todos os sistemas de software podem ser divididos em quatro funções básicas :
• Armazenagem de Dados;
• Lógica de Acesso aos Dados;
• Lógica de Aplicação;
• Lógica de Apresentação;
• A primeira é a armazenagem de dados. A maioria dos sistemas de informações
requer que os dados sejam armazenados e recuperados, seja em um pequeno
arquivo, como uma lista de produtos químicos não mais autorizados para
aplicações residenciais, seja em um grande banco de dados que armazena os
registros de recursos humanos de uma organização. Essas são as entidades de
dados documentadas nos DER (Diagrama Entidade Relacionamento).
Armazenagem dos Dados
 Descrever as opções de arquitetura mais recentes, como
computação em nuvem (cloud computing):
• A nuvem pública é definida como uma série de serviços de computação
oferecidos por terceiros à Internet pública, os quais são disponibilizados a
qualquer pessoa que queira utilizá-los ou comprá-los. Eles podem ser
gratuitos ou vendidos sob demanda, permitindo que os clientes paguem
apenas pelo seu consumo de ciclos de CPU, armazenamento ou largura de
banda;
• Nuvem privada refere-se aos serviços de computação em nuvem oferecidos
pela Internet ou por uma rede interna privada somente a usuários
selecionados e não ao público geral. Além disso, as nuvens privadas oferecem
um maior nível de segurança e privacidade por meio de firewalls;
• A nuvem híbrida é um ambiente de computação que combina nuvens
públicas e nuvens privadas, permitindo que os dados e aplicativos sejam
compartilhados entre elas. Quando a demanda de computação e
processamento oscila, a computação em nuvem híbrida proporciona às
empresas a capacidade de dimensionar facilmente sua infraestrutura local para
a nuvem pública a fim de operar qualquer excesso, sem que datacenters de
terceiros tenham acesso aos seus dados integrais.
Armazenagem dos Dados
• A segunda função é a lógica de acesso aos dados, o processamento
exigido para acessar os dados, significando frequentemente consultas a
banco de dados em SQL.
Lógica de Acesso aos dados
• A terceira função é a lógica de aplicação; a lógica documentada nos diagramas
de fluxo de dados (DFDs), casos de uso, histórias de usuários e requisitos
funcionais.
Lógica de Aplicação
o A segurança é a capacidade de proteger o sistema de
informações contra interrupções e perda de dados, causados
por uma ação intencional (por exemplo, um hacker ou um ataque
terrorista) ou um acontecimento aleatório.
o Os requisitos culturais e políticos são específicos para os
países onde o sistema será usado. No ambiente empresarial
globalizado de hoje as empresas estão expandindo seus
sistemas para atingir usuários em todo o mundo.
Lógica de Aplicação
• A quarta função é a lógica de apresentação: a exibição das informações para
o usuário e a aceitação dos comandos do usuário (a interface com o
usuário).
Lógica de Apresentação
DESIGN DA INTERFACE COM O USUÁRIO
O design da interface é o processo de definição de como o sistema interagirá
com as entidades externas (clientes, fornecedores e outros sistemas).
Você deve entender que o design da interface com o usuário define a maneira
como os usuários interagirão com o sistema e a natureza das entradas e
saídas que o sistema aceita e produz. A interface com o usuário inclui três
partes fundamentais.
• A primeira é o mecanismo de navegação, a maneira pela qual os usuários
fornecem instruções ao sistema e informam a ele o que fazer (p.ex., botões,
menus).
• A segunda é o mecanismo de entrada, a maneira como o sistema captura
as informações (p.ex., formulários para adicionar novos clientes).
• A terceira é o mecanismo de saída, a maneira pela qual o sistema fornece
informações ao usuário ou a outros sistemas (p.ex., relatórios, páginas
Web).
Lógica de Apresentação
O objetivo é tornar a interface agradável aos olhos e simples de usar e, ao
mesmo tempo, minimizar os esforços que os usuários despendem para
realizar suas tarefas. O sistema nunca é um fim por si só; ele é simplesmente um
meio de realizar o negócio da empresa.
Lógica de Apresentação
Lógica de Apresentação
Lógica de Apresentação
Obrigado!