Академический Документы
Профессиональный Документы
Культура Документы
Especializao em Comrcio
Eletrnico e Economia Digital
Objetivos
Descrever os principais tipos de software
Examinar software de sistemas e sistemas
operacionais
Explicar a evoluo do software
Analisar as principais linguagens de
programao
Descrever as abordagens ao
desenvolvimento de software
Identificar temas relacionados com software
Desafios da Gerncia de TI
O que software?
Software de sistema
Software de aplicao
Novas ferramentas de software e
abordagens
Gesto do patrimnio de software
Software
Instrues detalhadas que controlam a
operao de um computador
Programa: conjuntos de instrues ao
computador
Conceito de programa armazenado
Software de sistema: gerencia os
recursos de um computador
Software de aplicao: aplicativo
especfico para um domnio especfico
O Computador
SOFTWARE
APPLICATION SOFTWARE
SYSTEM SOFTWARE
HARDWARE
OPERATING SYSTEM:
SCHEDULED COMPUTER
EVENTS
ALLOCATES
COMPUTER RESOURCES
MONITORS EVENTS
LANGUAGE TRANSLATORS:
INTERPRETERS
COMPILERS
UTILITY PROGRAMS:
PROGRAMMING LANGUAGES:
ROUTINE OPERATIONS
MANAGE DATA
Multiprogramao
Sistema de um nico
programa
Ambiente de
multiprogramao
PROGRAMA 1
MEMRIA LIVRE
SISTEMA
OPERACIONAL
SISTEMA
OPERACIONAL
PROGRAMA 1
PROGRAMA 2
PROGRAMA 3
MEMRIA LIVRE
Multitarefa
Multiprogramao em um sistema
mono-usurio com um
microcomputador
Memria Virtual
Mecanismo de tratamento de vrios
programas na memria principal
Um programa dividido em:
Time Sharing
Many users sharing a powerful CPU
O tempo da CPU dividido em fatias
(slices; de 2 microsegundos, por
exemplo)
Por conta da rapidez da CPU, ela pode
executar muitas instrues durante uma
fatia de tempo
Os jobs dos usurios so trocados no
final de cada fatia
Multiprocessamento
2 ou mais processadores paralelos
em um sistema
Um programa pode ser dividido
para ser executado por mltiplas
CPUs
Pode processar grandes programas
de forma mais eficiente
Traduo de Linguagens
Cdigo-fonte: instrues em
linguagem de alto nvel (entrada de
um processador de linguagem)
Compilador: traduz cdigo de alto
nvel em linguagem de mquina
Cdigo-objeto: instrues
traduzidas e prontas para execuo
pelo computador
Processo de Compilao
SOURCE CODE
PROGRAM
COMPIL
ER
OBJECT CODE
LINKA
GE
EDITOR
LOAD MODULE
OTHER OBJECT
CODE MODULES
Sistemas Operacionais
MS Windows 95/98
MS Windows NT/Me/2000
MS Windows CE
Sistemas Operacionais
OS/2
UNIX
Linux
Sistemas Operacionais
Apple MacOS
Microsoft DOS
Palm PalmOS
Linguagens de
Programao
Paradigmas de Linguagens
de Programao
Imperativo
Funcional
Lgico
Prolog
Orientado a Objetos
Orientado a Agentes
Agent-0
Geraes de Linguagens
de Programao
Primeira :: Desde a dcada de 40:
Linguagem de mquina; cdigo binrio
Segunda :: Desde os primeiros anos da
dcada de 50: Linguagem Assembly;
mnemnicos para cdigo numrico
Terceira :: Desde meados da dcada de
50: Linguagens de alto nvel (Fortran,
Cobol, etc)
Quarta :: Desde o final da dcada de 70:
Pacotes de aplicaes modernos
Linguagens de Quarta
Gerao (4GL)
CAN BE EMPLOYED BY END USERS
NONPROCEDURAL
CAN DEVELOP APPLICATIONS
QUICKLY
NATURAL LANGUAGES
6 categorias
Linguagens de Quarta
Gerao (4GL)
1 Linguagens de Consulta:
Linguagens de Quarta
Gerao (4GL)
2 Geradores de relatrios:
3 Linguagens grficas:
Linguagens de Quarta
Gerao (4GL)
4 Geradores de Aplicao:
Linguagens de Quarta
Gerao (4GL)
5 Linguagens de Programao de
Altssimo Nvel:
Linguagens de Quarta
Gerao (4GL)
7 Pacotes de software: conjunto de
programas
Processadores de texto
Planilhas eletrnicas
Gerenciadores de bancos de dados
Software de apresentao
Ferramentas de Software
Processadores de texto
Planilhas eletrnicas
Gerenciamento de dados
Programas para apresentao
Suites de software integradas
E-mail
Web browsers
Groupware
Programao Orientada a
Objetos
Combina procedimento e dado num nico
objeto
Um programa envia mensagem a um
objeto para executar determinado
procedimento encapsulado (mtodo)
O dado do objeto encapsulado e isolado
do resto do sistema
Possibilita a reutilizao de cdigo
Reduz o tempo e custo para construo de
software
Programao Orientada a
Objetos
VISUAL PROGRAMMING: SELECT AND
ARRANGE OBJECTS RATHER THAN WRITE
CODE
CLASS: ALL OBJECTS OF A CLASS HAVE ALL
FEATURES OF THAT CLASS
INHERITANCE: SPECIFIC CLASS RECEIVES
FEATURES OF A MORE GENERAL CLASS
OVERRIDE: SUBCLASS MAY OVEERRIDE
INHERITED METHOD (e.g.: Printout of an
HOURLY worker Pay Check may differ from
that of a WEEKLY worker
Programao Orientada a
Objetos
JAVA: Sun Microsystems OBJECT-ORIENTED
PROGRAMMING LANGUAGE
APPLET: TINY PROGRAM TO EXECUTE SMALL
FUNCTION
APPLETS DOWNLOADED FROM NETWORK
RUN ON ANY COMPUTER & OPERATING
SYSTEM
RESULT SAVED ON NETWORK, NOT ON PC
ONLY NETWORK VERSION OF SOFTWARE
NEEDS UPGRADE
Programao Orientada a
Objetos
ActiveX: Controls for Windows
software environment to enable
OBJECTS: e.g.,
CHARTS
TABLES
ANIMATIONS
to be EMBEDDED IN A WEB PAGE
O Processo de Construo
de Software
O que a Engenharia de
Software?
Estudo ou aplicao de
abordagens sistemticas,
econmicas e quantificveis para o
desenvolvimento, operao e
manuteno de software de
qualidade.
Objetivos da Engenharia
de Software
Qualidade de software
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
Qualidade de Software
(para o Varejo)
Correto
Eficiente
Qualidade de Software
(para o Varejo)
Amigvel e fcil de usar
Reusvel
Qualidade de Software
(para o Varejo)
Aberto, compatvel, de fcil integrao
com outros sistemas
Produtividade
Custo de desenvolvimento reduzido
Software Barato
Nem tanto resultado de baixos
custos de desenvolvimento, mas
principalmente da distribuio dos
custos entre vrios clientes.
Reuso, extensibilidade e adaptabilidade so
essenciais para viabilizar tal distribuio.
Elementos e Atividades da
Engenharia de Software
Elementos
Modelos do ciclo de
vida do software
Linguagens
Ferramentas
Mtodos
Processos
Atividades
Planejamento e
Gerenciamento
Gerncia de
Configurao e
Mudanas
Modelagem do negcio
Elicitao de requisitos
Anlise e Projeto
Implementao
Testes
Implantao
Modelo Cascata
Modelo Espiral
Fases
Concepo
Elaborao
Construo
Transio
Requisitos.......................................
Anlise & Projeto............................
Implementao...............................
Testes.............................................
Implantao....................................
Fluxo de Suporte
Planejamento e Gerenciamento.....
Iterao
Preliminar
Iter.
#1
Iter.
#2
Iter.
#i
Iter.
#i+1
Iteraes
Iter.
#i+2
Iter.
#n
Iter.
#n+1
Linguagem
Notao com sintaxe e semntica
bem definidas
Mtodo
Descrio sistemtica de como
deve-se realizar uma determinada
atividade ou tarefa
A descrio normalmente feita
atravs de padres e guias
Metodologia
Ferramenta
Prov suporte computacional a um
determinado mtodo
Ambiente de desenvolvimento: conjunto
de ferramentas integradas (CASE)
Exemplos:
Rational Rose
IBM VisualAge for Java
Inprise Jbuilder
Microsoft SourceSafe
Processo
Conjunto de atividades
bem definidas
com responsveis
com artefatos de entrada e sada
com dependncias entre as mesmas
e ordem de execuo
com modelo de ciclo de vida
Seleo de Software
Adequabilidade
Eficincia
Compatibilidade
Suporte
Fontes de Recursos na
Internet
http://www.microsoft.com
http://www.bds.org
http://www.javasoft.com
http://www.gamelan.com
http://www.eiffel.com
http://www.perl.com
http://www.perl.org
http://www.python.org
http://www.neosoft.com/tcl
http://www.caldera.com
http://www.redhat.com
news: comp.lang
news: comp.lang.c
news: comp.lang.smalltalk