Buscar

ER - E03 - Processo de Software

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 56 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

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 6, do total de 56 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

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 9, do total de 56 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

Prévia do material em texto

Sistemas de Informação
Processo 
de 
Software
Profa. Ivre Marjorie
Aula baseada em material cedido pelo Profº Tadeu Faria e da Profa. Sandra Silveira
Leitura Indicada
 PAULA FILHO, Wilson de Pádua. Engenharia de software: 
volume 1: produtos. 4. ed. Rio de Janeiro: LTC, 2019. E-book.
 Capítulo 1 – Engenharia de Software
 Capítulo 3 – Processos de Software
 PRESSMAN, Roger. Engenharia de software. 8. Porto Alegre, AMGH, 
2016. recurso online
 Capítulo 3 – Estrutura do processo Software
 Capítulo 4 – Modelos de Processo
 Capítulo 3 – Processo de Software
 SOMMERVILLE, Ian. Engenharia de software. 10. ed. São Paulo (SP): 
Pearson Prentice Hall, c2019. xii, 756
 SOMMERVILLE, Ian. Engenharia de software. 9ª. ed., São Paulo: Pearson 
Prentice Hall, c2011, capítulo 1. recurso online
 Software como Produto
 O software é normalmente visto como um programa que 
pode ser executado num computador. Entretanto esta 
visão é limitada. Software é mais do que um programa!
 Num programa a perspectiva está em como um certa 
solução é resolvida por algoritmos. A perspectiva de 
aplicação de software, sistema de informação, o software 
como produto, está em como ele pode resolver os 
problemas do usuário. 
 Para que um software possua uma ampla utilidade ele 
necessita de centenas ou milhares de algoritmos. 
Atualmente os softwares são bastante complexos e 
podem ser formados por diversos programas. 
Engenharia de Software
 É o produto que os profissionais de software 
constroem e, depois, mantêm ao longo do 
tempo. Engloba:
 (1) AS INSTRUÇÕES (programas de 
computador) que quando executadas fornecem 
características, funções e desempenho 
desejados; 
Para a Eng de Software, o que é Software?
4
Profº Tadeu Faria - Engenharia de Requisitos(Pressman, 2016)
 É o produto que os profissionais de software 
constroem e, depois, mantêm ao longo do 
tempo. Engloba:
 (2) ESTRUTURAS DE DADOS que possibilitam 
aos programas manipular adequadamente as 
informações 
Para a Eng de Software, o que é Software?
5
Profº Tadeu Faria - Engenharia de Requisitos(Pressman, 2016)
 É o produto que os profissionais de software 
constroem e, depois, mantêm ao longo do 
tempo. Engloba:
 (3) A DOCUMENTAÇÃO que descreve o 
funcionamento e utilização dos programas.
Para a Eng de Software, o que é Software?
6
Documentação, 
aquela parte que os 
programadores não 
morrem de amor.
Profº Tadeu Faria - Engenharia de Requisitos
(Pressman, 2016)
Software para a ES 
 Programas
 Arquivos de código
 Dados de configuração
 Arquivos de instalação e reconstrução
 Documentação
 Manuais do usuário
 Manuais do sistema
 Web sites
ES e a Diversidade de Software
 Aspectos fundamentais de Engenharia de 
Software aplicam a todos tipos de softwares
 Devem ser desenvolvidos em um processo 
gerenciado e compreendido
 Confiança e desempenho são importantes para 
todos os tipos de softwares
 O gerenciamento dos requisitos é essencial 
 Usar o melhor possível os recurso existentes
8
Profº Tadeu Faria - Engenharia de Requisitos
Campos de aplicação do software
 Software de sistema: construídos para atender a outros 
programas. Ex: sistema operacional, drivers, software 
de rede, compiladores, editores)
 Software de aplicação: programas sob medida que 
solucionam uma necessidade específica de negócio.
 Software científico/de engenharia
 Software embutido: residente em um produto ou 
sistema. Ex: controle do painel de um forno micro-
ondas, controle do nível de combustível de automóveis.
(Pressman, 2016)
Campos de aplicação do software
 Software para linha de produtos: projetado para atender 
tarefas comuns de um mercado limitado. Ex: controle de 
estoques, editores de texto, computação gráfica
 Aplicações para web: Webapps. Podem ser simplesmente 
hipertextos conectados como aplicações integradas a 
bancos de dados corporativos e aplicações comerciais.
 Software de inteligência artificial: utilizados para solucionar 
problemas complexos. Ex: robótica, sistemas 
especialistas, reconhecimento de imagem e voz.
(Pressman, 2016)
Campos de aplicação do software
 Aplicações stand-alone. Ex: suíte de escritório, CAD.
 Aplicações interativas baseadas em transações: 
executadas em um computador remoto, acessadas pelos 
usuários a partir de seus computadores.
 Sistemas de processamento em lotes: sistemas 
corporativos projetados para processar dados em grandes 
lotes. Ex: cobrança, pagamento de salário.
 Jogos Digitais
 Sistemas para modelagem e simulações
 Sistemas de coletas de dados compostos por sensores
(Pressman, 2016)
 Software como um produto aplicado ao domínio de 
utilização.
 Utilizado pelos usuários com o objetivo de solucionar seus 
problemas. 
 Diferente de programa fonte que se refere à descrição 
estática em uma linguagem de programação. Para se referir 
ao programa fonte utilizamos o termo arquitetura do 
software ou estrutura do software. 
 Os termos aplicação de software, aplicação e software são 
usados como sinônimos.
 Um Engenheiro de Software será envolvido na resolução 
dos problemas do sistema como um todo e não só do 
software!
(Sommerville, 2011)
SI - Aplicação de Software
 Formas de fornecimento comercial:
 Feitos por encomenda de um cliente
 a especificação é controlada pela empresa contratante.
 Pacotes de softwares aplicativos
 Produtos de prateleira
 Podem ser customizados
SI - Aplicação de Software
(Pressman, 2016)
14
necessidade
 É concebido a partir de uma necessidade;
 É desenvolvido e entregue a um cliente;
 Entra em operação, sendo usado dentro de um 
processo de negócio e sujeito a manutenção;
 É retirado de operação no final de sua vida útil
Ciclo de vida de Software
(PAULA FILHO, 2019, p.7)
16 (PAULA FILHO, 2019, p.303)
Ciclos de vida em cascata
17
Ciclos de vida em espiral
 Métodos ágeis, como o 
XP ‒ Extreme 
Programming e o Scrum, 
geralmente não contêm 
elementos suficientes 
para se qualificarem como 
processos completos. Na 
prática, os processos 
deles derivados também 
utilizam alguma das 
variantes do modelo em 
espiral.
18
(PAULA FILHO, 2019, p.68)
Ciclo de vida e processo
 Em engenharia de software, processos podem ser 
definidos para atividades como desenvolvimento, 
manutenção, aquisição e contratação de software.
 Pode-se também definir subprocessos para cada um 
desses; por exemplo, um processo de 
desenvolvimento abrange subprocessos de 
determinação dos requisitos, análise, desenho, 
implementação e testes. 
 Em um processo de desenvolvimento de software, o 
ponto de partida para a arquitetura de um processo 
é a escolha de um modelo de ciclo de vida.
19
(PAULA FILHO, 2019, p.64)
Ciclo de vida e processo
 Exemplificando...
 as etapas de elaboração de um processo, que 
compreende desde a fase de escolha do ciclo de vida, 
até a etapa de especificação do processo de 
desenvolvimento do software (a atividade a ser realizada, 
os responsáveis, critérios de entrada, ferramentas etc).
 Processos “organizam” as atividades do ciclo de 
vida.
20
Processo
 Segundo o IEEE, é uma “sequência de passos 
executados com um determinado objetivo”; 
 Para o CMMI, é “um conjunto de ações e atividades 
inter-relacionadas realizadas para obter um conjunto 
especificado de produtos, resultados ou serviços”.
21 (PAULA FILHO, 2019, p.16)
 É um roteiro que determina quais são as 
tarefas necessárias e em que ordem elas 
devem ser executadas para construir softwares 
de alta qualidade.
 É a “receita” seguida por um projeto:
 não é o produto final;
 não é o projeto.
 Ele organiza uma atividade que pode, sem 
controle, tornar-se caótica.
Processo de desenvolvimento de 
software
 Algumas organizações atuam desenvolvendo e 
implantando processos definidos e gerenciáveis.
 Processos são como hábitos:
 difíceis de se estabelecerem;
 mais difíceis ainda deserem removidos.
 É mais fácil definir processos que 
institucionalizá-los.
Processo de desenvolvimento de 
software
Processo de Desenvolvimento de 
Software
24
“Um processo de desenvolvimento de software pode ser definido
como um conjunto de atividades, métodos, práticas e transformações
que pessoas utilizam para desenvolver ou dar manutenção em
softwares ou em seus produtos associados (projetos, manuais,
código)” (CMMI, The Capability Maturity Model: guidelines for improving the software
process)
 Principais atividades do processo de desenvolvimento de 
software:
 Especificação de software
 o que será desenvolvido
 Desenvolvimento
 como será desenvolvido
 Validação do Software
 Garantir o que o cliente quer
 Evolução
 que mudanças ocorrerão depois
Profº Tadeu Faria - Engenharia de Requisitos
25
Processo de desenvolvimento de 
Software
Benefícios da implantação de processos
 Guia para condução do trabalho.
 Auxiliam na disseminação de boas práticas de trabalho;
 contribuindo para a transferência de conhecimento da equipe 
envolvida. 
 Melhoria na comunicação entre os desenvolvedores, 
gerentes, clientes e usuários.
 Aumento da precisão no acompanhamento do progresso 
do trabalho;
 o que, por outro lado, propicia um aumento do controle do trabalho 
dos desenvolvedores. 
 Medida da qualidade dos processos;
 indica a qualidade dos produtos desenvolvidos.
Tipos de processos de software
 Processos dirigidos a planos
 São processos em que todas as atividades do processo são 
planejadas com antecedência e o progresso é medido em relação 
a esse plano.
 Processos ágeis
 O planejamento é incremental e é mais fácil modificar o processo 
para refletir alterações nos requisitos do cliente.
Métodos ágeis X Métodos dirigidos a 
planos
28
(PAULA FILHO, 2019, p.86)
29
Engenharia de Requisitos em diferentes 
estratégias de desenvolvimento
30
RUP
31
RUP
Métodos tradicionais e ágeis
 Constantes mudanças no cenário da indústria de 
software reduziram o formalismo das especificações e as 
organizações passaram a demandar entregas de 
produtos em menor tempo, com as funcionalidades 
desejadas e sem defeitos graves. 
 Nesta nova realidade impõe-se que o software seja 
entregue em tempo hábil, com mais qualidade e que 
custe menos em relação aos parâmetros praticados com 
o uso de processos de desenvolvimento tradicionais, que 
eram lentos na produção de resultados para o cliente. 
 A utilização de práticas ágeis se apresenta como uma 
realidade que vem atender a esse novo contexto, no 
mercado de tecnologia da informação.
33
34
Qual o melhor processo de 
desenvolvimento de software?
 Não existe processo de software certo ou errado!!!
 O processo adotado deve ser adaptado ao tipo de 
software que se está construindo.
 Exemplo: Software para aplicativo móvel x Software para 
controlar a contabilidade de uma empresa
 Na realidade, os processos mais práticos incluem 
elementos dos processos ágeis e dirigidos a planos.
Exemplo - http://criarenet.com/
36
http://criarenet.com/
Conceitos importantes
37
Projetos
 Projetos
 Normalmente, o desenvolvimento de software é feito 
dentro de um projeto. 
 Todo projeto tem uma data de início, uma data de fim, 
uma equipe (da qual faz parte um responsável, a que 
chamaremos gerente do projeto) e outros recursos. 
 Um projeto representa a execução de um processo.
38
Processo X Projeto 
 Processo é uma receita que é seguida por um 
projeto; 
 o projeto concretiza uma abstração, que é o 
processo. 
 Não se deve confundir processo (digamos, uma 
receita de risoto de camarão) com o respectivo 
produto (risoto de camarão) ou com a execução do 
processo através de um projeto (a confecção de um 
risoto de camarão por determinado cozinheiro, em 
determinado dia). 
39
Partes interessadas (stakeholders)
 “Grupos ou indivíduos que são afetados ou de 
alguma maneira responsáveis pelo resultado de um 
empreendimento”.
 Partes interessadas mais importantes são os 
clientes e usuários. 
 Outras partes interessadas: 
 os próprios desenvolvedores, os dirigentes da 
organização fornecedora, os fornecedores de insumos e 
subcontratados, e as autoridades reguladoras. Partes 
interessadas podem participar de atividades de 
especificação, planejamento, decisão, comunicação, 
revisões e avaliações.
40
Software Pronto
41 Disponível em https://escritoriodeprojetos.com.br/definicao-de-pronto-e-incremento
42
43
Maturidade
 Um processo é definido quando “tem uma descrição 
que é mantida”, ou seja, tem documentação que 
detalha: o que é feito (produto), quando (etapas), 
por quem (papéis), as coisas que usa (insumos) e 
as coisas que produz (resultados). Processos 
podem ser definidos com mais ou menos detalhes, 
como acontece com qualquer receita. As etapas de 
um processo podem ter ordenação apenas parcial, o 
que pode permitir paralelismo entre algumas delas.
44
(PAULA FILHO, 2019, p.62)
Maturidade
 A existência de processos definidos é necessária 
para a maturidade das organizações produtoras de 
software. Os processos definidos permitem que a 
organização tenha um modus operandi padronizado 
e reprodutível. Isso facilita a capacitação das 
pessoas e torna o funcionamento da organização 
menos dependente de determinados indivíduos. 
Entretanto, não é suficiente que os processos sejam 
definidos. Processos rigorosamente definidos mas 
não alinhados com os objetivos da organização são 
entraves burocráticos, e não fatores de produção.
45
Maturidade
 Para tornar uma organização mais madura e 
capacitada, é realmente preciso melhorar a 
qualidade dos seus processos. Processos não 
melhoram simplesmente por estarem de acordo com 
um padrão externo. O critério de verdadeiro êxito 
dos processos é a medida de quanto eles 
contribuem para que os produtos sejam entregues 
aos clientes e usuários com melhor qualidade, por 
menor custo e em prazo mais curto
46
Maturidade
 Modelos de capacitação:
 CMMI (Capability Maturity Model Integration
[CMMI10]), do Software Engineering Institute (SEI), 
da Carnegie-Mellon University. 
 O CMMI é patrocinado pelo Departamento de 
Defesa americano, que o utiliza para avaliação da 
capacidade de seus fornecedores de software.
 MPS.BR (Melhoria de Processo do Software 
Brasileiro), 
 desenvolvido no Brasil, descrito por um Guia Geral 
([SOFTEX12]) e detalhado por uma coleção de 
guias de implementação e avaliação
47
Processo de Software 
 Filme:
 ..\..\..\..\Comum\Videos\Engenharia de 
Software\Empresa FazSite - Problemas processo de 
desenvolvimento de software.mp4
48
../../../../Comum/Videos/Engenharia de Software/Empresa FazSite - Problemas processo de desenvolvimento de software.mp4
Glossário
 Funcionalidade
 característica do sistema computacional que retrata funções 
necessárias para a resolução de problemas em um domínio 
específico.
 refere-se àquilo que um programa faz e, no caso de software 
interativo, o que ele deve oferecer para seus usuários. 
 é diferente de funcionamento que se refere a como um software 
realiza as suas funções. 
 é determinada pelo modelo funcional da aplicação, também 
chamado de modelo de funcionalidade. Na engenharia de 
software, o modelo de funcionalidade é elaborado na fase de 
especificação funcional de software a partir das informações 
obtidas durante a análise de requisitos. 
 Feature
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Glossário
 Interface
 Aquilo que interliga dois sistemas. 
 Considera-se que uma interface homem-máquina é a parte 
de um artefato que permite a um usuário controlar e avaliar 
o funcionamento do mesmo através de dispositivos 
sensíveis às suas ações e capazes de estimular sua 
percepção. 
 No processo de interação usuário-sistema a interface é o 
combinado de software e hardware necessário para 
viabilizare facilitar os processos de comunicação entre o 
usuário e a aplicação.
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Glossário
 Interface de Usuário
 A interface de usuário deve ser entendida como sendo a 
parte de um sistema computacional com a qual uma 
pessoa entra em contato física, perceptiva e 
conceitualmente. 
 A interface é tanto um meio para a interação usuário-
sistema, quanto uma ferramenta que oferece os 
instrumentos para este processo comunicativo. Desta 
forma a interface é um sistema de comunicação.
 A interface possui componentes de software e hardware. 
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Glossário
 Usabilidade
 Qualidade que ao mesmo tempo satisfaz necessidades do usuário, se 
acopla às suas capacidades e conhecimentos, considera o impacto 
da tecnologia no contexto de trabalho e integra o usuário em tal 
contexto.
 O desafio para usabilidade requer o design de equipamentos 
integrados ao ambiente de trabalho de maneira a aumentar as 
capacidades (principalmente as intelectuais) de usuários, 
considerando-os como pessoas inteligentes capacitadas para 
compreensão, aprendizado, interpretação e expressão, ao invés de 
desmerecê-los, considerando-os como "idiotas" destinados a 
trabalhos mecânicos. Neste sentido, sistemas computacionais devem 
ser vistos como artefatos cognitivos, ferramentas intelectuais ou 
mídia, no sentido introduzido no início deste trabalho. 
(Adler & Winograd, 1992)
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Glossário
 Usabilidade
 A usabilidade é um conceito que se refere à qualidade da interação de 
sistemas com os usuários e depende de vários aspectos:
 facilidade de aprendizado do sistema - que é o tempo e o esforço necessários para 
os usuários atingirem um determinado nível de desempenho;
 facilidade de uso - que avalia o esforço físico e cognitivo do usuário durante o 
processo de interação;
 satisfação do usuário - que avalia se o usuário gosta e sente prazer em trabalhar 
com este sistema;
 flexibilidade - que avalia a possibilidade do usuário utilizar o sistema de maneira 
inteligente e criativa, realizando um maior número de tarefas com as mesmas 
funções e comandos do sistema ou tarefas que não estavam previstas pelos 
desenvolvedores.
 produtividade - se o sistema permite ao usuário ser mais produtivo do que seria se 
não utilizasse o sistema.
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Glossário
 Processo de desenvolvimento
 define especificamente quem faz o que, quando e como.
 num processo é preciso definir em detalhes quando e como ações 
concretas devem ocorrer, quem as realizarão, quais as métricas 
deverão ser utilizadas para que se possa fazer o controle do processo 
e dos resultados obtidos. 
 deve ser desenvolvido de acordo com as necessidades e 
circunstâncias particulares do software que será desenvolvido. 
 não tem por objetivo limitar ou constranger as atividades dos membros 
da equipe de desenvolvimento, mas permitir que elas sejam feitas de 
maneira sistemática e controlada de maneira que se possa identificar e 
corrigir os erros ou mesmo antecipá-los. 
Fonte: Disponível em http://www2.dem.inpe.br/ijar/EngSofconceitos1.html
Bibliografia
 PRESSMAN, Roger S. Engenharia de Software: Uma 
abordagem profissional. Sétima edição. MCGRAW HILL -
ARTMED. 2011. capítulo 1.
 SOMMERVILLE, Ian. Engenharia de software. 9ª. ed., 
São Paulo: Pearson Prentice Hall, c2011, capítulo 1.
 PAULA-FILHO, Wilson de Pádua. Engenharia de 
software: fundamentos, métodos e padrões. 2ª. ed., Rio 
de Janeiro: LTC - Livros Técnicos e Científicos, c2003, 
capítulo 1.
 Completar aula com capítulo 6 atividades de ER
 - verificar referências
 VETORAZZO, Adriana de Souza. Engenharia de 
software. Porto Alegre SAGAH 2018
 PRESSMAN, Roger S.; MAXIM, Bruce R.; ARAKAKI, 
Reginaldo; ARAKAKI, Julio; ANDRADE, Renato 
Manzan de; TORTELLO, João E. N. Engenharia de 
software : uma abordagem profissional. 8. ed. Porto 
Alegre: AMGH, 2016. E-book
 SBROCCO, José Henrique Teixeira de Carvalho. 
Metodologias ágeis engenharia de software sob 
medida. São Paulo Erica 2012
WAZLAWICK, Raul Sidnei. Engenharia de software: 
56

Continue navegando