Anda di halaman 1dari 25

Unidade 1 Conceitos no contexto da Engenharia de Software

Solucionando Problemas
Solucionando problemas representada atravs de um processo de Anlise e Sntese Anlise Sntese

Solucionando Problemas Anlise

Problema

Subprob 1

Subprob 2

Subprob 3

Subprob 4

Solucionando Problemas Anlise

representa quebrar o problema maior em partes ou subproblemas de tal forma que possamos lidar e entender mais facilmente o problema maior a partir do entendimento de cada subproblema e as interaes entre esses subproblemas.
4

Solucionando Problemas Sntese

Subprob 1

Subprob 2

Subprob 3

Subprob 4

Soluo

Solucionando Problemas Sntese

Construir a soluo do problema a partir da integrao da soluo especifica de cada subproblema.

Sntese representa a elaborao de uma estrutura maior a partir da integrao das partes.
6

Engenharia de Software
Praticamente todos os pases, hoje em dia, dependem de complexos sistemas com base em computadores.

Engenharia de Software relacionada com


mtodos e ferramentas para o desenvolvimento de software profissional

Custos de Software
Os custos de software so importantes no contexto de um sistema
as vezes maiores em relao aos custos de hardware

Distribuio dos custos de desenvolvimento:


0
Especificao

25
Projeto

50
Desenvolvimento

75
Integrao e Teste

100

Custos de Software
Os custos de software no contexto da manuteno:
so maiores que o custos de desenvolvimento sistemas de longo ciclo de durao
custos de manuteno representam varias vezes os custos de desenvolvimento

0
Desenvolvimento de sistema

25

50

75

100

Evoluo de Sistema

O que Software?
Programas de Computador e Documentao associada

Produtos de Software podem ser:


Genrico Sob encomenda - diversos clientes consumidores - desenvolvido (a partir da especificao) para um cliente s

10

Caractersticas de Software

O software um elemento de um sistema lgico e no de um sistema fsico (PRESSMAN, 2010).

11

Caractersticas de Software
O software possui caractersticas diferentes daquelas do hardware (PRESSMAN, 2010): 1. O software desenvolvido ou passa por um processo de engenharia: no fabricado no sentido clssico. 2. O software no se desgasta o hardware se desgasta (ao passar o tempo) O software no suscetvel aos males ambientais o hardware se desgasta 12

O que Engenharia de Software?


Engenharia de Software uma disciplina que abrange
todos os aspectos de produo de software

Engenheiros de software
Abordagem sistemtica para a realizao do seu trabalho e uso apropriado de ferramentas e tcnicas em funo do problema a ser resolvido, restries e recursos disponveis

13

Qual a diferena entre Engenharia de Software e Engenharia de Sistemas?


A Engenharia de Sistemas com base em computadores se ocupa de todos os aspectos do desenvolvimento de sistemas complexos envolvendo:
hardware, software e processos

A Engenharia de Software parte deste processo.

14

Processo de Software
Conjunto de atividades cujo objetivo :
O Desenvolvimento ou Evoluo de Software

Atividades comuns a todos os processos de software:


Especificao - o que o sistema deve fazer (funcionalidades e restries de funcionamento) Desenvolvimento - produo do sistema de software (a partir da especificao) Validao - garantir que o software corresponda ao que o cliente precisa Evoluo - considerar mudanas (no software) necessrias em resposta a novas necessidades
15

Modelo de Processo de Software


Representao simplificada de um processo de software Os modelos de processo de software:
Cascata (Waterfall) Desenvolvimento Evolucionrio (Evolutionary Development) Montagem de um sistema baseado no Reuso de Componentes Transformao Formal (Formal Tansformation)

16

Mtodo de Engenharia de Software


Um mtodo representa um conjunto de notaes e diretrizes para o projeto de software, geralmente, envolve:
- produo de modelos dos sistema (via representao grfica) - notao (ex: notao padro UML Linguagem Unificada de Modelagem de Sistemas Orientados a Objetos) - regras (restries aplicadas aos modelos) - conselhos sobre uma boa pratica de projetar - orientaes sobre as atividades a serem realizadas.
17

CASE (Computer-Aided Software Engineering) Engenharia de Software com o Auxlio de Computador)


Sistemas de software (ferramentas) utilizados para apoiar as atividades de processo de software:
anlise, projeto, implementao, testes, ...

Upper-CASE
Ferramentas que apoiam as fases iniciais do processo de software: anlise e projeto

Lower-CASE
Ferramentas que apoiam implementao e testes: editores de programas, depuradores, geradores de testes, ...
18

Atributos de um Bom Software


Atributos essenciais de um bom software: Facilidade de manuteno
O software deve ser escrito de forma que possa evoluir para atender as necessidades futuras dos clientes.

Nvel de confiana
Software deve ser confivel - no caso de um defeito no sistema, no deve ocasionar danos fsicos ou econmicos.

Eficincia
O software no deve desperdiar os recursos do sistema (memria e processador). Considera-se, rapidez de resposta, tempo de processamento, uso de memria, ...

Facilidade de uso
Interface apropriada facilitando o uso do software.
19

Consideraes ticas e da Prtica Profissional da Engenharia de Software

- Consideraes

- Cdigo de tica ACM/IEEE Situao no Brasil

20

Cdigo de tica ACM/IEEE Princpios


1 - Pblico
Os engenheiros de software agiro consistentemente com o interesse pblico.

2 - Cliente e Empregador
Os engenheiros de software agiro de uma maneira que esteja em conformidade com os melhores interesses de seus clientes e empregadores e consistente com o interesse pblico.

3 - Produto
Os engenheiros de software devero assegurar que seus produtos e as alteraes a eles relacionadas cumpram o mais alto padro profissional possvel.
21

Cdigo de tica ACM/IEEE Princpios


4 - Julgamento
Os engenheiros de software mantero integridade e independncia em seu julgamento profissional

5 - Gerenciamento
Os gerentes e os lderes de engenharia de software adotaro e promovero uma abordagem tica para o gerenciamento do desenvolvimento e da manuteno de software.

6 - Profisso
Os engenheiros de software fomentaro a integridade e a reputao da profisso, de modo consistente com o interesse pblico.
22

Cdigo de tica ACM/IEEE Princpios


7 - Colegas
Engenheiros de software sero justos e daro apoio aos seus colegas.

8 - Pessoal
Os engenheiros de software participaro de um aprendizado constante com relao prtica de sua profisso e promovero uma abordagem tica dessa prtica.

23

Consideraes ticas
Massiero e Bigonha (2008): Falhas ticas graves, quando ocorrem, podem causar severos prejuzos s organizaes e s pessoas envolvidas.

24

Referncias
Massiero P. C., Bigonha R. S. tica e Computao, Volume 1 - Nmero 1 Dezembro, SBC HORIZONTES. 2008.

Pfleeger S. L. Software Engineering: theory and practice. Prentice-Hall. 1998. Pressman R. Engenharia de Software, 6a edio, AMGH Editora. 2010. Sommerville, I. Engenharia de Software. 8a Edio. Addison Wesley. 2007.

25

Anda mungkin juga menyukai