• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Sistemas de Informação ·

Engenharia de Software

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Engenharia de Software - Questões

3

Engenharia de Software - Questões

Engenharia de Software

IFMA

Engenharia de Software - Modelos de Desenvolv

3

Engenharia de Software - Modelos de Desenvolv

Engenharia de Software

IFMA

Prática de Detalhamento de Caso de Uso

3

Prática de Detalhamento de Caso de Uso

Engenharia de Software

UFPI

Arquitetura de Sw - Eds

33

Arquitetura de Sw - Eds

Engenharia de Software

UFF

Prova Angular - Identificacao de Contextos e Objetivos LIS

1

Prova Angular - Identificacao de Contextos e Objetivos LIS

Engenharia de Software

UFSC

Diagrama de Contexto Arquitetural Fintech BancON - Atividade Pontuada

7

Diagrama de Contexto Arquitetural Fintech BancON - Atividade Pontuada

Engenharia de Software

MULTIVIX

Revisão Sistemática de Literatura

12

Revisão Sistemática de Literatura

Engenharia de Software

UNEB

Texto de pré-visualização

IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 02 Introdução e motivação Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Roteiro Introdução Motivação Exemplos Roteiro 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Anos 40 Engenharia de Software I O ENIAC Electronic Numerical Integrator And Computer foi o primeiro computador eletrônico de uso geral projetado e construído durante a Segunda Guerra Mundial pelo Exército dos EUA O ENIAC usava tubos de rádio de base octal Queima diária dos tubos principalmente durante os períodos de aquecimento e resfriamento Substituir um tubo verificar entre as 19000 possibilidades do ENIAC demorava cerca de 15 minutos para localizar um tubo com defeito 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Anos 70 Engenharia de Software O Altair serviu para demonstrar a grande paixão que a informática podia exercer e que ao contrário do que diziam muitos analistas da época existia sim um grande mercado para computadores pessoais O modelo básico custava apenas 439 dólares na forma de kit os componentes soldados manualmente Foram vendidas 4000 unidades em apenas 3 meses depois que foi capa da revista Popular Eletronics 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Anos 80 Engenharia de Software 1º laptop da Apple 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I O celular no seu bolso é um milhão de vezes mais barato milhares de vezes mais potente e cerca de centenas de milhares de vezes menor do que o computador do MIT de 1965 Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Fonte engineeringmind 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software Ontem Hoje 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Precisamos de Software para isso 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Internet das coisas IFMA Monte Castelo Departamento de Computação Entretenimento IFMA Monte Castelo Departamento de Computação Sistemas embarcados IFMA Monte Castelo Departamento de Computação Complexidade tematica processamento 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Para pensar Tudo é software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Problemas Causados por Software Falha na sonda Mariner em 28071962 185 milhões Interpretação errada do programador O Desastre Mariner um foguete com uma sonda espacial para Vênus foi desviado de seu percurso de voo logo após o lançamento O controle da missão destruiu o foguete 293 segundos após a decolagem Problemas Causados por Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Problemas Causados por Software Linhas da ATT morrem 1990 Custo 75 milhões de ligações perdidas e 200 reservas aéreas perdidas Desastre Um switch dos 114 centros de switches da ATT sofreu um problema mecânico que fez com que todo o seu centro fosse desligado Quando o seu centro voltou à ativa enviou uma mensagem aos outros o que causou o desligamento dos outros centros e deixou a empresa parada por 9 horas Causa Uma única linha de código em uma atualização de software implementada para acelerar chamadas causou um efeito cascata que desligou a rede Problemas Causados por Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Objetivos do projeto não realísticos ou desarticulados Estimativas de necessidade de recursos inexatas Requisitos de sistemas mal definidos Não gerenciamento de riscos Falha na comunicação entre usuários e desenvolvedores Uso de tecnologia imatura Inabilidade de lidar com a complexidade do projeto Gerenciamento de projeto pobre Pressão comercial Porque projetos em geral falham Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários Desenvolvedor Faça uma interface simples e intuitiva Usuários 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários Usuário sempre acha uma forma inesperada de usar seu software Nunca duvide disso 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Tenho que pensar Em COMO construir software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Tenho que pensar Em COMO construir software E sempre olhar para o usuário Fonte devssmile 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários computersciencelife 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Guide to the Software Engineering Body of Knowledge também conhecido pela sigla SWEBOK httpwwwswebokorg define 12 áreas de conhecimento em Engenharia de Software Engenharia de Requisitos Projeto de Software Construção de Software Testes de Software Manutenção de Software Gerência de Configuração Gerência de Projetos Processos de Software Modelos de Software Qualidade de Software Prática Profissional Aspectos Econômicos Falando sério O que se Estuda em Engenharia de Software Pierre Bourque um dos dois editores do SWEBOK é reitor de estudos da Escola Superior de Tecnologia da Universidade de Québec 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Para motivação 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Dica de filmes documentários IFMA Monte Castelo Departamento de Computação Engenharia de Software I Aula 03 Conceitos parte 1 Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos introdutórios O que é Engenharia Tipos de Sistemas Roteiro Imagens httpsunsplashcom 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Mas o que é Engenharia de Software Engenharia de software é um termo com mais de 40 anos Nome proposto em 1969 na conferência da OTAN Para discussão de problemas relacionados ao desenvolvimento de software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Discussão Para construir sistemas corporativos existe uma sopa de letrinhas de tecnologias que oferecem suporte ao desenvolvimento e a implantação de grandes aplicações corporativas J2EE NET SaaS SAP BPEL4WS SOAP CBSE etc O software nos permitiu explorar o espaço e criar a World Wide Web possivelmente um dos mais importante sistemas de informação na história da humanidade Novos problemas mudança climática recursos naturais terrorismo covid19 etc Precisamos de novas tecnologias para ajudar a resolver esses problemas Software possui papel fundamental nessas tecnologias Pergunta Como vocês acham que a engenharia de software pode ajudar nisso Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos As economias de todas as nações desenvolvidas são dependentes de softwares Mais e mais sistemas são controlados por software A engenharia de software se preocupa com teorias métodos e ferramentas para desenvolvimento de softwares profissionais As despesas de software representam uma fração significativa do PIB em todos os países desenvolvidos Eng de Software é uma tecnologia de importância crítica para o futuro da humanidade Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é Engenharia PERGUNTA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é Engenharia Algumas definições Área do conhecimento na qual se busca adquirir e aplicar os conhecimentos matemáticos técnicos e científicos na criação aperfeiçoamento e implementação de utilidades tais como materiais estruturas máquinas aparelhos sistemas ou processos que realizem uma determinada função ou objetivo A palavra deriva de engenho de engenhoso O engenheiro e alguém engenhoso no sentido de que sabe fazer e aquele que faz A pessoa que aplica os conhecimentos teóricos na prática Engenharia 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é um Sistema 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Conjunto de elementos interconectados para formar um todo organizado com um objetivo geral a ser atingido Conjunto de elementos concretos ou abstratos intelectualmente organizados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Conjunto intencional de componentes interrelacionados que funcionam juntos para atingir certo objetivo Conjunto identificável e coerente de elementos que interagem coesivamente onde cada elemento pode ser um sistema Sistema 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Naturais Sistemas Estelares galáxias sistemas solares etc Sistemas Geológicos rios cadeias de montanhas etc Sistemas Moleculares organizações complexas de átomos Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas feitos pelo Homem Sistemas Sociais organizações de leis doutrinas costumes etc Sistemas de Transporte redes rodoviárias canais linhas aéreas e semelhantes Sistemas de Comunicação Telefone telex sinais de fumaça sinais manuais etc Sistemas de Manufatura Fábricas linhas de montagem etc Sistemas Financeiros contabilidade inventários livrosrazão controle de estoque etc Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Automatizados que compreendem Pessoas Aquelas que operam o sistema que fornecem as entradas e utilizam as saídas e as que desempenham atividades de processamento manual em um sistema Dados As informações que o sistema conserva por um período de tempo Procedimentos Determinações e instruções formais para a operação do sistema Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Hardware de computadores UCP terminais impressoras scanners Software Programas de computador sistemas operacionais sistemas de bancos de dados programas aplicativos que executam as funções desejadas pelo usuário Sistemas Automatizados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos E o que é Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Governo Finanças Treinamento Simulação Locadora Bioinformática Jogos Diversão Saúde Softwares 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Muitos dos sistemas de computadores são substituições ou novas implementações de sistemas nãocomputadorizados que já existem A maioria dos sistemas computadorizados interage ou tem uma interface com vários sistemas existentes computadorizados ou não Para que um sistema computadorizado seja bemsucedido precisase conhecer detalhadamente como o sistema atual se comporta Sistemas computadorizados Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Engenharia de Software O que é Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A engenharia de software é uma disciplina da engenharia que se preocupa com todos os aspectos da produção de software desde o início da especificação do sistema até a manutenção do sistema após esse estar sendo usado Engenharia de Software Sommerville 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Precisamos ser capazes de produzir sistemas confiáveis com economia e rapidamente Geralmente é mais barato no longo prazo usar métodos de engenharia de software e técnicas para os sistemas de software ao invés de escrever os programas sem essas técnicas Para a maioria dos tipos de sistemas a maior parte dos custos são os custos de alterar o software em uso Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Dificuldade Engenharia Civil x Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Cursos Engenharia de Software Ciência da Computação Engenharia da Computação Sistemas de Informação Vagas de empregos designam áreas afins e contemplam todas essas formações Excelentes currículos e formação Especialização MBA Situações comuns Cientista da Computação que trabalha como Software Engineer Engenheiro da Computação que vive de sites Analista de Sistemas que faz pesquisa científica 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Só rindo mesmo 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 04 Conceitos parte 2 Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos a Produtos de Software b Crise do software c Fases Genéricas d Processo de Software Roteiro 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São sistemas de software entregues ao usuário com a documentação que descreve como instalar e usar o sistema Consiste em a Instruções programas de computador quando executadas realizam as funções e têm o desempenho desejado b Estruturas de Dados possibilitam às instruções manipular as informações de forma adequada c Documentação descrevem as operações e uso do produto Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades do processo de software compõem o conjunto de atividades e resultados associados a Especificação clientes e engenheiros definem o software e suas restrições de funcionamento b Desenvolvimento atividade em que o software é projetado e programado c Validação software é verificado para garantia de atender ao que o cliente necessita d ManutençãoEvolução software é modificado para refletir as mudanças de requisitos do cliente e do mercado Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos a Produtos genéricos Produzidos por uma organização de desenvolvimento e vendidos no mercado a qualquer cliente disposto a comprálos Exemplos Jogos Processadores de texto Software CAD Sistemas Gerenciadores de Bancos de Dados Software para propósito específico Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos b Sistemas sob encomenda ou personalizados O software que é encomendado por um cliente específico para atender suas próprias necessidades Produtos de Software Exemplos Sistemas desenvolvidos para apoiar um processo de negócio Sistema de tráfego aéreo Sistemas de controle integrado 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Produtos de Software Sistemas genéricos Sistemas sob encomenda personalizados A especificação é controlada pela empresa ou desenvolvedor que criou o software Decisões sobre as mudanças de software são feitos por quem produz o software A especificação é desenvolvida e controlada pela organização que compra o software e os desenvolvedores devem trabalhar de acordo com essas especificações 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características segundo Pressman É desenvolvido ou projetado por engenharia não manufaturado no sentido clássico Custos concentrados no trabalho de engenharia Não se desgasta Se deteriora pois sofre manutenção provável inclusão de mais erros Possui a sua maioria feita sob medida em vez de ser montada a partir de componentes existentes Entretanto há a proposta da reutilização Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos de aplicações novos tipos surgem Standalone locais não precisam estar conectados em rede Interativas baseadas em transações aplicações executadas em computador remoto e acessadas pelos usuários a partir do próprio PC Controle embutido sistemas que controlam hardware Entretenimento uso pessoal para entretenimento Processamento em lotes projetados para processar dados em grandes lotes Modelagem e simulação modelar processos físicos ou situações Coleta de dados coleta dados do ambiente podem ser usados sensores e envia para outros sistemas para processamento Sistemas de sistemas compostos por diversos outros sistemas de software Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Com o decorrer do tempo a demanda por produtos de software aumentou e passaram a ocorrer problemas na elaboração desses Aconteceu o que é conhecido como a Crise do Software The Software Crisis Georgia Tech httpswwwyoutubecomwatchv0b5vp4Z2PKE Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Estimativas de prazo e custo imprecisas Produtividade das pessoas da área do software não tem acompanhado a demanda por seus serviços Qualidade de software é menos que adequada Crise do Software Quais foram os problemas 1 Algum aluno já desenvolveu software que está atualmente em execução em algum cliente 2 Quais os desafios encontrados e como você realizou o desenvolvimento 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Coletar dados sobre o processo de desenvolvimento de software Insatisfação do cliente Qualidade do software Software de difícil manutenção Crise do Software E outras dificuldades 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Dar um enfoque de Engenharia ao desenvolvimento de software Melhorar as técnicas e ferramentas existentes Promover o desenvolvimento com reutilização tempo e minimização de erros Crise do Software Solução 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Disciplina que reúne metodologías métodos e ferramentas a ser utilizados desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software Engenharia de Software I Conceitos Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A internet é uma plataforma de aplicativos em execução Cada vez mais as organizações estão desenvolvendo sistemas baseados na web ao invés de sistemas locais Usuários cada vez mais não compram softwares mas pagam de acordo com o uso O reuso de softwares é a abordagem dominante para a construção de sistemas baseados na web Interfaces de usuário são limitadas pela capacidade de navegadores web Engenharia de Software Internet 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Termos utilizados na internet Web Services permitem que a funcionalidade da aplicação seja acessada pela internet Computação em nuvem é uma abordagem para a prestação de serviços em que as aplicações são executadas na nuvem de forma transparente ao usuário Sistemas baseados na web são sistemas complexos distribuídos mas os princípios fundamentais da engenharia de software também são aplicáveis a eles assim como para qualquer outro tipo de sistema Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tecnologia em camadas Constitui a relação entre processo de software e engenharia de software Por definição o processo é parte de um todo chamado engenharia de software Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco na Qualidade Qualquer abordagem de engenharia inclusive a engenharia de software deve ter um compromisso com a qualidade Deve ser a base da engenharia de software Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo Deve ser o alicerce da engenharia de software O processo deve ser um arcabouço estabelecido para a efetiva utilização da tecnologia de engenharia de software É essa camada que mantém as outras unidas e permite o desenvolvimento racional e adequado de softwares Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos Os métodos fornecem a técnica para se desenvolver software de qualidade Constituem um conjunto de tarefas que incluem comunicação análise de requisitos modelagem de projeto construção de programas testes e manutenção Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Ferramentas Fornecem apoio automatizado para o processo de software e os métodos Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco no que será desenvolvido Compreende 03 tarefas principais a Engenharia do sistema b Plano de projeto do software software project planning c Análise dos requisitos do sistema Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco em como o software será desenvolvido como os dados serão estruturados e como as funções serão implementadas Como as interfaces serão caracterizadas Como o projeto será traduzido em uma linguagem de programação Como os testes serão feitos Compreende três tarefas principais Projeto do software Geração de código e Testes Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Fase de correção de erros Os tipos principais de manutenção a Corretiva b Adaptativa c Evolutiva d Preventiva reengenharia Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Disciplina de engenharia Engenheiros Fazem a aplicação seletiva de teorias métodos e ferramentas Procuram descobrir soluções para os problemas mesmo quando não existem teorias e métodos aplicáveis Trabalham sob restrições organizacionais e financeiras Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Aspectos da produção do software Processos técnicos do desenvolvimento Atividades de gerenciamento de projeto de software Desenvolvimento de ferramentas métodos e teorias que apóiam a produção do software Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Engenharia de sistemas Disciplina mais antiga que a engenharia de software Engloba todos os aspectos do desenvolvimento e da evolução de sistemas complexos em que o software desempenha papel principal Preocupa se não só com o desenvolvimento de hardware do projeto de políticas e processos da implantação de sistemas mas também da engenharia de software Engenharia de software Engenheiros de software tem a responsabilidade direta de construir e manter um sistema de software Diferença entre Engenharia de Software e Engenharia de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Em geral a adoção de uma abordagem sistemática e organizada de trabalho é a maneira mais eficaz de produzir software de alta qualidade Engenharia de Software Conceito de Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Conjunto de atividades e resultados associados que produz um produto de software Processo de Software Conceito de Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O processo deve ser aplicado de acordo com o tipo de sistema Exemplos Um software de tempo real de uma aeronave deve ser completamente especificado antes do início do desenvolvimento Em um sistema de comércio eletrônico a especificação e os programas podem ser desenvolvidos em paralelo Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades genéricas podem ser organizadas de diferentes maneiras e descritas em diferentes níveis de detalhamento para diferentes tipos de software O uso de um processo de software inadequado pode Reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido eou Aumentar os custos de desenvolvimento Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São geralmente decompostos em diversas fases etapas ou atividades 1 Planejamento 2 Análise e Especificação de Requisitos 3 Projeto 4 Implementação 5 Testes 6 Entrega e Implantação 7 Operação 8 Manutenção Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades de apoio que se encontram no entorno das atividades principais 1 Acompanhamento e controle do projeto de software 2 Gestão de risco 3 Garantia da qualidade 4 Revisões Técnicas Formais 5 Medição 6 Gestão de configuração de software 7 Gestão de reusabilidade 8 Preparação e produção do produto de trabalho Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de software define uma abordagem que é adotada quando o software é elaborado Engenharia de software além disso também inclui tecnologias que constituem um processo tais como métodos técnicos e ferramentas automatizadas Processo de Software A engenharia de software e processo de software são a mesma coisa 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Atividade 1 Elabore um mapa mental para os conceitos apresentados nesta aula IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 05 Conceitos Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos a Breve Histórico Métodos e Técnicas de desenvolvimento de sistemas b Métodos de Engenharia de Software c Análise de Sistemas d Atributos de um bom software e Desafios da Engenharia de Software f Responsabilidade Profissional e ética Roteiro 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 60 Textos e fluxogramas para especificar a lógica dos sistemas Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas Polaroid Woodstock Homem na lua 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Meados de 70 Análise Estruturada método que utiliza os componentes e conceitos da programação estruturada Tom DeMarco Gane Sarson Projeto Estruturado método que possibilita a elaboração do Diagrama de Hierarquia de Funções ou Diagrama de Estrutura Modular Yourdon Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 80 surge a abordagem de estrutura de dados como forma de modelar sistemas Método JSD JSD Jackson System Development Métodos de Warnier LCS Lógica de Construção de Sistemas LCP Lógica de Construção de Programas LCO Lógica de Concepção da Organização LDR Lógica de Definição de Resultados Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 90 surge a abordagem orientada a objetos Método FUSION Coleman et al UML Unified Modeling Language Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Análise de Sistemas Análise de Sistemas Qualquer que seja o método utilizado no desenvolvimento de sistemas o primeiro passo deve ser o de obtenção de requisitos ponto fundamental Diversas técnicas existem para que os dadosinformações sejam obtidos entrevistas questionários observação direta brainstorming entre outras Análise Essencial McMenamin Palmer ou Análise Estruturada Moderna Yourdon pode ser encarada como uma bemsucedida evolução da Análise Estruturada Modelo funcional mostra a perspectiva dos processos de transformação dos dados Modelo de dados mostra a perspectiva que representa os dados que precisam ser armazenados Modelo de controle representa a perspectiva dos controles Tem um papel relevante no caso de sistemas em tempo real 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Evolução dos métodos de análise de sistemas Métodos Abordagens Ferramentas Análise Tradicional Funcional Textos fluxogramas Análise Estruturada Funcional Dados Diagrama de Fluxo de Dados DFD Diagrama de Estrutura de Dados Modelo Conceitual Miniespecificações Normalização Dicionário de Dados Análise Essencial Funcional Dados Controle Lista de Eventos DFD Diagrama EntidadeRelacionamento DER Diagrama de Transição de Estados DTE Normalização Miniespecificações Dicionário de Dados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos É uma abordagem estruturada para o desenvolvimento de software cujo objetivo é facilitar a produção de um software de alta qualidade dentro de custos adequados Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Análise Estruturada e JSD São orientados a funções Tentam identificar componentes básicos de um sistema Ainda são usados Exemplos Análise Estruturada DeMarco 1978 Análise Estruturada JSD Jackson Systems Development Jackson 1983 Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Exemplo JSD Diagram Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos orientados a objetos e UML Descrevem o sistema como conjuntos de objetos e classes Métodos e atributos são tratados conjuntamente Exemplos Métodos Orientados a Objetos Booch 1994 Rumbaugh et al 1991 tais métodos foram unificados UML Unified Modeling Language Booch et al 1999 Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Exemplo UML Diagram Use Case Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Não existe método ideal para todas as situações Em geral Métodos Orientados a Objetos são apropriados para sistemas interativos mas não para sistemas com requisitos rigorosos de tempo real Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Custos da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A distribuição de custos ao longo das atividades do processo de desenvolvimento depende do processo e do tipo de software que está sendo desenvolvido Exemplo Em geral software de tempo real requer validação e testes mais extensos do que sistemas baseados em Web Cada uma das abordagens possui um perfil diferente de distribuição de custos ao longo das atividades do processo de software Custos da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Custos da Engenharia de Software Distribuição de custos nas atividades 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos CASE ComputerAided Software Engineering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Diferentes tipos de programas que suportam as atividades do processo de software o Análise de requisitos o Modelagem de sistema o Depuração o Teste CASE ComputerAided Software Engeneering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Os métodos vêm com uma tecnologia CASE associada o Editores para as notações utilizadas o Geradores de relatório para auxiliar na criação da documentação do sistema o Podem incluir gerador de códigofonte com base no modelo do sistema CASE ComputerAided Software Engeneering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atributos de um bom software e Desafios da ES Atributos de um bom software Demonstram a qualidade do software desenvolvido Não se referem diretamente ao que o software faz Refletem o comportamento do software enquanto ele está em execução A estrutura e a organização dos programasfonte Documentação associada O conjunto de atributos dependem da aplicação do software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Facilidade de Manutenção o O software deve ser escrito de modo que possa evoluir para atender às necessidades de mudança dos clientes o É um atributo fundamental pois a mudança de software é uma consequência inevitável de um ambiente de negócios em constante mutação Confiança o O nível de confiança de um software possui características como confiabilidade proteção e confiança o Um software confiável não pode causar danos físicos ou econômicos no caso de falha de sistemas Atributos de um bom software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Eficiência o O software não deve desperdiçar recursos do sistema como memória e ciclos do processador o Inclui tempo de resposta tempo de processamento utilização de memória etc Usabilidade o O software deve ser usável sem esforço excessivo pelo tipo do usuário para o qual ele foi projetado o O software deve apresentar interface como o usuário e documentação adequadas Atributos de um bom software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O desafio da heterogeneidade O desafio da entrega O desafio da confiança Desafioschave da Engenharia de software Desafioschave da Engenharia de software O desafio da heterogeneidade Desenvolvimento de sistemas de software que operem com sistemas em rede que incluem diferentes tipos de computadores com diferentes sistemas de apoio Integração de novos sistemas com sistemas antigos escritos em diferentes linguagens de programação O desafio consiste em desenvolver técnicas para a construção de software confiável que seja flexível o suficiente para adaptarse a essa heterogeneidade Desafioschave da Engenharia de software O desafio da entrega Técnicas demandam tempo para a obtenção de uma boa qualidade de software Tempos de resposta ágeis e que mudem rapidamente são requeridos Consiste em diminuir os tempos de entrega dos sistemas grandes e complexos sem comprometimento de sua qualidade 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O desafio da entrega Desafioschave da Engenharia de software Instagram purepython Desafioschave da Engenharia de software O desafio da confiança A confiança em um software é fundamental Exemplo forte sistemas remotos acessados através de página Web como bancos e lojas Consiste em desenvolver técnicas que demonstrem que o software pode ter a confiança de seus usuários 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Responsabilidade profissional e ética 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A engenharia de software está dentro de uma estrutura de condições legais e sociais que limita a liberdade do engenheiro O trabalho do engenheiro implica responsabilidades mais amplas do que a aplicação de habilidades técnicas Comportamento ético é mais do que simplesmente agir em concordância com a lei envolve seguir um conjunto de princípios moralmente corretos Responsabilidade profissional e ética Responsabilidade profissional e ética Padrões de comportamento aceitável estão limitados por uma tênue noção de responsabilidade profissional Confidencialidade Competência Direitos sobre propriedade intelectual Mau uso de computadores Responsabilidade profissional e ética Confidencialidade Respeito à confidencialidade de funcionários ou clientes independente de ter ou não assinado acordo formal Competência Não desvirtuar o nível de competência ou seja o engenheiro não deve conscientemente aceitar um trabalho que esteja fora de sua competência Engenheiros não devem falsear seus níveis de competência Fato importante Leitura LGPD o que muda na prática com a Lei 1370918 Disponível em httpswwwpwccombrptsaladeimprensaartigoslgpdmudapraticaplc53html Lei httpwwwplanaltogovbrccivil03ato201520182018leiL13709htm LGPD o que muda na prática com a Lei 1370918 O Brasil passa a fazer parte do grupo de países que possuem uma Lei Geral de Proteção de Dados Responsabilidade profissional e ética Direitos sobre propriedade intelectual Estar ciente das regras de patente e direitos autorais para proteger a propriedade intelectual de funcionários e clientes Mau uso de computadores O mau uso de computadores varia desde a execução de jogos na máquina do funcionário até a disseminação de vírus por exemplo 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sociedades e instituições profissionais definem padrões de ética que devem ser seguidos por seus associados e engenheiros de software em geral Responsabilidade profissional e ética Institute of Electrical and Electronic Engineers Responsabilidade profissional e ética Código de ética e práticas profissionais da engenharia de software Forçatarefa conjunta da ACMIEEECS para ética e práticas profissionais da engenharia de software 1 Prefácio Esta versão reduzida do código resume as aspirações em um alto nível de abstração as cláusulas que estão inclusas na versão completa fornecem exemplos e detalhes de como essas aspirações mudam a forma como agimos enquanto profissionais de engenharia de software Sem as aspirações os detalhes podem se tornar legalistas e tediosos sem os detalhes as aspirações podem se tornar altissonantes porém vazias juntos as aspirações e os detalhes formam um código coeso Os engenheiros de software devem se comprometer a fazer da análise especificação projeto desenvolvimento teste e manutenção de software uma profissão benéfica e respeitada Em conformidade com seu comprometimento com a saúde a segurança e o bemestar públicos engenheiros de software devem aderir a oito princípios Responsabilidade profissional e ética 2 Princípios éticos PÚBLICO Engenheiros de software devem agir de acordo com o interesse público CLIENTE E EMPREGADOR Engenheiros de software devem agir de maneira que seja do melhor interesse de seu cliente e empregador e de acordo com o interesse público PRODUTO Engenheiros de software devem garantir que seus produtos e modificações relacionadas atendam aos mais altos padrões profissionais possíveis JULGAMENTO Engenheiros de software devem manter a integridade e a independência em seu julgamento profissional Responsabilidade profissional e ética 2 Princípios éticos GERENCIAMENTO Gerentes e líderes de engenharia de software devem aceitar e promover uma abordagem ética para o gerenciamento de desenvolvimento e manutenção de software PROFISSÃO Engenheiros de software devem aprimorar a integridade e a reputação da profissão de acordo com o interesse público COLEGAS Engenheiros de software devem auxiliar e ser justos com seus colegas SI PRÓPRIO Engenheiros de software devem participar da aprendizagem contínua durante toda a vida e devem promover uma abordagem ética para a prática da profissão Responsabilidade profissional e ética Dilemas éticos Desacordo em princípio com as políticas da gerência Seu empregador age de forma antiética e libera um sistema crítico de segurança sem terminar os testes do sistema Participação no desenvolvimento de sistemas de armas militares ou sistemas nucleares 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Historinha muito comum Responsabilidade profissional e ética 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos BACHARELADO EM SISTEMAS DE INFORMAÇÃO Prometo no exercício profissional como bacharel em Sistemas de Informação ser fiel aos preceitos da honra e da ciência promovendo o uso e o desenvolvimento da informática em benefício do cidadão e da sociedade jamais me esquecendo de que trabalho para o bem do homem e não da máquina Assim prometo Portal do IFMA Fonte httpsportalifmaedubrwpcontentuploads201509AnexoIIIMANUALDEEVENTOSpdf Juramentos de cursos de Sistemas de Informação 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos BACHARELADO EM SISTEMAS DE INFORMAÇÃO Juro perante Deus e a Sociedade que me recebe hoje como Bacharel em Sistemas de Informação que no exercício da minha profissão serei fiel aos princípios da ética e da honestidade fazendo da ciência um instrumento de planejamento e construção criando estruturas que levem as instituições aos seus propósitos jamais esquecendome de que trabalho para o bem do homem e não da máquina e assim auxiliar no desenvolvimento da nossa pátria e na integração das nações Perante Deus e a Sociedade assim eu juro UNIC Fonte httpwwwuniccombrSiteAssetsJuramentodeSistemadeInformaC3A7C3A3opdf Juramentos de cursos de Sistemas de Informação 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Trapaça em Harvard A adoção do código de honra ocorreu após um escândalo em 2012 Durante uma prova mais de 100 estudantes foram investigados por colar e cerca de 70 foram sancionados O que realmente sacudiu a instituição foi a magnitude da desonestidade que representou uma mancha na reputação de uma universidade acostumada a ocupar os primeiros postos dos rankings mundiais e onde estudaram oito presidentes dos EUA Leitura interessante Fonte httpwwwbbccomportuguesenoticias201511151123harvardtrapacalab Esperase desempenho excepcional não há nada mal nisso Há algumas pessoas que estão tão motivadas para obter bons resultados que acabam cruzando a linha 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos TEDx Talk What really motivates people to be honest in business Fonte httpswwwtedcomtalksalexanderwagnerwhatreallymotivatespeopletobehonestinbusiness IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 05 Sistemas de Software Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Apresentar a idéia de Sistemas sociotécnicos Sistemas legados Sistemas críticos Sistemas complexos Confiança do sistema Conceitos e Terminologias Roteiro 2 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Sociotécnicos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Cômico se não fosse trágico Fonte httpvidadeprogramadorcombr 4 Sistemas Sociotécnicos Sistema Social de uma organização São todos os seres humanos que trabalham nela com todas as suas características psicológicas e sociais como valores educação e necessidades Sistemas Sociotécnicos Sistema Técnico de uma organização As ferramentas técnicas dispositivos artefatos métodos configurações procedimentos e conhecimento utilizado pelos membros da organização para perceber entradas transformar as entradas em saídas e prover estas saídas por exemplo serviços para clientes eou consumidores Pasmore 1988 O sistema técnico é a maneira pela qual a organização transforma entradas em saída Sistemas Sociotécnicos Abrangem um ou mais sistemas técnicos e também pessoas operadores como partes inerentes ao sistema Os trabalhadores passam a ser considerados o centro do processo Em geral são não determinísticos Nem sempre apresentam as mesmas saídas mesmo possuindo as mesmas entradas pois o comportamento do sistema depende de operadores humanos IFMA Monte Castelo Departamento de Computação 7 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas A pilha de sistemas sociotécnicos Sistemas Sociotécnicos e Engenharia de Software 8 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Equipamento Dispositivos de hardware alguns podendo ser computadores A maioria dos dispositivos incluirá algum tipo de sistema embutido Sistema operacional Fornece um conjunto comum de recursos para os níveis mais altos do sistema Comunicações e gerenciamento de dados Middleware que fornece acesso a sistemas remotos e bancos de dados Sociedade Organização Processos de negócio Sistema de aplicação Comunicações e gerenciamento de dados Sistema operacional Equipamento IFMA Monte Castelo Departamento de Computação 9 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Sistemas de aplicação Funcionalidade específica para atender a algum requisito da organização Processos de negócio Um conjunto de processos envolvendo pessoas e sistemas de computador que mantêm as atividades do negócio Sociedade Organização Processos de negócio Sistema de aplicação Comunicações e gerenciamento de dados Sistema operacional Equipamento IFMA Monte Castelo Departamento de Computação 10 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Organização Atividades estratégicas de negócio de nível mais alto que afetam a operação do sistema Sociedade Leis regulamentações e a cultura que afetam a operação do sistema 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Legados Engenharia de Software I Sistemas Sistemas Legados São sistemas baseados em computadores que foram desenvolvidos no passado frequentemente usando tecnologias mais antigas e obsoletas Incluem hardware software processos e procedimentos legados Velhas formas de fazer as coisas que dificilmente são mudadas porque estão baseadas em software legado Em geral são críticos de negócios e sua substituição representa riscos para os negócios 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Exemplos Sistemas de contas de clientes de banco Sistemas militares estimativa de tempo 20 anos Sistemas de controle de tráfego aéreo atuais contam com software e operacionais desenvolvidos nas décadas de 1960 e 1970 Porque continuam a existir Sistemas Legados É muito oneroso e muito arriscado descartar tais sistemas críticos de negócio após poucos anos de uso 14 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Críticos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Sistema no qual a confiança é a propriedade mais importante Sistema onde falhas podem resultar em perdas econômicas significativas danos físicos ou ameaças à vida humana Sistemas Críticos 16 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas São sistemas técnicos ou sociotécnicos dos quais as pessoas ou os negócios dependem Sistemas Críticos 17 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos 18 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos Sistema cuja falha pode resultar em prejuízo perda de vida ou danos sérios ao ambiente Exemplo de sistema crítico de segurança Sistema de controle de uma fábrica de produtos químicos 19 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Tipos principais de sistemas críticos de segurança de missão de negócios Engenharia de Software I Sistemas Sistemas Críticos Sistema cuja falha pode resultar em problema em alguma atividade dirigida a metas Exemplo de sistema crítico de missão Sistema de navegação de uma nave espacial 20 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Tipos principais de sistemas críticos de segurança de missão de negócios Engenharia de Software I Sistemas Sistemas Críticos 21 Voyager objetivo da missão explorar Júpiter Saturno Urano e Netuno Problemas Interrupção de Comunicação Em uma reconfiguração de rotina um comando incorreto deixou a sonda sem capacidade de comunicação por um curto período A falha foi corrigida remotamente Pane nos giroscópios Houve problemas em sensores e giroscópios que ajudam na orientação da sonda Esses sistemas se tornaram menos confiáveis ao longo dos anos exigindo ajustes frequentes nos comandos Pálido ponto azul Fotografia da Terra em 14 de fevereiro de 1990 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Sistemas Críticos 22 Olhem de novo esse ponto É aqui é a nossa casa somos nós Nele todos a quem ama todos a quem conhece qualquer um sobre quem você ouviu falar cada ser humano que já existiu viveram as suas vidas O conjunto da nossa alegria e nosso sofrimento milhares de religiões ideologias e doutrinas econômicas confiantes cada caçador e coletor cada herói e covarde cada criador e destruidor da civilização cada rei e camponês cada jovem casal de namorados cada mãe e pai criança cheia de esperança inventor e explorador cada professor de ética cada político corrupto cada superestrela cada líder supremo cada santo e pecador na história da nossa espécie viveu ali em um grão de pó suspenso num raio de sol Carl Sagan 1994 astrobiólogo astrofísico escritor etc Pálido ponto azul Fotografia da Terra em 14 de fevereiro de 1990 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos Sistema cuja falha pode resultar em custos muito altos para o negócio que usa esse sistema Exemplo de sistema crítico de negócios Sistema de contabilidade de clientes de um banco 23 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas O termo confiança se relaciona com disponibilidade confiabilidade segurança e proteção Razões para que a confiança seja a principal propriedade Sistemas não confiáveis inseguros ou desprotegidos são frequentemente rejeitados por seus usuários Os custos de falha de um sistema podem ser muito altos Sistemas não confiáveis podem causar perda de informações Confiança em sistemas críticos 24 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Em geral são utilizadas técnicas sedimentadas ao invés de técnicas mais recentes que ainda não foram submetidas a ampla experiência prática Técnicos são mais conservadores Técnicas onerosas de engenharia de software não adequadas a sistemas não críticos podem ser utilizadas Exemplo Métodos matemáticos formais para o desenvolvimento de software foram usados com sucesso em sistemas críticos de segurança e proteção reduzem quantidade de testes necessários Técnicas utilizadas em sistemas críticos 25 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Em geral os custos de verificação e validação são muito altos Mais de 50 do custo total de desenvolvimento Enquanto operadores podem ajudar a superar problemas eles podem também causar problemas ao cometerem erros Técnicas utilizadas em sistemas críticos 26 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Componentes de falhas em sistemas críticos Operadores humanos Hardware Software 27 Componentes de falhas em sistemas críticos Hardware Pode falhar em função de erros de projeto de falha dos componentes resultante de erros de fabricação ou desgaste de vida útil de componentes Software Pode falhar por causa de erros em sua especificação projeto ou implementação Operadores Humanos Podem falhar em operar o sistema corretamente São a maior causa de falhas no sistema pois o hardware e o software tornaramse mais confiáveis 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas As falhas podem estar interrelacionadas Uma falha em um componente de hardware pode fazer com que os operadores do sistema tenham que enfrentar uma situação inesperada e uma carga adicional de trabalho com mais pressão Pessoas sob pressão cometem mais erros Isso pode causar falha de software mais trabalho para os operadores mais pressão Componentes de falhas em sistemas críticos 29 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Complexos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas o Um sistema é uma coleção intencional de componentes interrelacionados que funcionam juntos para alcançar algum objetivo em comum o Um sistema pode incluir software hardware mecânico elétrico e eletrônico e ser operado por pessoas o Os componentes do sistema são dependentes de outros componentes do sistema o As propriedades e o comportamento dos componentes do sistema estão intrinsicamente interligados O que gera complexidade Sistemas complexos 31 Sistemas Sociotécnicos e Engenharia de Software Engenharia de software é crítica para o desenvolvimento de sistemas sociotécnicos complexos baseados em computadores O engenheiro de software a Não deve se preocupar apenas com o software em si b Deve ter um conhecimento mais abrangente de como esse software interage com outros sistemas de software e hardware e como se supõe que ele seja usado Tal conhecimento ajuda a compreender os limites do software para poder projetálo melhor e participar como um membro atuante de um grupo de Engenharia de Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Confiança do Sistema e Terminologias Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema 34 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de fornecer serviços quando solicitados 35 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de fornecer serviços conforme especificado 36 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Erro Humano ou engano Comportamento humano que resulta na introdução de defeitos em um sistema Pode levar a inclusão de uma falha no sistema fazendo com que o mesmo não funcione corretamente ou apresente resultados incorretos Tamashiro 2010 Terminologia de confiabilidade 37 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Defeito Pode ocorrer devido a omissão de informações definições de dados ou comandosinstruções incorretas dentre outros fatores Se um determinado defeito não for encontrado pode causar uma falha no funcionamento do software Tamashiro 2010 Exemplo Falha em iniciar uma variável pode levar a um valor errado quando esta for usada Terminologia de confiabilidade 38 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Falha Ocorre quando um programa não se comporta conforme o esperado ou apresenta resultados diferentes do planejado IEEE 1983 Um evento que ocorre em algum momento quando o sistema não fornece um serviço conforme esperado por seus usuários É considerada uma propriedade do sistema em execução Terminologia de confiabilidade 39 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Terminologia de confiabilidade 40 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Terminologia de confiabilidade 41 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de operar sem falhas catastróficas 42 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema 43 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Acidente ou desgraça Evento ou sequência de eventos não planejados que resulta em morte ou ferimento de humanos danos à propriedade ou ao ambiente Exemplo Máquina controlada por computador que fere um operador Terminologia de segurança 44 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Perigo Condição com potencial para causar ou contribuir para um acidente Exemplo Falha em um sensor que detecta obstáculo na frente de uma máquina Terminologia de segurança 45 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Dano Medida de perda resultante de um acidente Exemplo Varia desde a morte de pessoas até danos à propriedade Severidade do perigo Avaliação pior do dano possível que poderia resultar em determinado perigo Exemplo Pode variar desde catastrófica onde várias pessoas morrem até danos de pouca importância Terminologia de segurança 46 Terminologia de segurança Probabilidade de perigos Probabilidade de ocorrência de eventos que criam um risco Tais valores tendem a ser arbitrários Exemplo variam de provável chance de 1100 de ocorrência do risco a implausível não existem condições nas quais o risco possa ocorrer Risco Medida da probabilidade de que o sistema causará um acidente É avaliado considerandose a probabilidade do perigo a severidade do perigo e a probabilidade de que o perigo resulte em um acidente 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de protegerse contra intrusões acidentais ou intencionais 48 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Exposição Provável perda ou dano no sistema computacional Pode ser perda ou danos nos dados tempo ou esforço se a recuperação é necessária após uma brecha na proteção Vulnerabilidade Uma fraqueza no sistema baseado em computador que pode ser explorada para causar perda ou dano Ataque Uma exploração de vulnerabilidade do sistema Em geral parte de fora do sistema e é uma tentativa deliberada de causar perda ou dano Terminologia de proteção 49 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Ameaças Circunstâncias que têm potencial para causar perda ou dano Vulnerabilidade do sistema que está sujeita a um ataque Controle Uma medida de proteção que reduz uma vulnerabilidade do sistema Exemplo Criptografia que reduz a vulnerabilidade de um sistema fraco de controle de acesso Terminologia de proteção 50 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação 51 Atividade Construa um mapa mental sobre os conteúdos desta aula IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 06 Modelos e Processos Prof Dr Daniel Lima Gomes Jr Profa Dr Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Processo de Software Paradigmas ou Modelos de Processos Cascata Desenvolvimento Paralelo V Incremental Evolucionário CBSE Orientado a Aspectos Métodos Formais Roteiro 2 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Engenharia de Software Disciplina de engenharia relacionada com todos os aspectos da produção de software desde os estágios iniciais de especificação do sistema até sua manutenção 4 Engenharia de Software tem 3 elementos fundamentais Métodos como fazer Ferramentas apoio automatizado aos métodos Modelos elo entre os métodos e o Processo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 5 A Engenharia de Software encontrase no mais alto nível Camadas de Tecnologias usadas no desenvolvimento de software IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Definição Processo de Software Um conjunto estruturado de atividades necessárias para desenvolver um sistema de software Existem vários processos de desenvolvimento de software diferentes mas todos envolvem especificação projeto e implementação validação evolução ou manutenção IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Conjunto de atividades métodos práticas e transformações que guiam pessoas na produção de software Um processo eficaz deve claramente considerar as relações entre as atividades os artefatos produzidos no desenvolvimento as ferramentas e os procedimentos necessários e a habilidade o treinamento e a motivação do pessoal envolvido Processo de Software Falbo 2005 7 Processo de Software Atividades genéricas podem ser organizadas de diferentes maneiras descritas em diferentes níveis de detalhamento para diferentes tipos de software O uso de um processo de software inadequado pode Reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido eou Aumentar os custos de desenvolvimento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos São geralmente decompostos em diversas fases etapas ou atividades 1 Planejamento 2 Análise e Especificação de Requisitos 3 Projeto 4 Implementação 5 Testes 6 Entrega e Implantação 7 Operação 8 Manutenção Processo de Software 9 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades de apoio que se encontram no entorno das atividades principais 1 Acompanhamento e controle do projeto de software 2 Gestão de risco 3 Garantia da qualidade 4 Revisões Técnicas Formais 5 Medição 6 Gestão de configuração de software 7 Gestão de reusabilidade 8 Preparação e produção do produto de trabalho 9 Interação Humano Computador Processo de Software 10 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Descrições de processo de software Quando descrevemos e discutimos processos geralmente falamos sobre as atividades desses processos tais como especificação de modelo de dados desenvolvimento de interface de usuário etc e organização dessas atividades Processo de Software Processo de Software As descrições de processos também podem incluir Produtos resultados de uma atividade do processo Papéis responsabilidades das pessoas envolvidas Pré e póscondições declarações que são verdadeiras antes e depois de uma atividade do processo ser executada ou um produto produzido IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Paradigmas ou Modelos de Processo de Software Modelo de Processo de Software Um modelo de processo de desenvolvimento de software é uma representação simplificada de um processo de software Ex Um modelo de atividade do processo pode mostrar as atividades e sua sequência mas não mostrar os papéis das pessoas envolvidas Apresenta uma descrição do processo de uma perspectiva em particular Especificam atividades que devem ser executadas bem como a ordem de execução Paradigmas ou Modelos de Processos Existem vários modelos de processo de software ou paradigmas de engenharia de software Alguns modelos são mais adequados que outros para determinados tipos de aplicação A opção por um determinado modelo deve ser feita considerandose o produto a ser desenvolvido Incluem atividades que fazem parte do processo de software os produtos de software e os papéis das pessoas envolvidas na engenharia de software Modelos de Processos de Software Modelos Prescritivos Modelo Cascata Modelos de Processo Incremental Modelos de Processo Evolucionário Prototipagem Modelo Espiral Modelos de Processo Especializado Engenharia de software baseada em componentes CBSE Component Based Software Engineering Modelo de métodos formais Conjunto de atividades conduzem a uma especificação formal do software Desenvolvimento de Software Orientado a Aspectos Processo Unificado RUP Processo genérico moderno Modelo Cascata É o paradigma mais antigo e o mais amplamente usado da Engenharia de Software Também conhecido como Ciclo de Vida de Software ou Modelo Sequencial Linear Desenvolvimento Sequencial embora se possa retornar para fase anterior Depois que cada estágio é concluído o desenvolvimento prossegue para o estágio seguinte IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Considera as atividades apresentadas anteriormente e as representa como fases separadas do processo 1 Planejamento 2 Análise 3 Projeto 4 Implementação Cada fase produz como resultado um ou mais documentos Modelo Cascata 18 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata 19 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Os serviços restrições e objetivos do sistema são definidos por meio de consultas aos usuários do sistema 20 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Os serviços restrições e objetivos do sistema são definidos por meio de consultas aos usuários do sistema 21 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata O processo de projeto de sistema divide os requisitos em sistemas de hardware ou de software Ele estabelece uma arquitetura geral do sistema Envolve a identificação e a descrições das abstrações fundamentais do sistema de software e suas relações 22 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Nesta etapa o projeto é realizado como um conjunto de programas ou unidades de programa Os programas são integrados e testados como um sistema completo para garantir que os requisitos de software foram atendidos Após os testes o sistema de software é liberado para o cliente 23 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Doc de Especificação de Requisitos Doc de Especificação de Projeto Coleção de Programas Implementados e Testados Doc com informações iniciais do Sistema 24 Modelo Cascata Limitações Os projetos reais raramente seguem o fluxo sequencial e topdown que propõe o modelo Sempre ocorrem interações e às vezes existem problemas na aplicação do paradigma É difícil tanto para o cliente como para o analista estabelecer no principio explicitamente todos os requisitos Ciclo de vida clássico tem dificuldades em expressar possíveis incertezas do cliente e do analista A versão funcional da aplicação somente estará disponível nas etapas finais do desenvolvimento do projeto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Deve ser usado apenas quando os requisitos forem bem compreendidos e houver pouca probabilidade de mudanças radicais durante o desenvolvimento do sistema Reflete o tipo de modelo de processo usado em outros projetos de engenharia Modelo Cascata 26 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Há duas variantes Desenvolvimento Paralelo Modelo V Variantes do Modelo Cascata 27 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Desenvolvimento Paralelo 28 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Um projeto geral ou concepção é criado e dividido em uma série de subprojetos distintos que pode ser concebidos e em paralelo Após a conclusão destes há a integração final do das partes separadas Modelo Cascata Desenvolvimento Paralelo 29 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Vantagem a Reduz o tempo de distribuição do sistema Diminui as chances de as alterações que ocorrem no ambiente da empresa causarem retrabalho Limitações a Problemas ocasionados pelos volumosos produtos resultantes b Se os projetos não forem completamente independentes as decisões de concepção design tomadas em um subprojeto pode afetar outro Isto dificulta a integração dos subprojetos Modelo Cascata Desenvolvimento Paralelo 30 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V 31 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Prossegue para baixo na linha inclinada definindo requisitos e determinando componentes do sistema 32 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Na base do V o código é escrito 33 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Na linha inclinada para cima São realizados os testes dos componentes testes de integração testes do sistema e testes de aceitação do sistema 34 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Um conceito fundamental neste modelo é que quando os requisitos forem especificados e os componentes determinados os testes destes elementos também ficarão definidos Cada nível de teste é relacionado com uma fase da Análise ou Projeto Isso maximiza a efetividade dos testes 35 Modelo Cascata Modelo V Vantagens É direto e melhora a qualidade dos sistemas por intermédio da ênfase no planejamento precoce dos testes O foco e a prática dos testes estão presentes na fase inicial do projeto Desvantagem Ainda sofre com a rigidez do desenvolvimento em cascata Não se mostra apropriado para a natureza dinâmica do ambiente empresarial IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Clientes identificam os serviços mais e menos importantes definindo um número de entrega de incremento Serviços de mais alta prioridade são entregues primeiro O primeiro incremento é um produto essencial onde os requisitos básicos são atendidos Modelos de Processo Incremental 37 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo de Processo Incremental 38 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Isto ajuda a conhecer os requisitos dos incrementos posteriores e das versões atual Modelo de Processo Incremental Após a conclusão e entrega de um incremento este é posto em operação clientes podem experimentar parte da funcionalidade do sistema de software 39 Modelo de Processo Incremental Vantagens 1 Clientes não precisam esperar até a entrega do sistema inteiro para se beneficiar dele O 1º incremento satisfaz os requisitos mais críticos 2 Clientes podem usar os incrementos iniciais como protótipos e ganhar experiência 3 Existe um risco menor de falha geral do projeto 4 Como os serviços de prioridade mais alta são entregues primeiro e os incrementos posteriores são integrados a eles os sistemas mais importantes recebem mais testes os clientes têm menos probabilidade de de encontrar falhas de software nas partes mais importantes do sistema Modelos de Processo Incremental Desvantagens 1 Os incrementos devem ser relativamente pequenos ter menos que 20 mil linhas de código 2 Cada incremento deve entregar alguma funcionalidade do sistema de software Difícil mapeamento 3 Pode ser difícil identificar os recursos comuns a todos os incrementos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Baseiamse no desenvolvimento e implementação de um produto inicial que é submetido aos comentários e críticas do usuário O produto vai sendo refinado através de múltiplas versões até que o produto de software almejado seja desenvolvido Modelos de Processo Evolucionário 42 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos As atividades de desenvolvimento e validação são desempenhadas paralelamente havendo feedback entre elas O sistema pode ser entregue ou reimplementado utilizando uma abordagem mais estruturada para produzir um sistema mais robusto e mais fácil de ser mantido Em Geral é mais efetivo que o Ciclo de Vida Clássico mas apresenta problemas de gerenciamento Modelos de Processo Evolucionário 43 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário 44 Versão inicial Versão final Versões intermediárias Especificação Desenvolvimento Validação Descrição do esboço IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Utiliza Desenvolvimento Exploratório O objetivo do processo é trabalhar com o cliente para explorar seus requisitos e entregar um sistema final Se inicia com as partes do sistema que são compreendidas O sistema evolui com o acréscimo de novas características conforme o cliente Modelos de Processo Evolucionário 45 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Prototipagem Executa o processo a fim de desenvolver rápido uma versão simplificada do sistema O protótipo é uma versão rápida e mal feita que fornece uma quantidade mínima de recursos 46 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Prototipagem O objetivo do processo é compreender os requisitos do cliente O protótipo se concentra em fazer experimentos com partes dos requisitos que estejam mal compreendidos Prototipagem throwaway ou Protótipos descartáveis 47 Modelos de Processo Evolucionário Prototipagem Problemas Cliente enxerga protótipo como produto final Prototipação é eficiente Obter requisitos Projeto rápido elaboração Construir protótipo Avaliar protótipo Refinamento de protótipo IFMA Monte Castelo Departamento de Computação 48 Modelos de Processo Evolucionário Considerações O processo não é visível Documentos necessários para medir o progresso no desenvolvimento deixam de ser produzidos em virtude da velocidade de elaboração de versões do produto Em geral os sistemas são mal estruturados As estruturas são prejudicadas pelas mudanças constantes O desenvolvedor pode assumir como definitivas escolhas feitas como temporárias Um Sistema Operacional inapropriado pode ser usado porque é conhecido ou algoritmos ineficientes podem ser implementados para demonstrar possibilidades do Sistema IFMA Monte Castelo Departamento de Computação 49 Modelos de Processo Evolucionário Modelo Espiral Desenvolvimento do sistema evolui em uma espiral para fora a partir de um esboço inicial em direção ao sistema final desenvolvido Proposto por Boehm 1988 Foi desenvolvido para englobar as melhores características do ciclo de vida clássico e do paradigma evolutivo adicionando ainda um novo elemento a análise de risco Risco circunstância adversa que pode atrapalhar o processo de desenvolvimento e a qualidade do produto a ser desenvolvido Não existem fases fixas neste paradigma IFMA Monte Castelo Departamento de Computação 50 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Modelo Espiral 51 Adaptado de httpsmediumcomcontextodelimitado Determinação dos objetivos alternativas e restrições e de Riscos Análise de alternativas e identificaçãoresolução dos riscos Implementação escolha de um modelo de desenvolvimento para o sistema Planejamento e Especificação Traça os planos para a próxima fase do projeto combina prevenção e tolerância a mudanças assume que mudanças são um resultado de riscos de projeto e inclui atividades explícitas de gerenciamento de riscos para sua redução SOMMERVILLE 2011 uma abordagem realista do desenvolvimento de sistemas e softwares de grande porte usando a prototipagem como mecanismo de redução de riscos PRESSMAN 2006 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Modelo Espiral 52 Adaptado de httpsmediumcomcontextodelimitado Determinação dos objetivos alternativas e restrições e de Riscos Análise de alternativas e identificaçãoresolução dos riscos Implementação escolha de um modelo de desenvolvimento para o sistema Planejamento e Especificação Traça os planos para a próxima fase do projeto Modelos de Processo Evolucionário Modelo Espiral A decisão de como estruturar o processo de desenvolvimento de Software em fases é tomada durante o Planejamento A principal diferença entre este modelo e os demais é o reconhecimento explícito do risco Exemplo Se a intenção for usar uma nova Linguagem de Programação um risco é que os compiladores disponíveis não sejam confiáveis ou não produzam códigoobjeto suficientemente eficaz IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Problemas Difícil de convencer o cliente da abordagem evolutiva ser controlável Exige experiência na avaliação dos riscos Vantagens Abordagem realística Abordagem evolucionária Prototipação Interativa Redução de riscos Modelos de Processo Evolucionário Modelo Espiral 54 CBSE Component Based Software Engineering Engenharia de software baseada em componentes Baseiase na existência de um número significativo de componentes reusáveis O processo de desenvolvimento concentrase na integração desses componentes em vez de desenvolvêlos a partir do zero A CBSE foi proposta na década de 90 Foi motivado pelo limitado suporte ao reuso em desenvolvimento OO Características Independência Padronização Middleware Processo Específico CBSE Component Based Software Engineering Essencial sobre CBSE Componentes independentes especificados pelas suas interfaces Padrões de componentes para facilitar a integração de componentes Middleware que fornece suporte para a interoperacionalidade do componente Um processo de desenvolvimento voltado para o reuso Padrões de componentes Infelizmente foram estabelecidos vários padrões de componentes concorrentes Enterprise Java Beans da Sun COM e NET da Microsoft CCM da CORBA Na prática esses padrões múltiplos têm dificultado a absorção da CBSE CBSE Component Based Software Engineering Componentes x Objetos Componentes em geral são implementados em linguagem OO Componentes estão prontos para serem implantados Não são compilados mas instalados sobre uma plataforma Componentes são independentes de linguagem Objetos geralmente se comunicam com objetos da mesma linguagem Componentes são padronizados O modelo de componentes restringe a implementação Mesmo desenvolvidos em linguagens diferentes componentes são de fácil integração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Elementos básicos de um modelos de componentes CBSE Component Based Software Engineering 58 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering 59 Especificação de requisitos Análise de componentes Modificação de requisitos Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering Dada uma especificação de requisitos uma busca pelos componentes candidatos para implementar essas especificações é realizada Não existe correspondência exata e os componentes que podem ser usados fornecem apenas uma parte da funcionalidade necessária 60 Especificação de requisitos Análise de componentes Modificação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering Os requisitos são analisados usando as informações sobre os componentes descobertos Eles são modificados para refletir os componentes disponíveis Quando as modificações são impossíveis a atividade de análise de componentes pode ser novamente realizada para buscar soluções alternativas 61 Especificação de requisitos Análise de componentes Modificação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering O framework do sistema é projetado ou um framework existente é reusado Os projetistas levam em consideração os componentes reusados organizando o framework para eles Pode ser necessário projetar algum software novo caso os componentes reusáveis não estejam disponíveis 62 Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering O software que não pode ser adquirido externamente é desenvolvido e os componentes e os sistemas COTS Commercial OffTheShelf Systems são integrados para criar o novo sistema A integração de sistema neste modelo pode ser parte do processo de desenvolvimento em vez de ser uma atividade separada 63 Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Vantagens Reutilização de código Reduz a quantidade de software a ser desenvolvido e consequentemente reduz custos e riscos Leva a entrega mais rápida do software Desvantagens Indisponibilidade de código fonte Algum controle sobre a evolução do sistema será perdido se novas versões dos componentes reusáveis não estiverem sob controle da organização que as utiliza CBSE Component Based Software Engineering 64 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Problemas Confiabilidade do componente como pode um componente sem código fonte disponível ser confiável Certificação de componentes quem vai certificar a qualidade dos componentes Previsão de propriedades emergentes como as propriedades emergentes das composições componentes podem ser previstas Requisitos de compromisso como fazemos a análise de compromisso entre as características de um componente e outro CBSE Component Based Software Engineering 65 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos É uma abordagem que complementa os paradigmas tradicionais como orientação a objetos ao tratar de maneira modular preocupações transversais crosscutting concerns como segurança logging ou gerenciamento de transações Linguagens de suporte geralmente utiliza linguagens específicas ou extensões como AspectJ extensão de Java PostSharp extensão para NET Spring AOP parte do framework Spring em Java Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características Modularidade aprimorada melhora a modularização de preocupações transversais que são funções do sistema espalhadas por vários módulos como logging segurança ou gerenciamento de erros que são encapsuladas em unidades chamadas aspects Separação de preocupações Separation of Concerns isola as funcionalidades que se sobrepõem permitindo que os desenvolvedores trabalhem separadamente nos requisitos principais do sistema e nas preocupações transversais Pontos de junção Join Points define os pontos no programa onde um aspect pode ser aplicado como chamadas de método inicialização de objetos ou acesso a campos Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características Conselhos Advice são ações que devem ser executadas em pontos específicos de junção Existem tipos como before after e around dependendo de quando o conselho será executado em relação ao join points Redução de código repetitivo preocupações transversais centralizadas em aspects eliminam a duplicação de código em diferentes módulos do sistema Facilidade de manutenção alterações em preocupações transversais exigem mudanças em um único lugar no aspects facilitando a evolução do sistema Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas de gerenciamento de transações bancárias aspects são usados para adicionar segurança auditoria e verificação de integridade em transações Plataformas baseadas em Spring Framework Java Spring AOP é amplamente usado em aplicativos empresariais para implementar segurança como autenticação e autorização e gerenciamento de transações Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos Jogos em desenvolvimento de jogos preocupações como detecção de colisão ou registro de dados de depuração podem ser implementadas como aspects Middleware para computação distribuída ferramentas baseadas em AOSD auxiliam no gerenciamento de comunicação controle de erros e segurança em sistemas distribuídos Exemplos de sistemas desenvolvidos com AOSD IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Vantagens Maior modularidade e organização do código Redução da complexidade de sistemas que precisam tratar preocupações transversais Melhor manutenção e evolução de sistemas complexos Desvantagens A curva de aprendizado pode ser íngreme devido à necessidade de entender conceitos específicos como join points e advice Depuração pode se tornar mais difícil especialmente quando o comportamento de aspects interfere em fluxos normais Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São abordagens de desenvolvimento de software que utilizam rigor matemático para especificar projetar verificar e validar sistemas São especialmente usados em sistemas críticos onde erros podem ter consequências graves como sistemas aeroespaciais ferroviários ou dispositivos médicos Modelo de Processos de Métodos Formais Seu uso é motivado pela expectativa de que como em outras disciplinas de engenharia possam contribuir para a confiabilidade e robustez de um projeto executando análises matemáticas apropriadas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Características Uso de notações matemáticas utilizam linguagens matemáticas para especificar e descrever o comportamento esperado do sistema como álgebra lógica formal ou teoria dos conjuntos Especificação rigorosas detalham com precisão os requisitos do sistema reduzindo ambiguidades e inconsistências comuns em descrições textuais Verificação e prova formal permitem provar propriedades do sistema como correção consistência e ausência de determinados tipos de erros por exemplo deadlocks Foco em sistemas críticos são aplicados principalmente em contextos onde segurança confiabilidade e precisão são fundamentais como aeronaves equipamentos médicos e sistemas financeiros IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Características Integração com desenvolvimento tradicional embora baseados em rigor matemático podem ser integrados em processos mais ágeis para tarefas específicas como validação de componentes críticos Custo inicial elevado geralmente exige alto custo inicial tempo e recursos mas reduz custos posteriores de manutenção e correção Ferramentas de suporte Linguagens e ferramentas como Z VDM Vienna Development Method BMethod Alloy TLA e Coq são amplamente usadas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Exemplos de Sistemas Controle de tráfego ferroviário métodos formais foram usados na especificação e verificação do sistema de controle ferroviário da Siemens garantindo segurança em sistemas de sinalização e monitoramento Aeronaves e sistemas aeroespaciais a Airbus utilizou o BMethod no desenvolvimento do sistema de controle do Airbus A340 e A380 reduzindo significativamente erros em software embarcado Dispositivos médicos métodos formais têm sido aplicados no desenvolvimento de software de dispositivos médicos como bombas de insulina e marcapassos para garantir a conformidade com regulamentos rigorosos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Exemplos de Sistemas Sistemas operacionais e segurança o microkernel seL4 um kernel de sistema operacional foi formalmente verificado para provar sua segurança e ausência de falhas críticas Sistemas financeiros bancos e instituições financeiras utilizam métodos formais para validar a correção de transações e prevenir falhas em sistemas bancários Sistemas de votação eletrônica métodos formais foram usados para verificar a segurança e correção de máquinas de votação como o sistema Prêt à Voter IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Vantagens Redução significativa de defeitos Confiabilidade aumentada especialmente em sistemas críticos Possibilidade de validação antecipada antes mesmo da implementação Desvantagens Requer expertise em matemática e lógica Processo inicial mais lento e caro Dificuldade de adoção em equipes com foco em desenvolvimento ágil e rápido IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Embora não exista um processo de software ideal existe espaço para aprimoramento do processo de software em várias organizações Os processos de software podem ser aprimorados por meio da padronização de processo na qual a diversidade é reduzida Modelos de Processos 77 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Os modelos apresentados não são mutuamente exclusivos e podem ser utilizados em conjunto especialmente se o sistema é de grande porte Modelos de Processos 78 Outras variações desses modelos genéricos foram propostos O desenvolvimento formal de sistemas no qual é criado um modelo matemático formal de um sistema IFMA Monte Castelo Departamento de Computação Prof Daniel Lima Modelos Processos Engenharia de Software I 79 Em resumo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Qual Modelo de Processo 80 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividade Construa uma tabela similar a do slide 82 para cada modelo de processo abordado nessa aula considerando os seguintes critérios Pode inserir outros critérios que achar importante Exemplos de critérios 1 Definição de requisitos no início eou durante o processo 2 Tipos de sistemas críticos de uso específico geral etc 3 Análise de risco se contempla ou não 4 Reutilização e Modularização se contempla ou não 5 Uso de prototipação se contempla ou não 6 Usuário no processo no início eou durante o processo 7 Testes durante eou final do processo 8 Custo qual etapa do processo tem maior custo 9 Curto prazo se aplicado ou não 10 Ciclo de vida linear iterativo incremental etc 11 Exemplo de sistema IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 08 Modelagem do Processo Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação Modelagem do Processo de Software Modelos Processos Engenharia de Software I 2 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A importância em descrever o processo de software tem sido discutida na literatura de engenharia de software como uma das formas de suporte À qualidade do produto de software À sistematização das práticas empregadas durante o desenvolvimento Para aumentar a maturidade do processo de software estabelecer uma baseline para avaliação e melhoria Porque modelar o Processo de Software 3 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A descrição de processo de software permite detalhar o processo de software real executado em organizações de desenvolvimento possibilitar que falhas no processo sejam detectadas e corrigidas Modelagem do Processo 4 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A descrição de processos contribui sob vários aspectos no processo de desenvolvimento A padronização do processo é necessária para permitir o treinamento elaboração de guias gerenciamento revisão e automação Com a padronização de métodos cada experiência de projeto pode contribuir para uma melhoria global em uma organização Modelagem do Processo 5 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Processos padronizados provêem uma infraestrutura básica para melhoria avaliação e mensuração Porque tarefas básicas são comuns em muitos projetos de software apenas algumas customizações seriam necessárias para um processo padrão atender à maioria das necessidades de projetos Modelagem do Processo 6 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 7 Fonte wwwlabesufpabr Modelagem do Processo IFMA Monte Castelo Departamento de Computação Exemplos de Ferramentas de modelagem do processo Modelos Processos Engenharia de Software I 8 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Spearmint Software Process Elicitation Analysis Review and Modeling in an Integrated Environment Ferramenta utilizada para descrever processos de software 9 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Promodeller Ebert 2009 UFPE Ferramenta utilizada para descrever processos de software 10 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos BPMNio notação BPMN Ferramenta utilizada para descrever processos de software 11 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos DRAWio inicialmente pensado como editor de fluxogramas Ferramenta utilizada para descrever processos de software 12 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Astah UML e outras modelagens Ferramenta utilizada para descrever processos de software 13 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Diferenças conceituais 14 Fonte httpswwweuaxcombr BPM CBOK v3 Diagrama de Processo Retrata os principais elementos do fluxo de processo omitindo detalhes menores do fluxo de trabalho Mapa de Processo Traz uma visão abrangente dos principais componentes do processo apresentando maior precisão do que um diagrama Inclui além das atividades o relacionamento delas com outros elementos como atores eventos e resultados Modelo de Processo Apresenta alto grau de detalhamento mostrando os recursos envolvidos pessoas informação etc Possibilita a simulação do processo em ambiente virtual o que facilita a análise e entendimento do processo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 15 THE WATERFALL METHOD IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 16 AGILE DEVELOPMENT IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 17 SCRUM IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 18 LEAN DEVELOPMENT IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Facilitar o entendimento humano e a comunicação Apoiar a melhoria do processo Apoiar o gerenciamento do processo Fornecer orientação automatizada para a utilização do processo Apoiar a execução automatizada do processo Propriedades desejáveis das ferramentas e técnicas para modelagem de processos 19 IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 09 Processo de desenvolvimento na realidade Prof Dr Daniel Lima Gomes Jr Profa Dr Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Princípios do Desenvolvimento de Software Processo de desenvolvimento na realidade Roteiro 2 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Princípios do Desenvolvimento de Software Princípios Formalidade Abstração Decomposição Generalização Flexibilização Princípios Formalidade Abstração Decomposição Generalização Flexibilização Maior confiabilidade durante o processo Efeitos benéficos durante a manutenção reutilização portabilidade e entendimento do software Princípios Formalidade Abstração Decomposição Generalização Flexibilização Processo de identificação dos aspectos importantes de um problema no qual os pontos irrelevantes devem ser ignorados Maior confiabilidade durante o processo Princípios Formalidade Abstração Decomposição Generalização Flexibilização Forma de diminuir a complexidade Subdivisão de processos em atividades específicas Princípios Formalidade Abstração Decomposição Generalização Flexibilização A generalização da solução do problema tem maior potencial para permitir reutilização Princípios Formalidade Abstração Decomposição Generalização Flexibilização Aplicase tanto ao processo quanto ao produto O último sofre mudanças e o processo deve ser flexível para assimilálas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de desenvolvimento na realidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Existem vários modelos de processo de software ou paradigmas de engenharia de software Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica Processo de desenvolvimento na realidade 11 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 12 expectativa Processo de desenvolvimento na realidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 13 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 14 Fase de Especificação A funcionalidade do software e as restrições sobre sua operação devem ser definidas O quê Que dados tem que ser processados Que função e desempenho são desejados Que interfaces devem ser estabelecidas Que restrições Etapas Análise do sistema Análise de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 16 Fase de Desenvolvimento Projeto e Implementação É o processo de conversão de uma especificação de sistema em um sistema executável Como Como a estrutura de dados e arquitetura de software são projetadas Como os detalhes procedimentais serão implementados Projeto Engloba a descrição da estrutura de software a ser implementada dos dados que são parte do sistema das interfaces entre os componentes dos algoritmos usados às vezes Envolve a inclusão de formalidades e detalhes Pode envolver o desenvolvimento de vários modelos do sistema em diferentes níveis de abstração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Desenvolvimento dos programas do sistema Atividade pessoal e em geral não segue processo Uso de ferramentas CASE para geração de esqueleto do programa com base no projeto Implementação 19 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades da fase de Desenvolvimento 20 Projeto de arquitetura Especificação abstrata Projeto de interface Projeto de componente Projeto de Estrutura de dados Projeto de algoritmo Arquitetura de sistema Especificação de software Especificação de interface Especificação de componente Especificação de estrutura de dados Especificação de algoritmo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades da fase de Desenvolvimento Codificação Programas Codificação Programas 21 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 22 Fase de Validação O software deve ser validado para garantir que ele faça o que o cliente deseja Como os testes serão realizados Etapas Codificação Realização de testes unitários Realização de testes de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Validação Teste de componente Teste de sistema Teste de aceitação 24 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Validação 25 Usa dados reais Teste de componente Teste de sistema Teste de aceitação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Geralmente o desenvolvimento e teste de componentes são intercalados No caso da abordagem incremental cada incremento deve ser testado à medida que é incrementado Fase de Validação 26 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 27 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Mudanças geram manutenções Correção de erros Adaptação Ampliação Fase de Evolução 28 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Trata de problemas decorrentes de defeitos À medida que falhas ocorrem elas são relatadas à equipe de manutenção que se encarrega de encontrar o defeito que causou a falha e faz as correções nos requisitos análise projeto ou implementação conforme o necessário Esse reparo inicial pode ser temporário visando manter o sistema funcionando Quando esse for o caso mudanças mais complexas podem ser implementadas posteriormente 29 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Às vezes uma mudança no ambiente do sistema incluindo hardware e software de apoio pode implicar em uma necessidade de adaptação 30 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Consiste em realizar mudanças para melhorar algum aspecto do sistema mesmo quando nenhuma das mudanças for consequência de defeitos Isso inclui a adição de novas capacidades bem como ampliações gerais 31 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Consiste em realizar mudanças a fim de prevenir falhas Geralmente ocorre quando um mantenedor descobre um defeito que ainda não causou falha e decide corrigilo antes que ele gere uma falha 32 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Evolução Sommerville 2007 A distinção entre o desenvolvimento e manutenção tem se tornado cada vez mais irrelevante 33 IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 10 RUP Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Rational Unified Process RUP Roteiro 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Modelo de processo derivado do trabalho sobre a Unified Modeling Language UML e do Processo Unificado de desenvolvimento de software associado Rumbaugh et al 1999 Rational Unified Process RUP Modelo de processo derivado do trabalho sobre a Unified Modeling Language UML e do Processo Unificado de desenvolvimento de software associado Rumbaugh et al 1999 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process É um processo genérico derivado da UML e processos associados Utiliza uma abordagem de orientação a objetos em sua concepção É projetado e documentado utilizando o UML para ilustrar os processos Reúne aspectos dos 3 modelos genéricos discutidos previamente Geralmente descrito por 3 perspectivas Uma perspectiva dinâmica que mostra fases no tempo Uma perspectiva estática que mostra atividades do processo Uma perspectiva prática que sugere boas práticas Rational Unified Process RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process As duas principais características do RUP é ser incremental e iterativo Rational Unified Process RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Estabelece o caso do negócio business case e o escopo do sistema É realizado levantamento de requisitos define preços e prazos da entrega do sistema e onde se avalia os possíveis riscos 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Desenvolve um entendimento da extensão do problema e da arquitetura do sistema Elaborasse o plano do projeto especificação de características e arquitetura do sistema São realizadas as análises de riscos e de custo de forma mais aprofundada 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Projeta o sistema programa e testa o sistema 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Implanta o sistema em seu ambiente operacional assegurando que ele esteja disponível aos usuários finais são realizados os testes e o treinamento com os usuários Iteração do RUP Iteração Intrafase Cada fase é iterativa aos resultados desenvolvidos incrementalmente Iteração Interfase Como mostrado pelo loop no modelo RUP o conjunto todo de fases pode ser executado incrementalmente RUP possui disciplinas Modelagem de negócios Requisitos Análise e Design Implementação Teste Implantação Gerenciamento de configuração e mudança Gerenciamento de projeto Ambiente 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Workflows estáticos no RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Workflows estáticos no RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Desenvolver software iterativamente Planejar incrementos baseandose nas prioridades do cliente e entregar as de prioridade mais alta primeiro Gerenciar os requisitos Documentar explicitamente os requisitos do cliente e manter registros de mudanças desses requisitos Usar arquiteturas baseadas em componentes Organizar a arquitetura do sistema como um conjunto de componentes reusáveis Boas práticas do RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Modelar o software visualmente Use modelos de gráficos UML para representar visões dinâmicas e estáticas do software Verificar a qualidade do software Garanta que o software atenda aos padrões de qualidade organizacional Controlar as mudanças do software Gerencie as mudanças no software usando um sistema de gerenciamento de mudanças e ferramentas de gerenciamento de configuração Boas práticas do RUP Fonte httpscacoocom 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Os processos devem incluir atividades para lidar com mudanças O que pode envolver uma fase de prototipação que ajuda a evitar más escolhas nos requisitos e no projeto Os processos devem ser estruturados para evolução e entrega iterativa para que as mudanças possam ser feitas sem causar problemas ao sistema como um todo O Rational Unified Process é um modelo de processo genérico moderno organizado em fases concepção elaboração construção e transição mas que separa as atividades dessas fases requisitos análise e projeto etc Pontos Importantes IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 11 Engenharia de Requisitos Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Engenharia de Requisitos Papéis e Atributos Requisitos e Tipos de Requisitos Roteiro IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Atividades em comum em processos de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos A funcionalidade do software e as restrições sobre sua operação devem ser definidas O quê Que dados tem que ser processados Que função e desempenho são desejados Que interfaces devem ser estabelecidas Que restrições Etapas Análise do sistema Análise de requisitos Fase de Especificação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Papel importante nesta fase Analista de Sistemas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Apelidos do analista Analista de Sistemas Engenheiro de Sistemas Projetistas de SistemasChefe ProgramadorAnalista Papel importante nesta fase IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Executa ou coordena cada uma das tarefas associadas à análise de requisitos de software Comunicase com o pessoal do usuáriocliente a fim de conhecer as características do ambiente existente durante as tarefas de reconhecimento Convoca o pessoal de desenvolvimento durante as tarefas de avaliação e síntese de forma que as características do software sejam corretamente definidas Papel do Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos É o responsável pelo desenvolvimento de uma Especificação de Requisitos de Software geralmente Participa de todas as revisões Papel do Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Facilidade de comunicação Habilidades técnicas Habilidades especiais relativas ao domínio da aplicação Atributos de um bom Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Por que precisamos dos requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Para entender o que o cliente quer Para entender o problema do negócio Para documentar o escopo do projeto e definir suas restrições Para assegurar a qualidade do sistema e a satisfação do cliente Para definir critérios de aceitação e gerenciar as expectativas do cliente Por que precisamos dos requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Um requisito é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir os seus objetivos Pfleeger 2004 As descrições das funções e das restrições são os requisitos do sistema Sommerville 2004 Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Um requisito é descrito como uma propriedade que o sistema deve exibir para resolver algum problema da vida real Swebok 2004 Um condição ou capacidade necessária para um usuário resolver um problema ou alcançar um objetivo IEEE Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos funcionais Requisitos não funcionais Requisitos do Usuário Requisitos do Negócio Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos funcionais Declarações de funções que o sistema deve fornecer como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações E o que o sistema não deve fazer Tipos de Requisitos Tipos de Requisitos Requisitos não funcionais Condições que o software deve atender Qualidades que ele deve ter Requisitos de desempenho tempo real e de modificabilidade Restrições sobre os serviços ou as funções oferecidos pelo sistema Exemplos garantia confiabilidade segurança restrições físicas e operacionais IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos nãofuncionais podem afetar a arquitetura geral de um sistema em vez de componentes individuais Um único requisito nãofuncional como um requisito de proteção pode gerar uma série de requisitos funcionais relacionados que definem os serviços do sistema que são necessários Tipos de Requisitos não funcionais IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Usuário São declarações em linguagem natural e em diagramas sobre as funções que o sistema deve fornecer e as restrições sob as quais deve operar Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Exemplificação vamos considerar o sistema LIBSYS Uma interface única com uma série de bancos de dados antigos Ele permite que os usuários baixem cópias de artigos publicados em revistas jornais e periódicos científicos Requisitos do Usuário Exemplo LIBSYS deve manter acompanhamento de todos os dados exigidos pelas agências de licenciamento de direitos autorais no Reino Unido e em outros lugares Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Estabelecem detalhadamente as funções e as restrições do sistema Tipos de Requisitos Regras Restrições IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Exemplo 1 Ao solicitar um documento ao LIBSYS deve ser apresentado ao solicitante um formulário que registra os detalhes do usuário e da solicitação feita 2 Os formulários de solicitação do LIBSYS devem ser armazenados no sistema durante 5 anos a partir da data da solicitação 3 Todos os formulários devem ser indexados por usuário nome do material solicitado e fornecedor da solicitação Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Exemplo 4 O LIBSYS deve manter um registro de todas as solicitações feitas ao sistema 5 Para materiais aos quais se aplicam os direitos de empréstimo dos autores os detalhes do empréstimo devem ser enviados mensalmente às agências de licenciamento de direitos autorais que se registraram no LIBSYS Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos algumas definições Sommerville Processo de descobrir analisar documentar e verificar as funções e restrições do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos algumas definições Identificação dos serviços metas a serem atingidas e restrições a serem respeitadas através de consultas aos usuários do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Tsui e Karan 2013 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Analistas efetuam a identificação e o agrupamento de requisitos junto aos usuários e clientes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Dificuldades Stakeholders não sabem o que querem do sistema de computador a não ser em termos gerais expressam os requisitos naturalmente em seus próprios termos e com conhecimento implícito de seu trabalho Diferentes stakeholders possuem diferentes requisitos expressos de diferentes formas Fatores políticos podem influenciar os requisitos do sistema Ex gerentes podem solicitar requisitos específicos do sistema para aumentar sua influência na organização Ambiente econômico e de negócios sobre o qual a análise é realizada é dinâmico IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Análise de requisitos Os enunciados dos requisitos são verificados quanto à precisão e eventuais conflitos categorizados priorizados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Os requisitos devem ser definidos e documentados Se necessário alguns devem ser prototipados Ex aspectos de interface Requisitos documentados devem ser revisados pelos usuários Estas três subetapas podem iterar entre elas e a etapa de análise O gerenciamento é essencial IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Envolve a produção de um Documento de Especificação de Requisitos Este documento deve ser acordado e servirá de contrato entre o cliente e a organização de desenvolvimento de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos O Documento de Requisitos deve ser inteligível o mais preciso completo consistente e sem ambiguidades possível analisado e confirmado pelo usuário usado pelos desenvolvedores para a obtenção de um produto que satisfaça aos requisitos organizado de modo que possa ser utilizado pelos clientes de sistema e pelos desenvolvedores de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos O Documento de Requisitos é uma linha de base A partir deste ponto qualquer mudança deve ser gerenciada por um processo de controle de mudanças para evitar o problema da deformação do escopo scope creeping scope creeping é uma das principais causas de estouro de cronograma e custos pois o sistema aumenta de tamanho sem que ninguém perceba Contratação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Consequências negativas da não realização da Engenharia de Requisitos Não há requisitos documentados que sirvam de base para os testes Não há requisitos acordados para controlar a deformação de escopo É muito difícil gerenciar o cronograma e os custos do projeto sem requisitos claros e documentados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Usuários de um Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos As informações no documento de requisitos dependem do tipo de sistema e da abordagem de desenvolvimento usada Normalmente os sistemas desenvolvidos de forma incremental podem possuir menos detalhes no documento de requisitos Os padrões dos documentos de requisitos foram concebidos tendo como exemplo a norma IEEE Esses são aplicáveis principalmente aos requisitos para projetos de engenharia de sistemas de grande porte Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 1 vide modelo disponível no Classroom Introdução Propósito Escopo do produto Definições e abreviações Referências Descrição Geral Funções do produto Características do usuário Restrições gerais Requisitos Específicos Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 2 Sommerville Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 2 Sommerville Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Atividade Classroom Leitura de artigo Arquivo ES Tecnicas Identificacao Requisitospdf Técnicas para identificação de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Os processos usados para a engenharia de requisitos variam muito dependendo do domínio da aplicação das pessoas envolvidas e da organização que desenvolve os requisitos No entanto existe uma série de atividades genéricas comuns a todos os processos Elicitação de requisitos Análise de requisitos Validação de requisitos Gerenciamento de requisitos Na prática engenharia de requisitos é uma atividade iterativa em que estes processos são intercalados Processos de engenharia de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Uma visão em espiral do processo de engenharia de requisitos Processos de engenharia de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos Técnicas de Obtenção de Requisitos Levantamento orientado a Pontos de Vista Workshops Prototipagem Etnografia Entrevistas Questionários Brainstorming JAD Joint Application Design Cenários Casos de uso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Organizam os processos de elicitação e os requisitos usando pontos de vista A abordagem reconhece várias perspectivas e permite descobrir conflitos nos requisitos propostos por diferentes stakeholders Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Primeira etapa identificar os possíveis pontos de vista Nessa etapa os analistas se reúnem com os stakeholders e utilizam a abordagem de brainstorming para identificar os serviços em potencial e as entidades que interagem com o sistema Segunda etapa estruturação de pontos de vista que envolve agrupar pontos de vista relacionados segundo uma hierarquia Serviços comuns estão localizados nos níveis mais altos da hierarquia e herdados por pontos de vista de nível inferior Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista A etapa de documentação do ponto de vista objetiva refinar a descrição dos pontos de vista e serviços identificados O mapeamento de sistema envolve identificar objetos em um projeto orientado a objetos Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Tipos genéricos de pontos de vista Pontos de vista de interação representam pessoas ou outros sistemas que interagem diretamente com o sistema Pontos de vista indiretos representam stakeholders que não usam o sistema diretamente mas que influenciam o sistema de alguma forma Pontos de vista de domínio representam características e restrições do domínio que influenciam os requisitos do sistema Ex Padrões para comunicações entre os bancos no sistema de caixa eletrônico bancário Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Tipos mais específicos de pontos de vista Fornecedores e receptores de serviços do sistema Sistemas que devem interfacear diretamente com o sistema que está sendo especificado Regulamentos e padrões que se aplicam ao sistema Pontos de vista de engenharia que refletem requisitos de pessoas que devem desenvolver gerenciar e manter o sistema Pontos de vista de marketing e negócios externos à organização sistemas baseados na Web ecommerce Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Há a formulação de questões para os stakeholders sobre os sistemas que eles usam e o sistema a ser desenvolvido Os requisitos são derivados das respostas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Tipos Fechadas os stakeholders respondem a um conjunto de perguntas predefinidas Abertas não existe um roteiro predefinido A equipe de engenharia de requisitos explora vários assuntos para desenvolver uma maior compreensão das necessidades dos usuários Em geral os tipos são combinados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Não é uma técnica eficiente para elicitação de conhecimentos sobre os requisitos e restrições organizacionais pois existem relacionamentos sutis de poder e influência entre stakeholders na organização Em geral a maioria das pessoas é relutante em discutir questões políticas e organizacionais que podem afetar os requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Características de entrevistadores eficientes Possuem mente aberta evitam ideias preconcebidas sobre os requisitos e querem ouvir seus stakeholders Induzem os entrevistados a iniciar as discussões com uma questão uma proposta de requisitos ou sugerindo um trabalho conjunto em um protótipo do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos As informações obtidas das entrevistas complementam outras informações sobre o sistema obtidas de documentos observações de usuários etc Esta técnica deve ser utilizada junto com outras para a elicitação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Cenários Engenharia de Requisitos Técnicas de Obtenção de Requisitos As pessoas podem compreender e criticar um cenário de como interagiriam com um sistema de software Cenários podem adicionar detalhes a um esboço da descrição de requisitos O uso de cenários para descrever requisitos é parte dos métodos ágeis como a extreme programming IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Cenários Engenharia de Requisitos Técnicas de Obtenção de Requisitos Deve incluir Uma descrição do que os usuários esperam do sistema no início do cenário Uma descrição do fluxo normal de eventos do cenário Uma descrição do que pode dar errado e como isso é tratado Informações sobre outras atividades que podem ocorrer simultaneamente Uma descrição do estado do sistema no fim do cenário IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Técnica baseada em cenários Notação da Linguagem de Modelagem Unificada UML Unified Modeling Language IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Representado por atores casos de uso relacionamentos entre estes elementos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Ator Representado por um boneco e um rótulo com o nome do ator Cliente IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Um caso de uso é uma funcionalidade do sistema Representado por uma elipse e um rótulo com o nome Cadastrar produto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Relacionamentos Ajudam a descrever os Casos de Uso Ocorrem entre Atores e Casos de Uso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Importante Engenharia de Requisitos é um estágio crítico do processo de software pois os erros nessa fase conduzem a problemas no projeto e implementação IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 12 Desenvolvimento Ágil Prof Dr Daniel Lima Gomes Jr Profa Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 Roteiro Desenvolvimento Rápido de Software Manifesto Ágil Para quê o Desenvolvimento Rápido de Software Os negócios atualmente operam em um ambiente global sujeito a rápidas mudanças Novas oportunidades Novos mercados Mudanças de condições econômicas Surgimento de novos produtos e concorrentes O software é parte de quase todas as operações de negócios Para quê o Desenvolvimento Rápido de Software Em geral os negócios operam em um ambiente de mudanças constantes Dificuldade de propor um conjunto completo de requisitos de software estável Clientes mudam os requisitos inevitavelmente Identificação dos reais requisitos Após a entrega do sistema Experiência inicial dos usuários IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Engenharia de software ágil filosofia princípios de desenvolvimento Como funciona o Processo Defende a satisfação do cliente e a entrega de incremental prévio equipes de projeto pequenas e altamente motivadas métodos informais artefatos mínimos e simplicidade no desenvolvimento Priorizam a entrega mais que análise e projeto mas não desencorajam as atividades a comunicação ativa e contínua entre desenvolvedores e clientes Como funciona o Processo Processos de desenvolvimento rápido são projetados para criar um software útil rapidamente São processos iterativos Intercala a especificação projeto desenvolvimento e testes Software entregue em partes Cada parte inclui uma nova funcionalidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Como funciona o Processo Definir os produtos do sistema Projetar a arquitetura do sistema Especificar incremento do sistema Criar incremento do sistema Validar incremento Entregar sistema final Sistema Completo Não Sim Validar sistema Integrar incremento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Como funciona o Processo Quais são as características Os processos de especificação projeto e implementação são concorrentes Não há detalhamento Minimização da documentação ou gerada automaticamente O sistema é desenvolvido em uma série de incrementos Usuários finais e stakeholders participam da especificação e avaliação de cada incremento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Entrega acelerada Clientes vêem seus requisitos na prática Especificação de novas mudanças Engajamento do usuário com o sistema Envolvimento dos usuários Feedback à equipe desenvolvedora Melhor entendimento dos requisitos Quais são as Vantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Problemas de gerenciamento Grandes sistemas exigem modelos mais estruturados Produção em grandes quantidades não compensa Problemas de contrato Contrato baseado em especificações de sistema Cliente paga por tempo despendido no projeto Desenvolvedores não aceitam contratos com preço fixo Quais são as Desvantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Problemas de validação Minimizar documentação Intercalar especificação e desenvolvimento Problemas de Manutenção As alterações contínuas corrompem a estrutura dos sistemas Dificuldade de compreensão do software Quais são as Desvantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Onde o desenvolvimento rápido de software NÃO é recomendado Em grandes sistemas nos quais o desenvolvimento pode envolver equipes que trabalham em locais diferentes Em sistemas embarcados nos quais o software depende do desenvolvimento de hardware Em sistemas críticos nos quais todos os requisitos devem ser analisados para segurança IFMA Monte Castelo Departamento de Computação Métodos Ágeis Desenvolvimento Ágil Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Métodos Ágeis Em 2001 Kent Beck e mais 16 desenvolvedores produtores e consultores de software que formavam a Aliança Ágil assinaram o Manifesto de Desenvolvimento Ágil de Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil httpmanifestoagilcombrindexhtml Manifesto para o desenvolvimento ágil de software Fonte httpsmediumcomaela IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Estamos descobrindo melhores modos de desenvolvimento de software fazendoo e ajudando outros a fazêlo Por meio desse trabalho passamos a valorizar Indivíduos e interações ao invés de processos e ferramentas Software funcionando ao invés de uma documentação abrangente Colaboração do cliente ao invés de negociação de contratos Resposta a modificações ao invés de seguir um plano Isto é ainda que haja valor nos itens à direita valorizamos mais os itens à esquerda Métodos Ágeis IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Métodos Ágeis Família de metodologias de desenvolvimento que produzem software em pequenas iterações e permitem mudanças maiores em design IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Divisão do trabalho em pequenas partes Liberação do software para o usuário com a maior frequência possível Não tentar concluir o design com muita rapidez de qualquer modo não se sabe o suficiente acerca do sistema no momento Adiar o máximo possível decisões sobre o design Aprimorar o máximo o design existente quando maiores informações forem obtidas Não tentar produzir padrões formais completos e imutáveis logo no início Solicitar informações de feedback retroinformação aos usuários Em geral isso resulta em um sistema melhor ajustado IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Manter comunicação constante e não necessariamente através de documentação formal as pessoas se comunicam melhor informalmente IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Partir do princípio de que os requisitos e o ambiente sofrerão mudanças e tenta encontrar formas apropriadas de lidar com isso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Características É importante assegurar que não haja abuso da metodologia principalmente associada à documentação Se o software liberado precisar ser mantido por um grupo diferente dos desenvolvedores iniciais uma documentação suficientemente detalhada será indispensável IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Algumas metodologias dos Métodos Ágeis Adaptive Software Development Highsmith 2000 Extreme Programming Beck 1999 Beck 2000 Scrum Schwaber e Beedle 2001 Crystal Cockburn 2001 Feature Driven Development Palmer e Felsing 2002 IFMA Monte Castelo Departamento de Computação Principais certificações Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Lista com algumas das principais certificações a Agile Certified Practitioner ACP concebida pelo Project Management Institute PMI é voltada para profissionais de gerenciamento de projetos httpsbrasilpmiorgbrazilCertificationsAndCredentialsPMIACPaspx b APMG International também direcionada a gestores de projetos ágeis de desenvolvimento httpwwwapmginternationalcomenqualificationscertificationsaspx c Strategyex Certificate direcionada a desenvolvedores plenos e gestores de projetos é oferecida pela Twenty Eighty Strategy Execution em parceria com a George Washington University d Professional Scrum Master PSM é a certificação número um no mundo em Scrum recomendada a todo profissional que quer provar seu conhecimento neste método httpswwwscrumorgprofessionalscrumcertificationsprofessionalscrummasteriassessment Principais certificações em metodologias ágeis IFMA Monte Castelo Departamento de Computação Engenharia de Software I Aula 13 Ferramentas CASE Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro CASE ComputerAided Software Engineering Roteiro IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Atividades em comum em processos de software ComputerAided Software Engineering CASE old versions Engenharia de Software Auxiliada por Computador IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Nome dado ao software usado para apoiar as atividades de processo de software como engenharia de requisitos projeto desenvolvimento de programas e testes ComputerAided Software Engineering CASE IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Pela automação de algumas atividades de processo Alguns exemplos Como acontece esse apoio Fonte httpsastahblogcom Alternativas PlantUML LucidChart Umbrello IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais atividades podem ser automatizadas Documentação Tratamento de Requisitos Projeto e Análise Implementação Ferramentas de Revisão e Testes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Aplicações em XML eXtensible Markup Language Tem se tornado um padrão para armazenamento de informações em especial quando se faz a gerência de conteúdo Modo conveniente para registrar dados e metadados Exemplos de uso e aplicações o Editor WYSIWYG gratuito da Altova o iXedit código aberto o XMLFox gratuito o LibreOffice Documentação Fonte da Imagem Wikipedia IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Wiki Passam a ser utilizadas para a gerência de grandes quantidades de informação Exemplo conhecido Wikipedia Permite a criação de um Website uma intranet por exemplo Os dados podem ser mantidos em um banco de dados como o MySQL por exemplo Caráter colaborativo Documentação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Armazenagem e gerenciamento Permite registrar artefatos de diversos tipos como diagramas UML casos de teste ou documentos Exemplos IBM Rational Rose Pro Borland Caliber RM Umbrello Tratamento de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Arquitetura Utilizando UML JDeveloper da Oracle Sun Java Studio Enterprise Astah StarUML Com extensão para SIGs UFV AgoUML Com extensão para SIGs Projeto e Análise IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Arquitetura Astah httpastahchangevisioncomenproductastahcommunityhtml httpsmemberschangevisioncommembersfilesastahcommunity Projeto e Análise Projeto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Documentação de Código Doxigen Para gerar gráficos utiliza a Graphiviz ferramenta gratuita desenvolvida pelo Bell Labs wwwgraphvizorg JavaDoc Implementação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Controle de Versões GIT Hub CVS Concurrent Version System Gratuito Código aberto httpwwwcvshomecom Projeto base para outros sistemas de controle de versão TortoiseCVS em httpwwwtortoisecvsorg TortoiseSVN em httptortoisesvntigrisorg JediCVS Implementação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE bubble Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Balsamiq httpswwwyoutubecomwatchv0mYYqsJrE8 Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Pencil httpspencilevolusvnFeatureshtml Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Figma httpswwwfigmacomfilesteam1108005106924927161recentsandsharingfuid961413097331044150 Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE As revisões e testes são instrumentos de controle de qualidade de um projeto Uma relação de ferramentas para teste de software pode ser encontrada em httpopensourcetestingorg As ferramentas têm aplicação diversa Testes de desempenho Interfaces gráficas GUI Estresse de aplicações web Ferramentas de Revisão e Testes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Ferramentas que podem auxiliar na aplicação de metodologias ágeis em particular a XP VersionOne XPlanner gratuita XPMT gratuita Redmine Apoio a Metodologias IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE O desenvolvimento dos modelos gráficos de sistema como parte da especificação de requisitos ou do projeto de software A compreensão de um projeto por meio de um dicionário de dados A geração de interfaces com o usuário com base em uma descrição de interface gráfica Quais atividades podem ser automatizadas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE O debugging do programa por meio do fornecimento de informações sobre o programa em execução A tradução automática de programas a partir de uma versão antiga de uma linguagem de programação como COBOL para uma versão mais recente Quais atividades podem ser automatizadas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais são os fatores que limitam o aprimoramento pelo uso de CASE Os sistemas CASE existentes automatizam as atividades rotineiras mas as tentativas de aproveitar a tecnologia de inteligência artificial para apoiar o projeto não foram bemsucedidas A engenharia de software é baseada no pensamento criativo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais atividades podem ser automatizadas A tecnologia CASE não pode ajudar muito nesse caso Na maioria das organizações a engenharia de software é uma atividade de equipe e os engenheiros de software passam boa parte do tempo interagindo com outros membros da equipe IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Perspectiva Funcional São classificadas de acordo com suas funções específicas Perspectiva de processo São classificadas de acordo as atividades de apoio que fornecem Perspectiva de integração São classificadas de acordo com sua organização em unidades integradas que apóiam uma ou mais atividades de processo Perspectivas da classificação CASE IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Classificação funcional das ferramentas CASE IFMA Monte Castelo Departamento de Computação Ferramentas CASE para Gerenciamento de Configuração Ferramentas CASE Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Desenvolvimento e uso de padrões e procedimentos para o gerenciamento de sistemas de software em desenvolvimento Gerenciamento de Configuração de Software SCM Software Configuration Management É uma área da engenharia de software responsável por fornecer o apoio para o desenvolvimento de software Principais atribuições controle de versão controle de mudança e auditoria das configurações IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Controla a evolução do sistema de software gerenciando versões dos componentes de software e seus relacionamentos O propósito é identificar todos os componentes do software e controlar sua evolução através das várias fases no ciclo de vida de desenvolvimento Gerenciamento de Configuração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Ferramentas de gerenciamento de configurações são usadas para armazenar versões de componentes do sistema e rastrear releases das versões do sistema O apoio de uma ferramenta CASE é fundamental Gerenciamento de Configuração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Apoio para gerenciamento de mudanças Apoio para gerenciamento de versões Gerenciamento de Configuração

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Engenharia de Software - Questões

3

Engenharia de Software - Questões

Engenharia de Software

IFMA

Engenharia de Software - Modelos de Desenvolv

3

Engenharia de Software - Modelos de Desenvolv

Engenharia de Software

IFMA

Prática de Detalhamento de Caso de Uso

3

Prática de Detalhamento de Caso de Uso

Engenharia de Software

UFPI

Arquitetura de Sw - Eds

33

Arquitetura de Sw - Eds

Engenharia de Software

UFF

Prova Angular - Identificacao de Contextos e Objetivos LIS

1

Prova Angular - Identificacao de Contextos e Objetivos LIS

Engenharia de Software

UFSC

Diagrama de Contexto Arquitetural Fintech BancON - Atividade Pontuada

7

Diagrama de Contexto Arquitetural Fintech BancON - Atividade Pontuada

Engenharia de Software

MULTIVIX

Revisão Sistemática de Literatura

12

Revisão Sistemática de Literatura

Engenharia de Software

UNEB

Texto de pré-visualização

IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 02 Introdução e motivação Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Roteiro Introdução Motivação Exemplos Roteiro 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Anos 40 Engenharia de Software I O ENIAC Electronic Numerical Integrator And Computer foi o primeiro computador eletrônico de uso geral projetado e construído durante a Segunda Guerra Mundial pelo Exército dos EUA O ENIAC usava tubos de rádio de base octal Queima diária dos tubos principalmente durante os períodos de aquecimento e resfriamento Substituir um tubo verificar entre as 19000 possibilidades do ENIAC demorava cerca de 15 minutos para localizar um tubo com defeito 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Anos 70 Engenharia de Software O Altair serviu para demonstrar a grande paixão que a informática podia exercer e que ao contrário do que diziam muitos analistas da época existia sim um grande mercado para computadores pessoais O modelo básico custava apenas 439 dólares na forma de kit os componentes soldados manualmente Foram vendidas 4000 unidades em apenas 3 meses depois que foi capa da revista Popular Eletronics 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Anos 80 Engenharia de Software 1º laptop da Apple 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I O celular no seu bolso é um milhão de vezes mais barato milhares de vezes mais potente e cerca de centenas de milhares de vezes menor do que o computador do MIT de 1965 Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Fonte engineeringmind 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software Ontem Hoje 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Precisamos de Software para isso 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Internet das coisas IFMA Monte Castelo Departamento de Computação Entretenimento IFMA Monte Castelo Departamento de Computação Sistemas embarcados IFMA Monte Castelo Departamento de Computação Complexidade tematica processamento 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Apresentação da disciplina Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Para pensar Tudo é software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Problemas Causados por Software Falha na sonda Mariner em 28071962 185 milhões Interpretação errada do programador O Desastre Mariner um foguete com uma sonda espacial para Vênus foi desviado de seu percurso de voo logo após o lançamento O controle da missão destruiu o foguete 293 segundos após a decolagem Problemas Causados por Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Problemas Causados por Software Linhas da ATT morrem 1990 Custo 75 milhões de ligações perdidas e 200 reservas aéreas perdidas Desastre Um switch dos 114 centros de switches da ATT sofreu um problema mecânico que fez com que todo o seu centro fosse desligado Quando o seu centro voltou à ativa enviou uma mensagem aos outros o que causou o desligamento dos outros centros e deixou a empresa parada por 9 horas Causa Uma única linha de código em uma atualização de software implementada para acelerar chamadas causou um efeito cascata que desligou a rede Problemas Causados por Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Objetivos do projeto não realísticos ou desarticulados Estimativas de necessidade de recursos inexatas Requisitos de sistemas mal definidos Não gerenciamento de riscos Falha na comunicação entre usuários e desenvolvedores Uso de tecnologia imatura Inabilidade de lidar com a complexidade do projeto Gerenciamento de projeto pobre Pressão comercial Porque projetos em geral falham Engenharia de Software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários Desenvolvedor Faça uma interface simples e intuitiva Usuários 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários Usuário sempre acha uma forma inesperada de usar seu software Nunca duvide disso 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Tenho que pensar Em COMO construir software 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Software Tenho que pensar Em COMO construir software E sempre olhar para o usuário Fonte devssmile 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Para descontrair Usuários são usuários computersciencelife 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Guide to the Software Engineering Body of Knowledge também conhecido pela sigla SWEBOK httpwwwswebokorg define 12 áreas de conhecimento em Engenharia de Software Engenharia de Requisitos Projeto de Software Construção de Software Testes de Software Manutenção de Software Gerência de Configuração Gerência de Projetos Processos de Software Modelos de Software Qualidade de Software Prática Profissional Aspectos Econômicos Falando sério O que se Estuda em Engenharia de Software Pierre Bourque um dos dois editores do SWEBOK é reitor de estudos da Escola Superior de Tecnologia da Universidade de Québec 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Para motivação 101017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Porque projetos em geral falham Dica de filmes documentários IFMA Monte Castelo Departamento de Computação Engenharia de Software I Aula 03 Conceitos parte 1 Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos introdutórios O que é Engenharia Tipos de Sistemas Roteiro Imagens httpsunsplashcom 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Mas o que é Engenharia de Software Engenharia de software é um termo com mais de 40 anos Nome proposto em 1969 na conferência da OTAN Para discussão de problemas relacionados ao desenvolvimento de software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Discussão Para construir sistemas corporativos existe uma sopa de letrinhas de tecnologias que oferecem suporte ao desenvolvimento e a implantação de grandes aplicações corporativas J2EE NET SaaS SAP BPEL4WS SOAP CBSE etc O software nos permitiu explorar o espaço e criar a World Wide Web possivelmente um dos mais importante sistemas de informação na história da humanidade Novos problemas mudança climática recursos naturais terrorismo covid19 etc Precisamos de novas tecnologias para ajudar a resolver esses problemas Software possui papel fundamental nessas tecnologias Pergunta Como vocês acham que a engenharia de software pode ajudar nisso Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos As economias de todas as nações desenvolvidas são dependentes de softwares Mais e mais sistemas são controlados por software A engenharia de software se preocupa com teorias métodos e ferramentas para desenvolvimento de softwares profissionais As despesas de software representam uma fração significativa do PIB em todos os países desenvolvidos Eng de Software é uma tecnologia de importância crítica para o futuro da humanidade Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é Engenharia PERGUNTA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é Engenharia Algumas definições Área do conhecimento na qual se busca adquirir e aplicar os conhecimentos matemáticos técnicos e científicos na criação aperfeiçoamento e implementação de utilidades tais como materiais estruturas máquinas aparelhos sistemas ou processos que realizem uma determinada função ou objetivo A palavra deriva de engenho de engenhoso O engenheiro e alguém engenhoso no sentido de que sabe fazer e aquele que faz A pessoa que aplica os conhecimentos teóricos na prática Engenharia 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O que é um Sistema 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Conjunto de elementos interconectados para formar um todo organizado com um objetivo geral a ser atingido Conjunto de elementos concretos ou abstratos intelectualmente organizados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Conjunto intencional de componentes interrelacionados que funcionam juntos para atingir certo objetivo Conjunto identificável e coerente de elementos que interagem coesivamente onde cada elemento pode ser um sistema Sistema 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Naturais Sistemas Estelares galáxias sistemas solares etc Sistemas Geológicos rios cadeias de montanhas etc Sistemas Moleculares organizações complexas de átomos Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas feitos pelo Homem Sistemas Sociais organizações de leis doutrinas costumes etc Sistemas de Transporte redes rodoviárias canais linhas aéreas e semelhantes Sistemas de Comunicação Telefone telex sinais de fumaça sinais manuais etc Sistemas de Manufatura Fábricas linhas de montagem etc Sistemas Financeiros contabilidade inventários livrosrazão controle de estoque etc Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas Automatizados que compreendem Pessoas Aquelas que operam o sistema que fornecem as entradas e utilizam as saídas e as que desempenham atividades de processamento manual em um sistema Dados As informações que o sistema conserva por um período de tempo Procedimentos Determinações e instruções formais para a operação do sistema Tipos de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Hardware de computadores UCP terminais impressoras scanners Software Programas de computador sistemas operacionais sistemas de bancos de dados programas aplicativos que executam as funções desejadas pelo usuário Sistemas Automatizados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos E o que é Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Governo Finanças Treinamento Simulação Locadora Bioinformática Jogos Diversão Saúde Softwares 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Muitos dos sistemas de computadores são substituições ou novas implementações de sistemas nãocomputadorizados que já existem A maioria dos sistemas computadorizados interage ou tem uma interface com vários sistemas existentes computadorizados ou não Para que um sistema computadorizado seja bemsucedido precisase conhecer detalhadamente como o sistema atual se comporta Sistemas computadorizados Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Engenharia de Software O que é Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A engenharia de software é uma disciplina da engenharia que se preocupa com todos os aspectos da produção de software desde o início da especificação do sistema até a manutenção do sistema após esse estar sendo usado Engenharia de Software Sommerville 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Precisamos ser capazes de produzir sistemas confiáveis com economia e rapidamente Geralmente é mais barato no longo prazo usar métodos de engenharia de software e técnicas para os sistemas de software ao invés de escrever os programas sem essas técnicas Para a maioria dos tipos de sistemas a maior parte dos custos são os custos de alterar o software em uso Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Dificuldade Engenharia Civil x Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Cursos Engenharia de Software Ciência da Computação Engenharia da Computação Sistemas de Informação Vagas de empregos designam áreas afins e contemplam todas essas formações Excelentes currículos e formação Especialização MBA Situações comuns Cientista da Computação que trabalha como Software Engineer Engenheiro da Computação que vive de sites Analista de Sistemas que faz pesquisa científica 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Só rindo mesmo 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 04 Conceitos parte 2 Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos a Produtos de Software b Crise do software c Fases Genéricas d Processo de Software Roteiro 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São sistemas de software entregues ao usuário com a documentação que descreve como instalar e usar o sistema Consiste em a Instruções programas de computador quando executadas realizam as funções e têm o desempenho desejado b Estruturas de Dados possibilitam às instruções manipular as informações de forma adequada c Documentação descrevem as operações e uso do produto Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades do processo de software compõem o conjunto de atividades e resultados associados a Especificação clientes e engenheiros definem o software e suas restrições de funcionamento b Desenvolvimento atividade em que o software é projetado e programado c Validação software é verificado para garantia de atender ao que o cliente necessita d ManutençãoEvolução software é modificado para refletir as mudanças de requisitos do cliente e do mercado Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos a Produtos genéricos Produzidos por uma organização de desenvolvimento e vendidos no mercado a qualquer cliente disposto a comprálos Exemplos Jogos Processadores de texto Software CAD Sistemas Gerenciadores de Bancos de Dados Software para propósito específico Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos b Sistemas sob encomenda ou personalizados O software que é encomendado por um cliente específico para atender suas próprias necessidades Produtos de Software Exemplos Sistemas desenvolvidos para apoiar um processo de negócio Sistema de tráfego aéreo Sistemas de controle integrado 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Produtos de Software Sistemas genéricos Sistemas sob encomenda personalizados A especificação é controlada pela empresa ou desenvolvedor que criou o software Decisões sobre as mudanças de software são feitos por quem produz o software A especificação é desenvolvida e controlada pela organização que compra o software e os desenvolvedores devem trabalhar de acordo com essas especificações 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características segundo Pressman É desenvolvido ou projetado por engenharia não manufaturado no sentido clássico Custos concentrados no trabalho de engenharia Não se desgasta Se deteriora pois sofre manutenção provável inclusão de mais erros Possui a sua maioria feita sob medida em vez de ser montada a partir de componentes existentes Entretanto há a proposta da reutilização Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tipos de aplicações novos tipos surgem Standalone locais não precisam estar conectados em rede Interativas baseadas em transações aplicações executadas em computador remoto e acessadas pelos usuários a partir do próprio PC Controle embutido sistemas que controlam hardware Entretenimento uso pessoal para entretenimento Processamento em lotes projetados para processar dados em grandes lotes Modelagem e simulação modelar processos físicos ou situações Coleta de dados coleta dados do ambiente podem ser usados sensores e envia para outros sistemas para processamento Sistemas de sistemas compostos por diversos outros sistemas de software Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Com o decorrer do tempo a demanda por produtos de software aumentou e passaram a ocorrer problemas na elaboração desses Aconteceu o que é conhecido como a Crise do Software The Software Crisis Georgia Tech httpswwwyoutubecomwatchv0b5vp4Z2PKE Produtos de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Estimativas de prazo e custo imprecisas Produtividade das pessoas da área do software não tem acompanhado a demanda por seus serviços Qualidade de software é menos que adequada Crise do Software Quais foram os problemas 1 Algum aluno já desenvolveu software que está atualmente em execução em algum cliente 2 Quais os desafios encontrados e como você realizou o desenvolvimento 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Coletar dados sobre o processo de desenvolvimento de software Insatisfação do cliente Qualidade do software Software de difícil manutenção Crise do Software E outras dificuldades 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Dar um enfoque de Engenharia ao desenvolvimento de software Melhorar as técnicas e ferramentas existentes Promover o desenvolvimento com reutilização tempo e minimização de erros Crise do Software Solução 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Disciplina que reúne metodologías métodos e ferramentas a ser utilizados desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software Engenharia de Software I Conceitos Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A internet é uma plataforma de aplicativos em execução Cada vez mais as organizações estão desenvolvendo sistemas baseados na web ao invés de sistemas locais Usuários cada vez mais não compram softwares mas pagam de acordo com o uso O reuso de softwares é a abordagem dominante para a construção de sistemas baseados na web Interfaces de usuário são limitadas pela capacidade de navegadores web Engenharia de Software Internet 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Termos utilizados na internet Web Services permitem que a funcionalidade da aplicação seja acessada pela internet Computação em nuvem é uma abordagem para a prestação de serviços em que as aplicações são executadas na nuvem de forma transparente ao usuário Sistemas baseados na web são sistemas complexos distribuídos mas os princípios fundamentais da engenharia de software também são aplicáveis a eles assim como para qualquer outro tipo de sistema Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Tecnologia em camadas Constitui a relação entre processo de software e engenharia de software Por definição o processo é parte de um todo chamado engenharia de software Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco na Qualidade Qualquer abordagem de engenharia inclusive a engenharia de software deve ter um compromisso com a qualidade Deve ser a base da engenharia de software Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo Deve ser o alicerce da engenharia de software O processo deve ser um arcabouço estabelecido para a efetiva utilização da tecnologia de engenharia de software É essa camada que mantém as outras unidas e permite o desenvolvimento racional e adequado de softwares Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos Os métodos fornecem a técnica para se desenvolver software de qualidade Constituem um conjunto de tarefas que incluem comunicação análise de requisitos modelagem de projeto construção de programas testes e manutenção Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Ferramentas Fornecem apoio automatizado para o processo de software e os métodos Engenharia de Software Camadas da engenharia de software Fonte Adaptado de Pressman 2011 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco no que será desenvolvido Compreende 03 tarefas principais a Engenharia do sistema b Plano de projeto do software software project planning c Análise dos requisitos do sistema Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Foco em como o software será desenvolvido como os dados serão estruturados e como as funções serão implementadas Como as interfaces serão caracterizadas Como o projeto será traduzido em uma linguagem de programação Como os testes serão feitos Compreende três tarefas principais Projeto do software Geração de código e Testes Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Fase de correção de erros Os tipos principais de manutenção a Corretiva b Adaptativa c Evolutiva d Preventiva reengenharia Fases Genéricas da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Disciplina de engenharia Engenheiros Fazem a aplicação seletiva de teorias métodos e ferramentas Procuram descobrir soluções para os problemas mesmo quando não existem teorias e métodos aplicáveis Trabalham sob restrições organizacionais e financeiras Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Aspectos da produção do software Processos técnicos do desenvolvimento Atividades de gerenciamento de projeto de software Desenvolvimento de ferramentas métodos e teorias que apóiam a produção do software Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Engenharia de sistemas Disciplina mais antiga que a engenharia de software Engloba todos os aspectos do desenvolvimento e da evolução de sistemas complexos em que o software desempenha papel principal Preocupa se não só com o desenvolvimento de hardware do projeto de políticas e processos da implantação de sistemas mas também da engenharia de software Engenharia de software Engenheiros de software tem a responsabilidade direta de construir e manter um sistema de software Diferença entre Engenharia de Software e Engenharia de Sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Em geral a adoção de uma abordagem sistemática e organizada de trabalho é a maneira mais eficaz de produzir software de alta qualidade Engenharia de Software Conceito de Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Conjunto de atividades e resultados associados que produz um produto de software Processo de Software Conceito de Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O processo deve ser aplicado de acordo com o tipo de sistema Exemplos Um software de tempo real de uma aeronave deve ser completamente especificado antes do início do desenvolvimento Em um sistema de comércio eletrônico a especificação e os programas podem ser desenvolvidos em paralelo Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades genéricas podem ser organizadas de diferentes maneiras e descritas em diferentes níveis de detalhamento para diferentes tipos de software O uso de um processo de software inadequado pode Reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido eou Aumentar os custos de desenvolvimento Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São geralmente decompostos em diversas fases etapas ou atividades 1 Planejamento 2 Análise e Especificação de Requisitos 3 Projeto 4 Implementação 5 Testes 6 Entrega e Implantação 7 Operação 8 Manutenção Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividades de apoio que se encontram no entorno das atividades principais 1 Acompanhamento e controle do projeto de software 2 Gestão de risco 3 Garantia da qualidade 4 Revisões Técnicas Formais 5 Medição 6 Gestão de configuração de software 7 Gestão de reusabilidade 8 Preparação e produção do produto de trabalho Processo de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de software define uma abordagem que é adotada quando o software é elaborado Engenharia de software além disso também inclui tecnologias que constituem um processo tais como métodos técnicos e ferramentas automatizadas Processo de Software A engenharia de software e processo de software são a mesma coisa 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel IFMA Monte Castelo Departamento de Computação Atividade 1 Elabore um mapa mental para os conceitos apresentados nesta aula IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 05 Conceitos Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Conceitos a Breve Histórico Métodos e Técnicas de desenvolvimento de sistemas b Métodos de Engenharia de Software c Análise de Sistemas d Atributos de um bom software e Desafios da Engenharia de Software f Responsabilidade Profissional e ética Roteiro 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 60 Textos e fluxogramas para especificar a lógica dos sistemas Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas Polaroid Woodstock Homem na lua 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Meados de 70 Análise Estruturada método que utiliza os componentes e conceitos da programação estruturada Tom DeMarco Gane Sarson Projeto Estruturado método que possibilita a elaboração do Diagrama de Hierarquia de Funções ou Diagrama de Estrutura Modular Yourdon Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 80 surge a abordagem de estrutura de dados como forma de modelar sistemas Método JSD JSD Jackson System Development Métodos de Warnier LCS Lógica de Construção de Sistemas LCP Lógica de Construção de Programas LCO Lógica de Concepção da Organização LDR Lógica de Definição de Resultados Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Anos 90 surge a abordagem orientada a objetos Método FUSION Coleman et al UML Unified Modeling Language Breve Histórico Métodos e Técnicas para o desenvolvimento de sistemas 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Análise de Sistemas Análise de Sistemas Qualquer que seja o método utilizado no desenvolvimento de sistemas o primeiro passo deve ser o de obtenção de requisitos ponto fundamental Diversas técnicas existem para que os dadosinformações sejam obtidos entrevistas questionários observação direta brainstorming entre outras Análise Essencial McMenamin Palmer ou Análise Estruturada Moderna Yourdon pode ser encarada como uma bemsucedida evolução da Análise Estruturada Modelo funcional mostra a perspectiva dos processos de transformação dos dados Modelo de dados mostra a perspectiva que representa os dados que precisam ser armazenados Modelo de controle representa a perspectiva dos controles Tem um papel relevante no caso de sistemas em tempo real 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Evolução dos métodos de análise de sistemas Métodos Abordagens Ferramentas Análise Tradicional Funcional Textos fluxogramas Análise Estruturada Funcional Dados Diagrama de Fluxo de Dados DFD Diagrama de Estrutura de Dados Modelo Conceitual Miniespecificações Normalização Dicionário de Dados Análise Essencial Funcional Dados Controle Lista de Eventos DFD Diagrama EntidadeRelacionamento DER Diagrama de Transição de Estados DTE Normalização Miniespecificações Dicionário de Dados 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos É uma abordagem estruturada para o desenvolvimento de software cujo objetivo é facilitar a produção de um software de alta qualidade dentro de custos adequados Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Análise Estruturada e JSD São orientados a funções Tentam identificar componentes básicos de um sistema Ainda são usados Exemplos Análise Estruturada DeMarco 1978 Análise Estruturada JSD Jackson Systems Development Jackson 1983 Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Exemplo JSD Diagram Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Métodos orientados a objetos e UML Descrevem o sistema como conjuntos de objetos e classes Métodos e atributos são tratados conjuntamente Exemplos Métodos Orientados a Objetos Booch 1994 Rumbaugh et al 1991 tais métodos foram unificados UML Unified Modeling Language Booch et al 1999 Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Exemplo UML Diagram Use Case Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Não existe método ideal para todas as situações Em geral Métodos Orientados a Objetos são apropriados para sistemas interativos mas não para sistemas com requisitos rigorosos de tempo real Métodos de Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Custos da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A distribuição de custos ao longo das atividades do processo de desenvolvimento depende do processo e do tipo de software que está sendo desenvolvido Exemplo Em geral software de tempo real requer validação e testes mais extensos do que sistemas baseados em Web Cada uma das abordagens possui um perfil diferente de distribuição de custos ao longo das atividades do processo de software Custos da Engenharia de Software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Custos da Engenharia de Software Distribuição de custos nas atividades 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos CASE ComputerAided Software Engineering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Diferentes tipos de programas que suportam as atividades do processo de software o Análise de requisitos o Modelagem de sistema o Depuração o Teste CASE ComputerAided Software Engeneering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Os métodos vêm com uma tecnologia CASE associada o Editores para as notações utilizadas o Geradores de relatório para auxiliar na criação da documentação do sistema o Podem incluir gerador de códigofonte com base no modelo do sistema CASE ComputerAided Software Engeneering 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atributos de um bom software e Desafios da ES Atributos de um bom software Demonstram a qualidade do software desenvolvido Não se referem diretamente ao que o software faz Refletem o comportamento do software enquanto ele está em execução A estrutura e a organização dos programasfonte Documentação associada O conjunto de atributos dependem da aplicação do software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Facilidade de Manutenção o O software deve ser escrito de modo que possa evoluir para atender às necessidades de mudança dos clientes o É um atributo fundamental pois a mudança de software é uma consequência inevitável de um ambiente de negócios em constante mutação Confiança o O nível de confiança de um software possui características como confiabilidade proteção e confiança o Um software confiável não pode causar danos físicos ou econômicos no caso de falha de sistemas Atributos de um bom software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Eficiência o O software não deve desperdiçar recursos do sistema como memória e ciclos do processador o Inclui tempo de resposta tempo de processamento utilização de memória etc Usabilidade o O software deve ser usável sem esforço excessivo pelo tipo do usuário para o qual ele foi projetado o O software deve apresentar interface como o usuário e documentação adequadas Atributos de um bom software 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O desafio da heterogeneidade O desafio da entrega O desafio da confiança Desafioschave da Engenharia de software Desafioschave da Engenharia de software O desafio da heterogeneidade Desenvolvimento de sistemas de software que operem com sistemas em rede que incluem diferentes tipos de computadores com diferentes sistemas de apoio Integração de novos sistemas com sistemas antigos escritos em diferentes linguagens de programação O desafio consiste em desenvolver técnicas para a construção de software confiável que seja flexível o suficiente para adaptarse a essa heterogeneidade Desafioschave da Engenharia de software O desafio da entrega Técnicas demandam tempo para a obtenção de uma boa qualidade de software Tempos de resposta ágeis e que mudem rapidamente são requeridos Consiste em diminuir os tempos de entrega dos sistemas grandes e complexos sem comprometimento de sua qualidade 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos O desafio da entrega Desafioschave da Engenharia de software Instagram purepython Desafioschave da Engenharia de software O desafio da confiança A confiança em um software é fundamental Exemplo forte sistemas remotos acessados através de página Web como bancos e lojas Consiste em desenvolver técnicas que demonstrem que o software pode ter a confiança de seus usuários 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Responsabilidade profissional e ética 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos A engenharia de software está dentro de uma estrutura de condições legais e sociais que limita a liberdade do engenheiro O trabalho do engenheiro implica responsabilidades mais amplas do que a aplicação de habilidades técnicas Comportamento ético é mais do que simplesmente agir em concordância com a lei envolve seguir um conjunto de princípios moralmente corretos Responsabilidade profissional e ética Responsabilidade profissional e ética Padrões de comportamento aceitável estão limitados por uma tênue noção de responsabilidade profissional Confidencialidade Competência Direitos sobre propriedade intelectual Mau uso de computadores Responsabilidade profissional e ética Confidencialidade Respeito à confidencialidade de funcionários ou clientes independente de ter ou não assinado acordo formal Competência Não desvirtuar o nível de competência ou seja o engenheiro não deve conscientemente aceitar um trabalho que esteja fora de sua competência Engenheiros não devem falsear seus níveis de competência Fato importante Leitura LGPD o que muda na prática com a Lei 1370918 Disponível em httpswwwpwccombrptsaladeimprensaartigoslgpdmudapraticaplc53html Lei httpwwwplanaltogovbrccivil03ato201520182018leiL13709htm LGPD o que muda na prática com a Lei 1370918 O Brasil passa a fazer parte do grupo de países que possuem uma Lei Geral de Proteção de Dados Responsabilidade profissional e ética Direitos sobre propriedade intelectual Estar ciente das regras de patente e direitos autorais para proteger a propriedade intelectual de funcionários e clientes Mau uso de computadores O mau uso de computadores varia desde a execução de jogos na máquina do funcionário até a disseminação de vírus por exemplo 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sociedades e instituições profissionais definem padrões de ética que devem ser seguidos por seus associados e engenheiros de software em geral Responsabilidade profissional e ética Institute of Electrical and Electronic Engineers Responsabilidade profissional e ética Código de ética e práticas profissionais da engenharia de software Forçatarefa conjunta da ACMIEEECS para ética e práticas profissionais da engenharia de software 1 Prefácio Esta versão reduzida do código resume as aspirações em um alto nível de abstração as cláusulas que estão inclusas na versão completa fornecem exemplos e detalhes de como essas aspirações mudam a forma como agimos enquanto profissionais de engenharia de software Sem as aspirações os detalhes podem se tornar legalistas e tediosos sem os detalhes as aspirações podem se tornar altissonantes porém vazias juntos as aspirações e os detalhes formam um código coeso Os engenheiros de software devem se comprometer a fazer da análise especificação projeto desenvolvimento teste e manutenção de software uma profissão benéfica e respeitada Em conformidade com seu comprometimento com a saúde a segurança e o bemestar públicos engenheiros de software devem aderir a oito princípios Responsabilidade profissional e ética 2 Princípios éticos PÚBLICO Engenheiros de software devem agir de acordo com o interesse público CLIENTE E EMPREGADOR Engenheiros de software devem agir de maneira que seja do melhor interesse de seu cliente e empregador e de acordo com o interesse público PRODUTO Engenheiros de software devem garantir que seus produtos e modificações relacionadas atendam aos mais altos padrões profissionais possíveis JULGAMENTO Engenheiros de software devem manter a integridade e a independência em seu julgamento profissional Responsabilidade profissional e ética 2 Princípios éticos GERENCIAMENTO Gerentes e líderes de engenharia de software devem aceitar e promover uma abordagem ética para o gerenciamento de desenvolvimento e manutenção de software PROFISSÃO Engenheiros de software devem aprimorar a integridade e a reputação da profissão de acordo com o interesse público COLEGAS Engenheiros de software devem auxiliar e ser justos com seus colegas SI PRÓPRIO Engenheiros de software devem participar da aprendizagem contínua durante toda a vida e devem promover uma abordagem ética para a prática da profissão Responsabilidade profissional e ética Dilemas éticos Desacordo em princípio com as políticas da gerência Seu empregador age de forma antiética e libera um sistema crítico de segurança sem terminar os testes do sistema Participação no desenvolvimento de sistemas de armas militares ou sistemas nucleares 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Historinha muito comum Responsabilidade profissional e ética 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos BACHARELADO EM SISTEMAS DE INFORMAÇÃO Prometo no exercício profissional como bacharel em Sistemas de Informação ser fiel aos preceitos da honra e da ciência promovendo o uso e o desenvolvimento da informática em benefício do cidadão e da sociedade jamais me esquecendo de que trabalho para o bem do homem e não da máquina Assim prometo Portal do IFMA Fonte httpsportalifmaedubrwpcontentuploads201509AnexoIIIMANUALDEEVENTOSpdf Juramentos de cursos de Sistemas de Informação 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos BACHARELADO EM SISTEMAS DE INFORMAÇÃO Juro perante Deus e a Sociedade que me recebe hoje como Bacharel em Sistemas de Informação que no exercício da minha profissão serei fiel aos princípios da ética e da honestidade fazendo da ciência um instrumento de planejamento e construção criando estruturas que levem as instituições aos seus propósitos jamais esquecendome de que trabalho para o bem do homem e não da máquina e assim auxiliar no desenvolvimento da nossa pátria e na integração das nações Perante Deus e a Sociedade assim eu juro UNIC Fonte httpwwwuniccombrSiteAssetsJuramentodeSistemadeInformaC3A7C3A3opdf Juramentos de cursos de Sistemas de Informação 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Trapaça em Harvard A adoção do código de honra ocorreu após um escândalo em 2012 Durante uma prova mais de 100 estudantes foram investigados por colar e cerca de 70 foram sancionados O que realmente sacudiu a instituição foi a magnitude da desonestidade que representou uma mancha na reputação de uma universidade acostumada a ocupar os primeiros postos dos rankings mundiais e onde estudaram oito presidentes dos EUA Leitura interessante Fonte httpwwwbbccomportuguesenoticias201511151123harvardtrapacalab Esperase desempenho excepcional não há nada mal nisso Há algumas pessoas que estão tão motivadas para obter bons resultados que acabam cruzando a linha 161017 IFMA Monte Castelo Departamento de Computação Prof Daniel L IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos TEDx Talk What really motivates people to be honest in business Fonte httpswwwtedcomtalksalexanderwagnerwhatreallymotivatespeopletobehonestinbusiness IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 05 Sistemas de Software Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Apresentar a idéia de Sistemas sociotécnicos Sistemas legados Sistemas críticos Sistemas complexos Confiança do sistema Conceitos e Terminologias Roteiro 2 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Sociotécnicos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Cômico se não fosse trágico Fonte httpvidadeprogramadorcombr 4 Sistemas Sociotécnicos Sistema Social de uma organização São todos os seres humanos que trabalham nela com todas as suas características psicológicas e sociais como valores educação e necessidades Sistemas Sociotécnicos Sistema Técnico de uma organização As ferramentas técnicas dispositivos artefatos métodos configurações procedimentos e conhecimento utilizado pelos membros da organização para perceber entradas transformar as entradas em saídas e prover estas saídas por exemplo serviços para clientes eou consumidores Pasmore 1988 O sistema técnico é a maneira pela qual a organização transforma entradas em saída Sistemas Sociotécnicos Abrangem um ou mais sistemas técnicos e também pessoas operadores como partes inerentes ao sistema Os trabalhadores passam a ser considerados o centro do processo Em geral são não determinísticos Nem sempre apresentam as mesmas saídas mesmo possuindo as mesmas entradas pois o comportamento do sistema depende de operadores humanos IFMA Monte Castelo Departamento de Computação 7 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas A pilha de sistemas sociotécnicos Sistemas Sociotécnicos e Engenharia de Software 8 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Equipamento Dispositivos de hardware alguns podendo ser computadores A maioria dos dispositivos incluirá algum tipo de sistema embutido Sistema operacional Fornece um conjunto comum de recursos para os níveis mais altos do sistema Comunicações e gerenciamento de dados Middleware que fornece acesso a sistemas remotos e bancos de dados Sociedade Organização Processos de negócio Sistema de aplicação Comunicações e gerenciamento de dados Sistema operacional Equipamento IFMA Monte Castelo Departamento de Computação 9 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Sistemas de aplicação Funcionalidade específica para atender a algum requisito da organização Processos de negócio Um conjunto de processos envolvendo pessoas e sistemas de computador que mantêm as atividades do negócio Sociedade Organização Processos de negócio Sistema de aplicação Comunicações e gerenciamento de dados Sistema operacional Equipamento IFMA Monte Castelo Departamento de Computação 10 Sistemas Sociotécnicos e Engenharia de Software Camadas da pilha de sistemas sociotécnicos Organização Atividades estratégicas de negócio de nível mais alto que afetam a operação do sistema Sociedade Leis regulamentações e a cultura que afetam a operação do sistema 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Legados Engenharia de Software I Sistemas Sistemas Legados São sistemas baseados em computadores que foram desenvolvidos no passado frequentemente usando tecnologias mais antigas e obsoletas Incluem hardware software processos e procedimentos legados Velhas formas de fazer as coisas que dificilmente são mudadas porque estão baseadas em software legado Em geral são críticos de negócios e sua substituição representa riscos para os negócios 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Exemplos Sistemas de contas de clientes de banco Sistemas militares estimativa de tempo 20 anos Sistemas de controle de tráfego aéreo atuais contam com software e operacionais desenvolvidos nas décadas de 1960 e 1970 Porque continuam a existir Sistemas Legados É muito oneroso e muito arriscado descartar tais sistemas críticos de negócio após poucos anos de uso 14 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Críticos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Sistema no qual a confiança é a propriedade mais importante Sistema onde falhas podem resultar em perdas econômicas significativas danos físicos ou ameaças à vida humana Sistemas Críticos 16 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas São sistemas técnicos ou sociotécnicos dos quais as pessoas ou os negócios dependem Sistemas Críticos 17 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos 18 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos Sistema cuja falha pode resultar em prejuízo perda de vida ou danos sérios ao ambiente Exemplo de sistema crítico de segurança Sistema de controle de uma fábrica de produtos químicos 19 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Tipos principais de sistemas críticos de segurança de missão de negócios Engenharia de Software I Sistemas Sistemas Críticos Sistema cuja falha pode resultar em problema em alguma atividade dirigida a metas Exemplo de sistema crítico de missão Sistema de navegação de uma nave espacial 20 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Tipos principais de sistemas críticos de segurança de missão de negócios Engenharia de Software I Sistemas Sistemas Críticos 21 Voyager objetivo da missão explorar Júpiter Saturno Urano e Netuno Problemas Interrupção de Comunicação Em uma reconfiguração de rotina um comando incorreto deixou a sonda sem capacidade de comunicação por um curto período A falha foi corrigida remotamente Pane nos giroscópios Houve problemas em sensores e giroscópios que ajudam na orientação da sonda Esses sistemas se tornaram menos confiáveis ao longo dos anos exigindo ajustes frequentes nos comandos Pálido ponto azul Fotografia da Terra em 14 de fevereiro de 1990 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Sistemas Críticos 22 Olhem de novo esse ponto É aqui é a nossa casa somos nós Nele todos a quem ama todos a quem conhece qualquer um sobre quem você ouviu falar cada ser humano que já existiu viveram as suas vidas O conjunto da nossa alegria e nosso sofrimento milhares de religiões ideologias e doutrinas econômicas confiantes cada caçador e coletor cada herói e covarde cada criador e destruidor da civilização cada rei e camponês cada jovem casal de namorados cada mãe e pai criança cheia de esperança inventor e explorador cada professor de ética cada político corrupto cada superestrela cada líder supremo cada santo e pecador na história da nossa espécie viveu ali em um grão de pó suspenso num raio de sol Carl Sagan 1994 astrobiólogo astrofísico escritor etc Pálido ponto azul Fotografia da Terra em 14 de fevereiro de 1990 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Tipos principais de sistemas críticos de segurança de missão de negócios Sistemas Críticos Sistema cuja falha pode resultar em custos muito altos para o negócio que usa esse sistema Exemplo de sistema crítico de negócios Sistema de contabilidade de clientes de um banco 23 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas O termo confiança se relaciona com disponibilidade confiabilidade segurança e proteção Razões para que a confiança seja a principal propriedade Sistemas não confiáveis inseguros ou desprotegidos são frequentemente rejeitados por seus usuários Os custos de falha de um sistema podem ser muito altos Sistemas não confiáveis podem causar perda de informações Confiança em sistemas críticos 24 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Em geral são utilizadas técnicas sedimentadas ao invés de técnicas mais recentes que ainda não foram submetidas a ampla experiência prática Técnicos são mais conservadores Técnicas onerosas de engenharia de software não adequadas a sistemas não críticos podem ser utilizadas Exemplo Métodos matemáticos formais para o desenvolvimento de software foram usados com sucesso em sistemas críticos de segurança e proteção reduzem quantidade de testes necessários Técnicas utilizadas em sistemas críticos 25 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Em geral os custos de verificação e validação são muito altos Mais de 50 do custo total de desenvolvimento Enquanto operadores podem ajudar a superar problemas eles podem também causar problemas ao cometerem erros Técnicas utilizadas em sistemas críticos 26 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Componentes de falhas em sistemas críticos Operadores humanos Hardware Software 27 Componentes de falhas em sistemas críticos Hardware Pode falhar em função de erros de projeto de falha dos componentes resultante de erros de fabricação ou desgaste de vida útil de componentes Software Pode falhar por causa de erros em sua especificação projeto ou implementação Operadores Humanos Podem falhar em operar o sistema corretamente São a maior causa de falhas no sistema pois o hardware e o software tornaramse mais confiáveis 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas As falhas podem estar interrelacionadas Uma falha em um componente de hardware pode fazer com que os operadores do sistema tenham que enfrentar uma situação inesperada e uma carga adicional de trabalho com mais pressão Pessoas sob pressão cometem mais erros Isso pode causar falha de software mais trabalho para os operadores mais pressão Componentes de falhas em sistemas críticos 29 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Sistemas Complexos Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas o Um sistema é uma coleção intencional de componentes interrelacionados que funcionam juntos para alcançar algum objetivo em comum o Um sistema pode incluir software hardware mecânico elétrico e eletrônico e ser operado por pessoas o Os componentes do sistema são dependentes de outros componentes do sistema o As propriedades e o comportamento dos componentes do sistema estão intrinsicamente interligados O que gera complexidade Sistemas complexos 31 Sistemas Sociotécnicos e Engenharia de Software Engenharia de software é crítica para o desenvolvimento de sistemas sociotécnicos complexos baseados em computadores O engenheiro de software a Não deve se preocupar apenas com o software em si b Deve ter um conhecimento mais abrangente de como esse software interage com outros sistemas de software e hardware e como se supõe que ele seja usado Tal conhecimento ajuda a compreender os limites do software para poder projetálo melhor e participar como um membro atuante de um grupo de Engenharia de Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Confiança do Sistema e Terminologias Engenharia de Software I Sistemas 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema 34 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de fornecer serviços quando solicitados 35 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de fornecer serviços conforme especificado 36 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Erro Humano ou engano Comportamento humano que resulta na introdução de defeitos em um sistema Pode levar a inclusão de uma falha no sistema fazendo com que o mesmo não funcione corretamente ou apresente resultados incorretos Tamashiro 2010 Terminologia de confiabilidade 37 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Defeito Pode ocorrer devido a omissão de informações definições de dados ou comandosinstruções incorretas dentre outros fatores Se um determinado defeito não for encontrado pode causar uma falha no funcionamento do software Tamashiro 2010 Exemplo Falha em iniciar uma variável pode levar a um valor errado quando esta for usada Terminologia de confiabilidade 38 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Falha Ocorre quando um programa não se comporta conforme o esperado ou apresenta resultados diferentes do planejado IEEE 1983 Um evento que ocorre em algum momento quando o sistema não fornece um serviço conforme esperado por seus usuários É considerada uma propriedade do sistema em execução Terminologia de confiabilidade 39 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Terminologia de confiabilidade 40 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Terminologia de confiabilidade 41 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de operar sem falhas catastróficas 42 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema 43 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Acidente ou desgraça Evento ou sequência de eventos não planejados que resulta em morte ou ferimento de humanos danos à propriedade ou ao ambiente Exemplo Máquina controlada por computador que fere um operador Terminologia de segurança 44 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Perigo Condição com potencial para causar ou contribuir para um acidente Exemplo Falha em um sensor que detecta obstáculo na frente de uma máquina Terminologia de segurança 45 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Dano Medida de perda resultante de um acidente Exemplo Varia desde a morte de pessoas até danos à propriedade Severidade do perigo Avaliação pior do dano possível que poderia resultar em determinado perigo Exemplo Pode variar desde catastrófica onde várias pessoas morrem até danos de pouca importância Terminologia de segurança 46 Terminologia de segurança Probabilidade de perigos Probabilidade de ocorrência de eventos que criam um risco Tais valores tendem a ser arbitrários Exemplo variam de provável chance de 1100 de ocorrência do risco a implausível não existem condições nas quais o risco possa ocorrer Risco Medida da probabilidade de que o sistema causará um acidente É avaliado considerandose a probabilidade do perigo a severidade do perigo e a probabilidade de que o perigo resulte em um acidente 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Disponibilidade Confiabilidade Segurança Proteção Confiança do sistema Capacidade do sistema de protegerse contra intrusões acidentais ou intencionais 48 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Exposição Provável perda ou dano no sistema computacional Pode ser perda ou danos nos dados tempo ou esforço se a recuperação é necessária após uma brecha na proteção Vulnerabilidade Uma fraqueza no sistema baseado em computador que pode ser explorada para causar perda ou dano Ataque Uma exploração de vulnerabilidade do sistema Em geral parte de fora do sistema e é uma tentativa deliberada de causar perda ou dano Terminologia de proteção 49 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação Engenharia de Software I Sistemas Ameaças Circunstâncias que têm potencial para causar perda ou dano Vulnerabilidade do sistema que está sujeita a um ataque Controle Uma medida de proteção que reduz uma vulnerabilidade do sistema Exemplo Criptografia que reduz a vulnerabilidade de um sistema fraco de controle de acesso Terminologia de proteção 50 141117 IFMA Monte Castelo Departamento deComputação Prof Daniel Li IFMA Monte Castelo Departamento de Computação 51 Atividade Construa um mapa mental sobre os conteúdos desta aula IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 06 Modelos e Processos Prof Dr Daniel Lima Gomes Jr Profa Dr Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Processo de Software Paradigmas ou Modelos de Processos Cascata Desenvolvimento Paralelo V Incremental Evolucionário CBSE Orientado a Aspectos Métodos Formais Roteiro 2 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Engenharia de Software Disciplina de engenharia relacionada com todos os aspectos da produção de software desde os estágios iniciais de especificação do sistema até sua manutenção 4 Engenharia de Software tem 3 elementos fundamentais Métodos como fazer Ferramentas apoio automatizado aos métodos Modelos elo entre os métodos e o Processo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 5 A Engenharia de Software encontrase no mais alto nível Camadas de Tecnologias usadas no desenvolvimento de software IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Definição Processo de Software Um conjunto estruturado de atividades necessárias para desenvolver um sistema de software Existem vários processos de desenvolvimento de software diferentes mas todos envolvem especificação projeto e implementação validação evolução ou manutenção IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Conjunto de atividades métodos práticas e transformações que guiam pessoas na produção de software Um processo eficaz deve claramente considerar as relações entre as atividades os artefatos produzidos no desenvolvimento as ferramentas e os procedimentos necessários e a habilidade o treinamento e a motivação do pessoal envolvido Processo de Software Falbo 2005 7 Processo de Software Atividades genéricas podem ser organizadas de diferentes maneiras descritas em diferentes níveis de detalhamento para diferentes tipos de software O uso de um processo de software inadequado pode Reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido eou Aumentar os custos de desenvolvimento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos São geralmente decompostos em diversas fases etapas ou atividades 1 Planejamento 2 Análise e Especificação de Requisitos 3 Projeto 4 Implementação 5 Testes 6 Entrega e Implantação 7 Operação 8 Manutenção Processo de Software 9 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades de apoio que se encontram no entorno das atividades principais 1 Acompanhamento e controle do projeto de software 2 Gestão de risco 3 Garantia da qualidade 4 Revisões Técnicas Formais 5 Medição 6 Gestão de configuração de software 7 Gestão de reusabilidade 8 Preparação e produção do produto de trabalho 9 Interação Humano Computador Processo de Software 10 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Descrições de processo de software Quando descrevemos e discutimos processos geralmente falamos sobre as atividades desses processos tais como especificação de modelo de dados desenvolvimento de interface de usuário etc e organização dessas atividades Processo de Software Processo de Software As descrições de processos também podem incluir Produtos resultados de uma atividade do processo Papéis responsabilidades das pessoas envolvidas Pré e póscondições declarações que são verdadeiras antes e depois de uma atividade do processo ser executada ou um produto produzido IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Paradigmas ou Modelos de Processo de Software Modelo de Processo de Software Um modelo de processo de desenvolvimento de software é uma representação simplificada de um processo de software Ex Um modelo de atividade do processo pode mostrar as atividades e sua sequência mas não mostrar os papéis das pessoas envolvidas Apresenta uma descrição do processo de uma perspectiva em particular Especificam atividades que devem ser executadas bem como a ordem de execução Paradigmas ou Modelos de Processos Existem vários modelos de processo de software ou paradigmas de engenharia de software Alguns modelos são mais adequados que outros para determinados tipos de aplicação A opção por um determinado modelo deve ser feita considerandose o produto a ser desenvolvido Incluem atividades que fazem parte do processo de software os produtos de software e os papéis das pessoas envolvidas na engenharia de software Modelos de Processos de Software Modelos Prescritivos Modelo Cascata Modelos de Processo Incremental Modelos de Processo Evolucionário Prototipagem Modelo Espiral Modelos de Processo Especializado Engenharia de software baseada em componentes CBSE Component Based Software Engineering Modelo de métodos formais Conjunto de atividades conduzem a uma especificação formal do software Desenvolvimento de Software Orientado a Aspectos Processo Unificado RUP Processo genérico moderno Modelo Cascata É o paradigma mais antigo e o mais amplamente usado da Engenharia de Software Também conhecido como Ciclo de Vida de Software ou Modelo Sequencial Linear Desenvolvimento Sequencial embora se possa retornar para fase anterior Depois que cada estágio é concluído o desenvolvimento prossegue para o estágio seguinte IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Considera as atividades apresentadas anteriormente e as representa como fases separadas do processo 1 Planejamento 2 Análise 3 Projeto 4 Implementação Cada fase produz como resultado um ou mais documentos Modelo Cascata 18 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata 19 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Os serviços restrições e objetivos do sistema são definidos por meio de consultas aos usuários do sistema 20 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Os serviços restrições e objetivos do sistema são definidos por meio de consultas aos usuários do sistema 21 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata O processo de projeto de sistema divide os requisitos em sistemas de hardware ou de software Ele estabelece uma arquitetura geral do sistema Envolve a identificação e a descrições das abstrações fundamentais do sistema de software e suas relações 22 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Nesta etapa o projeto é realizado como um conjunto de programas ou unidades de programa Os programas são integrados e testados como um sistema completo para garantir que os requisitos de software foram atendidos Após os testes o sistema de software é liberado para o cliente 23 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Doc de Especificação de Requisitos Doc de Especificação de Projeto Coleção de Programas Implementados e Testados Doc com informações iniciais do Sistema 24 Modelo Cascata Limitações Os projetos reais raramente seguem o fluxo sequencial e topdown que propõe o modelo Sempre ocorrem interações e às vezes existem problemas na aplicação do paradigma É difícil tanto para o cliente como para o analista estabelecer no principio explicitamente todos os requisitos Ciclo de vida clássico tem dificuldades em expressar possíveis incertezas do cliente e do analista A versão funcional da aplicação somente estará disponível nas etapas finais do desenvolvimento do projeto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Deve ser usado apenas quando os requisitos forem bem compreendidos e houver pouca probabilidade de mudanças radicais durante o desenvolvimento do sistema Reflete o tipo de modelo de processo usado em outros projetos de engenharia Modelo Cascata 26 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Há duas variantes Desenvolvimento Paralelo Modelo V Variantes do Modelo Cascata 27 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Desenvolvimento Paralelo 28 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Um projeto geral ou concepção é criado e dividido em uma série de subprojetos distintos que pode ser concebidos e em paralelo Após a conclusão destes há a integração final do das partes separadas Modelo Cascata Desenvolvimento Paralelo 29 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Vantagem a Reduz o tempo de distribuição do sistema Diminui as chances de as alterações que ocorrem no ambiente da empresa causarem retrabalho Limitações a Problemas ocasionados pelos volumosos produtos resultantes b Se os projetos não forem completamente independentes as decisões de concepção design tomadas em um subprojeto pode afetar outro Isto dificulta a integração dos subprojetos Modelo Cascata Desenvolvimento Paralelo 30 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V 31 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Prossegue para baixo na linha inclinada definindo requisitos e determinando componentes do sistema 32 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Na base do V o código é escrito 33 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Na linha inclinada para cima São realizados os testes dos componentes testes de integração testes do sistema e testes de aceitação do sistema 34 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo Cascata Modelo V Um conceito fundamental neste modelo é que quando os requisitos forem especificados e os componentes determinados os testes destes elementos também ficarão definidos Cada nível de teste é relacionado com uma fase da Análise ou Projeto Isso maximiza a efetividade dos testes 35 Modelo Cascata Modelo V Vantagens É direto e melhora a qualidade dos sistemas por intermédio da ênfase no planejamento precoce dos testes O foco e a prática dos testes estão presentes na fase inicial do projeto Desvantagem Ainda sofre com a rigidez do desenvolvimento em cascata Não se mostra apropriado para a natureza dinâmica do ambiente empresarial IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Clientes identificam os serviços mais e menos importantes definindo um número de entrega de incremento Serviços de mais alta prioridade são entregues primeiro O primeiro incremento é um produto essencial onde os requisitos básicos são atendidos Modelos de Processo Incremental 37 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelo de Processo Incremental 38 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Isto ajuda a conhecer os requisitos dos incrementos posteriores e das versões atual Modelo de Processo Incremental Após a conclusão e entrega de um incremento este é posto em operação clientes podem experimentar parte da funcionalidade do sistema de software 39 Modelo de Processo Incremental Vantagens 1 Clientes não precisam esperar até a entrega do sistema inteiro para se beneficiar dele O 1º incremento satisfaz os requisitos mais críticos 2 Clientes podem usar os incrementos iniciais como protótipos e ganhar experiência 3 Existe um risco menor de falha geral do projeto 4 Como os serviços de prioridade mais alta são entregues primeiro e os incrementos posteriores são integrados a eles os sistemas mais importantes recebem mais testes os clientes têm menos probabilidade de de encontrar falhas de software nas partes mais importantes do sistema Modelos de Processo Incremental Desvantagens 1 Os incrementos devem ser relativamente pequenos ter menos que 20 mil linhas de código 2 Cada incremento deve entregar alguma funcionalidade do sistema de software Difícil mapeamento 3 Pode ser difícil identificar os recursos comuns a todos os incrementos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Baseiamse no desenvolvimento e implementação de um produto inicial que é submetido aos comentários e críticas do usuário O produto vai sendo refinado através de múltiplas versões até que o produto de software almejado seja desenvolvido Modelos de Processo Evolucionário 42 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos As atividades de desenvolvimento e validação são desempenhadas paralelamente havendo feedback entre elas O sistema pode ser entregue ou reimplementado utilizando uma abordagem mais estruturada para produzir um sistema mais robusto e mais fácil de ser mantido Em Geral é mais efetivo que o Ciclo de Vida Clássico mas apresenta problemas de gerenciamento Modelos de Processo Evolucionário 43 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário 44 Versão inicial Versão final Versões intermediárias Especificação Desenvolvimento Validação Descrição do esboço IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Utiliza Desenvolvimento Exploratório O objetivo do processo é trabalhar com o cliente para explorar seus requisitos e entregar um sistema final Se inicia com as partes do sistema que são compreendidas O sistema evolui com o acréscimo de novas características conforme o cliente Modelos de Processo Evolucionário 45 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Prototipagem Executa o processo a fim de desenvolver rápido uma versão simplificada do sistema O protótipo é uma versão rápida e mal feita que fornece uma quantidade mínima de recursos 46 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Prototipagem O objetivo do processo é compreender os requisitos do cliente O protótipo se concentra em fazer experimentos com partes dos requisitos que estejam mal compreendidos Prototipagem throwaway ou Protótipos descartáveis 47 Modelos de Processo Evolucionário Prototipagem Problemas Cliente enxerga protótipo como produto final Prototipação é eficiente Obter requisitos Projeto rápido elaboração Construir protótipo Avaliar protótipo Refinamento de protótipo IFMA Monte Castelo Departamento de Computação 48 Modelos de Processo Evolucionário Considerações O processo não é visível Documentos necessários para medir o progresso no desenvolvimento deixam de ser produzidos em virtude da velocidade de elaboração de versões do produto Em geral os sistemas são mal estruturados As estruturas são prejudicadas pelas mudanças constantes O desenvolvedor pode assumir como definitivas escolhas feitas como temporárias Um Sistema Operacional inapropriado pode ser usado porque é conhecido ou algoritmos ineficientes podem ser implementados para demonstrar possibilidades do Sistema IFMA Monte Castelo Departamento de Computação 49 Modelos de Processo Evolucionário Modelo Espiral Desenvolvimento do sistema evolui em uma espiral para fora a partir de um esboço inicial em direção ao sistema final desenvolvido Proposto por Boehm 1988 Foi desenvolvido para englobar as melhores características do ciclo de vida clássico e do paradigma evolutivo adicionando ainda um novo elemento a análise de risco Risco circunstância adversa que pode atrapalhar o processo de desenvolvimento e a qualidade do produto a ser desenvolvido Não existem fases fixas neste paradigma IFMA Monte Castelo Departamento de Computação 50 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Modelo Espiral 51 Adaptado de httpsmediumcomcontextodelimitado Determinação dos objetivos alternativas e restrições e de Riscos Análise de alternativas e identificaçãoresolução dos riscos Implementação escolha de um modelo de desenvolvimento para o sistema Planejamento e Especificação Traça os planos para a próxima fase do projeto combina prevenção e tolerância a mudanças assume que mudanças são um resultado de riscos de projeto e inclui atividades explícitas de gerenciamento de riscos para sua redução SOMMERVILLE 2011 uma abordagem realista do desenvolvimento de sistemas e softwares de grande porte usando a prototipagem como mecanismo de redução de riscos PRESSMAN 2006 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Modelos de Processo Evolucionário Modelo Espiral 52 Adaptado de httpsmediumcomcontextodelimitado Determinação dos objetivos alternativas e restrições e de Riscos Análise de alternativas e identificaçãoresolução dos riscos Implementação escolha de um modelo de desenvolvimento para o sistema Planejamento e Especificação Traça os planos para a próxima fase do projeto Modelos de Processo Evolucionário Modelo Espiral A decisão de como estruturar o processo de desenvolvimento de Software em fases é tomada durante o Planejamento A principal diferença entre este modelo e os demais é o reconhecimento explícito do risco Exemplo Se a intenção for usar uma nova Linguagem de Programação um risco é que os compiladores disponíveis não sejam confiáveis ou não produzam códigoobjeto suficientemente eficaz IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Problemas Difícil de convencer o cliente da abordagem evolutiva ser controlável Exige experiência na avaliação dos riscos Vantagens Abordagem realística Abordagem evolucionária Prototipação Interativa Redução de riscos Modelos de Processo Evolucionário Modelo Espiral 54 CBSE Component Based Software Engineering Engenharia de software baseada em componentes Baseiase na existência de um número significativo de componentes reusáveis O processo de desenvolvimento concentrase na integração desses componentes em vez de desenvolvêlos a partir do zero A CBSE foi proposta na década de 90 Foi motivado pelo limitado suporte ao reuso em desenvolvimento OO Características Independência Padronização Middleware Processo Específico CBSE Component Based Software Engineering Essencial sobre CBSE Componentes independentes especificados pelas suas interfaces Padrões de componentes para facilitar a integração de componentes Middleware que fornece suporte para a interoperacionalidade do componente Um processo de desenvolvimento voltado para o reuso Padrões de componentes Infelizmente foram estabelecidos vários padrões de componentes concorrentes Enterprise Java Beans da Sun COM e NET da Microsoft CCM da CORBA Na prática esses padrões múltiplos têm dificultado a absorção da CBSE CBSE Component Based Software Engineering Componentes x Objetos Componentes em geral são implementados em linguagem OO Componentes estão prontos para serem implantados Não são compilados mas instalados sobre uma plataforma Componentes são independentes de linguagem Objetos geralmente se comunicam com objetos da mesma linguagem Componentes são padronizados O modelo de componentes restringe a implementação Mesmo desenvolvidos em linguagens diferentes componentes são de fácil integração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Elementos básicos de um modelos de componentes CBSE Component Based Software Engineering 58 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering 59 Especificação de requisitos Análise de componentes Modificação de requisitos Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering Dada uma especificação de requisitos uma busca pelos componentes candidatos para implementar essas especificações é realizada Não existe correspondência exata e os componentes que podem ser usados fornecem apenas uma parte da funcionalidade necessária 60 Especificação de requisitos Análise de componentes Modificação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering Os requisitos são analisados usando as informações sobre os componentes descobertos Eles são modificados para refletir os componentes disponíveis Quando as modificações são impossíveis a atividade de análise de componentes pode ser novamente realizada para buscar soluções alternativas 61 Especificação de requisitos Análise de componentes Modificação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering O framework do sistema é projetado ou um framework existente é reusado Os projetistas levam em consideração os componentes reusados organizando o framework para eles Pode ser necessário projetar algum software novo caso os componentes reusáveis não estejam disponíveis 62 Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos CBSE Component Based Software Engineering O software que não pode ser adquirido externamente é desenvolvido e os componentes e os sistemas COTS Commercial OffTheShelf Systems são integrados para criar o novo sistema A integração de sistema neste modelo pode ser parte do processo de desenvolvimento em vez de ser uma atividade separada 63 Desenvolvimento e integração Validação de sistema Projeto de sistema com reuso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Vantagens Reutilização de código Reduz a quantidade de software a ser desenvolvido e consequentemente reduz custos e riscos Leva a entrega mais rápida do software Desvantagens Indisponibilidade de código fonte Algum controle sobre a evolução do sistema será perdido se novas versões dos componentes reusáveis não estiverem sob controle da organização que as utiliza CBSE Component Based Software Engineering 64 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Problemas Confiabilidade do componente como pode um componente sem código fonte disponível ser confiável Certificação de componentes quem vai certificar a qualidade dos componentes Previsão de propriedades emergentes como as propriedades emergentes das composições componentes podem ser previstas Requisitos de compromisso como fazemos a análise de compromisso entre as características de um componente e outro CBSE Component Based Software Engineering 65 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos É uma abordagem que complementa os paradigmas tradicionais como orientação a objetos ao tratar de maneira modular preocupações transversais crosscutting concerns como segurança logging ou gerenciamento de transações Linguagens de suporte geralmente utiliza linguagens específicas ou extensões como AspectJ extensão de Java PostSharp extensão para NET Spring AOP parte do framework Spring em Java Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características Modularidade aprimorada melhora a modularização de preocupações transversais que são funções do sistema espalhadas por vários módulos como logging segurança ou gerenciamento de erros que são encapsuladas em unidades chamadas aspects Separação de preocupações Separation of Concerns isola as funcionalidades que se sobrepõem permitindo que os desenvolvedores trabalhem separadamente nos requisitos principais do sistema e nas preocupações transversais Pontos de junção Join Points define os pontos no programa onde um aspect pode ser aplicado como chamadas de método inicialização de objetos ou acesso a campos Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Características Conselhos Advice são ações que devem ser executadas em pontos específicos de junção Existem tipos como before after e around dependendo de quando o conselho será executado em relação ao join points Redução de código repetitivo preocupações transversais centralizadas em aspects eliminam a duplicação de código em diferentes módulos do sistema Facilidade de manutenção alterações em preocupações transversais exigem mudanças em um único lugar no aspects facilitando a evolução do sistema Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Sistemas de gerenciamento de transações bancárias aspects são usados para adicionar segurança auditoria e verificação de integridade em transações Plataformas baseadas em Spring Framework Java Spring AOP é amplamente usado em aplicativos empresariais para implementar segurança como autenticação e autorização e gerenciamento de transações Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos Jogos em desenvolvimento de jogos preocupações como detecção de colisão ou registro de dados de depuração podem ser implementadas como aspects Middleware para computação distribuída ferramentas baseadas em AOSD auxiliam no gerenciamento de comunicação controle de erros e segurança em sistemas distribuídos Exemplos de sistemas desenvolvidos com AOSD IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Vantagens Maior modularidade e organização do código Redução da complexidade de sistemas que precisam tratar preocupações transversais Melhor manutenção e evolução de sistemas complexos Desvantagens A curva de aprendizado pode ser íngreme devido à necessidade de entender conceitos específicos como join points e advice Depuração pode se tornar mais difícil especialmente quando o comportamento de aspects interfere em fluxos normais Modelo de Processo de Desenvolvimento de Software Orientado a Aspectos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos São abordagens de desenvolvimento de software que utilizam rigor matemático para especificar projetar verificar e validar sistemas São especialmente usados em sistemas críticos onde erros podem ter consequências graves como sistemas aeroespaciais ferroviários ou dispositivos médicos Modelo de Processos de Métodos Formais Seu uso é motivado pela expectativa de que como em outras disciplinas de engenharia possam contribuir para a confiabilidade e robustez de um projeto executando análises matemáticas apropriadas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Características Uso de notações matemáticas utilizam linguagens matemáticas para especificar e descrever o comportamento esperado do sistema como álgebra lógica formal ou teoria dos conjuntos Especificação rigorosas detalham com precisão os requisitos do sistema reduzindo ambiguidades e inconsistências comuns em descrições textuais Verificação e prova formal permitem provar propriedades do sistema como correção consistência e ausência de determinados tipos de erros por exemplo deadlocks Foco em sistemas críticos são aplicados principalmente em contextos onde segurança confiabilidade e precisão são fundamentais como aeronaves equipamentos médicos e sistemas financeiros IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Características Integração com desenvolvimento tradicional embora baseados em rigor matemático podem ser integrados em processos mais ágeis para tarefas específicas como validação de componentes críticos Custo inicial elevado geralmente exige alto custo inicial tempo e recursos mas reduz custos posteriores de manutenção e correção Ferramentas de suporte Linguagens e ferramentas como Z VDM Vienna Development Method BMethod Alloy TLA e Coq são amplamente usadas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Exemplos de Sistemas Controle de tráfego ferroviário métodos formais foram usados na especificação e verificação do sistema de controle ferroviário da Siemens garantindo segurança em sistemas de sinalização e monitoramento Aeronaves e sistemas aeroespaciais a Airbus utilizou o BMethod no desenvolvimento do sistema de controle do Airbus A340 e A380 reduzindo significativamente erros em software embarcado Dispositivos médicos métodos formais têm sido aplicados no desenvolvimento de software de dispositivos médicos como bombas de insulina e marcapassos para garantir a conformidade com regulamentos rigorosos IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Exemplos de Sistemas Sistemas operacionais e segurança o microkernel seL4 um kernel de sistema operacional foi formalmente verificado para provar sua segurança e ausência de falhas críticas Sistemas financeiros bancos e instituições financeiras utilizam métodos formais para validar a correção de transações e prevenir falhas em sistemas bancários Sistemas de votação eletrônica métodos formais foram usados para verificar a segurança e correção de máquinas de votação como o sistema Prêt à Voter IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Modelo de Processos de Métodos Formais Vantagens Redução significativa de defeitos Confiabilidade aumentada especialmente em sistemas críticos Possibilidade de validação antecipada antes mesmo da implementação Desvantagens Requer expertise em matemática e lógica Processo inicial mais lento e caro Dificuldade de adoção em equipes com foco em desenvolvimento ágil e rápido IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Embora não exista um processo de software ideal existe espaço para aprimoramento do processo de software em várias organizações Os processos de software podem ser aprimorados por meio da padronização de processo na qual a diversidade é reduzida Modelos de Processos 77 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Os modelos apresentados não são mutuamente exclusivos e podem ser utilizados em conjunto especialmente se o sistema é de grande porte Modelos de Processos 78 Outras variações desses modelos genéricos foram propostos O desenvolvimento formal de sistemas no qual é criado um modelo matemático formal de um sistema IFMA Monte Castelo Departamento de Computação Prof Daniel Lima Modelos Processos Engenharia de Software I 79 Em resumo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Qual Modelo de Processo 80 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Atividade Construa uma tabela similar a do slide 82 para cada modelo de processo abordado nessa aula considerando os seguintes critérios Pode inserir outros critérios que achar importante Exemplos de critérios 1 Definição de requisitos no início eou durante o processo 2 Tipos de sistemas críticos de uso específico geral etc 3 Análise de risco se contempla ou não 4 Reutilização e Modularização se contempla ou não 5 Uso de prototipação se contempla ou não 6 Usuário no processo no início eou durante o processo 7 Testes durante eou final do processo 8 Custo qual etapa do processo tem maior custo 9 Curto prazo se aplicado ou não 10 Ciclo de vida linear iterativo incremental etc 11 Exemplo de sistema IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 08 Modelagem do Processo Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação Modelagem do Processo de Software Modelos Processos Engenharia de Software I 2 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A importância em descrever o processo de software tem sido discutida na literatura de engenharia de software como uma das formas de suporte À qualidade do produto de software À sistematização das práticas empregadas durante o desenvolvimento Para aumentar a maturidade do processo de software estabelecer uma baseline para avaliação e melhoria Porque modelar o Processo de Software 3 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A descrição de processo de software permite detalhar o processo de software real executado em organizações de desenvolvimento possibilitar que falhas no processo sejam detectadas e corrigidas Modelagem do Processo 4 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos A descrição de processos contribui sob vários aspectos no processo de desenvolvimento A padronização do processo é necessária para permitir o treinamento elaboração de guias gerenciamento revisão e automação Com a padronização de métodos cada experiência de projeto pode contribuir para uma melhoria global em uma organização Modelagem do Processo 5 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Processos padronizados provêem uma infraestrutura básica para melhoria avaliação e mensuração Porque tarefas básicas são comuns em muitos projetos de software apenas algumas customizações seriam necessárias para um processo padrão atender à maioria das necessidades de projetos Modelagem do Processo 6 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 7 Fonte wwwlabesufpabr Modelagem do Processo IFMA Monte Castelo Departamento de Computação Exemplos de Ferramentas de modelagem do processo Modelos Processos Engenharia de Software I 8 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Spearmint Software Process Elicitation Analysis Review and Modeling in an Integrated Environment Ferramenta utilizada para descrever processos de software 9 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Promodeller Ebert 2009 UFPE Ferramenta utilizada para descrever processos de software 10 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos BPMNio notação BPMN Ferramenta utilizada para descrever processos de software 11 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos DRAWio inicialmente pensado como editor de fluxogramas Ferramenta utilizada para descrever processos de software 12 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Astah UML e outras modelagens Ferramenta utilizada para descrever processos de software 13 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Diferenças conceituais 14 Fonte httpswwweuaxcombr BPM CBOK v3 Diagrama de Processo Retrata os principais elementos do fluxo de processo omitindo detalhes menores do fluxo de trabalho Mapa de Processo Traz uma visão abrangente dos principais componentes do processo apresentando maior precisão do que um diagrama Inclui além das atividades o relacionamento delas com outros elementos como atores eventos e resultados Modelo de Processo Apresenta alto grau de detalhamento mostrando os recursos envolvidos pessoas informação etc Possibilita a simulação do processo em ambiente virtual o que facilita a análise e entendimento do processo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 15 THE WATERFALL METHOD IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 16 AGILE DEVELOPMENT IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 17 SCRUM IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Para rir um pouco Gerenciando uma viagem para Marte 18 LEAN DEVELOPMENT IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Facilitar o entendimento humano e a comunicação Apoiar a melhoria do processo Apoiar o gerenciamento do processo Fornecer orientação automatizada para a utilização do processo Apoiar a execução automatizada do processo Propriedades desejáveis das ferramentas e técnicas para modelagem de processos 19 IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 09 Processo de desenvolvimento na realidade Prof Dr Daniel Lima Gomes Jr Profa Dr Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Princípios do Desenvolvimento de Software Processo de desenvolvimento na realidade Roteiro 2 IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Princípios do Desenvolvimento de Software Princípios Formalidade Abstração Decomposição Generalização Flexibilização Princípios Formalidade Abstração Decomposição Generalização Flexibilização Maior confiabilidade durante o processo Efeitos benéficos durante a manutenção reutilização portabilidade e entendimento do software Princípios Formalidade Abstração Decomposição Generalização Flexibilização Processo de identificação dos aspectos importantes de um problema no qual os pontos irrelevantes devem ser ignorados Maior confiabilidade durante o processo Princípios Formalidade Abstração Decomposição Generalização Flexibilização Forma de diminuir a complexidade Subdivisão de processos em atividades específicas Princípios Formalidade Abstração Decomposição Generalização Flexibilização A generalização da solução do problema tem maior potencial para permitir reutilização Princípios Formalidade Abstração Decomposição Generalização Flexibilização Aplicase tanto ao processo quanto ao produto O último sofre mudanças e o processo deve ser flexível para assimilálas IFMA Monte Castelo Departamento de Computação Engenharia de Software I Conceitos Processo de desenvolvimento na realidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Existem vários modelos de processo de software ou paradigmas de engenharia de software Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica Processo de desenvolvimento na realidade 11 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos 12 expectativa Processo de desenvolvimento na realidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 13 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 14 Fase de Especificação A funcionalidade do software e as restrições sobre sua operação devem ser definidas O quê Que dados tem que ser processados Que função e desempenho são desejados Que interfaces devem ser estabelecidas Que restrições Etapas Análise do sistema Análise de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 16 Fase de Desenvolvimento Projeto e Implementação É o processo de conversão de uma especificação de sistema em um sistema executável Como Como a estrutura de dados e arquitetura de software são projetadas Como os detalhes procedimentais serão implementados Projeto Engloba a descrição da estrutura de software a ser implementada dos dados que são parte do sistema das interfaces entre os componentes dos algoritmos usados às vezes Envolve a inclusão de formalidades e detalhes Pode envolver o desenvolvimento de vários modelos do sistema em diferentes níveis de abstração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Desenvolvimento dos programas do sistema Atividade pessoal e em geral não segue processo Uso de ferramentas CASE para geração de esqueleto do programa com base no projeto Implementação 19 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades da fase de Desenvolvimento 20 Projeto de arquitetura Especificação abstrata Projeto de interface Projeto de componente Projeto de Estrutura de dados Projeto de algoritmo Arquitetura de sistema Especificação de software Especificação de interface Especificação de componente Especificação de estrutura de dados Especificação de algoritmo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades da fase de Desenvolvimento Codificação Programas Codificação Programas 21 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 22 Fase de Validação O software deve ser validado para garantir que ele faça o que o cliente deseja Como os testes serão realizados Etapas Codificação Realização de testes unitários Realização de testes de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Validação Teste de componente Teste de sistema Teste de aceitação 24 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Validação 25 Usa dados reais Teste de componente Teste de sistema Teste de aceitação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Geralmente o desenvolvimento e teste de componentes são intercalados No caso da abordagem incremental cada incremento deve ser testado à medida que é incrementado Fase de Validação 26 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Atividades em comum em processos de software 27 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Mudanças geram manutenções Correção de erros Adaptação Ampliação Fase de Evolução 28 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Trata de problemas decorrentes de defeitos À medida que falhas ocorrem elas são relatadas à equipe de manutenção que se encarrega de encontrar o defeito que causou a falha e faz as correções nos requisitos análise projeto ou implementação conforme o necessário Esse reparo inicial pode ser temporário visando manter o sistema funcionando Quando esse for o caso mudanças mais complexas podem ser implementadas posteriormente 29 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Às vezes uma mudança no ambiente do sistema incluindo hardware e software de apoio pode implicar em uma necessidade de adaptação 30 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Consiste em realizar mudanças para melhorar algum aspecto do sistema mesmo quando nenhuma das mudanças for consequência de defeitos Isso inclui a adição de novas capacidades bem como ampliações gerais 31 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Tipos de manutenção Corretiva Adaptativa Perfectiva Preventiva Fase de Evolução Consiste em realizar mudanças a fim de prevenir falhas Geralmente ocorre quando um mantenedor descobre um defeito que ainda não causou falha e decide corrigilo antes que ele gere uma falha 32 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Modelos Processos Fase de Evolução Sommerville 2007 A distinção entre o desenvolvimento e manutenção tem se tornado cada vez mais irrelevante 33 IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 10 RUP Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Rational Unified Process RUP Roteiro 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Modelo de processo derivado do trabalho sobre a Unified Modeling Language UML e do Processo Unificado de desenvolvimento de software associado Rumbaugh et al 1999 Rational Unified Process RUP Modelo de processo derivado do trabalho sobre a Unified Modeling Language UML e do Processo Unificado de desenvolvimento de software associado Rumbaugh et al 1999 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process É um processo genérico derivado da UML e processos associados Utiliza uma abordagem de orientação a objetos em sua concepção É projetado e documentado utilizando o UML para ilustrar os processos Reúne aspectos dos 3 modelos genéricos discutidos previamente Geralmente descrito por 3 perspectivas Uma perspectiva dinâmica que mostra fases no tempo Uma perspectiva estática que mostra atividades do processo Uma perspectiva prática que sugere boas práticas Rational Unified Process RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process As duas principais características do RUP é ser incremental e iterativo Rational Unified Process RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Estabelece o caso do negócio business case e o escopo do sistema É realizado levantamento de requisitos define preços e prazos da entrega do sistema e onde se avalia os possíveis riscos 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Desenvolve um entendimento da extensão do problema e da arquitetura do sistema Elaborasse o plano do projeto especificação de características e arquitetura do sistema São realizadas as análises de riscos e de custo de forma mais aprofundada 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Projeta o sistema programa e testa o sistema 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Rational Unified Process RUP Implanta o sistema em seu ambiente operacional assegurando que ele esteja disponível aos usuários finais são realizados os testes e o treinamento com os usuários Iteração do RUP Iteração Intrafase Cada fase é iterativa aos resultados desenvolvidos incrementalmente Iteração Interfase Como mostrado pelo loop no modelo RUP o conjunto todo de fases pode ser executado incrementalmente RUP possui disciplinas Modelagem de negócios Requisitos Análise e Design Implementação Teste Implantação Gerenciamento de configuração e mudança Gerenciamento de projeto Ambiente 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Workflows estáticos no RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Workflows estáticos no RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Desenvolver software iterativamente Planejar incrementos baseandose nas prioridades do cliente e entregar as de prioridade mais alta primeiro Gerenciar os requisitos Documentar explicitamente os requisitos do cliente e manter registros de mudanças desses requisitos Usar arquiteturas baseadas em componentes Organizar a arquitetura do sistema como um conjunto de componentes reusáveis Boas práticas do RUP 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Modelar o software visualmente Use modelos de gráficos UML para representar visões dinâmicas e estáticas do software Verificar a qualidade do software Garanta que o software atenda aos padrões de qualidade organizacional Controlar as mudanças do software Gerencie as mudanças no software usando um sistema de gerenciamento de mudanças e ferramentas de gerenciamento de configuração Boas práticas do RUP Fonte httpscacoocom 17032021 IFMA Monte Castelo Departamento de Computação Prof Daniel Lima IFMA Monte Castelo Departamento de Computação Engenharia de Software I Rational Unified Process Os processos devem incluir atividades para lidar com mudanças O que pode envolver uma fase de prototipação que ajuda a evitar más escolhas nos requisitos e no projeto Os processos devem ser estruturados para evolução e entrega iterativa para que as mudanças possam ser feitas sem causar problemas ao sistema como um todo O Rational Unified Process é um modelo de processo genérico moderno organizado em fases concepção elaboração construção e transição mas que separa as atividades dessas fases requisitos análise e projeto etc Pontos Importantes IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 11 Engenharia de Requisitos Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro Engenharia de Requisitos Papéis e Atributos Requisitos e Tipos de Requisitos Roteiro IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Atividades em comum em processos de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos A funcionalidade do software e as restrições sobre sua operação devem ser definidas O quê Que dados tem que ser processados Que função e desempenho são desejados Que interfaces devem ser estabelecidas Que restrições Etapas Análise do sistema Análise de requisitos Fase de Especificação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Papel importante nesta fase Analista de Sistemas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Apelidos do analista Analista de Sistemas Engenheiro de Sistemas Projetistas de SistemasChefe ProgramadorAnalista Papel importante nesta fase IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Executa ou coordena cada uma das tarefas associadas à análise de requisitos de software Comunicase com o pessoal do usuáriocliente a fim de conhecer as características do ambiente existente durante as tarefas de reconhecimento Convoca o pessoal de desenvolvimento durante as tarefas de avaliação e síntese de forma que as características do software sejam corretamente definidas Papel do Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos É o responsável pelo desenvolvimento de uma Especificação de Requisitos de Software geralmente Participa de todas as revisões Papel do Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Facilidade de comunicação Habilidades técnicas Habilidades especiais relativas ao domínio da aplicação Atributos de um bom Analista IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Por que precisamos dos requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Para entender o que o cliente quer Para entender o problema do negócio Para documentar o escopo do projeto e definir suas restrições Para assegurar a qualidade do sistema e a satisfação do cliente Para definir critérios de aceitação e gerenciar as expectativas do cliente Por que precisamos dos requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Um requisito é uma característica do sistema ou a descrição de algo que o sistema é capaz de realizar para atingir os seus objetivos Pfleeger 2004 As descrições das funções e das restrições são os requisitos do sistema Sommerville 2004 Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Um requisito é descrito como uma propriedade que o sistema deve exibir para resolver algum problema da vida real Swebok 2004 Um condição ou capacidade necessária para um usuário resolver um problema ou alcançar um objetivo IEEE Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos funcionais Requisitos não funcionais Requisitos do Usuário Requisitos do Negócio Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos funcionais Declarações de funções que o sistema deve fornecer como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações E o que o sistema não deve fazer Tipos de Requisitos Tipos de Requisitos Requisitos não funcionais Condições que o software deve atender Qualidades que ele deve ter Requisitos de desempenho tempo real e de modificabilidade Restrições sobre os serviços ou as funções oferecidos pelo sistema Exemplos garantia confiabilidade segurança restrições físicas e operacionais IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos nãofuncionais podem afetar a arquitetura geral de um sistema em vez de componentes individuais Um único requisito nãofuncional como um requisito de proteção pode gerar uma série de requisitos funcionais relacionados que definem os serviços do sistema que são necessários Tipos de Requisitos não funcionais IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Usuário São declarações em linguagem natural e em diagramas sobre as funções que o sistema deve fornecer e as restrições sob as quais deve operar Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Exemplificação vamos considerar o sistema LIBSYS Uma interface única com uma série de bancos de dados antigos Ele permite que os usuários baixem cópias de artigos publicados em revistas jornais e periódicos científicos Requisitos do Usuário Exemplo LIBSYS deve manter acompanhamento de todos os dados exigidos pelas agências de licenciamento de direitos autorais no Reino Unido e em outros lugares Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Estabelecem detalhadamente as funções e as restrições do sistema Tipos de Requisitos Regras Restrições IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Exemplo 1 Ao solicitar um documento ao LIBSYS deve ser apresentado ao solicitante um formulário que registra os detalhes do usuário e da solicitação feita 2 Os formulários de solicitação do LIBSYS devem ser armazenados no sistema durante 5 anos a partir da data da solicitação 3 Todos os formulários devem ser indexados por usuário nome do material solicitado e fornecedor da solicitação Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Requisitos do Negócio Exemplo 4 O LIBSYS deve manter um registro de todas as solicitações feitas ao sistema 5 Para materiais aos quais se aplicam os direitos de empréstimo dos autores os detalhes do empréstimo devem ser enviados mensalmente às agências de licenciamento de direitos autorais que se registraram no LIBSYS Tipos de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos algumas definições Sommerville Processo de descobrir analisar documentar e verificar as funções e restrições do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos algumas definições Identificação dos serviços metas a serem atingidas e restrições a serem respeitadas através de consultas aos usuários do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Tsui e Karan 2013 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Analistas efetuam a identificação e o agrupamento de requisitos junto aos usuários e clientes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Dificuldades Stakeholders não sabem o que querem do sistema de computador a não ser em termos gerais expressam os requisitos naturalmente em seus próprios termos e com conhecimento implícito de seu trabalho Diferentes stakeholders possuem diferentes requisitos expressos de diferentes formas Fatores políticos podem influenciar os requisitos do sistema Ex gerentes podem solicitar requisitos específicos do sistema para aumentar sua influência na organização Ambiente econômico e de negócios sobre o qual a análise é realizada é dinâmico IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Análise de requisitos Os enunciados dos requisitos são verificados quanto à precisão e eventuais conflitos categorizados priorizados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Os requisitos devem ser definidos e documentados Se necessário alguns devem ser prototipados Ex aspectos de interface Requisitos documentados devem ser revisados pelos usuários Estas três subetapas podem iterar entre elas e a etapa de análise O gerenciamento é essencial IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Envolve a produção de um Documento de Especificação de Requisitos Este documento deve ser acordado e servirá de contrato entre o cliente e a organização de desenvolvimento de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos O Documento de Requisitos deve ser inteligível o mais preciso completo consistente e sem ambiguidades possível analisado e confirmado pelo usuário usado pelos desenvolvedores para a obtenção de um produto que satisfaça aos requisitos organizado de modo que possa ser utilizado pelos clientes de sistema e pelos desenvolvedores de software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos O Documento de Requisitos é uma linha de base A partir deste ponto qualquer mudança deve ser gerenciada por um processo de controle de mudanças para evitar o problema da deformação do escopo scope creeping scope creeping é uma das principais causas de estouro de cronograma e custos pois o sistema aumenta de tamanho sem que ninguém perceba Contratação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Processo da Engenharia de Requisitos Definição e Documentação de requisitos Prototipação de requisitos Revisão de requisitos Análise de requisitos Especificação de requisitos Levantamento de requisitos Contratação de requisitos Consequências negativas da não realização da Engenharia de Requisitos Não há requisitos documentados que sirvam de base para os testes Não há requisitos acordados para controlar a deformação de escopo É muito difícil gerenciar o cronograma e os custos do projeto sem requisitos claros e documentados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Usuários de um Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos As informações no documento de requisitos dependem do tipo de sistema e da abordagem de desenvolvimento usada Normalmente os sistemas desenvolvidos de forma incremental podem possuir menos detalhes no documento de requisitos Os padrões dos documentos de requisitos foram concebidos tendo como exemplo a norma IEEE Esses são aplicáveis principalmente aos requisitos para projetos de engenharia de sistemas de grande porte Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 1 vide modelo disponível no Classroom Introdução Propósito Escopo do produto Definições e abreviações Referências Descrição Geral Funções do produto Características do usuário Restrições gerais Requisitos Específicos Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 2 Sommerville Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Modelo 2 Sommerville Variabilidade do Documento de Requisitos do Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Atividade Classroom Leitura de artigo Arquivo ES Tecnicas Identificacao Requisitospdf Técnicas para identificação de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Os processos usados para a engenharia de requisitos variam muito dependendo do domínio da aplicação das pessoas envolvidas e da organização que desenvolve os requisitos No entanto existe uma série de atividades genéricas comuns a todos os processos Elicitação de requisitos Análise de requisitos Validação de requisitos Gerenciamento de requisitos Na prática engenharia de requisitos é uma atividade iterativa em que estes processos são intercalados Processos de engenharia de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Uma visão em espiral do processo de engenharia de requisitos Processos de engenharia de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Engenharia de Requisitos Técnicas de Obtenção de Requisitos Levantamento orientado a Pontos de Vista Workshops Prototipagem Etnografia Entrevistas Questionários Brainstorming JAD Joint Application Design Cenários Casos de uso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Organizam os processos de elicitação e os requisitos usando pontos de vista A abordagem reconhece várias perspectivas e permite descobrir conflitos nos requisitos propostos por diferentes stakeholders Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Primeira etapa identificar os possíveis pontos de vista Nessa etapa os analistas se reúnem com os stakeholders e utilizam a abordagem de brainstorming para identificar os serviços em potencial e as entidades que interagem com o sistema Segunda etapa estruturação de pontos de vista que envolve agrupar pontos de vista relacionados segundo uma hierarquia Serviços comuns estão localizados nos níveis mais altos da hierarquia e herdados por pontos de vista de nível inferior Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista A etapa de documentação do ponto de vista objetiva refinar a descrição dos pontos de vista e serviços identificados O mapeamento de sistema envolve identificar objetos em um projeto orientado a objetos Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Tipos genéricos de pontos de vista Pontos de vista de interação representam pessoas ou outros sistemas que interagem diretamente com o sistema Pontos de vista indiretos representam stakeholders que não usam o sistema diretamente mas que influenciam o sistema de alguma forma Pontos de vista de domínio representam características e restrições do domínio que influenciam os requisitos do sistema Ex Padrões para comunicações entre os bancos no sistema de caixa eletrônico bancário Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Levantamento orientado a Pontos de vista Tipos mais específicos de pontos de vista Fornecedores e receptores de serviços do sistema Sistemas que devem interfacear diretamente com o sistema que está sendo especificado Regulamentos e padrões que se aplicam ao sistema Pontos de vista de engenharia que refletem requisitos de pessoas que devem desenvolver gerenciar e manter o sistema Pontos de vista de marketing e negócios externos à organização sistemas baseados na Web ecommerce Engenharia de Requisitos Técnicas de Obtenção de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Há a formulação de questões para os stakeholders sobre os sistemas que eles usam e o sistema a ser desenvolvido Os requisitos são derivados das respostas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Tipos Fechadas os stakeholders respondem a um conjunto de perguntas predefinidas Abertas não existe um roteiro predefinido A equipe de engenharia de requisitos explora vários assuntos para desenvolver uma maior compreensão das necessidades dos usuários Em geral os tipos são combinados IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Não é uma técnica eficiente para elicitação de conhecimentos sobre os requisitos e restrições organizacionais pois existem relacionamentos sutis de poder e influência entre stakeholders na organização Em geral a maioria das pessoas é relutante em discutir questões políticas e organizacionais que podem afetar os requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos Características de entrevistadores eficientes Possuem mente aberta evitam ideias preconcebidas sobre os requisitos e querem ouvir seus stakeholders Induzem os entrevistados a iniciar as discussões com uma questão uma proposta de requisitos ou sugerindo um trabalho conjunto em um protótipo do sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Entrevistas Engenharia de Requisitos Técnicas de Obtenção de Requisitos As informações obtidas das entrevistas complementam outras informações sobre o sistema obtidas de documentos observações de usuários etc Esta técnica deve ser utilizada junto com outras para a elicitação de requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Cenários Engenharia de Requisitos Técnicas de Obtenção de Requisitos As pessoas podem compreender e criticar um cenário de como interagiriam com um sistema de software Cenários podem adicionar detalhes a um esboço da descrição de requisitos O uso de cenários para descrever requisitos é parte dos métodos ágeis como a extreme programming IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Cenários Engenharia de Requisitos Técnicas de Obtenção de Requisitos Deve incluir Uma descrição do que os usuários esperam do sistema no início do cenário Uma descrição do fluxo normal de eventos do cenário Uma descrição do que pode dar errado e como isso é tratado Informações sobre outras atividades que podem ocorrer simultaneamente Uma descrição do estado do sistema no fim do cenário IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Técnica baseada em cenários Notação da Linguagem de Modelagem Unificada UML Unified Modeling Language IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário O cliente deve ver no diagrama de Casos de Uso as principais funcionalidades de seu sistema IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Representado por atores casos de uso relacionamentos entre estes elementos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Ator Representado por um boneco e um rótulo com o nome do ator Cliente IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Um caso de uso é uma funcionalidade do sistema Representado por uma elipse e um rótulo com o nome Cadastrar produto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Casos de Uso Engenharia de Requisitos Técnicas de Obtenção de Requisitos Relacionamentos Ajudam a descrever os Casos de Uso Ocorrem entre Atores e Casos de Uso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Engenharia de Requisitos Importante Engenharia de Requisitos é um estágio crítico do processo de software pois os erros nessa fase conduzem a problemas no projeto e implementação IFMA Monte Castelo Departamento de Computação Engenharia de Software Aula 12 Desenvolvimento Ágil Prof Dr Daniel Lima Gomes Jr Profa Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 Roteiro Desenvolvimento Rápido de Software Manifesto Ágil Para quê o Desenvolvimento Rápido de Software Os negócios atualmente operam em um ambiente global sujeito a rápidas mudanças Novas oportunidades Novos mercados Mudanças de condições econômicas Surgimento de novos produtos e concorrentes O software é parte de quase todas as operações de negócios Para quê o Desenvolvimento Rápido de Software Em geral os negócios operam em um ambiente de mudanças constantes Dificuldade de propor um conjunto completo de requisitos de software estável Clientes mudam os requisitos inevitavelmente Identificação dos reais requisitos Após a entrega do sistema Experiência inicial dos usuários IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Engenharia de software ágil filosofia princípios de desenvolvimento Como funciona o Processo Defende a satisfação do cliente e a entrega de incremental prévio equipes de projeto pequenas e altamente motivadas métodos informais artefatos mínimos e simplicidade no desenvolvimento Priorizam a entrega mais que análise e projeto mas não desencorajam as atividades a comunicação ativa e contínua entre desenvolvedores e clientes Como funciona o Processo Processos de desenvolvimento rápido são projetados para criar um software útil rapidamente São processos iterativos Intercala a especificação projeto desenvolvimento e testes Software entregue em partes Cada parte inclui uma nova funcionalidade IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Como funciona o Processo Definir os produtos do sistema Projetar a arquitetura do sistema Especificar incremento do sistema Criar incremento do sistema Validar incremento Entregar sistema final Sistema Completo Não Sim Validar sistema Integrar incremento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Como funciona o Processo Quais são as características Os processos de especificação projeto e implementação são concorrentes Não há detalhamento Minimização da documentação ou gerada automaticamente O sistema é desenvolvido em uma série de incrementos Usuários finais e stakeholders participam da especificação e avaliação de cada incremento IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Entrega acelerada Clientes vêem seus requisitos na prática Especificação de novas mudanças Engajamento do usuário com o sistema Envolvimento dos usuários Feedback à equipe desenvolvedora Melhor entendimento dos requisitos Quais são as Vantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Problemas de gerenciamento Grandes sistemas exigem modelos mais estruturados Produção em grandes quantidades não compensa Problemas de contrato Contrato baseado em especificações de sistema Cliente paga por tempo despendido no projeto Desenvolvedores não aceitam contratos com preço fixo Quais são as Desvantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Problemas de validação Minimizar documentação Intercalar especificação e desenvolvimento Problemas de Manutenção As alterações contínuas corrompem a estrutura dos sistemas Dificuldade de compreensão do software Quais são as Desvantagens IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Onde o desenvolvimento rápido de software NÃO é recomendado Em grandes sistemas nos quais o desenvolvimento pode envolver equipes que trabalham em locais diferentes Em sistemas embarcados nos quais o software depende do desenvolvimento de hardware Em sistemas críticos nos quais todos os requisitos devem ser analisados para segurança IFMA Monte Castelo Departamento de Computação Métodos Ágeis Desenvolvimento Ágil Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Métodos Ágeis Em 2001 Kent Beck e mais 16 desenvolvedores produtores e consultores de software que formavam a Aliança Ágil assinaram o Manifesto de Desenvolvimento Ágil de Software IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil httpmanifestoagilcombrindexhtml Manifesto para o desenvolvimento ágil de software Fonte httpsmediumcomaela IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Estamos descobrindo melhores modos de desenvolvimento de software fazendoo e ajudando outros a fazêlo Por meio desse trabalho passamos a valorizar Indivíduos e interações ao invés de processos e ferramentas Software funcionando ao invés de uma documentação abrangente Colaboração do cliente ao invés de negociação de contratos Resposta a modificações ao invés de seguir um plano Isto é ainda que haja valor nos itens à direita valorizamos mais os itens à esquerda Métodos Ágeis IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Métodos Ágeis Família de metodologias de desenvolvimento que produzem software em pequenas iterações e permitem mudanças maiores em design IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Divisão do trabalho em pequenas partes Liberação do software para o usuário com a maior frequência possível Não tentar concluir o design com muita rapidez de qualquer modo não se sabe o suficiente acerca do sistema no momento Adiar o máximo possível decisões sobre o design Aprimorar o máximo o design existente quando maiores informações forem obtidas Não tentar produzir padrões formais completos e imutáveis logo no início Solicitar informações de feedback retroinformação aos usuários Em geral isso resulta em um sistema melhor ajustado IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Manter comunicação constante e não necessariamente através de documentação formal as pessoas se comunicam melhor informalmente IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Iterações e versões curtas Design incremental Envolvimento do usuário Documentação mínima Comunicação informal Mudanças Métodos Ágeis Partir do princípio de que os requisitos e o ambiente sofrerão mudanças e tenta encontrar formas apropriadas de lidar com isso IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Características É importante assegurar que não haja abuso da metodologia principalmente associada à documentação Se o software liberado precisar ser mantido por um grupo diferente dos desenvolvedores iniciais uma documentação suficientemente detalhada será indispensável IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Algumas metodologias dos Métodos Ágeis Adaptive Software Development Highsmith 2000 Extreme Programming Beck 1999 Beck 2000 Scrum Schwaber e Beedle 2001 Crystal Cockburn 2001 Feature Driven Development Palmer e Felsing 2002 IFMA Monte Castelo Departamento de Computação Principais certificações Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Desenvolvimento Ágil Lista com algumas das principais certificações a Agile Certified Practitioner ACP concebida pelo Project Management Institute PMI é voltada para profissionais de gerenciamento de projetos httpsbrasilpmiorgbrazilCertificationsAndCredentialsPMIACPaspx b APMG International também direcionada a gestores de projetos ágeis de desenvolvimento httpwwwapmginternationalcomenqualificationscertificationsaspx c Strategyex Certificate direcionada a desenvolvedores plenos e gestores de projetos é oferecida pela Twenty Eighty Strategy Execution em parceria com a George Washington University d Professional Scrum Master PSM é a certificação número um no mundo em Scrum recomendada a todo profissional que quer provar seu conhecimento neste método httpswwwscrumorgprofessionalscrumcertificationsprofessionalscrummasteriassessment Principais certificações em metodologias ágeis IFMA Monte Castelo Departamento de Computação Engenharia de Software I Aula 13 Ferramentas CASE Prof Dr Daniel Lima Gomes Jr Profa Dra Eveline Sá Departamento de Computação DComp Instituto Federal de Educação Ciência e Tecnologia do Maranhão Campus Monte Castelo São Luís MA 1 IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Roteiro CASE ComputerAided Software Engineering Roteiro IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Atividades em comum em processos de software ComputerAided Software Engineering CASE old versions Engenharia de Software Auxiliada por Computador IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Nome dado ao software usado para apoiar as atividades de processo de software como engenharia de requisitos projeto desenvolvimento de programas e testes ComputerAided Software Engineering CASE IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Pela automação de algumas atividades de processo Alguns exemplos Como acontece esse apoio Fonte httpsastahblogcom Alternativas PlantUML LucidChart Umbrello IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais atividades podem ser automatizadas Documentação Tratamento de Requisitos Projeto e Análise Implementação Ferramentas de Revisão e Testes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Aplicações em XML eXtensible Markup Language Tem se tornado um padrão para armazenamento de informações em especial quando se faz a gerência de conteúdo Modo conveniente para registrar dados e metadados Exemplos de uso e aplicações o Editor WYSIWYG gratuito da Altova o iXedit código aberto o XMLFox gratuito o LibreOffice Documentação Fonte da Imagem Wikipedia IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Wiki Passam a ser utilizadas para a gerência de grandes quantidades de informação Exemplo conhecido Wikipedia Permite a criação de um Website uma intranet por exemplo Os dados podem ser mantidos em um banco de dados como o MySQL por exemplo Caráter colaborativo Documentação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Armazenagem e gerenciamento Permite registrar artefatos de diversos tipos como diagramas UML casos de teste ou documentos Exemplos IBM Rational Rose Pro Borland Caliber RM Umbrello Tratamento de Requisitos IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Arquitetura Utilizando UML JDeveloper da Oracle Sun Java Studio Enterprise Astah StarUML Com extensão para SIGs UFV AgoUML Com extensão para SIGs Projeto e Análise IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Arquitetura Astah httpastahchangevisioncomenproductastahcommunityhtml httpsmemberschangevisioncommembersfilesastahcommunity Projeto e Análise Projeto IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Documentação de Código Doxigen Para gerar gráficos utiliza a Graphiviz ferramenta gratuita desenvolvida pelo Bell Labs wwwgraphvizorg JavaDoc Implementação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Controle de Versões GIT Hub CVS Concurrent Version System Gratuito Código aberto httpwwwcvshomecom Projeto base para outros sistemas de controle de versão TortoiseCVS em httpwwwtortoisecvsorg TortoiseSVN em httptortoisesvntigrisorg JediCVS Implementação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE bubble Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Balsamiq httpswwwyoutubecomwatchv0mYYqsJrE8 Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Pencil httpspencilevolusvnFeatureshtml Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Figma httpswwwfigmacomfilesteam1108005106924927161recentsandsharingfuid961413097331044150 Ferramentas de prototipação IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE As revisões e testes são instrumentos de controle de qualidade de um projeto Uma relação de ferramentas para teste de software pode ser encontrada em httpopensourcetestingorg As ferramentas têm aplicação diversa Testes de desempenho Interfaces gráficas GUI Estresse de aplicações web Ferramentas de Revisão e Testes IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Ferramentas que podem auxiliar na aplicação de metodologias ágeis em particular a XP VersionOne XPlanner gratuita XPMT gratuita Redmine Apoio a Metodologias IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE O desenvolvimento dos modelos gráficos de sistema como parte da especificação de requisitos ou do projeto de software A compreensão de um projeto por meio de um dicionário de dados A geração de interfaces com o usuário com base em uma descrição de interface gráfica Quais atividades podem ser automatizadas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE O debugging do programa por meio do fornecimento de informações sobre o programa em execução A tradução automática de programas a partir de uma versão antiga de uma linguagem de programação como COBOL para uma versão mais recente Quais atividades podem ser automatizadas IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais são os fatores que limitam o aprimoramento pelo uso de CASE Os sistemas CASE existentes automatizam as atividades rotineiras mas as tentativas de aproveitar a tecnologia de inteligência artificial para apoiar o projeto não foram bemsucedidas A engenharia de software é baseada no pensamento criativo IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Quais atividades podem ser automatizadas A tecnologia CASE não pode ajudar muito nesse caso Na maioria das organizações a engenharia de software é uma atividade de equipe e os engenheiros de software passam boa parte do tempo interagindo com outros membros da equipe IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Perspectiva Funcional São classificadas de acordo com suas funções específicas Perspectiva de processo São classificadas de acordo as atividades de apoio que fornecem Perspectiva de integração São classificadas de acordo com sua organização em unidades integradas que apóiam uma ou mais atividades de processo Perspectivas da classificação CASE IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Classificação funcional das ferramentas CASE IFMA Monte Castelo Departamento de Computação Ferramentas CASE para Gerenciamento de Configuração Ferramentas CASE Engenharia de Software I IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Desenvolvimento e uso de padrões e procedimentos para o gerenciamento de sistemas de software em desenvolvimento Gerenciamento de Configuração de Software SCM Software Configuration Management É uma área da engenharia de software responsável por fornecer o apoio para o desenvolvimento de software Principais atribuições controle de versão controle de mudança e auditoria das configurações IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Controla a evolução do sistema de software gerenciando versões dos componentes de software e seus relacionamentos O propósito é identificar todos os componentes do software e controlar sua evolução através das várias fases no ciclo de vida de desenvolvimento Gerenciamento de Configuração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Ferramentas de gerenciamento de configurações são usadas para armazenar versões de componentes do sistema e rastrear releases das versões do sistema O apoio de uma ferramenta CASE é fundamental Gerenciamento de Configuração IFMA Monte Castelo Departamento de Computação IFMA Monte Castelo Departamento de Computação Engenharia de Software I Ferramentas CASE Apoio para gerenciamento de mudanças Apoio para gerenciamento de versões Gerenciamento de Configuração

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®