Date post: | 15-Nov-2015 |
Category: |
Documents |
Upload: | hugo-chaves |
View: | 2 times |
Download: | 0 times |
O Papel do SoftwareEspecializao em Comrcio Eletrnico e Economia Digital
ObjetivosDescrever os principais tipos de softwareExaminar software de sistemas e sistemas operacionaisExplicar a evoluo do softwareAnalisar as principais linguagens de programaoDescrever as abordagens ao desenvolvimento de softwareIdentificar temas relacionados com software
Desafios da Gerncia de TIO que software?Software de sistemaSoftware de aplicaoNovas ferramentas de software e abordagensGesto do patrimnio de software
SoftwareInstrues detalhadas que controlam a operao de um computadorPrograma: conjuntos de instrues ao computadorConceito de programa armazenadoSoftware de sistema: gerencia os recursos de um computadorSoftware de aplicao: aplicativo especfico para um domnio especfico
O Computador
SOFTWARE HARDWARESYSTEM SOFTWAREAPPLICATION SOFTWARE
Multiprogramao
MultitarefaMultiprogramao em um sistema mono-usurio com um microcomputador
Memria VirtualMecanismo de tratamento de vrios programas na memria principalUm programa dividido em:Pores de comprimento fixo (pginas) ouDe comprimento varivel (segmentos)As pores em execuo residem na memria principalAs pginas so trocadas (swapped) conforme a necessidade
Time SharingMany users sharing a powerful CPUO 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 tempoOs jobs dos usurios so trocados no final de cada fatia
Multiprocessamento2 ou mais processadores paralelos em um sistemaUm programa pode ser dividido para ser executado por mltiplas CPUsPode processar grandes programas de forma mais eficiente
Traduo de LinguagensCdigo-fonte: instrues em linguagem de alto nvel (entrada de um processador de linguagem)Compilador: traduz cdigo de alto nvel em linguagem de mquinaCdigo-objeto: instrues traduzidas e prontas para execuo pelo computador
Processo de Compilao
Graphical User Interface (GUI)O sistema operacional e os programas usam:cones grficos (Icons, Buttons, Bars, Boxes)mousePara disparar comandos e fazer selees
Sistemas OperacionaisMS Windows 95/9832-bit operating system; GUI; Multitasking. NetworkingMS Windows NT/Me/200032-bit operating system not limited to Intel chips. Multitasking; Multiprocessing; NetworkingMS Windows CEPaired-down for handheld computers, wireless communication devices
Sistemas OperacionaisOS/232-bit. Developed for IBM PS/2. Multitasking; NetworkingUNIXFor powerful Microcomputers, Workstations, Minicomputers. Multitasking; Multi-user Processing; Networking. Portable to various Computer PlatformsLinuxGratuito, uma alternativa confivel para UNIX e Windows. Roda em muitas plataformas.
Sistemas OperacionaisApple MacOSFor Macintosh computers. Multitasking. Powerful Graphics; MultimediaMicrosoft DOSFor IBM (PC-DOS) and PC (MS-DOS). Program Memory: 640KPalm PalmOSPara compudores de mo (palmtops)
Linguagens de Programao
Paradigmas de Linguagens de ProgramaoImperativoC, Cobol, Fortran, PascalFuncionalHaskell, Standard ML, MirandaLgicoPrologOrientado a ObjetosJava, Eiffel, SimulaOrientado a AgentesAgent-0
Geraes de Linguagens de ProgramaoPrimeira :: Desde a dcada de 40: Linguagem de mquina; cdigo binrioSegunda :: Desde os primeiros anos da dcada de 50: Linguagem Assembly; mnemnicos para cdigo numricoTerceira :: 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 NvelFORTRAN (FORmula TRANslator): Scientific, Engineering applicationsCOBOL (COmmon Business Oriented Language): Predominant for transaction processingBASIC (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 / outputC 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 USERSNONPROCEDURALCAN DEVELOP APPLICATIONS QUICKLYNATURAL LANGUAGES6 categorias
Linguagens de Quarta Gerao (4GL)1 Linguagens de Consulta:Recuperam dados eficientementeInterativas/on-linePodem usar linguagem natural (!)Suportam solicitaes especiais de dados de bancos de dados relacionais
Linguagens de Quarta Gerao (4GL)2 Geradores de relatrios:Cria relatrios personalizadosGrande nmero de formatos possveis3 Linguagens grficas:Pode manipular desenhos, grficos, fotos, vdeosGerenciadores de apresentao
Linguagens de Quarta Gerao (4GL)4 Geradores de Aplicao:O usurio especifica as necessidades do sistemaO gerador cria lgica e cdigo para a aplicaoReduz drasticamente o tempo de desenvolvimento
Linguagens de Quarta Gerao (4GL)5 Linguagens de Programao de Altssimo Nvel:Ferramenta de produtividade para o programador profissionalUsa menos comandosReduz o tempo de desenvolvimento
Linguagens de Quarta Gerao (4GL)7 Pacotes de software: conjunto de programasProcessadores de textoPlanilhas eletrnicasGerenciadores de bancos de dadosSoftware de apresentaoFacilitam o uso e a aprendizagemMS Office 2000, Sun StarOffice
Ferramentas de SoftwareProcessadores de textoPlanilhas eletrnicasGerenciamento de dadosProgramas para apresentaoSuites de software integradasE-mailWeb browsersGroupware
Programao Orientada a ObjetosCombina procedimento e dado num nico objetoUm programa envia mensagem a um objeto para executar determinado procedimento encapsulado (mtodo)O dado do objeto encapsulado e isolado do resto do sistemaPossibilita a reutilizao de cdigoReduz o tempo e custo para construo de software
Programao Orientada a ObjetosVISUAL PROGRAMMING: SELECT AND ARRANGE OBJECTS RATHER THAN WRITE CODECLASS: ALL OBJECTS OF A CLASS HAVE ALL FEATURES OF THAT CLASSINHERITANCE: SPECIFIC CLASS RECEIVES FEATURES OF A MORE GENERAL CLASSOVERRIDE: 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 ObjetosJAVA: Sun Microsystems OBJECT-ORIENTED PROGRAMMING LANGUAGEAPPLET: TINY PROGRAM TO EXECUTE SMALL FUNCTIONAPPLETS DOWNLOADED FROM NETWORKRUN ON ANY COMPUTER & OPERATING SYSTEMRESULT SAVED ON NETWORK, NOT ON PCONLY NETWORK VERSION OF SOFTWARE NEEDS UPGRADE
Programao Orientada a ObjetosActiveX: Controls for Windows software environment to enable OBJECTS: e.g.,CHARTSTABLESANIMATIONSto 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 SoftwareQualidade de softwareProdutividade no desenvolvimento, operao e manuteno de softwareQualidade versus ProdutividadePermitir que profissionais tenham controle sobre o desenvolvimento de software dentro de custos, prazos e nveis de qualidade desejados
Qualidade de Software(para o Varejo)CorretoA loja no pode deixar de cobrar por produtos comprados pelo consumidorRobusto e altamente disponvelA loja no pode parar de venderEficienteO consumidor no pode esperarA 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 treinamentoAltamente extensvel e adaptvelA empresa tem sempre novos requisitos (para ontem!)A empresa quer o software customizado do seu jeito (interface, teclado, idioma, moeda, etc.) ReusvelVrias empresas precisam usar partes de um mesmo sistema
Qualidade de Software(para o Varejo)Aberto, compatvel, de fcil integrao com outros sistemasA empresa precisa de controle de estoque, fidelizao, etc. Portvel e independente de plataforma (hardware e software)A empresa pode optar por uma determinada plataformaBaixo custo de instalao e atualizaoA empresa tem um grande nmero de PDVs
ProdutividadeCusto de desenvolvimento reduzidoA empresa consumidora quer investir pouco em softwareA 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 SoftwareElementosModelos do ciclo de vida do software LinguagensFerramentasMtodosProcessosAtividadesPlanejamento e GerenciamentoGerncia de Configurao e MudanasModelagem do negcioElicitao de requisitosAnlise e ProjetoImplementaoTestesImplantao
Modelos do Ciclo de Vida de SoftwareFora bruta, gambiarra, hacking, marretaCascataEspiralIterativo (do RUP)Prototipagem evolucionria
Fora bruta, gambiarra, hacking, marreta
Modelo Cascata
Modelo Cascata na Prtica
Modelo Espiral
Iterativo (do RUP)
LinguagemNotao com sintaxe e semntica bem definidascom representao grfica ou textual Usada para descrever os artefatos gerados durante o desenvolvimento de software Exemplos: UML, Java, C++, Delphi
MtodoDescrio sistemtica de como deve-se realizar uma determinada atividade ou tarefaA descrio normalmente feita atravs de padres e guiasMetodologiaconjunto de mtodos (+ processo)Exemplos: Booch, BON, Pim
FerramentaProv suporte computacional a um determinado mtodoAmbiente de desenvolvimento: conjunto de ferramentas integradas (CASE)Exemplos:Rational RoseIBM VisualAge for JavaInprise JbuilderMicrosoft SourceSafe
ProcessoConjunto de atividades bem definidas com responsveiscom artefatos de entrada e sadacom dependncias entre as mesmas e ordem de execuocom modelo de ciclo de vida
Seleo de SoftwareAdequabilidadeEficinciaCompatibilidadeSuporte
Fontes de Recursos na Internethttp://www.microsoft.comhttp://www.bds.orghttp://www.javasoft.comhttp://www.gamelan.comhttp://www.eiffel.comhttp://www.perl.comhttp://www.perl.orghttp://www.python.orghttp://www.neosoft.com/tclhttp://www.caldera.comhttp://www.redhat.comnews: comp.langnews: comp.lang.cnews: comp.lang.smalltalk