engenharia de software processos de software slides adaptados do livro engenharia de software de ian...
TRANSCRIPT
![Page 1: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/1.jpg)
Engenharia de Software
Processos de SoftwareSlides adaptados do livro Engenharia de
Software de Ian Sommerville
![Page 2: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/2.jpg)
Processos de Software
● Conjuntos de atividades coerentes para especificar, projetar, implementar e testar sistemas de software
![Page 3: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/3.jpg)
Objetivos
● Introduzir modelos de processo de software● Descrever uma variedade de modelos de
processo e quando eles podem ser usados● Descrever esboços de modelos de processo
para engenharia de requisitos, desenvolvimento de software, teste e evolução
● Apresentar a tecnologia CASE para dar suporte às atividades de processo de software
![Page 4: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/4.jpg)
Tópicos abordados
● Modelos de processo de software● Iteração do Processo● Especificação de Software ● Projeto e implementação do Software ● Validação do Software● Evolução do Software● Suporte de processo automatizado
![Page 5: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/5.jpg)
O processo de software
● Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software– Especificação– Projeto– Validação– Evolução
● Um modelo de processo de software é uma representação abstrata de um processo.
![Page 6: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/6.jpg)
Modelos genéricos de processo de software
● O modelo cascata– Separa e distingue fases de especificação e
desenvolvimento
● Desenvolvimento evolucionário– Especificação e desenvolvimento são entrelaçados
● Desenvolvimento Formal de sistemas – Um modelo de sistema matemático é formalmente
transformado para uma implementação
● Desenvolvimento baseado na reutilização– O sistema é montado a partir de componentes existentes
![Page 7: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/7.jpg)
Modelo Cascata
Análise e Definição de Requisitos
Projeto do Sistema e do Software
Implementação e Teste de Unidade
Operação e Manutenção
Integração e Teste de Sistema
![Page 8: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/8.jpg)
Modelo Cascata
● Fases
1. Análise e definição de requisitos
2. Projeto do sistema e do software
3. Implementação e teste da unidade
4. Integração e teste do sistema
5. Operação e manutenção● A desvantagem do modelo cascata é a
dificuldade de acomodar mudanças depois que o processo está em andamento
![Page 9: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/9.jpg)
Problemas do Modelo Cascata
● Partição inflexível do projeto em diferentes estágios
● Isto faz com que seja difícil responder aos requisitos mutáveis dos clientes
● Portanto, este modelo só é apropriado quando os requisitos são bem definidos
![Page 10: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/10.jpg)
Desenvolvimento Evolucionário
● Implementação inicial● Muitas versões até chegar ao resultado
final● Atividades de especificação,
desenvolvimento e validação ocorrem concorrentemente
![Page 11: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/11.jpg)
Desenvolvimento Evolucionário
● Desenvolvimento exploratório – O objetivo é trabalhar com clientes e evoluir
até o sistema final.– Desenvolvimento começa com partes
compreendidas do sistema; acréscimo de novas características propostas pelo cliente
● Preparação de protótipos descartáveis– Objetivo é entender os requisitos do sistema.
Deve começar com requisitos pobremente entendidos
![Page 12: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/12.jpg)
Desenvolvimento Evolucionário
Definição do Esboço do Software
Especificação
Desenvolvimento
Validação
Versão Inicial
Versões Intermediárias
Versão Final
![Page 13: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/13.jpg)
Desenvolvimento Evolucionário
● Problemas– Falta de visibilidade do processo– Sistemas são, em geral, pobremente estruturados– Habilidades especiais (ex. em línguas para rápida
preparação de protótipos) podem ser requeridas● Aplicabilidade
– Para sistemas interativos pequenos ou médios – Para partes de sistemas grandes (ex. a interface de
usuário)– Para sistemas de curto-prazo
![Page 14: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/14.jpg)
Desenvolvimento de Sistemas Formais
● Baseado na transformação de uma especificação matemática através de diferentes representações para um programa executável
● Transformações são ‘preservadoras de exatidão’, portanto, são diretas para mostrar que o programa está de acordo com sua especificação
● Contido na abordagem Cleanroom (da IBM) para desenvolvimento de software
![Page 15: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/15.jpg)
Desenvolvimento de Sistemas Formais
Definição de Requisitos
Especificação Formal
Transformação Formal
Integração e Teste de Sistema
![Page 16: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/16.jpg)
Transformações Formais
Especificação Formal
R1 R2 R3Programa
Executável
P1 P2 P3 P4Processo de
Transformação
T1 T2 T3 T4
![Page 17: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/17.jpg)
Desenvolvimento de Sistemas Formais
● Problemas– Necessidade de habilidades especializadas e
treinamento para aplicar a técnica– Difícil de especificar formalmente alguns
aspectos do sistema como a interface de usuário
● Aplicabilidade– Sistemas críticos, especialmente aqueles no
qual um case de segurança deve ser feito antes do sistema ser posto em operação
![Page 18: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/18.jpg)
Desenvolvimento Orientado ao Reuso
● Baseado no reuso sistemático, onde os sistemas são integrados de componentes existentes ou sistemas padronizados
● Estágios do Processo– Análise do componente
– Modificação dos requisitos
– Projeto do sistema com reuso
– Desenvolvimento e integração
● Esta abordagem está se tornando mais importante, mas a experiência ainda é limitada com ela
![Page 19: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/19.jpg)
Desenvolvimento Orientado ao Reuso
Requirementsspecification
Componentanalysis
Developmentand integration
System designwith reuse
Requirementsmodification
Systemvalidation
![Page 20: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/20.jpg)
Iteração do Processo
● Requisitos do sistema SEMPRE evoluem no decorrer de um projeto, então a iteração do processo, onde estágios anteriores são re-trabalhados, é sempre parte de um processo para sistemas maiores
● Iteração pode ser aplicada para qualquer modelo de processo genérico
● Duas abordagens (relacionadas)– Desenvolvimento incremental– Desenvolvimento espiral
![Page 21: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/21.jpg)
Desenvolvimento Incremental
● Ao invés de entregar o sistema de uma única vez, o desenvolvimento e a entrega é dividida em incrementos com cada incremento entregando parte da funcionalidade requerida
● Os requisitos dos usuários são priorizados e os requisitos de maior prioridade são incluídos em incrementos iniciais
● Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados embora requisitos para incrementos posteriores possam continuar a evoluir
![Page 22: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/22.jpg)
Desenvolvimento Incremental
Valida teincrement
Develop systemincrement
Design systemarchitecture
Integrateincrement
Valida tesystem
Define outline requirements
Assign requirements to increments
System incomplete
Finalsystem
![Page 23: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/23.jpg)
Vantagens do Desenvolvimento
Incremental● O valor agregado ao Cliente está na entrega
em cada incremento de modo que a funcionalidade do sistema estará disponível mais cedo
● Incrementos iniciais funcionam como protótipos para ajudar a evocar requisitos para incrementos posteriores
● Menores riscos de falha no projeto em geral● Os serviços do sistema de alta prioridade
tendem a receber a maioria dos testes
![Page 24: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/24.jpg)
Programação Extrema
● Nova abordagem para o desenvolvimento de software baseado no desenvolvimento e entrega de incrementos de funcionalidade bem pequenos
● Conta com melhoramento constante do código, envolvimento do usuário no time de desenvolvimento e programação em pares
![Page 25: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/25.jpg)
Desenvolvimento Espiral
● Processo é representado como uma espiral ao invés de uma seqüência de atividades com retorno
● Cada volta na espiral representa uma fase no processo.
● Não existem fases fixas como especificação ou projeto – as voltas na espiral são escolhidas de acordo com o que é requerido
● Os riscos são explicitamente cotados e resolvidos durante todo o processo
![Page 26: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/26.jpg)
Modelo Espiral do processo de software
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
![Page 27: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/27.jpg)
Setores do Modelo Espiral
● Estabelecimento de objetivos– Objetivos específicos para a fase são identificados
● Avaliação e redução de riscos– Os riscos são avaliados e atividades postas em prática para
reduzir os riscos principias
● Desenvolvimento e validação– Um modelo de desenvolvimento para o sistema é escolhido,
podendo ser qualquer um dos modelos genéricos
● Planejamento – O projeto é revisado e a fase seguinte da espiral é planejada
![Page 28: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/28.jpg)
Especificação do Software
● O processo de estabelecer que serviços são requisitados e quais as restrições na operação e desenvolvimento do sistema
● Processo de engenharia de requisitos– Estudo de viabilidade– Elicitação e análise dos requisitos – Especificação dos requisitos – Validação dos requisitos
![Page 29: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/29.jpg)
O processo de engenharia de
requisitos
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
![Page 30: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/30.jpg)
Projeto e implementação de
Software ● O processo de converter a especificação do
sistema em um sistema executável ● Projeto de Software
– Projeto de uma estrutura de software que perceba a especificação
● Implementação– Transformar esta estrutura em um programa
executável● As atividades de projeto e implementação são
intimamente relacionadas e podem ser entrelaçadas
![Page 31: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/31.jpg)
Atividades de Processo de Projeto
● Projeto arquitetural● Especificação abstrata● Projeto de interface● Projeto de componente● Projeto de estrutura de dados● Projeto de algoritmo
![Page 32: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/32.jpg)
O Processo do Projeto de Software
Architecturaldesign
Abstractspecification
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
![Page 33: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/33.jpg)
Métodos do Projeto
● Abordagens sistemáticas para desenvolver um projeto de software
● O projeto é geralmente documentado como uma série de modelos gráficos
● Modelos possíveis– Modelo de fluxo de dados– Modelo de atributos relacionados à entidade– Modelo Estrutural– Modelos de objetos
![Page 34: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/34.jpg)
Programando e Depurando
● Transformar um projeto em um programa e remover erros do programa
● Programação é uma atividade pessoal – não existe processo de programação genérico
● Programadores realizam alguns testes de programa para detectar falhas no programa e remover tais falhas no processo de depuração
![Page 35: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/35.jpg)
O Processo de Depuração
Locateerror
Designerror repair
Repairerror
Re-testprogram
![Page 36: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/36.jpg)
Validação do Software
● Verificação e validação pretendem mostrar que um sistema está de acordo com sua especificação e cumpre os requisitos do cliente do sistema
● Envolve a verificação e a revisão de processos e teste do sistema
● Teste de sistema envolve a execução do sistema com cases de teste que são derivados da especificação dos dados reais a serem processados pelo sistema
![Page 37: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/37.jpg)
O Processo de Teste
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptancetesting
Componenttesting
Integration testing Usertesting
![Page 38: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/38.jpg)
Etapas de Teste
● Teste da Unidade
– Os componentes individuais são testados
● Teste do Módulo
– Conjuntos de componentes dependentes relacionados são testados
● Teste do Sub-sistema
– Os módulos são integrados em sub-sistemas e testados. O foco aqui deve ser no teste da interface
● Teste do Sistema
– Teste do sistema como um todo. Teste das propriedades emergentes
● Teste de Aceitação
– Teste com dados do consumidor para verificar que é aceitável
![Page 39: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/39.jpg)
Fases de Teste
Requirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
ServiceAcceptance
testSystem
integration testSub-system
integration test
![Page 40: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/40.jpg)
Evolução do Software
● Software é hereditariamente flexível e pode ser mudado.
● Como os requisitos mudam ao se alterar as circunstâncias de negócios, o software que suporta o negócio também deve evoluir e mudar
● Embora tenha havido uma demarcação entre desenvolvimento e evolução (manutenção), este é cada vez mais irrelevante na medida que menos e menos sistemas são totalmente novos
![Page 41: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/41.jpg)
Evolução do sistema
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
![Page 42: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/42.jpg)
Suporte ao Processo Automatizado (CASE)
● Engenharia de software auxiliada por computador (CASE) é um software para dar suporte aos processos de desenvolvimento e evolução do software
● Automação da atividade– Editores gráficos para o desenvolvimento de modelos de
sistema
– Dicionário de dados para gerenciar entidades de projeto
– Construtor Gráfico UI para a construção de interface para usuário
– Depuradores para suportar detecção de falhas no sistema
– Tradutores automáticos para gerar novas versões de um programa
![Page 43: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/43.jpg)
Tecnologia CASE
● Tecnologia CASE tem levado a melhorias significantes no processo de software embora não na ordem de magnitude de melhorias que foram antes previstos– A engenharia de software requer pensamento
criativo – isto não é prontamente automatizável– A engenharia de software é uma atividade de
grupo e, para grandes projetos, muito tempo é utilizado em interações do grupo. A tecnologia CASE não os suporta de fato
![Page 44: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/44.jpg)
CASE classificação
● A classificação nos ajuda a entender os diferentes tipos de ferramentas de CASE e seu suporte para atividades do processo
● Perspectiva Funcional – As ferramentas são classificadas de acordo com suas funções
específicas
● Perspectiva do Processo– As ferramentas são classificadas de acordo com as atividades
do processo que suportam
● Perspectiva da Integração– As ferramentas são classificadas de acordo com sua
organização em unidades integradas
![Page 45: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/45.jpg)
Classificação das Ferramentas Funcionais
![Page 46: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/46.jpg)
Classificação baseada em atividades (Funcional vs.
Processo)
Reengineering tools
Testing tools
Debugging tools
Program analysis tools
Language-processingtools
Method support tools
Prototyping tools
Configurationmanagement tools
Change management tools
Documentation tools
Editing tools
Planning tools
Specification Design Implementation Verificationand
Validation
![Page 47: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/47.jpg)
Perspectiva de Integração CASE
● Ferramentas– Suporta tarefas individuais do processo como verificação
da consistência de um projeto, edição de texto, etc.
● Áreas de trabalho (workbenches)– Suporte a fases do processo como especificação ou
projeto. Normalmente inclui uma variedade de ferramentas integradas
● Ambientes– Suporta tudo ou uma parte substancial de todo um
processo de software. Normalmente inclui várias áreas de trabalho integradas
![Page 48: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/48.jpg)
Ferramentas, áreas de trabalho e ambientes
Single-methodworkbenches
General-purposeworkbenches
Multi-methodworkbenches
Language-specificworkbenches
Programming TestingAnalysis and
design
Integratedenvironments
Process-centredenvironments
Filecomparators
CompilersEditors
EnvironmentsWorkbenchesTools
CASEtechnology
![Page 49: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/49.jpg)
Pontos Chave
● Processos de software são as atividades envolvidas na produção e evolução de um sistema de software. Eles são representados em um modelo de processo de software
● As atividades gerais são especificação, projeto e implementação, validação e evolução
● Modelos genéricos de processo descrevem a organização processos de software
● Modelos iterativos de processo descrevem o processo de software como um de atividades
![Page 50: Engenharia de Software Processos de Software Slides adaptados do livro Engenharia de Software de Ian Sommerville](https://reader036.vdocuments.us/reader036/viewer/2022070311/552fc143497959413d8dfb7e/html5/thumbnails/50.jpg)
Pontos Chave
● Engenharia de requisitos é o processo de desenvolver uma especificação de software
● Os processos de projeto e implementação transformam a especificação em um programa executável
● A Validação envolve verificar que o sistema cumpre com as especificações e as necessidades do usuário
● Evolução se preocupa em modificar o sistema depois que ele está em uso
● Tecnologia CASE suporta atividades de processo de software