Вы находитесь на странице: 1из 55

O Papel do Software

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

ASSEMBLY LANGUAGE; FORTRAN;


COBOL; PL / 1; QBASIC; PASCAL; C; C++;
FOURTH GENERATION LANGUAGES

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:

Pores de comprimento fixo (pginas) ou


De comprimento varivel (segmentos)

As pores em execuo residem na


memria principal
As pginas so trocadas (swapped)
conforme a necessidade

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

Graphical User Interface


(GUI)
O sistema operacional e os
programas usam:

cones grficos (Icons, Buttons, Bars,


Boxes)
mouse

Para disparar comandos e fazer


selees

Sistemas Operacionais
MS Windows 95/98

32-bit operating system; GUI; Multitasking.


Networking

MS Windows NT/Me/2000

32-bit operating system not limited to Intel


chips. Multitasking; Multiprocessing;
Networking

MS Windows CE

Paired-down for handheld computers, wireless


communication devices

Sistemas Operacionais
OS/2

32-bit. Developed for IBM PS/2. Multitasking;


Networking

UNIX

For powerful Microcomputers, Workstations,


Minicomputers. Multitasking; Multi-user
Processing; Networking. Portable to various
Computer Platforms

Linux

Gratuito, uma alternativa confivel para UNIX


e Windows. Roda em muitas plataformas.

Sistemas Operacionais
Apple MacOS

For Macintosh computers. Multitasking.


Powerful Graphics; Multimedia

Microsoft DOS

For IBM (PC-DOS) and PC (MS-DOS).


Program Memory: 640K

Palm PalmOS

Para compudores de mo (palmtops)

Linguagens de
Programao

Paradigmas de Linguagens
de Programao
Imperativo

C, Cobol, Fortran, Pascal

Funcional

Haskell, Standard ML, Miranda

Lgico

Prolog

Orientado a Objetos

Java, Eiffel, Simula

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 Alto Nvel


FORTRAN (FORmula TRANslator):
Scientific, Engineering applications
COBOL (COmmon Business
Oriented Language): Predominant
for transaction processing
BASIC (Beginners All-purpose
Symbolic Instruction Code):
General purpose PC language

Linguagens de Alto Nvel


(cont.)
PASCAL: Used to teach structured
programming practices. Weak in
file handling, input / output
C and C++: Powerful PC Language
for developing applications.
Efficient execution; cross platform.
C++ is object oriented

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:

Recuperam dados eficientemente


Interativas/on-line
Podem usar linguagem natural (!)
Suportam solicitaes especiais de
dados de bancos de dados relacionais

Linguagens de Quarta
Gerao (4GL)
2 Geradores de relatrios:

Cria relatrios personalizados


Grande nmero de formatos possveis

3 Linguagens grficas:

Pode manipular desenhos, grficos,


fotos, vdeos
Gerenciadores de apresentao

Linguagens de Quarta
Gerao (4GL)
4 Geradores de Aplicao:

O usurio especifica as necessidades


do sistema
O gerador cria lgica e cdigo para a
aplicao
Reduz drasticamente o tempo de
desenvolvimento

Linguagens de Quarta
Gerao (4GL)
5 Linguagens de Programao de
Altssimo Nvel:

Ferramenta de produtividade para o


programador profissional
Usa menos comandos
Reduz o tempo de desenvolvimento

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

Facilitam o uso e a aprendizagem


MS Office 2000, Sun StarOffice

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

Alguns pontos iniciais


importantes:
O que uma metodologia?
E uma metodologia de
desenvolvimento de software?
Qual a importncia de uma
metodologia para a sua empresa?

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

A loja no pode deixar de cobrar por


produtos comprados pelo consumidor

Robusto e altamente disponvel

A loja no pode parar de vender

Eficiente

O consumidor no pode esperar


A empresa quer investir pouco em recursos
computacionais (CPU, memria, rede)

Qualidade de Software
(para o Varejo)
Amigvel e fcil de usar

A empresa quer investir pouco em treinamento

Altamente extensvel e adaptvel

A empresa tem sempre novos requisitos (para


ontem!)
A empresa quer o software customizado do seu
jeito (interface, teclado, idioma, moeda, etc.)

Reusvel

Vrias empresas precisam usar partes de um


mesmo sistema

Qualidade de Software
(para o Varejo)
Aberto, compatvel, de fcil integrao
com outros sistemas

A empresa precisa de controle de estoque,


fidelizao, etc.

Portvel e independente de plataforma


(hardware e software)

A empresa pode optar por uma determinada


plataforma

Baixo custo de instalao e atualizao

A empresa tem um grande nmero de PDVs

Produtividade
Custo de desenvolvimento reduzido

A empresa consumidora quer investir


pouco em software
A empresa produtora tem que oferecer
software barato

Tempo de desenvolvimento reduzido

Suporte rpido s necessidades do


mercado

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

Modelos do Ciclo de Vida


de Software
Fora bruta, gambiarra, hacking,
marreta
Cascata
Espiral
Iterativo (do RUP)
Prototipagem evolucionria

Fora bruta, gambiarra,


hacking, marreta

Modelo Cascata

Modelo Cascata na Prtica

Modelo Espiral

Iterativo (do RUP)


Fluxos de Processo

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

com representao grfica ou textual

Usada para descrever os artefatos


gerados durante o
desenvolvimento de software
Exemplos: UML, Java, C++, Delphi

Mtodo
Descrio sistemtica de como
deve-se realizar uma determinada
atividade ou tarefa
A descrio normalmente feita
atravs de padres e guias
Metodologia

conjunto de mtodos (+ processo)

Exemplos: Booch, BON, Pim

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

Вам также может понравиться