Apresentao Pessoal Nome? Formao? Experincia Profissional? Experincia com Anlise?
Ementa da Disciplina Engenharia de Software. Fundamentao dos Princpios da Engenharia de Software. Conceituao de Produto de software. Processo de Software. Processo Pessoal de Software. Processo de Equipe de software. Modelos de Processo de Software. Modelos geis. Introduo a Engenharia de Requisitos Objetivos da Disciplina Proporcionar ao aluno conhecimento em mtodos e tcnicas de projeto que auxiliam o processo de desenvolvimento de software. Identificar, descrever e comparar os modelos de processo de desenvolvimento de software. Habilitar o aluno para escolher, utilizar e definir modelos, tcnicas e ferramentas para auxiliar o processo como produto. Contedo da Disciplina Fundamentos da engenharia de software Conceitos e objetivos O papel evolutivo do software Software produto A natureza mutvel do software Tipos de aplicaes de software Problemas com prazo, planejamento e custos Qualidade de software
Contedo da Disciplina O processo de software Etapas do processo de software PSP - Processo Pessoal de Software TSP Processo de Equipe de Software Modelos de processos de software (Modelos de ciclo de vida de software) Codifica-remenda Modelo Cascata Incremental RAD Evolucionrio: Espiral, Prototipao Contedo da Disciplina Modelos especializados de processo: Baseado em Componentes, Baseado em Mtodos Formais Processo Unificado RUP Praxis Cleanroom (Sala Limpa) Iconix Modelos geis O que um processo gil? Modelos geis de processos Contedo da Disciplina XP Extreme programming Scrum FDD (Feature Driven Development ) ASD (Adaptative Software Development ) DSDM (Dynamic Systems Development Method ) Crystal Modelagem gil (AM) Pratica da Engenharia de Software Princpios centrais Prticas de Comunicao, Planejamento, Modelagem, Construo e implantao
Bibliografia PRESSMAN, R. S. Engenharia de software. 6. ed. So Paulo: McGraw-Hill, 2006. SOMMERVILLE, I. Engenharia de software. 8. ed. So Paulo: Pearson, 2007. PAULA FILHO, W. P. Engenharia de software - fundamentos, mtodos e padres. 3. ed. Rio de Janeiro: LTC, 2009.
Bibliografia Complementar PETERS, J. F.; PEDRYCZ, W. Engenharia de software: teoria e prtica. Rio de Janeiro: Campus, 2001.
SCHACH, S. R. Engenharia de software: os paradigmas clssico & orientado a objetos. 7. ed. So Paulo: McGraw-Hill, 2008.
Perguntas
Engenharia de Software Segundo Pressman (2006), um software um conjunto composto por instrues de computador, estruturas de dados e documentos.
Produtos de software podem ser:
Genricos desenvolvidos para serem vendidos para uma grande variedade de clientes, por exemplo, softwares para PC, tais como Excel e Word.
Personalizados desenvolvidos para um nico cliente de acordo com as suas especificaes. Engenharia de Software Para Bauer (1969) apud Pressman (2006), a Engenharia de Software a criao e a utilizao de slidos princpios de engenharia a fim de obter softwares econmicos que sejam confiveis e que trabalhem eficientemente em mquinas reais. Engenharia de Software A Engenharia de Software almeja inserir as mesmas sistemticas existentes em outras reas da engenharia: Custos aceitveis; Gerenciamento do processo de desenvolvimento; Garantia do trabalho em equipe e; Desenvolvimento de softwares com qualidade. Engenharia de Software Alguns princpios devem ser trabalhados na Engenharia de Software como forma de manter o bom funcionamento do produto final: Evitar dependncia de determinadas pessoas ou processos; Abstrair aspectos importantes; Subdividir problemas complexos; Reutilizar resultados (cdigo) e; Flexibilizao e modularizao para facilitar a manuteno. Engenharia de Software Definies A Engenharia de Software multidisciplinar e podemos dizer que une as seguintes reas: Cincias da Computao: Abrange arquitetura de computadores, lgica de programao, estrutura de dados algoritmos, etc. Administrao: O engenheiro de software atua como gestor de um projeto, administrando prazos, equipe, custos, resultados etc. Comunicao: Habilidade para saber se expressar com clientes ou usurios; Tcnicas de soluo de problemas: O engenheiro de software deve ser um solucionador de problemas, um gerador de solues integradas e inteligentes. Surgimento da Engenharia de Software Dcada de 50 Surgiram os primeiros softwares; Pesquisas eram voltadas para o hardware; Hardware disponvel apenas nos centros de pesquisa; Software desenvolvido sem utilizar tcnicas de engenharia. Surgimento da Engenharia de Software Dcada de 60 Surgiram os microprocessadores e o hardware deixou de representar um problema; Software tornou-se o foco dos pesquisadores; Organizaes comearam a desenvolver grandes sistemas. Surgimento da Engenharia de Software Como surgiu a Engenharia de Software?? A falta de metodologia As equipes de trabalho no tinham um modelo de como desenvolver; No havia documentao adequada do que estava sendo executado; E agora: Como dar manuteno em um sistema que no tem projeto? Desafios Encontrados Desafios encontrados As economias de todas as naes desenvolvidas so dependentes de software. Cada vez mais sistemas so controlados por software. Os dispndios com software representam uma frao significativa do PIB em todos os pases desenvolvidos; Os custos dos produtos eram altos; Os recursos destinados ao projeto, normalmente, eram insuficientes; As solues propostas no conseguiam agradar aos clientes. Desafios Encontrados Desafios da Engenharia de Software: Reduzir custos; Melhorar a qualidade do software, e; Atender as expectativas do cliente.
Problemas encontrados Os custos de software dominam os custos de sistemas computacionais. Em um PC, os custos de software so frequentemente maiores que o custo do hardware. Manter um software custa mais que desenvolv-lo. A engenharia de software dedica-se ao desenvolvimento de software com custos adequados. Problemas encontrados Uma das principais queixas dos clientes que os prazos e os custos no so respeitados; Outro problema bastante comum, a ineficincia durante a etapa de definio de requisitos que no atendem s necessidades dos clientes; Os gerentes e os coordenadores de projetos so, comumente, despreparados para controlar o desenvolvimento adequado de um software. Problemas encontrados Aproximadamente 60% dos custos so custos de desenvolvimento e 40% so custos de testes. Para software sob encomenda, os custos de evoluo normalmente excedem de desenvolvimento. Os custos variam dependendo do tipo de sistema que est sendo desenvolvido e dos requisitos de atributos de sistema, tais como desempenho e confiabilidade. Problemas encontrados Camadas da Engenharia de Software Camadas da Engenharia de Software Processo (mtodos + ferramentas) Une os mtodos s ferramentas; Define a sequncia dos mtodos que sero aplicados e; Define as ferramentas que sero disponibilizadas. Camadas da Engenharia de Software Mtodos (como fazer) H diferentes mtodos para as diferentes etapas do desenvolvimento; existem mtodos para anlise de requisitos, projeto, codificao, testes e manuteno. Ferramentas (apoio automatizado) CASE (Computer Aided Software Engineering); Anlise estruturada, anlise essencial ou orientada a objetos; Ferramentas de banco de dados; Linguagens de programao. Estrutura de um Processo Estrutura de um processo aplicvel maioria dos projetos de software, sejam eles de pequena, mdia ou alta complexidade: Comunicao: Contempla alta comunicao e colaborao com o cliente/usurio e abrange o levantamento de requisitos. Planejamento: Descreve as tarefas tcnicas, os riscos provveis, os recursos necessrios, os produtos que sero produzidos e um cronograma. Estrutura de um Processo Modelagem: Constri modelos que permitem ao desenvolvedor e ao cliente entender melhor os requisitos do software e o software que atender esses requisitos. Construo: Contempla a criao dos cdigos e a execuo de testes. Implantao: Avaliao e feedback do cliente quanto ao software desenvolvido. Estrutura de um Processo Um Processo de Software o conjunto de atividades cuja meta o desenvolvimento ou evoluo de um software. As atividades genricas em todos os processos de software so: Especificao: O que o sistema deve fazer e suas restries de desenvolvimento. Desenvolvimento: Produo do sistema de software. Validao: Verificao de que o software o que o cliente deseja. Evoluo: Mudana do software em resposta s demandas de mudana. Tipos de Softwares Com o aumento da complexidade dos softwares, cada vez mais, torna-se difcil classific-lo. Abaixo, seguem reas potenciais: Software bsico; Software de tempo real; Software comercial; Software cientfico e de engenharia; Software embutido; Software de computador pessoal; Tipos de Softwares Software linguagens de 4 gerao; Software educativo; Software de Inteligncia Artificial (IA); Software de gesto empresarial; Software de informaes gerenciais; Software de apoio deciso. Atributos de um bom Software Facilidade de manuteno: O software deve evoluir para atender s necessidades de mudana. Confiana: O software deve ser confivel. Eficincia: O software no deve desperdiar os recursos do sistema. Usabilidade: O software deve ser aceito pelos usurios para o qual foi projetado. Isso significa que ele deve ser compreensvel, usvel e compatvel com outros sistemas. Desafios Chaves Enfrentados Heterogeneidade: Tcnicas de desenvolvimento para construo de software que podem lidar com plataformas heterogneas e ambientes de execuo. Entrega: Tcnicas de desenvolvimento para conduzir a entrega mais rpida de software. Confiana: Tcnicas de desenvolvimento que mostram que o software pode ter a confiana dos seus usurios. OBRIGADA! Fernanda Lima felima0730@gmail.com