Introdução à Modelagem de Software

Slides:



Advertisements
Apresentações semelhantes
Metodologia R/XP.
Advertisements

Introdução à Análise de Sistemas
Engenharia de Software
Rational Unified Process
O Processo Praxis 3.0 Processos de Software 25/03/2017
Engenharia de Software
Engenharia de Software
Identificando requisitos
Análise e Projeto de Sistemas I
GUG Porto Alegre/Brasil Desenvolvimento em GeneXus, Métodos Ágeis e Scrum.
Rational Unified Process(RUP)
Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.
Engenharia de Software Professor Sandro de Paiva Carvalho.
FACULDADE DOS GUARARAPES
Introdução à Engenharia de Software
Mitos e Problemas Relacionados ao Software
Metodologia de Desenvolvimento de Software
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
Processo Desenvolvimento de Software Tradicional
Implementação de Sistemas
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
FDD.
Modelos de Processos de Software
Classes e objetos Modelagem
Rational Unified Process
Métodos Ágeis Agile Modeling, ou AG
Processo de Software Prof. Dr. rer. nat. Daniel D. Abdala
Introdução à Modelagem de Software
Técnicas e Projeto de Sistemas
Engenharia de Software
Desafios do desenvolvimento de software
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Sistema de Monitoramento das Gerências de Serviço do ITIL
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Adaptive software development ASD
Linguagem de Programação II
Engenharia de Software
Engenharia de Software
Desenvolvimento Rápido de Aplicação (RAD)
Processo de Desenvolvimento de Software
Técnicas e Projeto de Sistemas
PAS Características: Elaborado com o propósito de ser utilizado em práticas acadêmicas de desenvolvimento de software. Foi desenvolvido de forma iterativa.
PSBD II Projeto de Sistemas de Banco de Dados II
O Processo de desenvolvimento de software
Introdução à Engenharia de Software
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
Bruno Silva Desenvolvido a partir de
RUP - Cap. 4 – Processo Centrado na Arquitetura
Processos de Software.
Processos de Software.
Técnicas e Projeto de Sistemas
1 Mesa de Compras Apresentação Fábrica 16/06/2003.
Engenharia de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Métodos Ágeis e Programação Extrema (XP)
Engenharia de Software
Gerenciamento de Requisitos e Modelagem de sistemas
Engenharia de Software
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína XP (EXTREME PROGRAMMING) Pós-Graduação em Engenharia de Software Metodologias.
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Apresentação Leonardo Brussolo de Paula
Ciclo de Vida de Sistemas de Informação
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
Transcrição da apresentação:

Introdução à Modelagem de Software

O que é software? Programas de computador, juntamente com as estruturas de dados e documentação associada

Tipos de software Sistemas (básico): editores, compiladores, sistemas operacionais, drivers. Aplicativos: controle de negócios e de processos Embutido Web Legado

Quem desenvolve software? Várias denominações Analistas de Sistemas Analistas de Microinformática Analistas Programadores Programadores Arquitetos de Software Engenheiros de Software Desenvolvedores de Software

Aplicações de software industrial automation business software video games telecommunications (the Internet and everything that flows on it) databases educational software medical software image editing spreadsheet simulation software Word processing Decision making software

Mercado de Software 2008: U$303bi 2013: U$457bi 50% em 5 anos!!! Modernos celulares possuem 20 milhões de linha de código No Brasil: SW + serviços: R$63B em 2011 7.o mercado no mundo ~600 mil empregos no total, ~200 mil na área técnica Exportações: U$2,4B

Crise do Software Preço do hardware cai (circuitos integrados) Maior demanda por hardware Maior demanda por software Baixa produtividade e qualidade Resultado: Software entregue fora do prazo e com maior custo Grandes falhas

Por que Engenharia de Software? Termo criado em 1968 Idéia de usar processos e métodos bem definidos, quantificáveis, formais, para desenvolvimento de software Aplicação de conceitos de engenharia ao desenvolvimento de software

Mitos do software “Meu pessoal tem ferramentas de desenvolvimento de software que estão no estado da arte, afinal, compramos para eles os computadores mais novos”. “Se nos atrasarmos no planejamento, podemos adicionar mais programadores” “O estabelecimento geral de objetivos é suficiente para iniciar o desenvolvimento do software – podemos fornecer os detalhes posteriormente”

Mitos do software “Quando escrevemos um programa e o fazemos funcionar, nosso trabalho está completo” “Até que eu esteja com o programa funcionando não tenho como avaliar sua qualidade ”

Desenvolvimento de software: Arte ou Engenharia?

História da modelagem de SW 1945-1960’s Mainframes Software relativamente simples Preocupação maior com hardware Fluxogramas Diagramas de módulos Decomposição funcional COBOL, FORTRAN, ALGOL

História da modelagem de SW 1970’s-1980’s Expansão do mercado computacional (mainframes, micros, estações de trabalho) Software mais complexo Programação estruturada (Dijkstra, Wirth) Análise e projeto estruturados (Tom DeMarco, Gane & Sarson, Yourdon, Constantine) Diagramas de Fluxo de Dados, Pseudo-linguagem, Dicionário de Dados, Tabelas e árvores de decisão Pascal, C, Ada

História da modelagem de SW 1980’s – 1995 Interfaces homem-máquina, redes locais, PCs, Internet Programação orientada a objetos Análise e projeto orientados a objetos (Mellor, Fusion, Coad, Yourdon, OOSE, OMT) Diagramas de Classes C++, Eiffel

História da modelagem de software 1995 - ... Internet, celular, palm, ... Programação orientada a objetos atinge maturidade UML, RUP, Metodologias ágeis Padrões de projeto, frameworks, componentes, linhas de produtos Java, C#, Python, Ruby

Atividades típicas do processo de desenvolvimento Elicitação de Requisitos Qual o problema? O que será feito? Análise e projeto de software Como será feito? Descrição computacional Projeto de arquitetura e detalhado Implementação Testes Implantação

Modelo Linear - crítica Projetos reais raramente seguem o fluxo sequencial Em projetos grandes, é impossível elicitar todos os requisitos antes da fase de análise Requisitos são frequentemente alterados, o que impacta na análise e projeto Demora na descoberta de erros Espera por fim de uma fase para iniciar outra (bloqueio)

Desenvolvimento iterativo e incremental Diversos passos (iterações) com adição de funcionalidades (incremental) Requisitos são agrupados por funcionalidade e implementados em um ciclo de desenvolvimento Partes do software são entregues baseado em requisitos prioritários. Requisitos com maiores riscos são atacados primeiro

Modelo em espiral

Modelo em espiral Cada loop é dividido em 4 setores: Definição de objetivos Avaliação e redução de riscos Desenvolvimento e validação Planejamento

Metodologias ágeis conceitos chave do “Manifesto Ágil”: Indivíduos e interações ao invés de processos e ferramentas. Software executável ao invés de documentação. Colaboração do cliente ao invés de negociação de contratos. Respostas rápidas a mudanças ao invés de seguir planos. Ex. Extreme Programming (XP), Scrum

Extreme Programming A Extreme Programming (XP) é uma metodologia ágil para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. Diferenciais Feedback constante Abordagem incremental A comunicação entre as pessoas é encorajada 12 práticas

Algumas práticas da XP Entregas freqüentes Projeto simples Programação em pares Propriedade coletiva Integração contínua Código padronizado

Ferramentas CASE Computer Aided Software Engineering Ferramentas que auxiliam (dão suporte) as atividades de um processo de desenvolvimento de software Ex. editores de modelos, compiladores, depuradores de código, gerenciadores de configuração, ferramentas de teste, ambientes de desenvolvimento

Uso de ferramentas CASE na disciplina StarUML ArgoUML RationalRose Astah Qualquer outra que o grupo quiser