Você está na página 1de 75

Conceitos de Desenvolvimento de Software

Prof. Ivan Souza

Outubro de 2018
Versão: 1
Conceitos de Desenvolvimento de Software 2

Definição de Hardware e Software


Conceitos de Desenvolvimento de Software 3
Conceitos de Desenvolvimento de Software 4

Conceitos de Desenvolvimento de Software 5


Precisa ser Atualizado,
Conceitos de Desenvolvimento de Software 6

Como é dividido o Software pronto?

É dividido em 3 partes principais

1-) Documentação

Descrevem a operação e o uso dos programas (Ex: Manual do


software).

2-) Estruturas de Dados

Que possibilitam que os programas manipulem adequadamente a


informação.

3-) Instruções

É o produto final (Software de computador) que quando


executados produzem a função e o desempenho desejados.

Exemplo: .Exe, .Jar, .Apk


Conceitos de Desenvolvimento de Software 7

Conceitos de Desenvolvimento de Software 8


Evolução do Hardware e Software

Conceitos de Desenvolvimento de Software 9


Conceitos de Desenvolvimento de Software 10
Conceitos de Desenvolvimento de Software 11
Conceitos de Desenvolvimento de Software 12
Sistemas
de
Informação
Sistemas Baseado no Conhecimento
Conceitos de Desenvolvimento de Software 13
Conceitos de Desenvolvimento de Software 14
Conceitos de Desenvolvimento de Software 15
Conceitos de Desenvolvimento de Software 16
Conceitos de Desenvolvimento de Software 17

Engenharia de Software: Definição


Métodos

• Envolvem um amplo conjunto de tarefas que incluem:

✔Como fazer?
✔Planejamento e estimativa de projeto,
✔Análise de requisitos de software e de
sistemas, ✔Projeto de estrutura de dados,
✔Especificação e codificação de
programas, ✔Teste e manutenção.
Conceitos de Desenvolvimento de Software 18

Engenharia de Software: Definição

Ferramentas
Por exemplo Ferramentas CASE

CASE

Computer Aided Software Engineering


ou
Engenharia de Software Assistida por Computador

✔É uma classificação que abrange todas as ferramentas


baseadas em computadores que auxiliam atividades de
engenharia de software desde análise de requisitos,
modelagem até programação e testes.
Conceitos de Desenvolvimento de Software 19
Engenharia de Software: Definição

Ferramentas

✔Podem ser consideradas como ferramentas


automatizadas que tem como objetivo auxiliar o
desenvolvedor de sistemas em uma ou várias etapas do
ciclo, de desenvolvimento de software.

✔Front End ou Upper CASE: Apoia as etapas iniciais de criação dos


sistemas por exemplo as fases de planejamento, análise e projeto do
programa ou aplicação.

✔Back End ou Lower CASE: Apoia à parte física exemplo codificação,


testes e manutenção da aplicação.

✔I-CASE ou Integrated CASE: Classifica os produtos que cobrem todo o


ciclo de vida do software, desde os requisitos do sistema até o controle
final da qualidade.
Conceitos de Desenvolvimento de Software 20
Engenharia de Software: Definição

Procedimetos

✔ Constituem o elo de ligação que mantém juntos os


métodos e as ferramentas para desenvolvimento do
software.

✔ Sequência em que os métodos serão aplicados.


✔ Produtos que devem ser entregues (relatórios, formulários, cronograma,
etc).
✔ Controles que ajudam a assegurar a qualidade e a coordenar as
mudanças.
✔ O procedimento ajuda na gerencia do desenvolvimento do software.
✔ Avaliação dos progressos do desenvolvimento do software.
Conceitos de Desenvolvimento de Software 21
Sistemas de

Informação SI
Conceitos de Desenvolvimento de Software 22
Sistemas de Informação

Uma definição

Sistemas de Informação (SI) é a expressão utilizada para descrever


um sistema que transforma dados em informações, seja ele manual
ou automatizado, que abrange pessoas, máquinas ou métodos
organizados para coleta e processamento.

Os SI apoiados na Tecnologia da Informação (TI), tornam-se


extremamente relevantes para mudanças e crescimento das
organizações (AUDY; BRODBECK, 2008).
Conceitos de Desenvolvimento de Software 23
Sistemas de Informação

✔ Um Sistema de Informação é o modelo automatizado ou


manual de processos responsáveis por coletar e transmitir
dados que sejam úteis ao desenvolvimento de produtos,
serviços das empresas, organizações e de demais projetos.

✔ Neste sistema, todos os componentes integrantes são inter


relacionados, atuando em conjunto para atingir o objeto
central do projeto.

✔ O objetivo de um SI é transformar dados em informação e


posteriormente em conhecimento.
Conceitos de Desenvolvimento de Software 24

Sistemas de Informação
Diferença entre Dados e Informação

❑ Dados

✔ Dados são correntes de fatos brutos que importam eventos


que estão ocorrendo nas organizações ou no ambiente
físico, antes de terem sido organizados e arranjados de uma
forma que as pessoas possam entendê-los e usá-los.

Exemplo:
Barbacena

Número 500

Avenida
Conceitos de Desenvolvimento de Software 25

Sistemas de Informação
Diferença entre Dados e Informação

❑ Informação

✔ Informação são dados oferecidos de uma forma significativa


e útil para os usuário do SI.

✔ São dados processados e organizado de forma lógica para o


usuário.

✔ É função do sistema de Informação fornecer dados


processados de forma lógica para o usuário e que esses
dados representem uma informação real e precisa para o
usuário.
Exemplo:

Avenida Barbacena Número 500


Conceitos de Desenvolvimento de Software 26

Tipos de Sistemas de Informação


Existem 4 principais níveis com sistemas de informação
específicos que atuam em diferentes setores da
organização:

❖ Sistemas do nível operacional

❖ Sistemas do nível do conhecimento

❖ Sistemas de nível gerencial ou nível

tático ❖ Sistemas de nível estratégico

Conceitos de Desenvolvimento de Software 27

Tipos de Sistemas de Informação


Sistemas do nível operacional:

Os Sistemas de processamento de transações (SPT) dão


suporte aos gerentes operacionais, oferecendo respostas
rápidas as questões de rotina da organização. Este
sistema também é responsável por fornecer informações
de fácil acesso, precisas e atualizadas.

Sistemas do nível do conhecimento:

Atua através dos Sistemas de Trabalhadores de Conhecimento


e Sistemas de Automação de Escritório, responsáveis por
possibilitar a integração de novas tecnologias e informações a
organização.
Conceitos de Desenvolvimento de Software 28

Tipos de Sistemas de Informação


Sistemas de nível gerencial ou nível tático:
Baseado tanto no Sistema de Informações Gerenciais
(SIG), como no Sistema de Apoio a Decisão (SAD), este
nível tem a função de produzir relatórios periódicos sobre
os procedimentos administrativos dos gerentes médios da
organização.

Sistemas de nível estratégico:

Neste nível atua o chamado Sistema de Apoio ao Executivo


(SAEx), responsável por ajudar os executivos a criarem
estratégias a longo prazo para acompanharem as tendências do
ambiente externo (mercado e consumo, por exemplo).
Conceitos de Desenvolvimento de Software 29
Análise de Requisitos

Conceitos de Desenvolvimento de Software 30

Definição de Análise de Requisitos

✔ Análise de requisitos engloba todas as tarefas que lidam com


investigação definição e escopo de novos sistemas ou
alterações.

✔ Análise de requisitos é uma parte importante do processo de


desenvolvimento de softwares na qual o analista de negócio
juntamente com desenvolvedor de software identificam as
necessidades do cliente.

✔ Uma vez que os requisitos do sistema tenham sido


identificados, os projetistas de sistemas estarão preparados
para projetar o novo SI.
Conceitos de Desenvolvimento de Software 31

Definição de Análise de Requisitos

✔ A análise de requisitos é uma das primeiras atividades de


desenvolvimento de software.
✔ O produto do seu trabalho é a especificação de requisitos,
que define o escopo do software em duas dimensões:
Requisito funcional e Requisito não-funcional.

✔ É nesta fase que o analista faz as primeiras reuniões com os


clientes ou usuários do software para conhecer as
funcionalidades do sistema que será desenvolvido.
Conceitos de Desenvolvimento de Software 32

Definição de Análise de Requisitos

✔ É nesta fase também que ocorre a maior parte dos erros,


pois a falta de experiência dos clientes ou usuários faz com
que eles nem sempre tenham claro em sua mente quais
funcionalidades o software que será desenvolvido.
✔ As entrevistas estruturadas são um método utilizado para
esta fase e que poderão ter um papel importante para ajuda
à compreensão de todas as funcionalidades pretendidas
pelo cliente.
Conceitos de Desenvolvimento de Software 33

Tarefas da análise de requisitos


Conceitos de Desenvolvimento de Software 34

Tarefas da análise de requisitos


As tarefas de análise de requisitos implicam em uma série
de outras tarefas, como por exemplo;

⮚ Estabelecer objetivos
⮚ Compreender o contexto
⮚ Organizar o conhecimento
⮚ Fazer o levantamento dos requisitos
⮚ Requisitos funcionais e não funcionais
Conceitos de Desenvolvimento de Software 35

Tarefas da análise de requisitos

❖ Estabelecer objetivos

✔ Definir objetivos do negócio


✔ Definir o problema a resolver
✔ Definir as restrições do sistema
✔ Restrições econômicas
✔ Restrições políticas
✔ Restrições tecnológicas
✔ Restrições ambientais
✔ Restrições temporais
Conceitos de Desenvolvimento de Software 36

Tarefas da análise de requisitos

❖ Compreender o contexto
✔ Compreender a estrutura
organizacional ✔ Compreender o domínio
da aplicação
✔ Identificar os sistemas existentes
Conceitos de Desenvolvimento de Software 37

Tarefas da análise de requisitos


❖ Organizar o conhecimento

✔ Identificar o público alvo do SI.

✔ Compreender as necessidades dos interessados num


sistema de informação é decisivo para o desenvolvimento
de uma solução efetiva.
✔ Conhecer os interessados e as suas necessidades
permite definir as fronteiras do sistema.

✔ Quem são os utilizadores do SI?

✔ Quem fornece, utiliza ou remove informação do SI?.


Conceitos de Desenvolvimento de Software 38

Tarefas da análise de requisitos

❖ Organizar o conhecimento

✔Como é que o SI mantém a informação necessária


para o seu funcionamento?
✔Onde é que o SI é utilizado?
✔Quem será afetado pelas saídas que o SI produz?
✔Quem vai ficar responsável pela manutenção do
SI? ✔Que outros sistemas interagem com o novo SI?
✔Definir prioridades para os objetivos
✔Filtrar o domínio de conhecimento
Conceitos de Desenvolvimento de Software 39

Tarefas da análise de requisitos

❖ Fazer o levantamento dos requisitos

✔ Identificar requisitos dos Stakeholders (Stakeholder significa


público estratégico ou descreve uma pessoa ou grupo que tem
interesse em uma empresa, negócio ou indústria)
✔ Identificar requisitos do modelo de negocio do
cliente; ✔ Identificar requisitos da organização.
✔ O contexto no qual o sistema se vai inserir e as condições
impostas ao processo, influenciam a forma como o
levantamento de requisitos é feito.
Conceitos de Desenvolvimento de Software 40

Tarefas da análise de requisitos

Tipos de requisitos de um SI

Requisitos Funcionais
X
Requisitos Não Funcionais
Conceitos de Desenvolvimento de Software 41
Tarefas da análise de

requisitosRequisitos
Funcionais

Conceitos de Desenvolvimento de Software 42

Tarefas da análise de requisitos

❖ Requisitos funcionais

✔ São os requisitos relacionados com as funções


específicas que o sistema de informação irá executar,
essas informações são adquiridas junto ao cliente.
✔ São requisitos específicos da regra de negócios do
cliente.

✔ Para o correto levantamento desses requisitos temos


que adotar vários processos.
Conceitos de Desenvolvimento de Software 43

Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Entrevistas ou questionários: Técnicas simples mas difíceis


de aplicar porque o entrevistado pode não ser claro em suas
palavras ou esconder alguma regra de negócios que será
fundamental no SI.
Por esse motivo o analista ou programador terá que ser detalhistas.

Lembre-se analista ou programador não acha nada, tem


que ter certeza do que esta falando.
Conceitos de Desenvolvimento de Software 44

Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Workshops de requisitos: Técnica de grupo para o debate


e acordo das questões associadas à identificação de
requisitos.

O grupo é composto por representantes dos diversos


setores envolvidos no desenvolvimento do SI, por exemplo
Equipe de clientes equipe de desenvolvedores do SI

Discussão é mediada por especialista na identificação e


levantamento de requisitos.
Conceitos de Desenvolvimento de Software 45

Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Brainstorming: Técnica de grupo para a geração de novas


ideias.

Encoraja a participação de todos os envolvidos no processo


de criação do SI.
Permite o aproveitamento e o refinamento de outras ideias e
a criação de novas.

Encoraja o pensamento livre.


Conceitos de Desenvolvimento de Software 46

Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Cenários: Técnica que permite colocar os interessados no


SI perante uma situação realista em que simulam ou
antecipa a interação com o SI;

Storyboarding: Técnica que permite obter, rapidamente,


reações dos utilizadores para os conceitos propostos para o
SI:
Conceitos de Desenvolvimento de Software 47

Tarefas da análise de requisitos


❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Passivo: Obtenção das regras de negócios e relatórios


específicos sobre negócios do seu cliente.

Ativo: Slide shows, animações e simulações com o objetivo


de extrair o máximo as informações do seus clientes.

Interativo: Demonstrações de outros projetos com


apresentações interativas.

Protótipos: Técnica que consiste na criação de uma versão


inicial do sistema para apoio à identificação, análise e
validação de requisitos.
Conceitos de Desenvolvimento de Software 48

Tarefas da análise de requisitos


❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Mockups: São usados por profissionais de TI para adquirirem


um feedback dos usuários atrás de um modelo em escala real
do futuro SI.

WireFrame: São usados para demostrar como será a interface


gráfica após o desenvolvimento do SI.

Nesse caso será desenvolvido para todas as telas do SI.


Conceitos de Desenvolvimento de Software 49
Tarefas da análise de requisitos
❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Uso de diagramas específicos: Podemos utilizar modelos de


diagramas para obter o máximo a análise de requisitos e regra
de negócios do novo SI, por exemplo;

⮚ Fluxograma

⮚ DFD – Diagrama de Fluxo de Dados

⮚ Diagramas da UML
⮚ Diagrama de Caso de Uso
⮚ Diagrama de Classe
⮚ Diagrama de Sequência
Conceitos de Desenvolvimento de Software 50
Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do

SI Formato dos requisitos

✔ Numerar requisitos
✔ Esquemas em formato UML
✔ Uso de linguagem natural
✔ Incluir critérios de aceitação dos requisitos
Conceitos de Desenvolvimento de Software 51

Tarefas da análise de requisitos


❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Problemas no levantamento de requisitos

✔ Levantamento superficial do problema.


✔ Requisitos do SI feito a olho (Ex: Eu acho que é
assim.....). ✔ Intepretação errada sobre o que o cliente fala.
✔ Não conhecer a área de negócios do cliente.
✔ Não conhecer os processos de negócios do cliente. ✔
Relatórios ou documentação parcial sobre a análise de
requisitos.
Conceitos de Desenvolvimento de Software 52
Tarefas da análise de requisitos

❖ Requisitos funcionais

Processos para descobrir requisitos do SI

Problemas no levantamento de requisitos

✔ Os clientes não sabem o que querem ou sabem o que querem, mas


não conseguem explicar de forma clara.

✔ Os utilizadores pensam que sabem o que querem até que os


desenvolvedores apresentam uma nova solução para o seu negócio.

✔ Os analistas acham que compreendem os problemas dos utilizadores


melhor que os mesmos.

✔ Uma forma de minimizar os problemas é serem discutidos de forma


iterativa em várias versões até à final.
Conceitos de Desenvolvimento de Software 53
Tarefas da análise de requisitos

❖ Requisitos funcionais

Os Requisitos Funcionais levantados devem ser numerados

Conceitos de Desenvolvimento de Software 54

Tarefas da análise de requisitos


❖ Requisitos funcionais

Conceitos de Desenvolvimento de Software 55


Tarefas da análise de

requisitosRequisitos Não
Funcionais

Conceitos de Desenvolvimento de Software 56

Tarefas da análise de requisitos

❖ Requisitos não funcionais

✔ São os requisitos relacionados ao uso da aplicação em


termos de desempenho, usabilidade, confiabilidade,
segurança, disponibilidade, manutenção e tecnologias
envolvidas.

✔ Não é preciso que o cliente fale sobre eles, pois eles


são características mínimas de um software de
qualidade, ficando a cargo do desenvolvedor optar por
atender esses requisitos ou não.
Conceitos de Desenvolvimento de Software 57

Tarefas da análise de requisitos

❖ Requisitos não funcionais

Requisitos de produtos: Requisitos que especificam o


comportamento do produto. Ex. portabilidade, tempo na
execução, confiabilidade e mobilidade.

Requisitos da organização: Requisitos decorrentes de


políticas e procedimentos corporativos. Ex. padrões,
infraestrutura.

Requisitos externos: Requisitos decorrentes de fatores


externos ao sistema e ao processo de desenvolvimento. Ex.
requisitos de interoperabilidade, legislação, localização
geográfica etc.
Conceitos de Desenvolvimento de Software 58

Tarefas da análise de requisitos

❖ Requisitos não funcionais

Requisitos de facilidade de uso: Ex.: usuários deverão


operar o sistema após um determinado tempo de
treinamento.

Requisitos de eficiência: Ex.: o sistema deverá processar


requisições por um determinado tempo.

Requisitos de confiabilidade: Ex.: o sistema deverá ter


alta disponibilidade, por exemplo 99% do tempo.

Requisitos de portabilidade: Ex.: o sistema deverá rodar


em qualquer plataforma.
Conceitos de Desenvolvimento de Software 59

Tarefas da análise de requisitos

❖ Requisitos não funcionais

Requisitos de entrega: Ex.: um relatório de


acompanhamento deverá ser fornecido toda segunda-feira.

Requisitos de implementação: Ex.: o sistema deverá ser


desenvolvido na linguagem Java.
Requisitos de padrões: Ex. uso de programação orientada a
objeto sob a plataforma A.

Requisitos de interoperabilidade: Ex. o sistema deverá se


comunicar com o SQL Server.
Conceitos de Desenvolvimento de Software 60

Tarefas da análise de requisitos

❖ Requisitos não funcionais

Requisitos éticos: Ex.: o sistema não apresentará aos


usuários quaisquer dados que são privativo a outro usuário.

Requisitos legais: Ex.: o sistema deverá atender às


normas legais, tais como padrões e leis locais, estuais ou
federais.
Requisitos de Integração: Ex.: o sistema integra com outra
aplicação.
Conceitos de Desenvolvimento de Software 61

Tarefas da análise de requisitos


❖ Requisitos não funcionais
Os Requisitos não Funcionais levantados devem ser numerados
Conceitos de Desenvolvimento de Software 62

Tarefas da análise de requisitos

❖ Requisitos não funcionais


Os Requisitos não Funcionais levantados devem ser numerados

Conceitos de Desenvolvimento de Software 63


Fases no
desenvolvimento do
Sistemas de Informação
Conceitos de Desenvolvimento de Software 64

Fases no desenvolvimento do Sistemas de Informação

✔ As fases no desenvolvimento de sistemas e informação


constitui-se de metodologias organizadas de forma a auxiliar
o desenvolvimento de um SI, cada etapa envolve requisitos
e situação especifica para atingir um objetivo.

✔ Um processo de desenvolvimento requer algumas etapas


bem definidas para organizar o desenvolvimento, cada
passo e dados cumprindo metas criando assim uma
metodologia para o desenvolvimento de uma aplicação.

✔ As etapas devem sempre ser revisadas para obter uma


melhor qualidade no produto final.
Conceitos de Desenvolvimento de Software 65

Fases no desenvolvimento do Sistemas de

InformaçãoPrincipais fases no desenvolvimento de


uma aplicação

✔ Análise de Requisitos (Inicio do

Projeto) ✔ Planejamento

✔ Construção e Testes

✔ Implantação e Testes

✔ Avaliação e Manutenção
Conceitos de Desenvolvimento de Software 66

Fases no desenvolvimento do Sistemas de

Informação❑ Análise de Requisitos (Inicio do


Projeto)

O inicio do projeto tem como principais objetivos a concepção


do novo projeto e para isso acontecer temos que realizar
algumas etapas, como por exemplo;

⮚ Levantamento dos requisitos


⮚ Classificação dos requisitos do sistemas.
• Funcional e Não Funcional
⮚ Estabelecer um conhecimento prático sobre o projeto.
⮚ Conhecer com detalhes todos os requisitos do projeto.
Conceitos de Desenvolvimento de Software 67

Fases no desenvolvimento do Sistemas de

Informação❑ Planejamento
Para iniciar essa etapa e necessário realizar um levantamento dos
requisitos do sistema junto com o cliente, avaliar os problemas e as
necessidades do cliente e documentar essas informações que serão
de grande importância na elaboração do planejamento.

⮚ Identificação do cliente.
⮚ Identificação da área de mercado do cliente.
⮚ Identificação dos requisitos. (Ex: Numerar todos os requisitos do projeto)
⮚ Levantamento dos recursos e custos.
⮚ Avaliar a viabilidade do projeto. (Ex: Análise de Riscos do projeto)
⮚ Elaboração do cronograma inicial.
⮚ Documentação do projeto.
• (Ex: Documentar todos os requisitos do projetos, DFD, Diagramas da UML
como por exemplos Casos de Uso, Classe e Sequência entre outros)
Conceitos de Desenvolvimento de Software 68

Fases no desenvolvimento do Sistemas de


Informação❑ Construção

Na construção do SI serão desenvolvidas várias etapas de


desenvolvimento do software, como por exemplo;

⮚ Desenvolvimento do SI (Programar na Linguagem escolhida). ⮚


Desenvolvimento do banco de dados (Ex. MySql, SqlServer ou Oracle). ⮚
Criar metas para Segurança do SI (Ex. Tela de Login no SI). ⮚
Criação de testes para o SI.
⮚ Promover carga de testes extremos e avaliação do produto
final.
⮚ Realização do Teste Alfa.
⮚ Fazer um levantamento de erros e correções.
Conceitos de Desenvolvimento de Software 69

Fases no desenvolvimento do Sistemas de


Informação ❑ Implantação

Nesta fase será realizada as seguintes tarefas;

⮚ Realização da implantação do sistema de informação na


plataforma do cliente.
⮚ Realização do treinamentos para os operadores do SI. ⮚
Verificar possíveis problemas e realizar correções da
aplicação se necessário.
⮚ Realização do Teste Beta.
Conceitos de Desenvolvimento de Software 70

Fases no desenvolvimento do Sistemas de


Informação ❑ Avaliação e manutenção

Nesta fase será realizada as seguintes tarefas;

✔ Realizar uma avaliação do sistema junto com o cliente


para garantir a qualidade do produto.

✔ Realizar manutenções sempre que necessário para


manter o bom funcionamento da aplicação.

✔ Manutenção corretiva se tiver necessidade.


Conceitos de Desenvolvimento de Software 71

Fases no desenvolvimento do Sistemas de Informação

Paradigma
Conceitos de Desenvolvimento de Software 72

Fases no desenvolvimento do Sistemas de Informação

RUP
Rational Unified Process
Processo Unificado da Rational

Foi criado pela Rational Software Corporation e adquirido em fevereiro de 2003 pela IBM
Conceitos de Desenvolvimento de Software 73
Conceitos de Desenvolvimento de Software 74
Conceitos de Desenvolvimento de Software 75

Você também pode gostar