Académique Documents
Professionnel Documents
Culture Documents
Software
A definio de software poderia ser: Software so (1) instrues (programas de computadores) que quando executadas fornecem as caractersticas, funo e desempenho desejados. (2) estruturas de dados que permitem aos programas manipular adequadamente informaes. (3) documentos que descrevem a operao e o uso dos programas.
2
Software
Grfico de demonstrao de falhas de hardware em funo do tempo. Tambm conhecida como curva da banheira
4
A natureza mutvel do software: 1. Software de Sistemas uma coleo de programas escritos para servir a outros programas. Exemplo: compiladores, editores e utilitrios para gesto de arquivos, componentes de sistemas operacionais. 2. Software de Aplicao Consiste de programas isolados que resolvem uma necessidade especfica do negcio. Exemplo: Softwares comerciais.
6
3. Software cientficos e de engenharia So softwares desenvolvidos especificamente para aplicao dentro da rea cientfica e de engenharia. Exemplo: Software para estudos astronmicos e Software para simulao de sistemas.
4. Software embutido Reside dentro de um produto ou sistema e usado para implementar e controlar caractersticas e funes para o usurio final e para o prprio sistema. Por exemplo: Controlar o funcionamento do teclado de um forno de microondas; controlar automaticamente a trajetria de um foguete.
8
5. Software para linhas de produtos Projetado para fornecer uma capacidade especfica a ser usada por muitos clientes diferentes. Por exemplo: Softwares financeiros;
6. Aplicaes da Web So softwares desenvolvidos especificamente para serem utilizados em meios como a internet. Por exemplo: B2B e B2C. 7. Software para inteligncia artificial So softwares que fazem uso de algoritmos nonumricos para resolverem problemas complexos que no so passveis de computao ou anlise direta. Por exemplo: Robtica, Sistemas especialistas, Reconhecimento de padres, redes neurais, etc.
10
Pensando um pouco sobre o Software Vamos agora refletir um pouco sobre os seguintes mitos:
1. Mito da gerncia: Se nos atrasarmos no cronograma, podemos adicionar mais programadores e ficar em dia.
2. Mito do cliente: Os requisitos de projeto mudam continuamente, mas as mudanas podem ser facilmente acomodadas porque o software flexvel. 3. Mito do profissional: Quando escrevemos um programa e o fazemos funcionar, nosso trabalho est completo.
11
Pensando um pouco sobre o Software Realidades sobre os mitos: 1) Adicionar pessoas a um projeto de software atrasado atrasa-o mais ainda. Pense a respeito
2) verdade que os requisitos de software mudam, mas o impacto da mudana varia com a poca em que introduzida. Qual o impacto no custo, de mudanas no incio de um projeto, no meio e no final? 3) Algum disse: quanto mais cedo voc comear a escrever cdigo mais vai demorar para acabar. Voc concorda? Porqu? 12
Passo a palavra
13
Engenharia conhecimento
de da
software
uma voltada
rea para
do a
informtica
especificao, desenvolvimento e manuteno de sistemas de software aplicando tecnologias e prticas de cincia da computao, gerncia de projetos e outras disciplinas, objetivando
14
Os fundamentos cientficos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades. Alm disso, a engenharia de software deve. oferecer mecanismos para se planejar e
sistema de informao.
15
16
O termo surgiu na dcada de 1960 e utilizado oficialmente em 1968 na NATO Conference on Software Engineering (Conferncia sobre Engenharia de Software da OTAN).
Sua criao surgiu numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemtico e controlado) ao desenvolvimento de sistemas de software complexos.
17
Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e algoritmos)
encapsulados na forma de procedimentos, funes, mdulos, objetos ou agentes e interconectados entre si, compondo a arquitetura do software, que
devero
ser
executados
em
sistemas
18
computacionais.
Segundo a definio do IEEE (Institute of Electrical and Electronic Engineers), o termo Engenharia de Software pode ser descrito como: Engenharia de software: (1) aplicao de uma abordagem sistemtica, disciplinada e quantificvel, para o desenvolvimento, operao e manuteno do software; isto , a aplicao da engenharia ao software. (2) O estudo de abordagens como as de (1).
19
Pressman, disse que: A Engenharia de software uma tecnologia em camadas. Sendo que a base em que se apoiam estas camadas o foco na qualidade do software a ser desenvolvido.
20
A camada de processo o alicerce da engenharia de software. O processo de engenharia o adesivo que mantm unidas as camadas de tecnologias e permite o desenvolvimento racional e oportuno de softwares de computador. O processo define um arcabouo que deve ser estabelecido para a efetiva utilizao da tecnologia de engenharia de software.
21
Arcabouo:
1. Armao de uma estrutura, de uma construo. 2. Conjunto dos traos delineadores de algo. 3. Anat. Conjunto dos ossos que formam o peito. Fonte: AuleteDigital
22
Os processos de software formam a base para o controle gerencial de projetos de software e estabelecem o contexto no qual os mtodos tcnicos so aplicados, os produtos de trabalho (modelos, documentos, dados, relatrios,
Os mtodos de engenharia de software fornecem a tcnica de como fazer para construir softwares. Incluem as tarefas de comunicao, anlise de requisitos, modelagem do projeto, construo dos programas, testes e manuteno.
24
As
ferramentas apoio
de
engenharia automatizado
de ou
software semi-
fornecem
Um arcabouo de processo Estabelece o alicerce para um processo de software completo pela identificao de um
aplicveis
todos
os
projetos
de
software,
27
Um arcabouo de processo genrico, contempla as seguintes atividades: Comunicao: Envolve alta comunicao e colaborao com o cliente e abrange o levantamento de requisitos e outras atividades relacionadas.
Planejamento: Estabelece um plano para o trabalho de ES que se segue. Descreve as tarefas tcnicas a ser conduzidas, os riscos provveis, os recursos que sero necessrios, os produtos de trabalho a ser produzido e um cronograma do trabalho.
28
Modelagem: Inclui a criao de modelos que permitam ao desenvolvedor e ao cliente entender melhor os requisitos do software e o projeto que vai satisfazer a esses requisitos. Esta atividade pode ser dividida em outras duas, a saber, anlise e projeto. Construo: Combina gerao de cdigo (manual e/ou automatizada) e os testes necessrios para revelar erros no cdigo.
29
Implantao: O software entregue ao cliente, que avalia o produto e fornece um feedback com base na avaliao.
30
Principais atividades guarda-chuva: Acompanhamento e controle de projeto de software: Permite equipe de software avaliar o progresso com base no plano de projeto e tomar a ao necessria para manter o cronograma. Gesto de risco: Avalia os riscos que podem afetar o resultado do projeto ou a qualidade do produto. Garantia de qualidade de software: Define e conduz as atividades necessrias para garantir a qualidade do software.
31
Principais atividades guarda-chuva: Revises tcnicas formais: Avaliam os produtos de trabalho da ES, em um esforo para descobrir e remover erros antes que eles sejam propagados para a prxima ao ou atividade. Medio: Define e rene medidas de processo, projeto e produto que ajudam a equipe a entregar um software que satisfaa s necessidades do usurio; pode ser usada conjugada com todas as outras atividades de arcabouo e guarda-chuva.
32
Principais atividades guarda-chuva: Gesto de configurao de software: Gerencia os efeitos das modificaes ao longo de todo o processo de software. Gesto de reusabilidade: Define critrios para a reutilizao dos produtos de trabalho (inclusive componentes de software) e estabelece mecanismos para obter componentes reusveis.
33
Preparao e produo do produto do trabalho: Abrange as atividades necessrias para criar produtos do trabalho como modelos, documentos, registro, formulrios e listas.
34
Passo a palavra
Conjunto de Tarefas Um conjunto de tarefas define o trabalho real a ser feito para atingir os objetivos de uma ao de engenharia de software. Por exemplo, levantamento de requisitos uma importante ao de engenharia de software que ocorre durante a atividade comunicao. O objetivo do levantamento de requisitos entender o que vrios interessados desejam do software que est sendo construdo.
36
Conjunto de Tarefas Para um projeto pequeno e relativamente simples, o conjunto de tarefas para o levantamento de requisitos pode ter o seguinte aspecto:
37
Conjunto de Tarefas 1. Faa um lista de interessados no projeto. 2. Convide todos os interessados para uma reunio. 3. Pea a cada interessado para fazer uma lista das
5. Priorize os requisitos.
6. Observe reas de incertezas.
38