ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à...

20
ENGENHARIA DE SOFTWARE AULA 1 – Introdução à Engenharia de Software 05/02/2014 Prof. Geovani Sajorato [email protected]

Transcript of ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à...

Page 1: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

ENGENHARIA DE SOFTWARE

AULA 1 – Introdução à Engenharia de Software

05/02/2014

Prof. Geovani [email protected]

Page 2: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Sobre o professor...Sobre o professor...Sobre o professor...Sobre o professor...

• Geovani Sajorato• Engenheiro de Software Pleno na IOB Folhamatic S.A (Sage Group

Brazil).

• 5 anos de experiência com desenvolvimento de Software

• Especialista em tecnologia de desenvolvimento Microsoft

• Microsoft Certified Technology Specialist - MCTS . Net Framework 4, Data Access Solution, Team Foundation Server 2012

• Pós-Graduando em Gestão de Projetos em Tecnologia da Informação pela FATEC Americana

• Graduado em Análise e Desenvolvimento de Sistemas pela Faculdade Anhanguera de Santa Bárbara d'Oeste

Prof. Geovani Sajorato

[email protected]

Page 3: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Apresentação do Plano de EnsinoApresentação do Plano de EnsinoApresentação do Plano de EnsinoApresentação do Plano de Ensino

• Ementa:

• Engenharia de software.

• Conceito de processo de software e de modelo de processo de software.

• Atividades técnicas de engenharia de software. A importância de uma ferramenta CASE.

• Interação sócio técnica inerente ao exercício da engenharia de software.

• Gestão de projeto de software.

Prof. Geovani Sajorato

[email protected]

Page 4: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

BibliografiaBibliografiaBibliografiaBibliografia• Bibliografia Básica

• INTHURN, C. Qualidade & teste de software: engenharia de software, qualidade de software, qualidade de produtos de software. Florianopolis/SC: Bookstore, 2001.

• PRESSMAN, R.S. Engenharia de software. 6ed. São Paulo: McGraw-Hill, 2006.

• SOMMERVILLE, I. Engenharia de software. 6ed. São Paulo: Pearson, 2005.

• Bibliografia Complementar• BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. Rio de Janeiro: Elsevier, 2005.

• CONVERSE, T.P. PHP5: A Bíblia. Rio de Janeiro: Campus, 2003.

• CITS; SOCIEDADE BRASILEIRA DE COMPUTAÇÃO; UNIVERSIDADE ESTADUAL DE MARINGÁ. Anais do XII Simpósio Brasileiro de Engenharia de Software. Maringá/PR: Ideal, 1998. 346p.

• DAVIS, W.S.; VASCONCELLOS, N.D. Análise e projeto de sistemas: uma abordagem estruturada.

Rio de Janeiro/RJ: LTC, 1994.

• GANE, C.; SARSON, T. Análise estruturada de sistemas. Rio de Janeiro/RJ: LTC, 1999.

• LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS: Bookman, 2007.

Prof. Geovani Sajorato

[email protected]

Page 5: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Procedimento MetodológicoProcedimento MetodológicoProcedimento MetodológicoProcedimento Metodológico

Prof. Geovani Sajorato

[email protected]

Page 6: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Perguntas frequentes sobre a engenharia de software

Prof. Geovani Sajorato

[email protected]

Page 7: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Perguntas frequentes sobre a engenharia de software

Prof. Geovani Sajorato

[email protected]

Page 8: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Engenharia de Software A engenharia de software é uma disciplina da engenharia que se preocupa com todos osaspectos da produção de software desde o início da especificação do sistema até amanutenção do sistema após esse estar sendo usado.

• Disciplina de engenharia

Utiliza teorias e métodos adequados para resolver os problemas tendo em mente asrestrições organizacionais e financeiras.

• Todos os aspectos da produção de software

Não se preocupa apenas com o processo técnico de desenvolvimento, mas também com ogerenciamento de projetos e o desenvolvimento de ferramentas, métodos, etc. para darapoio à produção de software.

Prof. Geovani Sajorato

[email protected]

Page 9: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

A importância da engenharia de software• Cada vez mais, os indivíduos e a sociedade dependem de sistemas de software

avançados.

• Precisamos ser capazes de produzir sistemas confiáveis com economia erapidamente.

• Geralmente, é mais barato, no longo prazo, usar métodos de engenharia desoftware e técnicas para os sistemas de software em vez de apenas escrever osprogramas como se fosse um projeto de programação pessoal.

• Para a maioria dos tipos de sistemas, a maior parte dos custos são os custos dealterar o software em uso.

Prof. Geovani Sajorato

[email protected]

Page 10: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Atividades de processo de software

• A especificação de software, onde os clientes e engenheiros definem o software que deve ser produzido e as restrições sobre o seu funcionamento.

• Desenvolvimento de software, em que o software é projetado e programado.

• Validação de software, em que o software é verificado para garantia de atender ao que o cliente necessita.

• Evolução de software, em que o software é modificado para refletir as mudanças de requisitos do cliente e do mercado.

Prof. Geovani Sajorato

[email protected]

Page 11: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Tipos de aplicações

1. Aplicações stand-alone – são aplicações executadas em um computador local, tal como umPC. Incluem toda a funcionalidade necessária e não precisam estar conectadas a umarede.

2. Aplicações interativas baseadas em transações – são aplicações executadas em umcomputador remoto e são acessadas pelos usuários a partir dos seus próprios PCs outerminais. Essas incluem aplicações web tais como para e-commerce.

3. Sistemas de controle embutidos – são sistemas de software de controle que controlam egerenciam dispositivos de hardware. Numericamente, provavelmente existem maissistemas embutidos do que qualquer outro tipo de sistema.

4. Sistemas de entretenimento – são, principalmente, para uso pessoal e se destinam aentreter o usuário.

Prof. Geovani Sajorato

[email protected]

Page 12: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

5. Sistemas de processamento de lotes – são sistemas corporativos projetados paraprocessar dados em grandes lotes. Eles processam um grande número de entradasindividuais para criar saídas correspondentes.

6. Sistemas de modelagem e simulação – são desenvolvidos por cientistas e engenheirospara modelar processos físicos ou situações, que incluem muitos, objetos separadosque interagem entre si.

7. Sistemas de coleta de dados – são sistemas que coletam dados do seu ambiente usandoum conjunto de sensores e envia esses dados para outros sistemas, paraprocessamento.

8. Sistemas de sistemas – são sistemas compostos por uma série de outros sistemas desoftware.

Tipos de aplicações

Prof. Geovani Sajorato

[email protected]

Page 13: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Fundamentos de Engenharia de Software

Alguns princípios fundamentais se aplicam a todos os tipos de sistema de software, independentementedas técnicas de desenvolvimento utilizadas:

1. Os sistemas devem ser desenvolvidos através de um processo de desenvolvimento gerenciado ecompreendido. Naturalmente, diferentes processos são usados para diferentes tipos de software.

2. Confiança e desempenho são importantes para todos os tipos de sistemas.

3. É importante entender e gerenciar as especificações e requisitos do software (o que o softwaredeve fazer).

4. Quando possível, você deve reusar software que já foi desenvolvido, em vez de escrever um novosoftware.

Prof. Geovani Sajorato

[email protected]

Page 14: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Éticas na Engenharia de Software

• A engenharia de software envolve responsabilidades mais amplas do que asimples aplicação de habilidades técnicas.

• Engenheiros de software devem se comportar de uma maneira honesta eeticamente responsável para serem respeitados como profissionais.

• Comportamento ético é mais do que simplesmente agir em concordância com alei, envolve seguir um conjunto de princípios moralmente corretos.

Prof. Geovani Sajorato

[email protected]

Page 15: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Questões de responsabilidade profissional

• Confidencialidade

� Normalmente, os engenheiros devem respeitar a confidencialidade deseus empregadores ou clientes, independentemente de haver ou não umacordo de confidencialidade formal assinado entre eles.

• Competência

� Engenheiros não devem falsear seus níveis de competência. Eles nãodevem aceitar trabalhos que estão fora da sua competência.

Prof. Geovani Sajorato

[email protected]

Page 16: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

• Direitos de propriedade intelectual

�Engenheiros devem estar cientes das leis locais que regulam a apropriedade intelectual, tais como patentes, direitos autorais, etc. Elesdevem ser cuidadosos para assegurar que a propriedade intelectual dosempregadores e clientes esteja protegida.

• Uso indevido de computador

�Engenheiros de software não devem usar suas habilidades técnicas parauso indevido de computadores de outras pessoas. A variação do mau usodo computador vai desde relativamente trivial (brincar com jogos namáquina de um empregador, por exemplo) a extremamente sérios(disseminação de vírus).

Questões de responsabilidade profissional

Prof. Geovani Sajorato

[email protected]

Page 17: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Princípios Éticos1. PÚBLICO — Engenheiros de software devem agir de acordo com o interesse

público.

2. CLIENTE E EMPREGADOR — Engenheiros de software devem agir de maneiraque seja do melhor interesse de seu cliente e empregador e de acordo com ointeresse público.

3. PRODUTO — Engenheiros de software devem garantir que seus produtos emodificações relacionadas atendam aos mais altos padrões profissionaispossíveis.

4. JULGAMENTO — Engenheiros de software devem manter a integridade e aindependência em seu julgamento profissional.

Prof. Geovani Sajorato

[email protected]

Page 18: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Princípios Éticos

5. GERENCIAMENTO — Gerentes e líderes de engenharia de software devemaceitar e promover uma abordagem ética para o gerenciamento dedesenvolvimento e manutenção de software.

6. PROFISSÃO — Engenheiros de software devem aprimorar a integridade e areputação da profissão de acordo com o interesse público.

7. COLEGAS — Engenheiros de software devem auxiliar e ser justos com seuscolegas.

8. SI PRÓPRIO — Engenheiros de software devem participar da aprendizagemcontínua durante toda a vida, e devem promover uma abordagem ética para aprática da profissão.

Prof. Geovani Sajorato

[email protected]

Page 19: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Pontos Importantes• A engenharia de software é uma disciplina da engenharia que se preocupa com todos os aspectos da

produção de software.

• Atributos essenciais do produto de software são a manutenibilidade, confiança, proteção, eficiência eaceitabilidade.

• As atividades de alto nível de especificação, desenvolvimento, validação e evolução fazem parte detodos os processos de software.

• As ideias fundamentais da engenharia de software são universalmente aplicáveis a todos os tipos dedesenvolvimento do sistema.

• Existem muitos tipos diferentes de sistemas e cada um requer ferramentas de engenharia desoftware e técnicas apropriadas para o seu desenvolvimento.

Prof. Geovani Sajorato

[email protected]

Page 20: ENGENHARIA DE SOFTWARE - … · • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre/RS:

Para conhecer

+ 200 motivos

para virar FAM, acesse

Prof. Geovani Sajorato

[email protected]