Sunteți pe pagina 1din 10

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS

Prof. Esp. Marcelo Cabello Peres

Conceitos de Engenharia de Software Para uma melhor definio do conceito de Engenharia de Software, faz-se necessria a explicao isolada dos termos que o compem. De forma genrica, pode-se definir software como: instrues que, quando executadas, produzem a funo desejada, estruturas de dados que possibilitam que os programas manipulem a informao e documentao relativa ao sistema. Engenharia diz respeito ao projeto e manufatura Trata-se da definio clssica de Engenharia. Naturalmente, um programa de computador no passa por um processo de manufatura como se conhece no meio industrial de produtos complexos. A IEEE Computer Society define Engenharia de Software como:

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

"A aplicao de uma abordagem sistemtica, disciplinada e quantificvel de desenvolvimento, operao e manuteno do software; ou seja, a aplicao da engenharia no software." imediato que a engenharia de software a disciplina que se presta a projetar e produzir produtos de software, onde a qualidade o objetivo principal. Esta rea do conhecimento computacional diferencia profissionais de no-profissionais. Um pouco de histria 1 era: Nos primeiros anos de sua trajetria (de 1950 at meados da dcada de 1960), o software era projetado sob medida para cada aplicao. Uma pessoa o desenvolvia, o implantava e toda manuteno ficava a cargo desta mesma pessoa. A documentao geralmente era precria, quando existia. Nesta poca, a maioria dos esforos era concentrada no desenvolvimento do hardware, ficando o software em segundo plano.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

2 era: Meados de 1960 at o final dos anos 1970, foi caracterizada pelos sistemas multiusurios, pelo surgimento dos Sistemas Gerenciadores de Banco de Dados (SGBD), pelo aparecimento das software-houses e pela dificuldade em se fazer manuteno nos sistemas.

3 era: Final dos anos de 1970 at 2000, caracterizou-se pelas redes locais e globais (Internet), downsizing, reengenharia de sistemas, pelos sistemas especialistas, pelo paradigma de orientao a objeto. O computador pessoal se popularizou e empresas como Microsoft, Oracle e Sun Microsystems ganharam notoriedade e mercado.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Software Software: fator de diferenciao em uma organizao Os softwares esto substituindo componentes ou sistemas inteiros. Esto se tornando presentes no lugar de antigas mquinas. O desafio transformar o grande potencial e amigabilidade que o diferencia do resto, uma realidade. Sistemas Sistema uma coleo de componentes interrelacionados que interagem para um objetivo comum. Um sistema pode ser de software, mecnico, eltrico, eletrnico e ser operado por pessoas.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Os componentes de um sistema so dependentes de outros componentes do sistema e suas propriedades e comportamentos esto infalivelmente relacionados. Ou seja, se algum componente falha, todo o processo pode ficar comprometido. Possibilidades => Complexidade => Vulnerabilidade => FALHAS ! O software (infelizmente) visto como um problema na engenharia de sistemas. Muitos projetos grandes so atrasados devido a problemas de software.

Componentes do software Um componente de software um termo que se refere a tecnologia que encapsula funcionalidades de software. Em geral, so listados cinco critrios para justificar a definio acima:

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Uso mltiplo: o componente deve ser projetado e implementado de forma que possa ser reusado em muitos programas diferentes. Sem contexto: Independente de plataforma Habilidade em compor com outros componentes: Deve permanecer em operao, independentemente de outros componentes Encapsulado: Seu cdigo no relevante Independente de verso: O componente deve funcionar independentemente da verso do programa que o abriga;

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Aplicativos do software Emprega as funcionalidades do computador as tarefas rotineiras dos usurios finais Classificao de software Software bsico: apoio a outros programas. Forte interao com o hardware. Exemplos: Compiladores, device drivers, componentes de sistema operacional. Software comercial: maior aplicao do software. Manipulao de grande volume de dados. Exemplos: Folha de pagamento, estoque, RH. Forte interao com banco de dados. Software cientfico: algoritmos de processamento numrico. Usados na astronomia, mecnica e projeto auxiliado por computador. Grande quantidade de clculos. Software de computador pessoal: Interao com o ser humano deve ser fcil e amigvel. Exemplos: Planilhas, editores de texto, browsers, entre outros.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Princpios da Engenharia de Software Abstrao: para resolver um problema, separar os aspectos que esto ligados a uma realidade particular, visando represent-lo em forma simplificada e geral. Formalidade: seguir uma abordagem rigorosa e metdica para resolver um problema. Dividir para conquistar: resolver um problema complexo dividindo-o em um conjunto de problemas menores e independentes que so mais fceis de serem compreendidos e resolvidos. Organizao hierrquica: organizar os componentes de uma soluo em uma estrutura hierrquica tipo rvore. Assim, a estrutura pode ser compreendida e construda nvel por nvel, cada novo nvel com mais detalhes. Ocultao: esconder as informaes no essenciais. Permitir que o mdulo "veja" apenas a informao necessria quele mdulo.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Localizao: colocar juntos os itens relacionados logicamente (o usurio no pensa como o analista!) Integridade conceitual: seguir uma filosofia e arquitetura de projeto coerentes. Completeza: checar para garantir que nada foi omitido. Motivos para no automatizar um sistema Custo: pode ser mais barato continuar executando as funes do sistema e armazenando as informaes manualmente. Nem sempre verdade que os computadores so mais rpidos e mais baratos do que o modo convencional. Segurana: o usurio pode no querer que um sistema com informaes importantes e confidenciais seja informatizado. Manutenibilidade: no h condies de manter o hardware ou software do computador. Poltica: usurios podem encarar o computador como ameaa e podem tentar fazer o projeto fracassar.

Cincia da Computao ENGENHARIA DE SOFTWARE ANALISE E PROJ DE SISTEMAS


Prof. Esp. Marcelo Cabello Peres

Outros: inviabilidade (por exemplo, zona rural sem energia eltrica). Exerccios Identifique o princpio da Engenharia de Software no observado nas seguintes situaes: a) A equipe de Joo construiu um processador de texto chamado Jord, onde a classificao por ordem alfabtica encontra-se no menu "Tabela". b) Ao projetar o registro dos funcionrios de uma empresa, a equipe de Joo escolheu os seguintes dados para a identificao dos funcionrios: Matrcula, nome, cargo, cor predileta, time do corao e salrio. c) A mesma equipe do Joo foi chamada a construir um sistema acadmico. Para a fase de anlise, foi escolhido a metodologia da Anlise estruturada e, para o projeto, a metodologia de Projeto Orientado a Objeto.

S-ar putea să vă placă și