Você está na página 1de 29

Introduo Engenharia Software

Profa. Maria da Graa Bertucci

Sistema um conjunto de partes interligadas (subsistemas) visando realizar um conjunto bem definido de objetivos. Sistemas Naturais: Sistemas estelares (galxias, sistemas solares, etc) Sistemas Geolgicos (rios, cadeias de montanhas,
florestas, etc)

Sistema Corpo Humano: Sistema Cerebral Sistema Cardaco Sistema Locomotor

Sistemas Feitos pelo Homem:


Sistemas de transporte
(redes rodovirias, ferrovirias, linhas areas)

Sistemas de comunicao
(telefones, tvs, internet, semforos)

Sistemas de Manufatura
(fbricas, linhas de montagem)

Sistemas financeiros
(contabilidade, inventrios, bolsa de valores)

Sistemas comerciais e administrativos


(bibliotecas, sistemas acadmicos, compra e vendas, vdeo locadora, etc.)

O Que um Sistema de Informao (SI)?


Um conjunto de componentes inter-relacionados que coleta (ou recupera), processa, armazena e distribui informaes destinadas a apoiar a tomada de decises e o controle em uma organizao. Podem ser sistemas manuais ou baseados em computador Sistema de informao baseado em computador (SIBC). Um sistema de informao que usa a tecnologia de informao para realizar algumas ou todas as tarefas pretendidas

Atividades de um Sistema de Informao

ENTRADA

PROCESSAMENTO

SADA

FEEDBACK

Sistemas Automatizados / Sistemas de Informao:


Sistemas desenvolvidos pelo homem para ser executado num computador.

Simulao de Vos Sistema de orientao de msseis Sistema de controle de temperaturas. Sistemas bancrios Reserva de passagens areas e terrestres Sistemas de controle de estoque. Sistemas robticos Sistemas de reconhecimento da Iris

Componentes bsicos dos sistemas de informao


Hardware um dispositivo, como processador, monitor, teclado e impressora. Juntos, esses dispositivos recebem dados e informaes, os processam e os exibem. Software um programa ou conjunto de programas que permite que o hardware processe os dados. Banco de dados uma coleo de arquivos ou tabelas relacionados contendo dados. Uma rede um sistema de conexo (com ou sem fio) que permite que diferentes computadores compartilhem recursos.

Componentes bsicos dos sistemas de informao (continuao)


Procedimentos ou regras so um conjunto de instrues sobre como combinar todos os componentes para processar informaes e gerar a sada desejada. Pessoas so os indivduos que usam o hardware e o software, interagem com eles ou usam sua sada. Programa de Aplicao um programa de computador projetado para realizar uma tarefa ou processo comercial especfico

Anlise
Estudo de um problema ou de processos organizacionais. A anlise modela o problema: executa atividades para entender o domnio do problema (o que est acontecendo e o que deve ser feito?) uma atividade investigativa

Anlise de Sistemas
Estudo de um subsistema de informao, descrio de suas caractersticas e funcionalidades O trabalho da anlise deve ser feito com a participao do usurio e aprovado por ele. Por que?

Importncia da Anlise de Sistemas


Aumenta a qualidade do software Evita a passagem direta para a codificao Ganho em tempo e custo:
Aprendizagem da equipe Antecipao de necessidades e problemas Detecta falhas prematuramente Permite participacao de mais pessoas simultaneamente trabalho em equipe Reduz custo de desenvolvimento Aumenta o ciclo de vida do sistema

O que software?
Programas de computador e documentao associada + configurao tcnica Produtos de software podem ser desenvolvidos para um cliente particular ou podem ser desenvolvidos para um mercado geral

Tipos de Produtos de software


Produtos genricos vendidos no mercado para qualquer cliente. O fornecedor controla a especificao do software
Exemplos?

Produtos personalizados ou sob encomenda neste caso o cliente quem controla a especificao do software
Exemplos?

Mix o produto genrico customizado para um determinado cliente. O cliente define a especificao da parte customizvel
Exemplos?

O que Engenharia de Software?


um processo que utiliza meios concretos de anlise, planejamento e construo de software, visando um desenvolvimento mais econmico, eficaz e confivel. Contribuio da Engenharia: aplicao de tcnicas, ferramentas para fazer as coisas funcionarem (encontrar a soluo), de acordo com as restries organizacionais: prazo, custo, legislao, etc.

Controle sobre o desenvolvimento de software dentro de custos, prazos e nveis de qualidade desejados Produtividade no desenvolvimento, operao e manuteno de software Qualidade versus Produtividade Permitir que profissionais tenham controle sobre o desenvolvimento de software dentro de custos, prazos e nveis de qualidade desejados

Objetivos da Engenharia de Software

Caractersticas da Engenharia de Software


A Engenharia de Software se refere a software (sistemas) desenvolvidos por grupos ao invs de indivduos Usa princpios de engenharia ao invs de arte, e inclui tanto aspectos tcnicos quanto no tcnicos do software Software no pode ser controlado por processos de manufatura tradicional devido s suas caractersiticas que o diferenciam de um produto tradicional: intangvel e abstrato. Sua matriaprima informao

O que deve fazer um Engenheiro de Software?


Enunciar os problemas Gerir os projetos Garantir a qualidade Amadurecer os processos Colocar em prtica Devem usar ferramentas e tcnicas/mtodos apropriados dependendo do problema a ser solucionado, das restries de desenvolvimento e dos recursos disponveis

Qual a diferena entre engenharia de software e cincia da computao? A cincia da computao dedica-se teoria e aos fundamentos; A engenharia de software dedica-se aos aspectos prticos de desenvolvimento e de entrega de software para o uso.

Engenharia x Engenharia de Software


Construo de um edifcio
Vrios estgios: Lgico, projeto, construo e testes. O cliente define o que deseja com o arquiteto O arquiteto faz diferentes modelos do edifcio e o cliente aprova Modelos: Planta, Rede eltrica, Rede hidrulica, etc. O engenheiro realiza os modelos estruturais. Eficincia e segurana. Vrias incurses so efetuadas at o projeto final. Componentes pr-moldados so usados

Construo de um Sistema
Vrias etapas: Lgico, projeto, construo e testes. O usurio define o que necessita com o analista. O analista elabora diferentes modelos e o usurio avalia/aprova. Modelos: Dados, Funcional, de Controle e de Interface. O projetista prope os modelos de hardware e software. Eficincia e segurana. Vrias iteraes so efetuadas durante os estgios de anlise e projeto. Reutilizao de cdigo aumenta a produtividade.

Importncia da Engenharia de Software


Qualidade de software e produtividade garantem:
Disponibilidade de servios essenciais Segurana de pessoas Competitividade das empresas
Produtores Consumidores

A crise de software
1. Gasto excessivo em informtica (custo sempre

acima do previsto) e o resultado nunca era o desejado. 2. Tempo de manuteno muito acima do esperado. 3. Usurios sempre estavam insatisfeitos: falhas que geravam descrdito. 4. Falta de planejamento durante o desenvolvimento do sistema: deficincia ou ausncia de mtodos de trabalho.

Na realidade, temos a Crise de Software...


25% dos projetos so cancelados o tempo de desenvolvimento bem maior do que o estimado 75% dos sistemas no funcionam como planejado a manuteno e reutilizao so difceis e custosas os problemas so proporcionais complexidade dos sistemas

Linguagem
Notao com sintaxe e semntica bem definidas
com representao grfica ou textual

Usada para descrever os artefatos gerados durante o desenvolvimento de software Exemplos: UML, Java

Processos de Software
Fazer software mais do que desenvolver programas.
O ciclo de vida do software composto por 4 atividades fundamentais
Especificao

Desenvolvimento
Validar/Implantao Evoluo

Participantes do ciclo de vida de um sistema


Analistas Programadores Arquitetos Testers Analista de Testes Quality Assurance Web Designers Auditores Gestor do Projeto Documentadores Usurios

Participantes do ciclo de vida de um sistema

Usurios Operadores Supervisores (Viso departamental/setorial do sistema.) Executivos


Tem iniciativa sobre o projeto. Descrevem como as atividades e departamentos se encaixam na organizao: viso global. So tipicamente mais interessados nos aspectos estratgicos de longo prazo e menos preocupados com problemas operacionais.

Criatividade Iniciativa

Concentrao

Persuaso Comunicativo
Analista de Sistemas

Autoconfiana Ao Conciliadora

Simplicidade
Clareza de Raciocnio Clareza de Raciocnio

Administrao de Projetos Percepo

Esprito de Grupo

Analisa e prope modelos Reconhece o problema (coleta de dados) Lider do projeto

Sensibilidade

Persistncia

Flexibilidade Determinao

Projetista de Sistema (Arquiteto de Software)


Define os componentes de hardware e software que sero utilizados para implementar o sistema: aspectos fsicos. Define os requisitos da interface, de segurana, de redes e do desempenho do sistema. O projetista deve propor um projeto tecnologicamente bom de forma a tornar os requisitos do usurio viveis. Geralmente, da interao analista / projetista que h a realimentao do sistema.

Pontos principais
Engenharia de software uma disciplina de engenharia que est envolvida com todos os aspectos da produo de software

Produtos de software consistem de programas desenvolvidos e documentao associada. Alguns atributos de qualidade do produto so manutenibilidade, eficincia e usabilidade O processo de software consiste nas atividades que esto envolvidas no desenvolvimento de produtos de software