Anda di halaman 1dari 31

Engenharia de Software

CLUDIA MESQUITA claudia.mesquita@udf.edu.br AULA 03


10/02/2014

Unidade II: Introduo Engenharia de Software (EngSW)


CONCEITOS E ELEMENTOS FUNDAMENTAIS

AGENDA
3

Overview da aula anterior Desenvolvimento profissional de software. Uma breve introduo a questes ticas que afetam a engenharia de software. Bibliografia da aula
Cap. 1 Sommerville 9 ed. Pag. 2 a 11.

Desenvolvimento profissional de software


4

Programao em diversas reas;


Cientistas; Engenheiros; Hobby diverso.

Desenvolver software uma atividade profissional


Propsito especfico de negcio; mais que programao individual; Criado por equipes; Tcnica especificao, elaborao e evoluo; Gera produtos

Desenvolvimento profissional de software (ii)


5

Disciplina Engenharia de Software - ESW;


Engenheiros fazem coisas funcionarem, criam novas; Aplica-se mtodos, tcnicas, ferramentas; Software : programa, documentao estrutura do programa,manuais de uso

Qualidade
Intrnseca ESW Refere-se ao comportamento do sw, organizao da documentao, a atributos no funcionais.

Produtos de Software
Produtos genricos Sistemas autnomos que so comercializados e vendidos a qualquer cliente que deseja compr-los. Exemplos - Softwares para PC tais como programas grficos, ferramentas de gerenciamento de projetos; software CAD; software para propsitos especficos, tais como sistemas de registros odontolgicos. Produtos sob encomenda O software que encomendado por um cliente especfico para atender suas prprias necessidades. Exemplos - sistemas de controle integrado, software de controle de trfego areo, sistemas de monitoramento de trfego.

Especificao dos produtos


Produtos genricos A especificao do que o software deve fazer de propriedade do desenvolvedor de software e as decises sobre as mudanas de software so feitos pelo desenvolvedor.

Produtos sob encomenda A especificao do que o software deve fazer propriedade do cliente para o software e eles tomam decises sobre as mudanas necessrias no software.

O que se entende por engenharia de software.

Mais perguntas ...

Atributos essenciais de um bom software (no funcionais, qualidade)

Engenharia de Software
A engenharia de software uma disciplina da engenharia que se preocupa com todos os aspectos da produo de software desde o incio da especificao do sistema at a manuteno do sistema aps esse estar sendo usado. Utiliza teorias e mtodos adequados para resolver os problemas tendo em mente as restries organizacionais e financeiras. No se preocupa apenas com o processo tcnico de desenvolvimento, mas tambm com o gerenciamento de projetos e o desenvolvimento de ferramentas, mtodos, etc. para dar apoio produo de software.

A importncia da engenharia de software


Cada vez mais, os indivduos e a sociedade dependem de sistemas de software avanados. Precisamos ser capazes de produzir sistemas rapidamente. confiveis com economia e

Geralmente, mais barato, no longo prazo, usar mtodos de engenharia de software e tcnicas para os sistemas de software em vez de apenas escrever os programas como se fosse um projeto de programao pessoal. Para a maioria dos tipos de sistemas, a maior parte dos custos so os custos de alterar o software em uso.

Atividades de processo de software


A especificao de software, onde os clientes e engenheiros definem o software que deve ser produzido e as restries sobre o seu funcionamento. Desenvolvimento de software, no qual o software projetado e programado. Validao de software, em que o software verificado para garantia de atender ao que o cliente necessita. Evoluo de software, em que o software modificado para refletir as mudanas de requisitos do cliente e do mercado.

Questes gerais que afetam a maioria dos softwares


Heterogeneidade Cada vez mais, os sistemas so necessrios para operar como sistemas distribudos atravs de redes que incluem diferentes tipos de computadores e dispositivos mveis. Mudana de negcio e social Negcio e sociedade esto mudando com uma rapidez incrvel, na medida em que as economias emergentes se desenvolvem e as novas tecnologias se tornam disponveis. Elas precisam ser capazes de alterar os softwares existentes e desenvolver novos softwares rapidamente. Segurana e confiana Como o software est entrelaado com todos os aspectos de nossas vidas, essencial que possamos confiar nele.

Diversidade na engenharia de software

Existem muitos tipos diferentes de sistemas de software e no existe um conjunto universal de tcnicas de software aplicvel a todos eles.

Os mtodos de engenharia de software e ferramentas usadas dependem do tipo da aplicao que ser desenvolvida, os requisitos do cliente e os antecedentes da equipe de desenvolvimento.

Tipos de aplicaes
Aplicaes stand-alone so aplicaes executadas em um computador local, tal como um PC. Incluem toda a funcionalidade necessria e no precisam estar conectadas a uma rede. Aplicaes interativas baseadas em transaes so aplicaes executadas em um computador remoto e so acessadas pelos usurios a partir dos seus prprios PCs ou terminais. Essas incluem aplicaes web tais como para ecommerce. Sistemas de controle embutidos so sistemas de software de controle que controlam e gerenciam dispositivos de hardware. Numericamente, provavelmente existem mais sistemas embutidos do que qualquer outro tipo de sistema. Sistemas de entretenimento so, principalmente, para uso pessoal e se destinam a entreter o usurio.

Tipos de aplicaes
Sistemas de processamento de lotes so sistemas corporativos projetados para processar dados em grandes lotes. Eles processam um grande nmero de entradas individuais para criar sadas correspondentes. Sistemas de modelagem e simulao so desenvolvidos por cientistas e engenheiros para modelar processos fsicos ou situaes, que incluem muitos, objetos separados que interagem entre si. Sistemas de coleta de dados so sistemas que coletam dados do seu ambiente usando um conjunto de sensores e envia esses dados para outros sistemas, para processamento. Sistemas de sistemas so sistemas compostos por uma srie de outros sistemas de software.

Fundamentos de Engenharia de Software


Alguns princpios fundamentais se aplicam a todos os tipos de sistema de software, independentemente das tcnicas de desenvolvimento utilizadas:
1.

Os sistemas devem ser desenvolvidos atravs de um processo de desenvolvimento gerenciado e compreendido. Naturalmente, diferentes processos so usados para diferentes tipos de software. Confiana e desempenho so importantes para todos os tipos de sistemas. importante entender e gerenciar as especificaes e requisitos do software (o que o software deve fazer). Quando possvel, voc deve reusar software que j foi desenvolvido, em vez de escrever um novo software.

2.

3.

4.

Pontos Importantes
A engenharia de software uma disciplina da engenharia que se preocupa com todos os aspectos da produo de software. Atributos essenciais do produto de software so a manutenibilidade, confiana, proteo, eficincia e aceitabilidade. As atividades de alto nvel de especificao, desenvolvimento, validao e evoluo fazem parte de todos os processos de software. As ideias fundamentais da engenharia de software so universalmente aplicveis a todos os tipos de desenvolvimento do sistema. Existem muitos tipos diferentes de sistemas e cada um requer ferramentas de engenharia de software e tcnicas apropriadas para o seu desenvolvimento.

Uma breve introduo a questes ticas que afetam a engenharia de software


20

A engenharia de software envolve responsabilidades mais amplas do que a simples aplicao de habilidades tcnicas. Engenheiros de software devem se comportar de uma maneira honesta e eticamente responsvel para serem respeitados como profissionais. Comportamento tico mais do que simplesmente agir em concordncia com a lei, envolve seguir um conjunto de princpios moralmente corretos.

Questes de responsabilidade profissional


Confidencialidade Normalmente, os engenheiros devem respeitar a confidencialidade de seus empregadores ou clientes, independentemente de haver ou no um acordo de confidencialidade formal assinado entre eles. Competncia Engenheiros no devem falsear seus nveis de competncia. Eles no devem aceitar trabalhos que esto fora da sua competncia.

Questes de responsabilidade profissional


Direitos de propriedade intelectual Engenheiros devem estar cientes das leis locais que regulam a propriedade intelectual, tais como patentes, direitos autorais, etc. Eles devem ser cuidadosos para assegurar que a propriedade intelectual dos empregadores e clientes esteja protegida. Uso indevido de computador Engenheiros de software no devem usar suas habilidades tcnicas para uso indevido de computadores de outras pessoas. A variao do mau uso do computador vai desde relativamente trivial (brincar com jogos na mquina de um empregador, por exemplo) a extremamente srios (disseminao de vrus).

Cdigo de tica
As sociedades profissionais nos EUA tm cooperado para produzir um cdigo de conduta tica. Membros destas organizaes se comprometem com o cdigo de tica quando entram nelas. Cdigo tica brasileiro ???

Justificativas para o cdigo de tica


Os computadores tm um papel central e crescente no comrcio, indstria, governo, medicina, educao, entretenimento e sociedade em geral. Os engenheiros de software so aqueles que contribuem atravs da participao direta ou atravs do ensino, para a anlise, especificao, projeto, desenvolvimento, certificao, manuteno e testes de sistemas de software. Por causa de seus papis no desenvolvimento de sistemas de software, os engenheiros de software tm significativas oportunidades de fazer o bem ou causar o mal, ou influenciar outros a fazerem o bem ou causarem o mal. Para garantir, tanto quanto possvel, que seus esforos sejam usados para o bem, engenheiros de software devem se comprometer a fazer engenharia de software uma profisso benfica e respeitada.

O cdigo de ticas da ACM/IEEE


O Cdigo (ACM/IEEE) contm oito princpios relacionados ao comportamento e decises tomadas por engenheiros de software profissionais, incluindo profissionais, educadores, gestores, supervisores e polticos, bem como estagirios e estudantes da profisso. Cdigo de tica e prticas profissionais da engenharia de software Fora-tarefa conjunta da ACM/IEEE-CS para tica e prticas profissionais da engenharia de software Prefcio ... Os engenheiros de software devem se comprometer a fazer da anlise, especificao, projeto, desenvolvimento, teste e manuteno de software uma profisso benfica e respeitada.

Prncipios ticos
Em conformidade com seu comprometimento com a sade, a segurana e o bem-estar pblicos, engenheiros de software devem aderir a oito princpios: 1. PBLICO Engenheiros de software devem agir de acordo com o interesse pblico. 2. CLIENTE E EMPREGADOR Engenheiros de software devem agir de maneira que seja do melhor interesse de seu cliente e empregador e de acordo com o interesse pblico. 3. PRODUTO Engenheiros de software devem garantir que seus produtos e modificaes relacionadas atendam aos mais altos padres profissionais possveis. 4. JULGAMENTO Engenheiros de software devem manter a integridade e a independncia em seu julgamento profissional.

Prncipios ticos (cont.)


5. GERENCIAMENTO Gerentes e lderes de engenharia de software devem aceitar e promover uma abordagem tica para o gerenciamento de desenvolvimento e manuteno de software. PROFISSO Engenheiros de software devem aprimorar a integridade e a reputao da profisso de acordo com o interesse pblico. COLEGAS Engenheiros de software devem auxiliar e ser justos com seus colegas. SI PRPRIO Engenheiros de software devem participar da aprendizagem contnua durante toda a vida, e devem promover uma abordagem tica para a prtica da profisso.

6.

7.

8.

Dilemas ticos
Desacordo, em princpio, com as polticas da gerncia snior. Seu empregador age de forma antitica e libera um sistema crtico de segurana sem terminar os testes do sistema. Participao no desenvolvimento de sistemas de armas militares ou sistemas nucleares.

Pontos Importantes
Engenheiros de software tm responsabilidades para com a profisso de engenharia e a sociedade. Eles no deveriam simplesmente se preocupar com questes tcnicas. Sociedades profissionais publicam cdigos de conduta que estabelecem os padres de comportamento esperado de seus membros.

Atividade
30

Atividade
Formar grupos com 4 componentes e discutir; - Os profissionais da Tecnologia da Informao deveriam fazer uma prova (certificao) para obter o grau assim como os advogados e mdicos? Quais as vantagens e desvantagens? - No intuito de combater o terrorismo, h pases que planejam desenvolver, esto desenvolvendo, ou j desenvolveram, sistemas computacionais que rastreiam informaes de cidados, bem como as aes destes. Certamente isso implica em questes de privacidade. Discutam a tica de se trabalhar desenvolvendo esse tipo de sistema.

Exerccio prox. aula:


Alm dos desafios de heterogeneidade, mudanas sociais e corporativas, confiana e proteo, identifique outros problemas e desafios que a engenharia de software provavelmente enfrentar no sculo XXI. Pesquise e d um exemplo de sistema (software) para cada tipo de aplicao/sistema apresentado.

Agradeo a ateno!

CLAUDIA.MESQUITA@UDF.EDU.BR

Anda mungkin juga menyukai