eng.ª do software - 1. introdução
DESCRIPTION
Introdução à unidade (disciplina) de Engenharia do Software I para o curso de METI no ISCTE-IUL no 2.º semestre do ano lectivo de 2009/2010.TRANSCRIPT
ENGENHARIA DO SOFTWARE I
Manuel Menezes de Sequeira
DCTI, ISCTE-IUL
[email protected] , D6.02
As apresentações desta série baseiam-se nas apresentações disponibilizadas por Ian Sommerville, tendo sido alteradas e adaptadas primeiro por Anders Lyhne Christensen e
finalmente por Manuel Menezes de Sequeira.
Sumário
Contactos O que é a engenharia do software e
qual a sua importância? Panorâmica da unidade
MateriaisAvaliaçãoInformações práticas
2009/2010 2Engenharia do Software I
Contactos
2009/2010 3Engenharia do Software I
Manuel Menezes de Sequeira
[email protected]: correio electrónico e MSN
manuel.sequeira.iscte.pt: Skype
Gabinete: D6.02
Telemóvel: 962 337 428
http://www.google.com/profiles/MMSequeira
2009/2010 4Engenharia do Software I
O que é a engenharia do software?
2009/2010 5Engenharia do Software I
O que é o software? Programas e documentação associada,
incluindo requisitos, modelos de desenho e manuais de utilização
2009/2010 6Engenharia do Software I
O que é o software? Produtos de software
Genéricos – Desenvolvidos para fornecer a diferentes clientes; e.g., Excel ou Word
Personalizados (custom) – Desenvolvidos para um cliente de acordo com os seus requisitos
2009/2010 7Engenharia do Software I
O que é o software? Novo software
Desenvolvimento de novos programas
Configuração de sistemas de software genéricos
Reutilização de software existente
2009/2010 8Engenharia do Software I
Encontro da NATO em 1968 acerca da crise no software Problemas que ainda não foram resolvidos:
Ultrapassagem do orçamento
Baixa produtividades
Produtos errados
Baixa qualidade
Manutenção constante – “Se não se fizerem mudanças, tornar-se-á inútil”
2009/2010 9Engenharia do Software I
Caos
O software é como uma catedral – primeiro constrói-se, depois reza-se.
Sam Redwine
2009/2010 10Engenharia do Software I
Engenharia do software
Disciplina da engenharia focada em todos os aspectos da produção de software
2009/2010 11Engenharia do Software I
Engenharia do software
Engenheiros de software
Abordam trabalho de forma sistemática e organizada
Utilizam ferramentas e técnicas apropriadas ao problema a resolver, às restrições existentes e aos recursos disponíveis
2009/2010 12Engenharia do Software I
Engenharia do software Não é ciência!
Constrói sistemas que outras pessoas usam
There is no silver bulletGoogle Search – Tem de ser rápidoGmail – Tem de ser fiável
2009/2010 13Engenharia do Software I
Engenharia do software É um problema tramado
Há soluções melhores e soluções piores
Não há soluções certas e soluções erradas
Não há medidas objectivas de sucesso
2009/2010 14Engenharia do Software I
Comparação com outras engenharias
Software entities are more complex for their size than perhaps any other human construct, because no two parts are alike (at least above the statement level). If they are, we make the two similar parts into one… In this respect software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.
Fred Brooks, 1986
2009/2010 15Engenharia do Software I
Engenharia do software vs. informática Informática - Teoria e fundamentos
Engenharia do software - Questão prática de desenvolver e fornecer software útil
Teorias da informática insuficientes como fundamento da engenharia do software
Pelo contrário, física suficiente como fundamento da engenharia electrotécnica
2009/2010 16Engenharia do Software I
Disciplina dominante
À medida que o tamanho do software aumenta, a disciplina dominante muda [Feldman]
Tamanho do código
Disciplina dominante
1 000 Matemática
10 000 Ciência
100 000 Engenharia
1 000 000 Ciências sociais
10 000 000 Política
2009/2010 17Engenharia do Software I
Que ferramentas?
Ferramentas intelectuais
Ocultação de informação
Padrões de desenho
…
Mais relevantes que ferramentas de software!
2009/2010 18Engenharia do Software I
Que ferramentas?
Ferramentas de software
Ajudam a aplicar princípios, políticas e melhores práticas
Não decidem por nós
2009/2010 19Engenharia do Software I
CASE (Computer-Aided Software Engineering) Ferramentas de software suportando
automaticamente actividades do processo de desenvolvimento de software
Upper-CASE (actividades iniciais)○ Recolha de requisitos○ Desenho
Lower-CASE (actividades posteriores)○ Programação○ Depuração○ Teste
2009/2010 20Engenharia do Software I
Processo de software Conjunto de actividades destinadas a
desenvolver ou fazer evoluir o software
2009/2010 21Engenharia do Software I
Processo de software Actividades comuns
Especificação – O que deve fazer? Quais as restrições ao seu desenvolvimento?
Desenvolvimento – Produção do sistema
Validação – Verificação do sistema face às pretensões do cliente
Evolução – Alteração do software como resposta a alterações nos requisitos
2009/2010 22Engenharia do Software I
Modelo de processo de software
Representação simplificada de processo de software, com uma perspectiva específica
PerspectivasFluxo de trabalho (workflow) – Sequência
de actividadesFluxo de dados – Fluxo de informaçãoPapéis/acções – Quem faz o quê
2009/2010 23Engenharia do Software I
Modelo de processo de software
Modelos genéricos de processo
Cascata
Desenvolvimento iterativo
Engenharia do software baseada em componentes
2009/2010 24Engenharia do Software I
2009/2010 25Engenharia do Software I
Custos por actividadeWaterfall model
Iterative development
Component-based software engineering
Development and evolution costs for long-lifetime systems
System evolution
10 20 30 400
System development
Specification Design Development Integration and testing
25 50 75 1000
Specification Development Integration and testing
25 50 75 1000
Specification Iterative development System testing
25 50 75 1000
2009/2010 26Engenharia do Software I
Metodologias de engenharia do software Abordagens estruturadas ao
desenvolvimento de software incluindo
Modelos de sistemas
Notações
Regras
Linhas orientadoras do processo
2009/2010 27Engenharia do Software I
Metodologias de engenharia do software Descrições de modelos
Usualmente gráficas
RegrasRestrições aos modelos do sistema
Recomendações e melhores práticas
Linhas orientadoras do processoQue fazer e quando
2009/2010 28Engenharia do Software I
Atributos do bom software
Cumpre requisitos funcionais e de desempenho do cliente
“Mantenível” (possível de manter) – Pode evoluir adaptando-se a requisitos em mutação
Fiável – É de confiança
Eficiente – Não desperdiça recursos
Aceitável pelos utilizadores – Compreensível, fácil de usar e compatível com outros sistemas
2009/2010 29Engenharia do Software I
A reter
Engenharia do software
Focada em todos os aspectos da produção de software
Resulta em produtos de software consistindo em programas e documentação
É sobretudo questão de pessoas e não de computadores
2009/2010 30Engenharia do Software I
A reter
Processo de software
Actividades necessárias para o desenvolvimento de produtos de software
Actividades básicas são especificação, desenvolvimento, validação e evolução
2009/2010 31Engenharia do Software I
A reter
Metodologias
Formas organizadas de produzir software
Incluem recomendações sobre○ Processo a seguir○ Notações a usar○ Regras a seguir na descrição do sistema○ Linhas orientadoras do desenho
2009/2010 32Engenharia do Software I
A reter
Ferramentas CASE são sistemas de software desenhados para suportar actividades rotineiras do processo de software
Edição de diagramas de desenho
Verificação da consistência dos diagramas
Registo e controlo dos testes efectuados
2009/2010 33Engenharia do Software I
A ler
Ian Sommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006
Capítulo 1
Capítulo 6
2009/2010 34Engenharia do Software I
Panorâmica da unidade
2009/2010 35Engenharia do Software I
Objectivos
Visão geral dos vários problemas, métodos, actividades, modelos, etc., associados ao desenvolvimento de software
Familiarização com panóplia de diferentes ferramentas e perspectivas permitindo boas escolhas face a problemas concretos
2009/2010 36Engenharia do Software I
Avaliação
Avaliação periódicaFrequência ≥ 7,5Projecto ≥ 7,5Final = 0,5 frequência + 0,5 projecto ≥ 9,5
Exame ≥ 9,5
2009/2010 37Engenharia do Software I
Formato e projecto
Uma aula teórica e uma aula prática por semana
ProjectoDesenvolvido ao longo do semestreEntregue por etapasRealizado em grupos de seisÊnfase no processo e não no produto
2009/2010 38Engenharia do Software I
Tópicos
Requisitos Processos de software Desenvolvimento rápido de software Arquitectura de software Design de interfaces com o utilizador Gestão de projectos Verificação e validação Testes de software
2009/2010 39Engenharia do Software I
Materiais e ferramentas
Ian Sommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006
Artigos vários na Web
Rational Requisite Pro
Bouml, UMLet ou outra aplicação para edição de diagramas UML
2009/2010 40Engenharia do Software I
Mais informação
Horário de dúvidas Sextas-feiras, das 13:00 às 18h00 no
gabinete D6.02Avisar docente por SMS no mínimo uma hora
antes
Todas as aulas no laboratório D1.01
Mais informação em http://www.piazzza.com/
2009/2010 41Engenharia do Software I
Manuel Menezes de Sequeira
[email protected]: correio electrónico e MSN
manuel.sequeira.iscte.pt: Skype
Gabinete: D6.02
Telemóvel: 962 337 428
http://www.google.com/profiles/MMSequeira
2009/2010 42Engenharia do Software I