Introdução à Engenharia de Software (parte II)
Click here to load reader
-
Upload
necio-de-lima-veras -
Category
Education
-
view
1.543 -
download
7
Transcript of 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
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
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,
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”;
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.
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
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.
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.
Foco na qualidade
Para definir uma boa engenharia de software é necessário observar algumas características como:
Usabilidade
Portabilidade.
Reusabilidade.
Manutenibilidade.
Eficiência.
Acessibilidade.
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
Processo de Software
Sommerville:Consiste em atividades básicas:
Especificação;
Desenvolvimento;
Validação; e
Evolução.
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.
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.
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;
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)
Exercício
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