Você está na página 1de 36

Engenharia de Software I

Apresentao da ementa disciplinar


Aula 1
UNIP Universidade Paulista

Professora: Fernanda Lima

Apresentao Pessoal
Nome?
Formao?
Experincia Profissional?
Experincia com Anlise?

Ementa da Disciplina
Engenharia de Software.
Fundamentao dos Princpios da Engenharia de Software.
Conceituao de Produto de software.
Processo de Software.
Processo Pessoal de Software.
Processo de Equipe de software.
Modelos de Processo de Software.
Modelos geis.
Introduo a Engenharia de Requisitos
Objetivos da Disciplina
Proporcionar ao aluno conhecimento em mtodos e tcnicas de projeto que auxiliam
o processo de desenvolvimento de software. Identificar, descrever e comparar os
modelos de processo de desenvolvimento de software. Habilitar o aluno para
escolher, utilizar e definir modelos, tcnicas e ferramentas para auxiliar o processo
como produto.
Contedo da Disciplina
Fundamentos da engenharia de software
Conceitos e objetivos
O papel evolutivo do software
Software produto
A natureza mutvel do software
Tipos de aplicaes de software
Problemas com prazo, planejamento e custos
Qualidade de software

Contedo da Disciplina
O processo de software
Etapas do processo de software
PSP - Processo Pessoal de Software
TSP Processo de Equipe de Software
Modelos de processos de software (Modelos de ciclo de vida de software)
Codifica-remenda
Modelo Cascata
Incremental
RAD
Evolucionrio: Espiral, Prototipao
Contedo da Disciplina
Modelos especializados de processo: Baseado em Componentes, Baseado
em Mtodos Formais
Processo Unificado
RUP
Praxis
Cleanroom (Sala Limpa)
Iconix
Modelos geis
O que um processo gil?
Modelos geis de processos
Contedo da Disciplina
XP Extreme programming
Scrum
FDD (Feature Driven Development )
ASD (Adaptative Software Development )
DSDM (Dynamic Systems Development Method )
Crystal
Modelagem gil (AM)
Pratica da Engenharia de Software
Princpios centrais
Prticas de Comunicao, Planejamento, Modelagem, Construo e implantao

Bibliografia
PRESSMAN, R. S. Engenharia de software. 6. ed. So Paulo: McGraw-Hill,
2006.
SOMMERVILLE, I. Engenharia de software. 8. ed. So Paulo: Pearson, 2007.
PAULA FILHO, W. P. Engenharia de software - fundamentos, mtodos e
padres. 3. ed. Rio de Janeiro: LTC, 2009.



Bibliografia Complementar
PETERS, J. F.; PEDRYCZ, W. Engenharia de software: teoria e prtica. Rio de
Janeiro: Campus, 2001.

SCHACH, S. R. Engenharia de software: os paradigmas clssico & orientado a
objetos. 7. ed. So Paulo: McGraw-Hill, 2008.


Perguntas


Engenharia de Software
Segundo Pressman (2006), um software um conjunto composto por instrues de
computador, estruturas de dados e documentos.

Produtos de software podem ser:

Genricos desenvolvidos para serem vendidos para uma grande variedade de
clientes, por exemplo, softwares para PC, tais como Excel e Word.

Personalizados desenvolvidos para um nico cliente de acordo com as suas
especificaes.
Engenharia de Software
Para Bauer (1969) apud Pressman (2006), a Engenharia de Software
a criao e a utilizao de slidos princpios de engenharia a fim de
obter softwares econmicos que sejam confiveis e que trabalhem
eficientemente em mquinas reais.
Engenharia de Software
A Engenharia de Software almeja inserir as mesmas sistemticas
existentes em outras reas da engenharia:
Custos aceitveis;
Gerenciamento do processo de desenvolvimento;
Garantia do trabalho em equipe e;
Desenvolvimento de softwares com qualidade.
Engenharia de Software
Alguns princpios devem ser trabalhados na Engenharia de Software como forma de
manter o bom funcionamento do produto final:
Evitar dependncia de determinadas pessoas ou processos;
Abstrair aspectos importantes;
Subdividir problemas complexos;
Reutilizar resultados (cdigo) e;
Flexibilizao e modularizao para facilitar a manuteno.
Engenharia de Software Definies
A Engenharia de Software multidisciplinar e podemos dizer que une as seguintes reas:
Cincias da Computao: Abrange arquitetura de computadores, lgica de programao,
estrutura de dados algoritmos, etc.
Administrao: O engenheiro de software atua como gestor de um projeto, administrando
prazos, equipe, custos, resultados etc.
Comunicao: Habilidade para saber se expressar com clientes ou usurios;
Tcnicas de soluo de problemas: O engenheiro de software deve ser um solucionador de
problemas, um gerador de solues integradas e inteligentes.
Surgimento da Engenharia de Software
Dcada de 50
Surgiram os primeiros softwares;
Pesquisas eram voltadas para o hardware;
Hardware disponvel apenas nos centros de pesquisa;
Software desenvolvido sem utilizar tcnicas de engenharia.
Surgimento da Engenharia de Software
Dcada de 60
Surgiram os microprocessadores e
o hardware deixou de representar
um problema;
Software tornou-se o foco dos
pesquisadores;
Organizaes comearam a
desenvolver grandes sistemas.
Surgimento da Engenharia de Software
Como surgiu a Engenharia de Software??
A falta de metodologia
As equipes de trabalho no tinham um modelo de como
desenvolver;
No havia documentao adequada do que estava sendo
executado;
E agora: Como dar manuteno em um sistema que no tem projeto?
Desafios Encontrados
Desafios encontrados
As economias de todas as naes desenvolvidas so dependentes de software.
Cada vez mais sistemas so controlados por software.
Os dispndios com software representam uma frao significativa do PIB em
todos os pases desenvolvidos;
Os custos dos produtos eram altos;
Os recursos destinados ao projeto, normalmente, eram insuficientes;
As solues propostas no conseguiam agradar aos clientes.
Desafios Encontrados
Desafios da Engenharia de Software:
Reduzir custos;
Melhorar a qualidade do software, e;
Atender as expectativas do cliente.

Problemas encontrados
Os custos de software dominam os custos de sistemas computacionais.
Em um PC, os custos de software so frequentemente maiores que o custo do
hardware.
Manter um software custa mais que desenvolv-lo.
A engenharia de software dedica-se ao desenvolvimento de software com custos
adequados.
Problemas encontrados
Uma das principais queixas dos clientes que os prazos e os custos no so
respeitados;
Outro problema bastante comum, a ineficincia durante a etapa de definio de
requisitos que no atendem s necessidades dos clientes;
Os gerentes e os coordenadores de projetos so, comumente, despreparados para
controlar o desenvolvimento adequado de um software.
Problemas encontrados
Aproximadamente 60% dos custos so custos de desenvolvimento e 40% so
custos de testes.
Para software sob encomenda, os custos de evoluo normalmente excedem de
desenvolvimento.
Os custos variam dependendo do tipo de sistema que est sendo desenvolvido e
dos requisitos de atributos de sistema, tais como desempenho e confiabilidade.
Problemas encontrados
Camadas da Engenharia de Software
Camadas da Engenharia de Software
Processo (mtodos + ferramentas)
Une os mtodos s ferramentas;
Define a sequncia dos mtodos que sero aplicados e;
Define as ferramentas que sero disponibilizadas.
Camadas da Engenharia de Software
Mtodos (como fazer)
H diferentes mtodos para as diferentes etapas do desenvolvimento;
existem mtodos para anlise de requisitos, projeto, codificao, testes e
manuteno.
Ferramentas (apoio automatizado)
CASE (Computer Aided Software Engineering);
Anlise estruturada, anlise essencial ou orientada a objetos;
Ferramentas de banco de dados;
Linguagens de programao.
Estrutura de um Processo
Estrutura de um processo aplicvel maioria dos projetos de software, sejam eles de
pequena, mdia ou alta complexidade:
Comunicao: Contempla alta comunicao e colaborao com o cliente/usurio e
abrange o levantamento de requisitos.
Planejamento: Descreve as tarefas tcnicas, os riscos provveis, os recursos
necessrios, os produtos que sero produzidos e um cronograma.
Estrutura de um Processo
Modelagem: Constri modelos que permitem ao desenvolvedor e ao cliente
entender melhor os requisitos do software e o software que atender esses
requisitos.
Construo: Contempla a criao dos cdigos e a execuo de testes.
Implantao: Avaliao e feedback do cliente quanto ao software desenvolvido.
Estrutura de um Processo
Um Processo de Software o conjunto de atividades cuja meta o
desenvolvimento ou evoluo de um software.
As atividades genricas em todos os processos de software so:
Especificao: O que o sistema deve fazer e suas restries de
desenvolvimento.
Desenvolvimento: Produo do sistema de software.
Validao: Verificao de que o software o que o cliente deseja.
Evoluo: Mudana do software em resposta s demandas de mudana.
Tipos de Softwares
Com o aumento da complexidade dos softwares, cada vez mais, torna-se difcil
classific-lo. Abaixo, seguem reas potenciais:
Software bsico;
Software de tempo real;
Software comercial;
Software cientfico e de engenharia;
Software embutido;
Software de computador pessoal;
Tipos de Softwares
Software linguagens de 4 gerao;
Software educativo;
Software de Inteligncia Artificial (IA);
Software de gesto empresarial;
Software de informaes gerenciais;
Software de apoio deciso.
Atributos de um bom Software
Facilidade de manuteno: O software deve evoluir para atender s necessidades
de mudana.
Confiana: O software deve ser confivel.
Eficincia: O software no deve desperdiar os recursos do sistema.
Usabilidade: O software deve ser aceito pelos usurios para o qual foi projetado.
Isso significa que ele deve ser compreensvel, usvel e compatvel com outros
sistemas.
Desafios Chaves Enfrentados
Heterogeneidade: Tcnicas de desenvolvimento para construo de software que
podem lidar com plataformas heterogneas e ambientes de execuo.
Entrega: Tcnicas de desenvolvimento para conduzir a entrega mais rpida de
software.
Confiana: Tcnicas de desenvolvimento que mostram que o software pode ter a
confiana dos seus usurios.
OBRIGADA!
Fernanda Lima
felima0730@gmail.com

Você também pode gostar