Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Modelagem de Software
Processo de SW e Ciclo de Vida de Software 
Prof. MSc. Jonathan Bandeira - jonathan.bandeira@ulife.com.br
mailto:jonathan.bandeira@animaeducacao.com.br
Roteiro
• O que é Modelagem?
• O que é Software?
• Modelagem de Software;
• Tipos de Software;
• Ferramentas CASE;
• Processo de Software;
• Processo de Engenharia de Requisitos;
• Modelo de Processo de Software;
• Modelos de Desenvolvimento de Software;
• Ciclo de Vida de um Software;
• Atividades do Desenvolvimento de Software;
• Caso de Estudo: RUP;
• Exercícios;
• Bibliografia.
2
O que é Modelagem?
• Modelo = um protótipo ou exemplo que se pretende reproduzir ou
imitar.
• Modelar = Elaborar/preparar um modelo; retratar de forma precisa;
conceder formato a algo; moldar; controlar ou ajustar.
• Modelagem = Ato de modelar.
3
O que é Software?
• Software = Soft (leve, suave, amigável) + Ware (produtos manufaturados, objetos
de natureza comercial).
• Parte lógica de um sistema computacional, o que não é tangível.
• Software é um programa (ou conjunto de programas), ou seja, instruções que
devem ser seguidas e executadas por um mecanismo, seja ele um computador ou
um aparato eletromecânico.
• Instrução é cada comando de uma operação que um computador é capaz de executar;
• Programa = Conjunto de instruções.
• É o termo usado para descrever programas, apps, scripts, macros e instruções de
código embarcado diretamente (firmware), de modo a ditar o que uma máquina
deve fazer.
• Software é abstrato, intangível, não é limitado por materiais, ou controlado por
leis físicas ou por processos de manufatura (Sommerville, 2003).
4
O que é Software?
• Software não é apenas o arquivo executável / Programa.
• É o programa de computador, toda documentação associada 
(arquivos de configuração, manual de instalação e utilização) e o 
banco de dados.
• Podem ser desenvolvidos para um cliente específico ou para um 
mercado geral.
5
Modelagem de Software
• Modelagem de software é a atividade de construir modelos que expliquem as
características ou o comportamento de um software ou de um sistema de software.
• Na construção do software os modelos podem ser usados na identificação das
características e funcionalidades que o software deverá prover (análise de requisitos), e
no planejamento de sua construção.
• Frequentemente a modelagem de software usa algum tipo de notação gráfica e são
apoiados pelo uso de Ferramentas CASE.
• A modelagem de software normalmente implica a construção de modelos gráficos que
simbolizam os artefatos dos componentes de software utilizados e os seus inter-
relacionamentos.
• Uma forma comum de modelagem de programas procedurais (não orientados a objeto)
é através de fluxogramas, enquanto que a modelagem de programas orientados a
objeto normalmente usam a linguagem gráfica UML.
• Para a modelagem de processos de negócios (BPM) existe uma ferramenta específica
denominada BPMN (Business Process Modeling Notation).
6
Principais Atributos do Software
• Manutenibilidade: O software deve ser escrito de forma que possa evoluir para
atender às necessidades dos clientes. Esse é um atributo crítico, porque a
mudança de software é um requisito inevitável de um ambiente de negócio em
mudança.
• Confiança e Proteção: A confiança do software inclui uma série de características
como confiabilidade, proteção e segurança. Um software confiável não deve
causar prejuízos físicos ou econômicos no caso de falha de sistema. Usuários
maliciosos não devem ser capazes de acessar ou prejudicar o sistema.
• Eficiência: O software não deve desperdiçar os recursos do sistema, como
memória e ciclos do processador. Portanto, eficiência inclui capacidade de
resposta, tempo de processamento, uso de memória etc.
• Aceitabilidade: O software deve ser aceitável para o tipo de usuário para o qual
foi projetado. Isso significa que deve ser compreensível, usável e compatível com
outros sistemas usados por ele.
7
Falhas no Desenvolvimento de Software
• Muitas falhas são consequência de dois fatores:
• Aumento de demanda. Conforme novas técnicas de engenharia de software nos
auxiliam a construir sistemas maiores e mais complexos, as demandas mudam. Os
sistemas têm de ser construídos e entregues mais rapidamente; sistemas maiores e
até mais complexos são requeridos; sistemas devem ter novas capacidades que
antes eram consideradas impossíveis. Como os métodos de engenharia de software
existentes não conseguem lidar com isso, novas técnicas de engenharia de software
precisam ser desenvolvidas para atender a essas novas demandas.
• Expectativas baixas. É relativamente fácil escrever programas computacionais sem
usar técnicas e métodos de engenharia de software. Muitas empresas foram
forçadas a desenvolver softwares à medida que seus produtos e serviços evoluíram.
Elas não usam métodos de engenharia de software no dia a dia. Consequentemente,
seu software é frequentemente mais caro e menos confiável do que deveria ser.
Precisamos de educação e treinamento em engenharia de software para solucionar
esses problemas.
8
Tipos de Produtos de Software
• Produto de Software de Prateleira / Genéricos
• Chamados de Stand alone.
• Criados de forma genérica, para qualquer empresa (Ex.: controle de estoque, 
controle de farmácia, programas de contabilidade).
• Produtos sob encomenda / Personalizados
• Software criados com objetivo de prover uma solução específica para um 
cliente específico (Ex.: software para dispositivos eletrônicos, sistemas de 
controle de trafego aéreo.
9
Tipos de Software - Sommerville
• 1. Aplicações stand-alone. Essas são as aplicações executadas em um computador local, como um PC. Elas
contêm toda a funcionalidade necessária e não precisam estar conectadas a uma rede. Exemplos de tais
aplicações são aplicativos de escritório em um PC, programas CAD, software de manipulação de fotos etc.
• 2. Aplicações interativas baseadas em transações. São aplicações que executam em um computador remoto,
acessadas pelos usuários a partir de seus computadores ou terminais. Certamente, aqui são incluídas
aplicações Web como aplicações de comércio eletrônico em que você pode interagir com o sistema remoto
para comprar produtos ou serviços. Essa classe de aplicações também inclui sistemas corporativos, em que
uma empresa fornece acesso a seus sistemas através de um navegador Web ou um programa cliente especial e
serviços baseados em nuvem, como é o caso de serviços de e-mail e compartilhamento de fotos. Aplicações
interativas frequentemente incorporam um grande armazenamento de dados, que é acessado e atualizado em
cada transação.
• 3. Sistemas de controle embutidos. São sistemas de controle que controlam e gerenciam dispositivos de
hardware. Numericamente, é provável que haja mais sistemas embutidos do que de qualquer outro tipo.
Exemplos de sistemas embutidos incluem software em telefone celular, softwares que controlam
antitravamento de freios em um carro e software em um micro-ondas para controlar o processo de cozimento.
• 4. Sistemas de processamento de lotes. São sistemas corporativos projetados para processar dados em
grandes lotes. Eles processam grande número de entradas individuais para criar as saídas correspondentes.
Exemplos de sistemas de lotes incluem sistemas periódicos de cobrança, como sistemas de cobrança
telefônica, e sistemas de pagamentos de salário.
10
Tipos de Software - Sommerville
• 5. Sistemas de entretenimento. São sistemas cuja utilização principal é pessoal e cujo
objetivo é entreter o usuário. A maioria desses sistemas é de jogos de diferentes tipos. A
qualidade de interação com o usuário é a característica particular mais importante dos
sistemas de entretenimento.
• 6. Sistemas para modelagem e simulação. São sistemas que incluem vários objetos
separados que interagem entre si, desenvolvidos por cientistas e engenheiros para modelar
processos ou situações físicas. Esses sistemas geralmente fazem uso intensivo de recursos
computacionais e requerem sistemas paralelosde alto desempenho para executar.
• 7. Sistemas de coleta de dados. São sistemas que coletam dados de seu ambiente com um
conjunto de sensores e enviam esses dados para outros sistemas para processamento. O
software precisa interagir com sensores e frequentemente é instalado em um ambiente
hostil, por exemplo, dentro de uma máquina ou em um lugar remoto.
• 8. Sistemas de sistemas. São sistemas compostos de uma série de outros sistemas de
software. Alguns deles podem ser produtos genéricos de software, como um programa de
planilha eletrônica. Outros sistemas do conjunto podem ser escritos especialmente para esse
ambiente.
11
Tipos de Software - Pressman
• Software de sistema. São programas que apoiam outros programas, como o software que realiza a
comunicação com o hardware (sistema operacional) e software que ajuda na construção de outro
software (compiladores).
• Software de aplicação. São programas que são desenvolvidos para executar no negocio de uma
empresa determinada.
• Software cientifico e de engenharia. São algoritmos que processam números.
• Software embutido. São programas construídos para executarem dentro de um produto especifico
como a teclas digitais de um forno micro ondas.
• Software para linhas de produtos. São os softwares conhecidos como software de prateleiras.
• Software de web. São aplicativos que são executados via Internet.
• Software de inteligência artificial. São softwares que fazem os usos de algoritmos não numéricos.
Estes tipos software se encaixam na robótica.
• Computação ubíqua. São softwares que realiza a verdadeira computação distribuída.
• Software aberto. São software que disponibiliza a visualização do código fonte da aplicação para o
engenheiro de software modifica da maneira que deseja.
12
Software Legado
• O nome de software legado é dado
quando refere-se num programa de
computador que foi desenvolvido
por há muito tempo. A preocupação
do engenheiro de software com os
softwares legados esta na baixa
qualidade do software. Muitas
vezes não existem documentações
e se existem são pobres de
detalhes, os casos de teste são
pobres quando tem e sem um
controle de mudanças. E muitas
vezes não mexem no software
legado quando eles atentem as
necessidades do cliente.
13
Ferramentas CASE
14
• Definição:
• Ferramentas CASE (do inglês Computer-Aided Software Engineering) é uma 
classificação que abrange todas as ferramentas baseadas em computadores 
que auxiliam atividades de engenharia de software, desde análise de 
requisitos e modelagem até programação e testes. Podem ser consideradas 
como ferramentas automatizadas que tem como objetivo auxiliar o 
desenvolvedor de sistemas em uma ou várias etapas do ciclo de vida do 
desenvolvimento de um software.
• Objetivos:
• Melhoria da qualidade de software
• Aumento da produtividade no processo de software
Ferramentas CASE
15
• Vantagens do uso de ferramentas CASE:
• Qualidade no produto final
• Produtividade
• Agilizar o tempo para tomada de decisão
• Menor quantidade de códigos de programação
• Melhoria e redução de custos na manutenção
• Agilidade no retrabalho do software
• Maior facilidade para desenvolvimento
• Desvantagens do uso de ferramentas CASE:
• Incompatibilidade de ferramentas
• Formação para utilização
Ferramentas CASE
16
• Categorização:
• Front End ou Upper CASE: apoia as etapas iniciais de criação dos sistemas: as 
fases de planejamento, análise e projeto do programa ou aplicação.
• Back End ou Lower CASE: dão apoio à parte física, isto é, a 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.
Ferramentas CASE
17
• Controle de Versão
• CVS, Subversion, Git, Mercurial, Bazaar, StarTeam Borland, Rational Clearcase, 
entre outros.
• Gerência de projetos
• Microsoft Project, dotProject, Xplanner, Google Code
• Edição
• Microsoft Word, JBuilder, Wiki, Open Office, Eclipse, NetBeans, Rational Rose, 
Astah, ArgoUML, Star UML
• Ferramentas de prototipagem
• Adobe PageMaker, NetBeans, JBuilder, Delphi, Visual Basic, Lazarus
Ferramentas CASE
18
• Suporte a programação
• Compiladores - JDK
• Banco de Dados - Oracle, MySQL, PostgreSQL
• Teste - JUnit
• Automação de tarefas - Apache Ant, Apache Maven
• Análise de programas
• Analisadores estáticos - HPROF
• Teste
• JUnit (unitários)
Ferramentas CASE
19
• Depuração
• Sistemas interativos de depuração
• Geração de código
• Transformica, Unitech CodeFSW, JEE Spider
• Documentação
• Editores de texto (Ex: Microsoft Word, OpenOffice)
• Geradores de documentos (Ex: Javadoc)
• Editores de texto colaborativo (Ex: wiki)
• Reengenharia
• Sistemas de reestruturação de programas
Ferramentas CASE
20
• Ferramentas Integradas
• Agrupam diversas funcionalidades
• Ferramentas de Métricas
• Costar, USC-COCOMO, Calico
• Ferramentas de Planejamento
• Foundation
Processo de Software
● Método utilizado para desenvolver ou produzir um 
software.
● Define o que faz, como será feito e quando será feito.
21
Processo de Software
• Capaz de responder as perguntas:
• O que é feito? = = = = = → Produto
• Como é feito? = = = = = → Passos
• Por quem é feito? = = = = = → Agente
• O que usa? = = = = = → Insumos
• O que produz? = = = = = → Resultados
22
Processo de Software
● Existem muitos processos de software diferentes, mas todos devem 
incluir quatro atividades fundamentais para a engenharia de software:
● 1. Especificação de software. A funcionalidade do software e as 
restrições a seu funcionamento devem ser definidas.
● 2. Projeto e implementação de software. O software deve ser 
produzido para atender às especificações.
● 3. Validação de software. O software deve ser validado para 
garantir que atenda às demandas do cliente.
● 4. Evolução de software. O software deve evoluir para atender às 
necessidades de mudança dos clientes.
23
Processo de Engenharia de Requisitos
• Estudo de Viabilidade
• Econômica Relação custo/beneficio
• Técnica Tecnologia e capacitação
• Jurídica Aspectos Legais
• Levantamento de Análise de Requisitos
• Entrevista
• Observação
• Reuniões
24
Processo de Engenharia de Requisitos
• Especificação de Requisitos
• Documento contendo os requisitos do usuário e do sistema.
• Funcionais e não funcionais.
•Validação de Requisitos
• Avaliação do documento de requisitos consistência e 
integridade.
25
Processo de Engenharia de Requisitos
26
Modelo de Processo de Software
• O que é?
• Simplificação da realidade
• Os planos podem ser
• Reais Organização do sistema
• Comportamentais Dinâmica do Sistema
• Porque é importante construir modelos?
• Melhor entendimento do sistema que está sendo construído
• Especificar a estrutura e comportamento
• Guia a construção do sistema
• Documenta as decisões tomadas
27
Modelo de Processo de Software
• Um modelo de processo de software é uma representação 
simplificada de um processo de software. 
• Cada modelo representa uma perspectiva particular de um processo 
e, portanto, fornece informações parciais sobre ele. 
• Por exemplo, um modelo de atividade do processo pode mostrar as 
atividades e sua sequência, mas não mostrar os papéis das pessoas 
envolvidas.
28
Modelo de Processo de Software
• Objetivo:
• Auxiliar o líder: controlar o processo de desenvolvimento de 
sistemas de software.
• Auxiliar o desenvolvedor: obter a base para produzir, de maneira 
eficiente, software que satisfaça os requisitos pré estabelecidos.
29
Modelo de Processo de Software
30
Modelo de Processo de Software
• Exemplos de modelos de processo
• Workflow: Sucessão de atividades.
• Fluxo de dados: Fluxo de informação.
• Papel Ação: Representa os papeis das pessoas e as 
atividades pelas quais elas são responsáveis.
31
Modelo x Processo
• Modelo de software: documentos teóricos, conjunto de 
possíveis ações.
• Processode software: deve determinar ações práticas a 
serem realizadas pela equipe como prazos definidos e 
métricas para se avaliar como elas estão sendo realizadas.
32
Modelos de Desenvolvimento de Software
• Modelo em Cascata (Ciclo Clássico)
• Modelo de Paradigma Evolucionário
• Prototipação
• Modelo Incremental
• Modelo Espiral
• Modelo RAD
• Modelo RUP
• Métodos Ágeis
• Modelo de Desenvolvimento Formal de Sistemas
• Métodos Formais
• Técnicas de 4 ª Geração
• Modelo de Desenvolvimento Orientado a Reuso
33
Ciclo de Vida de um Software
• O que é?
● Uma estratégia de desenvolvimento que englobe processos, 
métodos e ferramentas, e as fases de desenvolvimento.
34
Atividades do Desenvolvimento de Software
1. Levantamento de Requisitos (ou Planejamento)
● Esta atividade tem como objetivo, compreender o problema, 
dando aos desenvolvedores e usuários, a mesma visão do que 
deve ser construído para resolução do problema.
● Desenvolvedores e clientes, em conjunto, buscam levantar e 
priorizar as necessidades dos futuros usuários do software 
(necessidades essas denominadas como requisitos).
35
Atividades do Desenvolvimento de Software
1. Levantamento de Requisitos (ou Planejamento)
● O Levantamento de Requisitos é a etapa mais importante, no 
que diz respeito ao retorno de investimentos no projeto. 
● Vários projetos são abandonados pelo baixo levantamento de 
requisitos, ou seja, membros da equipe não disponibilizaram 
tempo suficiente para essa fase do projeto, em compreender as 
necessidades dos clientes em relação ao sistema a ser 
desenvolvido.
36
Atividades do Desenvolvimento de Software
2. Análise de Requisitos (ou Especificação de Requisitos)
● Esta etapa, também chamada de especificação de requisitos, é 
onde os desenvolvedores fazem um estudo detalhado dos 
dados levantados na atividade anterior. 
● De onde são construídos modelos a fim de representar o 
sistema de software a ser desenvolvido.
37
Atividades do Desenvolvimento de Software
2. Análise de Requisitos (ou Especificação de Requisitos)
● O interesse nessa atividade é criar uma estratégia de solução, 
sem se preocupar como essa estratégia será realizada, ou seja, 
utilizar as necessidades dos clientes, depois de compreendido o 
problema, para resolução do problema solicitado. 
● Assim é necessário definir o que o sistema deve fazer, antes de 
definir como o sistema irá fazer.
38
Atividades do Desenvolvimento de Software
IMPORTANTE!!!
● O que acontece com frequência, é quando as equipes de 
desenvolvimento partem para a solução do problema do 
software, sem antes ter definido completamente o problema 
em questão. 
● Nesta fase deve-se então realizar a validação e verificação dos 
modelos construídos, antes de partir para solução do 
problema.
39
Atividades do Desenvolvimento de Software
IMPORTANTE!!! - AINDA NAS FASES DE REQUISITOS
● Validação: tem por objetivo, assegurar que o sistema de 
software está atendendo às reais necessidades do cliente;
● Verificação: verifica se os modelos construídos na análise estão 
em conformidade com os requisitos do cliente.
40
Atividades do Desenvolvimento de Software
3. Projeto
● Nesta fase é que deve ser considerado, como o sistema 
funcionará internamente, para que os requisitos do cliente 
possam ser atendidos. 
● Alguns aspectos devem ser considerados nessa fase de projeto 
do sistema, como: arquitetura do sistema, linguagem de 
programação utilizada, Sistema Gerenciador de Banco de 
Dados (SGBD) utilizado, padrão de interface gráfica, entre 
outros.
41
Atividades do Desenvolvimento de Software
3. Projeto
● No projeto é gerada uma descrição computacional, 
mencionando o que o software deve fazer, e deve ser coerente 
com a descrição realizada na fase de análise de requisitos.
● O projeto possui duas atividades básicas: projeto da arquitetura 
(ou projeto de alto nível), e projeto detalhado (ou projeto de 
baixo nível).
42
Atividades do Desenvolvimento de Software
4. Implementação
● Nessa etapa, o sistema é codificado a partir da descrição 
computacional da fase de projeto em uma outra linguagem, 
onde se torna possível a compilação e geração do código-
executável para o desenvolvimento software.
● Pode-se também utilizar na implementação ferramentas de 
software e bibliotecas de classes preexistentes para agilizar a 
atividade, como também o uso de ferramentas CASE, que 
dinamizam o processo de desenvolvimento, nas várias 
atividades, onde inclui-se geração de código-fonte, 
documentação, etc.
43
Atividades do Desenvolvimento de Software
5. Testes
● Diversas atividades de testes são executadas a fim de se validar 
o produto de software, testando cada funcionalidade de cada 
módulo, buscando, levando em consideração a especificação 
feita na fase de projeto. 
● Onde o principal resultado é o relatório de testes, que contém 
as informações relevantes sobre erros encontrados no sistema, 
e seu comportamento em vários aspectos. 
● Ao final dessa atividade, os diversos módulos do sistema são 
integrados, resultando no produto de software.
44
Atividades do Desenvolvimento de Software
6. Implantação / Manutenção
● Por fim a implantação compreende a instalação do software no ambiente do 
usuário. 
● O que inclui os manuais do sistema, importação dos dados para o novo sistema e 
treinamento dos usuários para o uso correto e adequado do sistema. 
● Em alguns casos quando da existência de um software anterior, também é 
realizada a migração de dados anteriores desse software.
● Normalmente (embora não necessariamente), essa é a fase mais longa do ciclo 
de vida. O sistema é instalado e colocado em uso. A manutenção envolve a 
correção de erros que não foram descobertos em estágios iniciais do ciclo de 
vida, com melhora da implementação das unidades do sistema e ampliação de 
seus serviços em resposta às descobertas de novos requisitos.
45
RUP
• O que é o RUP?
• Processo Unificado da Rational de desenvolvimento de software
• Diz o quê, quando e por quem, mas não explica como
• Necessidade a partir do sucesso da UML como padrão de fato para 
especificação de software
46
RUP - Fundamentos 
● É um exemplo de modelo de processo moderno, derivado de trabalhos sobre a
UML e o Unified Software Development Process associado;
● De todos os modelos de processo genéricos, ilustra boas práticas na especificação
e no projeto e apoia a prototipação e a entrega incremental.
● O RUP reconhece que os modelos de processo convencionais apresentam uma
visão única do processo. Em contrapartida, o RUP é normalmente descrito em três
perspectivas:
● 1. Uma perspectiva dinâmica, que mostra as fases do modelo ao longo do tempo.
● 2. Uma perspectiva estática, que mostra as atividades realizadas no processo.
● 3. Uma perspectiva prática, que sugere boas práticas a serem usadas durante o processo.
● O RUP é um modelo constituído de fases que identifica quatro fases distintas no
processo de software. No entanto, ao contrário do modelo em cascata, no qual as
fases são equalizadas com as atividades do processo, as fases do RUP são
estreitamente relacionadas ao negócio, e não a assuntos técnicos.
47
RUP - Fundamentos
• Desenvolvimento Iterativo
• “Impossível” desenvolver o sistema em uma única iteração;
• A cada iteração mais detalhes são adicionados;
• Diversas vantagens:
• Redução da Complexidade;
• Facilidade para lidar com mudanças nos requisitos, cronograma, 
etc.
48
Características do RUP
• Usa UML
• Baseado em componentes
• Framework para processos
• Orientado a casos de uso
• Iterativo e incremental
• Centrado na arquitetura
49
Iterativo e Incremental
• Dividir para conquistar!
• O desenvolvimento ocorre em várias iterações, cada uma 
delas resultando em extensão de funcionalidade e/ou maior 
conhecimento do sistema
• Os maiores riscos devem ser tratados nas primeiras iterações
50
RUP - Ciclo de Vida
51
RUP - Fases
52
RUP- Fases
● 1. Concepção. O objetivo da fase de concepção é estabelecerum business case para o sistema.
Você deve identificar todas as entidades externas (pessoas e sistemas) que vão interagir com o
sistema e definir as interações. Então, você deve usar essas informações para avaliar a contribuição
do sistema para o negócio. Se essa contribuição for pequena, então o projeto poderá ser cancelado
depois dessa fase.
● 2. Elaboração. As metas da fase de elaboração são desenvolver uma compreensão do problema
dominante, estabelecer um framework da arquitetura para o sistema, desenvolver o plano do
projeto e identificar os maiores riscos do projeto. No fim dessa fase, você deve ter um modelo de
requisitos para o sistema, que pode ser um conjunto de casos de uso da UML, uma descrição da
arquitetura ou um plano de desenvolvimento do software.
● 3. Construção. A fase de construção envolve projeto, programação e testes do sistema. Durante
essa fase, as partes do sistema são desenvolvidas em paralelo e integradas. Na conclusão dessa
fase, você deve ter um sistema de software já funcionando, bem como a documentação associada
pronta para ser entregue aos usuários.
● 4. Transição. A fase final do RUP implica transferência do sistema da comunidade de
desenvolvimento para a comunidade de usuários e em seu funcionamento em um ambiente real.
Isso é ignorado na maioria dos modelos de processo de software, mas é, de fato, uma atividade
cara e, às vezes, problemática. Na conclusão dessa fase, você deve ter um sistema de software
documentado e funcionando corretamente em seu ambiente operacional.
53
RUP - Fases e Atividades (Workflows)
54
RUP - Workflows 
55
Artefatos e Papéis
56
• Durante as fases são gerados uma série de artefatos (Documentos) e necessários vários 
responsáveis (Papéis e perfis).
• Os artefatos são resultantes das atividades e possuem modelos para indicar como devem ser feitos 
e padronizar os formatos dos documentos. São eles:
• Protótipos
• Casos de uso
• Modelo de dados
• Conjunto de testes
• Já os Papéis não são pessoas. Eles descrevem o comportamento das pessoas no negócio, 
geralmente é desempenhado por um grupo ou uma pessoa específica. E são eles:
• Gerente
• Analista de Sistemas
• Analista de Usabilidade
• Arquiteto
• Desenvolvedor
• Testador
• Documentador
Benefícios e Pontos Fracos do RUP
57
• A utilização desse processo se faz muito benéfico para o desenvolvimento do 
projeto pois garante a qualidade de software, produtividade no 
desenvolvimento, operação e manutenção de software.
• Além de que permite ao profissional controle sobre o desenvolvimento 
dentro de custos, prazos e níveis de qualidade desejados.
• Apesar das vantagens, a escolha na utilização da metodologia RUP pode 
também gerar problemas por ser complexo e trabalhoso, muito caro para 
projetos de pequeno porte, exigir experiência da equipe e também equipes 
especialistas.
Exercícios
• 1. Escolha e pesquise sobre um dos modelos de desenvolvimento de
software citados em aula (exceto o RUP), diga o que é, para que serve e
descreva suas características, as fases no processo de desenvolvimento
de software e as atividades desenvolvidas com este modelo. Por fim,
destaque os benefícios e pontos fracos do modelo escolhido.
• 2. Admita que você foi contratado(a) para desenvolver um software
para hospital com o objetivo de gerenciar as marcações de consultas e
histórico de pacientes do empreendimento. Enumere quais atividades
seriam realizadas em cada etapa do desenvolvimento e o que seria
produzido em cada uma delas (quais artefatos), considerando o modelo
escolhido na questão anterior.
58
Bibliografia
PRINCIPAL
• MEDEIROS, Ernani. Desenvolvendo Software com UML 2.0. São Paulo: Pearson Education, 2004.
• https://bv4.digitalpages.com.br/?term=uml&searchpage=1&filtro=todos&from=busca&page=-
20&section=0#/legacy/2921
• RAMAKRISHNAN, Raghu; GEHRKE, Johannes.Sistemas de Gerenciamento de Bancos de Dados. 3. 
edição. Porto Alegre: Bookman, 2007.
• https://integrada.minhabiblioteca.com.br/#/books/9788563308771/cfi/0!/4/2@100:0.00
• PRESSMAN, Roger; MAXIM, Bruce. Engenharia de Software. Uma abordagem profissional. 8a. Ed. 
Bookman, 2016.
• https://integrada.minhabiblioteca.com.br/#/books/9788580555349/cfi/3!/4/2@100:0.00
59
https://bv4.digitalpages.com.br/?term=uml&searchpage=1&filtro=todos&from=busca&page=-20&section=0#/legacy/2921
https://bv4.digitalpages.com.br/?term=uml&searchpage=1&filtro=todos&from=busca&page=-20&section=0#/legacy/2921
https://integrada.minhabiblioteca.com.br/#/books/9788563308771/cfi/0!/4/2@100:0.00
https://integrada.minhabiblioteca.com.br/#/books/9788580555349/cfi/3!/4/2@100:0.00
Bibliografia
COMPLEMENTAR
• SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
• https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&fil
tro=todos&from=busca&page=_14&section=0#/legacy/276
• PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. 2. ed. São Paulo: Prentice Hall, 
2004.
• https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&fil
tro=todos&from=busca#/legacy/476
• LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a 
objetos e desenvolvimento iterativo. 3. ed Porto Alegre: Bookman, 2007.
• https://integrada.minhabiblioteca.com.br/#/books/9788577800476/cfi/0!/4/2@100:0.00
• FOWLER, Martin; SCOTT, Kendall. UML essencial: um breve guia para a linguagem-padrão de 
modelagem de objetos. 3ª. ed. Porto Alegre: Bookman, 2004.
• https://integrada.minhabiblioteca.com.br/#/books/9788560031382/cfi/6/2!/4/2@0:0.131
• HEUSER, Carlos Alberto. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2011.
• https://integrada.minhabiblioteca.com.br/#/books/9788577804528/cfi/0!/4/4@0.00:38.0
60
https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca&page=_14&section=0#/legacy/276
https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca&page=_14&section=0#/legacy/276
https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca#/legacy/476
https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca#/legacy/476
https://integrada.minhabiblioteca.com.br/#/books/9788577800476/cfi/0!/4/2@100:0.00
https://integrada.minhabiblioteca.com.br/#/books/9788560031382/cfi/6/2!/4/2@0:0.131
https://integrada.minhabiblioteca.com.br/#/books/9788577804528/cfi/0!/4/4@0.00:38.0
Modelagem de Software
Processo de SW e Ciclo de Vida de Software
Prof. MSc. Jonathan Bandeira - jonathan.bandeira@ulife.com.br
mailto:jonathan.bandeira@animaeducacao.com.br
	Slide 1: Modelagem de Software Processo de SW e Ciclo de Vida de Software 
	Slide 2: Roteiro
	Slide 3: O que é Modelagem?
	Slide 4: O que é Software?
	Slide 5: O que é Software?
	Slide 6: Modelagem de Software
	Slide 7: Principais Atributos do Software
	Slide 8: Falhas no Desenvolvimento de Software
	Slide 9: Tipos de Produtos de Software
	Slide 10: Tipos de Software - Sommerville
	Slide 11: Tipos de Software - Sommerville
	Slide 12: Tipos de Software - Pressman
	Slide 13: Software Legado
	Slide 14: Ferramentas CASE
	Slide 15: Ferramentas CASE
	Slide 16: Ferramentas CASE
	Slide 17: Ferramentas CASE
	Slide 18: Ferramentas CASE
	Slide 19: Ferramentas CASE
	Slide 20: Ferramentas CASE
	Slide 21: Processo de Software
	Slide 22: Processo de Software
	Slide 23: Processo de Software
	Slide 24: Processo de Engenharia de Requisitos
	Slide 25: Processo de Engenharia de Requisitos
	Slide 26: Processo de Engenharia de Requisitos
	Slide 27: Modelo de Processo de Software
	Slide 28: Modelo de Processo de Software
	Slide 29: Modelo de Processo de Software
	Slide 30: Modelo de Processo de Software
	Slide 31: Modelo de Processo de Software
	Slide 32: Modelo x Processo
	Slide 33: Modelos de Desenvolvimento de Software
	Slide 34: Ciclo de Vida de um Software
	Slide 35: Atividades do Desenvolvimento de Software
	Slide 36: Atividadesdo Desenvolvimento de Software
	Slide 37: Atividades do Desenvolvimento de Software
	Slide 38: Atividades do Desenvolvimento de Software
	Slide 39: Atividades do Desenvolvimento de Software
	Slide 40: Atividades do Desenvolvimento de Software
	Slide 41: Atividades do Desenvolvimento de Software
	Slide 42: Atividades do Desenvolvimento de Software
	Slide 43: Atividades do Desenvolvimento de Software
	Slide 44: Atividades do Desenvolvimento de Software
	Slide 45: Atividades do Desenvolvimento de Software
	Slide 46: RUP
	Slide 47: RUP - Fundamentos 
	Slide 48: RUP - Fundamentos
	Slide 49: Características do RUP
	Slide 50: Iterativo e Incremental
	Slide 51: RUP - Ciclo de Vida
	Slide 52: RUP - Fases
	Slide 53: RUP- Fases
	Slide 54: RUP - Fases e Atividades (Workflows)
	Slide 55: RUP - Workflows 
	Slide 56: Artefatos e Papéis
	Slide 57: Benefícios e Pontos Fracos do RUP
	Slide 58: Exercícios
	Slide 59: Bibliografia
	Slide 60: Bibliografia
	Slide 61: Modelagem de Software Processo de SW e Ciclo de Vida de Software

Mais conteúdos dessa disciplina