Introdução à Engenharia de Software (parte II)

17

Click here to load reader

Transcript of Introdução à Engenharia de Software (parte II)

Page 1: Introdução à Engenharia de Software (parte II)

Engenharia de Software

Unidade I – Conceitos BásicosObjetivo: Perceber os aspectos introdutórios e fundamentais sobre Engenharia de Software

Prof. Nécio de Lima Veras

Page 2: Introdução à Engenharia de Software (parte II)

Software X Sistema

Aula anterior (definição de software...)

Definição simplificada de sistema: é um conjunto de elementos inter-relacionados

com um objetivo comum.

Exemplo ???

Todo sistema deve possuir 4 características básicas:elementos ou entidades;

relações entre elementos;

objetivo comum;

Meio ambiente

Sistema

subsistema

Page 3: Introdução à Engenharia de Software (parte II)

Em busca de uma definição formal...“Um sistema é um conjunto de objetos

unidos por alguma forma de iteração ou interdependência.” (Chiavenato, 1983)

“Conjunto de elementos, entre os quais haja alguma relação. Disposição das partes ou elementos de um todo, coordenados entre si, e que formam uma estrutura organizada.” (Ferreira,

Page 4: Introdução à Engenharia de Software (parte II)

Algumas leis universais (segundo a T.G.S)“Todo sistema se contrai, ou seja, é

composto de subsistemas recursivos”;

“Todo sistema se expande, ou seja, é parte de um sistema maior recursivamente”;

“Quanto maior a fragmentação do sistema, maior será a necessidade para coordenar as partes”;

Page 5: Introdução à Engenharia de Software (parte II)

Engenharia de Sistemas (Sommerville)Atividade interdisciplinar que envolve equipes

com diferentes formações técnicas;

Processos envolvidos:Definição de requisitos;

Projeto de sistemas;

Desenvolvimento de subsistema;

Integração de sistema;

Instalação de sistema;

Evolução de sistema;

Desativação do sistema.

Page 6: Introdução à Engenharia de Software (parte II)

E.S.: Uma visão em camadas

Pressman sugere uma visão da engenharia de software como uma tecnologia em camadas, são elas:

Foco em Qualidade

Processos

Métodos

Ferramentas

Page 7: Introdução à Engenharia de Software (parte II)

A base: Foco em QualidadeQualidade é a característica total de uma entidade para satisfazer necessidades declaradas e implícitas. Essas características ou atributos têm que ser mensuráveis de modo que possam ser comparados por padrões conhecidos.Toda engenharia deve se fundamentar no comprometimento com a qualidade.É uma cultura onde o compromisso em melhoria continua em todo o processo de desenvolvimento do software é sustentado.Focando na qualidade em todas as atividades de engenharia de software, reduz-se custo e melhora-se o tempo de desenvolvimento pela minimização de um novo trabalho de correção.

Page 8: Introdução à Engenharia de Software (parte II)

Foco em Qualidade

Para proceder com qualidade, um engenheiro de software tem que observar basicamente os seguintes aspectos:

Controle de qualidade a partir de padrões;

Exemplo: NBR ISO 10006 (Gestão da qualidade) ;

Uso de métricas para desenvolver estratégias para melhorar o produto de software e o processo;

Produto de software deve estar trabalhando corretamente e em conformidade com os requisitos tomados.

Page 9: Introdução à Engenharia de Software (parte II)

Foco na qualidade

Para definir uma boa engenharia de software é necessário observar algumas características como:

Usabilidade

Portabilidade.

Reusabilidade.

Manutenibilidade.

Eficiência.

Acessibilidade.

Page 10: Introdução à Engenharia de Software (parte II)

Processo

Define uma estrutura, que consiste em áreasde processos chave.

Áreas de processos chave são a base para o gerenciamento de projeto (exemplo: PMBOK).

Estabelecem que métodos técnicos sejam aplicados, quais ferramentas são usadas, que produtos de trabalho precisam ser produzidos, e que marcos são definidos.Incluem a garantia que a qualidade será mantida, e que a mudança é devidamente

Page 11: Introdução à Engenharia de Software (parte II)

Processo de Software

Sommerville:Consiste em atividades básicas:

Especificação;

Desenvolvimento;

Validação; e

Evolução.

Page 12: Introdução à Engenharia de Software (parte II)

Método

Métodos definem procedimentos sistemáticos e ordenados de construção de software. Essas atividades incluem um conjunto amplo de tarefas, tais como, análise de requisitos, design, construção do programa, teste e manutenção.(Sommerville) Meio organizado de produzir software. Incluem as sugestões sobre:

Processos a serem seguidos;

Notações a serem utilizadas;

Regras que regem as descrições;

Diretrizes do projeto.

Page 13: Introdução à Engenharia de Software (parte II)

Método

Metodologia: ciência de pensamento sistemático, usando os métodos ou procedimentos para uma disciplina em particular.

Exemplos de metodologias da engenharia de software:

Metodologias Estruturadas;

Metodologias Orientada a Objetos.

Page 14: Introdução à Engenharia de Software (parte II)

Ferramentas

Promovem o suporte aos processos e métodos.

Exemplo: Ferramentas CASE (Computer Aided Software Engineeing);

P/ Sommerville: projetadas para dar apoio às atividades de rotina no processo de software, tais como, editar diagramas, verificar consistências, manter e controlar testes.

Podem ser automáticas ou semi-automáticas.

Assim como as metodologias, vários modelos de ferramentas são usadas para representar sistemas e softwares;

Page 15: Introdução à Engenharia de Software (parte II)

Ferramentas

Abordagem de Modelos de Ferramentas Estruturada:

Diagrama de Entidade-Relacionamento

Diagrama de Fluxo de Dados

Pseudocódigo

Fluxograma

Abordagem de Modelo de Ferramenta Orientada a Objeto:

Linguagem de Modelagem Unificada (UML)

Page 16: Introdução à Engenharia de Software (parte II)

Exercício

Page 17: Introdução à Engenharia de Software (parte II)

Bibliografia

CURSO JEDI, Introdução a Engenharia de Software – Lição 1

PRESSMAN, Roger S. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2007.SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Editora Pearson, ed. 6, 2003.

Estes slides foram inicialmente criados pelo prof. Francisco Gerson (IFPI/Parnaíba) e gentilmente