tai – tópicos avançados em informática prof. ms wagner...

3

Click here to load reader

Upload: hoangkhuong

Post on 04-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TAI – Tópicos Avançados em Informática Prof. MS Wagner ...cavalcanti.pro.br/textos/es/es_001_conceitos.pdf · Engenharia de Software ... Engenharia de Software É uma disciplina

TAI – Tópicos Avançados em Informática Prof. MS Wagner Siqueira Cavalcante

Engenharia de Software - Principais Conceitos Engenharia de Software É uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção e após o inicio de sua operação, sendo que:

� A disciplina da engenharia conduz os engenheiros a fazerem com que os produtos de software funcionem, aplicando teorias, métodos e ferramentas apropriadas e, de modo seletivo, procuram descobrir soluções para os problemas, mesmo quando não existem teorias aplicáveis e métodos de apoio.

� Os aspectos da produção de software fazem com que a Engenharia de Software não se dedique somente aos processos técnicos de desenvolvimento, mas também às atividades, como o gerenciamento de projetos de software, o desenvolvimento de ferramentas, métodos e teorias que dão apoio à sua produção.

Engenharia de Software x Ciência da Computação A ciência da computação se ocupa da teoria e dos fundamentos, enquanto a Engenharia de Software trata da praticidade de desenvolver e fornecer software útil.

Engenharia de Software x Engenharia de Sistemas A engenharia de sistemas se ocupa de todos os aspectos relacionados ao desenvolvimento de sistemas com base em computadores, incluindo hardware, software e engenharia de processos, sendo a Engenharia de Software parte deste processo.

Engenharia de Sistemas O envolvimento interdisciplinar da engenharia de sistemas envolve equipes com diferentes formações técnicas, necessárias por causa do amplo conhecimento exigido, considerando-se todas as implicações de decisões referentes ao projeto do sistema.

� Definição dos requisitos � Projeto do sistema � Desenvolvimento de subsistema � Integração do sistema � Instalação do sistema � Operação do sistema � Evolução do sistema � Desativação do sistema

Processo de Software É um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução de um software, possui quatro atividades de processo fundamentais, comuns a todos os processos de software:

� Especificação do software Define as funcionalidades do software suas restrições e operações;

� Desenvolvimento do software O software deve ser produzido de modo que atenda as suas especificações;

� Validação do software O software tem de ser validado para garantir que ele faz o que o cliente deseja, ou seja, o que foi

especificado; � Evolução do software

O software deve evoluir para atender às necessidades mutáveis do cliente.

Modelo de Processo de Software É uma representação simplificada de um processo de software, que é apresentada a partir de um modelo. Pela sua natureza, os modelos são simplificações, portanto, uma abstração do processo real que está sendo descrito. Dentre os modelos de processo, destacam-se atividades que são parte do processo de software, produtos de software e o papel das pessoas envolvidas na Engenharia de Software.

� Workflow – seqüência de atividades � Fluxo de dados ou atividades – fluxo de informações � Papel/Ação – representa os papeis das pessoas e quais suas responsabilidades nas atividades

Page 2: TAI – Tópicos Avançados em Informática Prof. MS Wagner ...cavalcanti.pro.br/textos/es/es_001_conceitos.pdf · Engenharia de Software ... Engenharia de Software É uma disciplina

TAI – Tópicos Avançados em Informática Prof. MS Wagner Siqueira Cavalcante

Paradigmas de desenvolvimento de software � Modelo em cascata (Waterfall) � Desenvolvimento evolucionário � Transformação formal, produção de uma especificação formal do sistema. � Desenvolvimento orientado ao reuso

Custos da Engenharia de Software Não existe uma resposta simples que defina “custos”, uma vez que a distribuição precisa de custos ao longo do processo de software, depende do processo utilizado e do tipo de software que será desenvolvido. De maneira geral pode-se expressar que, aproximadamente 60% dos custos relacionados ao desenvolvimento e 40%, são referentes aos testes. Para o software personalizado, os custos de evolução freqüentemente excedem os de desenvolvimento.

Ferramentas CASE O acrônimo de CASE significa Computer-Aided Software Engineering, ou Engenharia de Software auxiliada por computador. Ela se refere a uma ampla gama de programas utilizados para apoiar as atividades de processo de software, como análise de requisitos, modelagem do sistema, depuração e testes.

Principais atributos de um bom software Às vezes chamados de não funcionais, estes atributos estão relacionados à sua facilidade de manutenção, nível de confiabilidade, eficiência e facilidade de uso.

Projetos Segundo o PMBOK “um projeto é um empreendimento temporário que tem por finalidade criar um produto, serviço ou resultado único”. Os projetos têm natureza temporária (possuem data de início e fim definido), e estarão concluídos quando as respectivas metas e objetivos forem cumpridos. Às vezes, encerram-se, ao se determinar que não será possível cumprir suas metas e objetivos, sendo cancelados, portanto. As atividades de operação de um projeto abrangem um trabalho contínuo, sem uma data de término, e geralmente repetem o mesmo processo.

Gerenciamento de Projetos É um processo que exige várias atividades, incluindo planejar, colocar em ação o plano do projeto e acompanhar o seu progresso e desempenho. O planejamento é uma das funções mais importantes do projeto, pois é o processo em que se define o padrão a ser aplicado ao longo do ciclo devido e será usado para rastrear o desempenho futuro do projeto.

Habilidades Necessárias a um Gerente de Projeto Muitas organizações nomeiam seus técnicos especialistas como gerentes de projeto, mas as habilidades e a experiência que os tornam estrelas em suas áreas técnicas, supostamente se traduzem em aptidões para a gerência de projetos, mas não é necessariamente assim. Os gerentes de projetos são profissionais generalistas, com muitas habilidades em seu repertório. São solucionadores de problemas que usam várias competências. Na realidade eles podem ter aptidões técnicas, todavia isso não é pré-requisito para o gerenciamento de projetos. Sua equipe de projeto terá especialistas técnicos, pessoas com as quais o gerente de projeto contará para os detalhes técnicos.

� Devem possuir habilidades de comunicação escrita e oral: Tais domínios são imprescindíveis para a elaboração de documentos do projeto, atualizações de reuniões, relatórios de status, etc., o que assegura que as informações sejam explícitas, claras e completas, e que o público não tenha dificuldade de entender o que está sendo transmitido.

� Devem ter aptidões organizacionais: Requerem-se tais aptidões para rastrear documentos do projeto, informações sobre requisitos, memorandos, relatórios do projeto, registros pessoais, cotações, contratos, organizar reuniões, gerenciar o tempo.

� Devem saber elaborar orçamentos: Fazer estimativas de custos para a elaboração do orçamento do projeto requer conhecimentos básicos de finanças e contabilidade, sendo muito importante.

� Devem ter a habilidade de negociar e influenciar: Em termos simples, negociar é trabalhar com os outros para se chegar a um acordo. Influenciar é a habilidade de convencer as pessoas, tanto a tomarem atitudes que, de outra forma, não tomariam, quanto também de mudar de idéia e alterar o rumo dos acontecimentos, o que se reflete nos resultados.

Page 3: TAI – Tópicos Avançados em Informática Prof. MS Wagner ...cavalcanti.pro.br/textos/es/es_001_conceitos.pdf · Engenharia de Software ... Engenharia de Software É uma disciplina

TAI – Tópicos Avançados em Informática Prof. MS Wagner Siqueira Cavalcante

� Devem possuir a capacidade de liderança e de gerenciamento: Estes não são termos sinônimos. Os líderes expressam sua visão, obtém consenso para as metas estratégicas, estabelecem diretrizes, inspiram e motivam outras pessoas.

� Devem saber formar equipes e gerenciar recursos humanos: É muito utilizada em conjunto com as habilidades de negociação, influência e gerenciamento, pois sempre será necessária a formação de equipes, o gerenciamento de recursos humanos, a motivação dos integrantes, mesmo que estes não sejam seus subordinados diretos.

Pontos principais A Engenharia de Software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software. Os produtos de software constituem-se de programas desenvolvidos e da documentação associada. Os atributos essenciais dos produtos são a facilidade de manutenção, confiabilidade, eficiência e facilidade de uso. O processo de software consiste em atividades envolvidas no desenvolvimento de produtos de software. As atividades básicas são a especificação, o desenvolvimento, a validação e a evolução de software. Métodos são meios organizados de produzir software. Eles incluem sugestões sobre o processo a ser seguido, as anotações a serem utilizadas, as regras que regem as descrições de sistemas produzidas e as diretrizes do projeto. As ferramentas CASE são sistemas de software projetados para dar apoio às atividades de rotina no processo de software, tais como editar diagramas de projeto, verificar diagramas, manter o controle do projeto. Projetos são atividades com início e fim determinados, com a finalidade de criar um produto, serviço ou resultado único. O gerenciamento de projetos é um processo que exige várias atividades, incluindo planejar, colocar em ação o plano do projeto e acompanhar o progresso e o desempenho. Um bom gerente de projetos deve possuir ou lapidar suas habilidades nas áreas de comunicação, organizacional, negociação, liderança e criatividade, para poderem resolver os problemas durante a vida de um projeto.