Você está na página 1de 20

UNIVERSIDADE DE BELAS

 CURSO DE ENGENHARIA INFORMÁTICA

 ENGENHARIA DE SOFTWARE I

Professora Cândida Kandeya


4/22/2019 UNIBELAS
(Aula 2) SUMÁRIO
 Objectivos
 Introdução
 Definições
 Atributos de Software
 Desafios
 Responsabilidade Profissional
 Código de ética

Professora Cândida Kandeya


4/22/2019 UNIBELAS
Objectivo
 Entender o que é engenharia de software e por que ela
é importante;
 Saber as respostas para questões-chaves que fornecem
uma Introdução a engenharia de software;
 Entender questões profissionais e éticas, relevantes para
os engenheiros de software.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
Imagens de Engenharia de Software

Professora Cândida Kandeya


4/22/2019 UNIBELAS
INTRODUÇÃO
 Infra-estruturas e serviços nacionais contam com
sistemas baseados em computadores e a maioria dos
produtos eléctricos inclui um computador e um
software de controle.
 A manufactura e a distribuição industriais estão
completamente automatizadas, assim como os
sistemas financeiros. Portanto, produzir e manter o
software dentro de custos adequados é essencial para o
funcionamento da economia nacional e internacional.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
INTRODUÇÃO
 O conceito de Engenharia de software, foi inicialmente
proposto em 1968, em uma conferência organisada
para discutir o que foi chamado de ‘crise de
software’.Esta crise resultava directamente da
introduçao de novo hardware de computador baseado
em circuitos integrados. O software resultante era de
ordens de grandeza maior e mais complexo que os
sistemas anteriores de software. Essas técnicas
tornaram-se parte da engenharia de software e são
amplamente usadas hoje em dia. (Sommerville 8ª
edição)

Professora Cândida Kandeya


4/22/2019 UNIBELAS
DEFINIÇÕES
 O que ė Software?
 Tem-se associado o termo Software aos programas de
computador, visão mais simplista.
 “ Software trata não somente de programas de
computadores mas também de todos os dados de
documentação e configuração associados necessários
para que o programa opere
correctamente.”(Sommerville 8ª edição)

Professora Cândida Kandeya


4/22/2019 UNIBELAS
DEFINIÇÕES
 Existem dois tipos de produtos de software:
 Produtos genéricos: sistemas do tipo Stand- alone, produzidos
por uma organização de desenvolvimento e vendidos no
mercado para qualquer cliente disposto a compra-los. Ex:
Software para PCs, como banco de dados,processadores de
textos, pacotes gráficos e ferramentas de gerenciamento de
projectos.
 Produtos sob encomenda ( ou personalisados): sistemas
encomendados por um cliente . O software é desenvolvido
especialmente para o cliente por uma empresa de software:
Ex: Software para sistemas de controle de dispositivos
electrónicos, desenvolvidos para apoiar um determinado
processo de negócio e sistemas de controle de tráfego aéreo.
Professora Cândida Kandeya
4/22/2019 UNIBELAS
O que é engenharia de software?
 “ Engenharia de software é uma disciplina de engenharia
relacionada com todos os aspectos da produção de
software, desde os estágios iniciais de especificação do
sistema até sua manutenção, depois que este entrar em
operação.” (SOMMERVILLE 8ª edição)
 “Segundo Friedrich Ludwig Bauer, "Engenharia de Software
é a criação e a utilização de sólidos princípios de
engenharia a fim de obter software de maneira econômica,
que seja confiável e que trabalhe eficientemente em
máquinas reais". O próprio significado de engenharia já
traz os conceitos de criação, construção, análise,
desenvolvimento e manutenção.
Professora Cândida Kandeya
4/22/2019 UNIBELAS
Qual é a diferença entre engenharia de
software e ciência de computação?
 “A ciência de computação diz respeito às teorias e
aos métodos que constituem a base de
computadores e sistemas de software, enquanto
que a engenharia de software se dedica aos
problemas práticos da produção de software.
Algum conhecimento de ciência de computação é
essencial para os engenheiros de software, da
mesma forma que algum conhecimento de física é
essencial para engenheiros eléctricos.”

Professora Cândida Kandeya


4/22/2019 UNIBELAS
Qual é a diferença entre engenharia de
software e engenharia de sistema?

 “ A engenharia de sistemas está relacionada a todos


aspectos de desenvolvimento de sistemas baseados em
computadores, incluindo o hardware, software e
engenharia de processo. A engenharia de software é
parte desse processo.”
 O que são métodos de engenharia de software?
 São abordagens estruturadas para desenvolvimento de
software que incluem modelos de sistemas de
notações, regras, recomendações de projecto e guias de
processo.
Professora Cândida Kandeya
4/22/2019 UNIBELAS
ATRIBUTOS DE SOFTWARE
 Quais são os atributos de um bom software?
 Os atributos essenciais de um bom software são:

 Facilidades de manutenção: o software deve ser escrito de modo


que possa evoluir para atender ás necessidades de mudança dos
clientes.

 Confiança: Um software confiável não deve causar danos fisicos


ou económicos no caso de falha no sistema.

 Eficiência: software não deve desperdiçar os recursos do


sistema, como memòria e ciclos do processador. Portanto a
eficiência inclui tempo de resposta, tempo de processamento,
utilização de memória etc.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
(CONT)

 Usabilidade: O software deve ser usável, sem esforço


excessivo, pelo usuário para o qual ele foi projectado.
Ele deve apresentar uma interface com o usuário e
documentação adequada.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
DESAFIOS
 Quais são os desafios - chave dos Engenheiros de software?
 Desafio da heterogeneidade: o desafio da heterogeneidade
consiste em desenvolver técnicas para construção de software
confiável que seja flexivel o suficiente para adaptar-se com
diferentes tipos de computadores com diferentes tipos de
sistema.
 Desafio da entrega: O desafio da entrega consiste em diminuir
os tempos de entrega dos sistemas grandes e complexos sem
comprometer a sua qualidade.O software de apoio deve
acompanhar a velocidade da mudança.
 Desafio de confiança: Consiste em desenvolver técnicas que
demostram que o software pode ter a confiança dos seus
usuários.
Professora Cândida Kandeya
4/22/2019 UNIBELAS
RESPONSABILIDADE PROFISSIONAL
E ÉTICA
 Algumas responsabilidades são:
 Confidencialidade: Respeitar a confidencialidade de seus
funcionários ou clientes, independentemente de ter ou não
assinado um acordo formal.
 Competência: Nao se deve desvirtuar seu nìvel de competência.
Você não deve conscientemente aceitar um trabalho que esteja
fora da sua competência.
 Direitos sobre propriedade intelectual: deve estar ciente das leis
locais que regem o uso de propriedade Intelectual tais como
patentes e direitos autorais. Assegurar que a propriedade
intelectual de funcionários e clientes seja protegida.

 Mau uso de computadores: Não deve usar suas habilidades


técnicas para fazer mau uso dos computadores de outras pessoas.
(Jogos, dissiminação de virus)

Professora Cândida Kandeya


4/22/2019 UNIBELAS
CÓDIGO DE ÉTICA
Código de Ética do ACM/IEEE (@IEEE/ACM 1999)
 Os engenheiros de software devem se comprometer a
fazer da análise, especificação, desenvolvimento, teste
e manutenção de software uma profissão benéfica e
respeitada. De acordo com seu comprometimento com
a saúde, segurança e bem-estar do público, os
engenheiros de software devem aderir aos seguintes
Oito Princípios:

Professora Cândida Kandeya


4/22/2019 UNIBELAS
CÓDIGO DE ÉTICA
1. PÚBLICO: Os engenheiros de software devem agir
conscientemente com o interesse público.
2. CLIENTE E EMPREGADOR: Os engenheiros de
software devem agir dentro dos melhores
interesses de seu cliente e empregador, deforma
consistente com o interesse público.
3. PRODUTO: Os engenheiros de software devem
assegurar que seus produtos e as modificações a
eles relacionadas atendam aos mais altos padrões
profissionais possíveis.
4. JULGAMENTO: os engenheiros de software
devem manter a integridade e a independência em
seu julgamento profissional.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
CÓDIGO DE ÉTICA
5. GERENCIAMENTO: Os gerentes e líderes de engenharia de
software devem aceitar e promover uma abordagem ética
no gerenciamento de desenvolvimento e manutenção de
software.

6. PROFISSÃO: Os engenheiros de software devem promover


a integridade e a reputação da profissão de forma
consistente com o interesse público.

7. COLEGAS: Os engenheiros de software devem ser honestos


e colaborativos com seus colegas.

8. INDIVÍDUO: Os engenheiros de software devem participar,


ao longo da vida, aprendendo, respeitando e promovendo
uma abordagem ética na prática da profissão.

Professora Cândida Kandeya


4/22/2019 UNIBELAS
LEITURAS SUGERIDAS
 Manual de Engenharia de Software I (Unidades 1 e 2) Pag. 2
a 5. baseado no livro de
Engenharia De Software, 8ª edição ( Ian Sommerville,
Pearson Addison- Wesley, 2007- cap 1)
 Software Engineering (C.Ghizi,et al., Prentice Hall,2003.)
 Professional issues in software Engineering ( F. Bott, et al.,
3rd edition,2000, Taylor & Francis.)
 pt.wikipedia.org/wiki/Engenharia_de_software

Professora Cândida Kandeya


4/22/2019 UNIBELAS
TRABALHO PRÁTICO
1. Quais são as diferenças entre o desenvolvimento de
produto genérico de software e o desenvolvimento de
software sob encomenda?
2. Quais são os quatro principais atributos que todos os
produtos de software devem ter? Sugira quatro outros
atributos que as vezes podem ser significativos?
3. Além dos desafios de heterogeneidade, entrega rápida e
confiança, identifica outros problemas e desafios que a
engenharia de software está enfrentando no século 21.

BONS ESTUDOS

Professora Cândida Kandeya


4/22/2019 UNIBELAS