Sei sulla pagina 1di 28

Av. Beira Rio, 3001 - Jardim Europa Cuiab MT 78.025-190 Fone: (65) 4009-4000 Site: www.unirondon.

br

MISSO Possibilitar o saber para ser e fazer...

Curso Cincia da Computao


Disciplina: Engenharia de Software I Responsvel: Prof Esp. Tony Gelsy Sampaio Coordenadora: Prof Ms. Aline Paulino Domingos de Souza

Apresentao
Prof. Tony Gelsy Sampaio E-mail: tonysampa@gmail.com
Graduado em Cincia da Computao (UFMT)
Defesa de Monografia: Estudo e Avaliao de uma Ferramenta Open Source de Business Intelligence para Utilizao em Dados de Mortalidade no Estado de Mato Grosso.

Especialista em Redes e Computao Distribuda (IFMT)


Defesa de Artigo: Implementao de uma ferramenta de apoio ao ensino de algoritmo utilizando fluxograma.

Mercado: Analista e desenvolvedor de sistemas comerciais e agora, docncia.

Reflexo

...A espcie de filosofia a que dou valor e tenho tentado perseguir cientfica, no sentido de haver algum conhecimento definido a ser obtido e de que novas descobertas podem tornar inevitvel, a qualquer mente sincera, o reconhecimento de erros anteriores. (Bertrand Russell)

Plano de Ensino
Cincia da Computao
Engenharia de Software I Ano 2013/1 3 Semestre Segunda-Feira e Tera-Feira -> 20:30 as 22:00 Resp.: Prof Esp. Tony Sampaio Carga horria Total: 60h/a Carga horria Semanal: 03:00 hs. Carga horria Terico/Prtica: 48 hs. Carga horria Aprendizagem orientadas: 12 hs.

Plano de Ensino
Ementa da disciplina
Modelos de ciclo de vida; Anlise de requisitos: requisitos funcionais e requisitos no-funcionais; tcnicas para levantamento e representao de requisitos, incluindo casos de uso.

Modelagem OO: classe, atributo, associao, agregao e herana.


Projeto OO: tcnicas para projeto; padres de projeto, componentes e frameworks; Mtodos de anlise e de projeto de software.

Plano de Ensino
Justificativa da disciplina A necessidade de formao de recursos humanos, que dominem conceitos tcnico-cientficos relacionadas disciplina de Engenharia de Software e, assim preparar pessoas crticas, ativas e cada vez mais conscientes dos seus papis sociais e de sua contribuio no avano cientfico e tecnolgico do pas.

Contedos da disciplina
UNIDADE I: Engenharia de software: conceitos, objetivos e princpios. Projeto de software. Especificao de software. Conceituais 1. Engenharia de Software 2. Gerncia de Requisitos 3. Anlise de Requisitos

Plano de Ensino
Contedos da disciplina
UNIDADE II: Metodologias para modelagem e anlise e Projeto de Softwares

Conceituais:

1. Metodologias de Modelagem e Anlise


Projeto Orientados a fluxo de dados Projeto Orientado a estrutura de dados Projeto Orientado a objetos Projeto software de tempo real

2. Projeto de Software
Mtodos Conceitos Fundamentais Tipos de Projeto

ENGENHARIA DE SOFTWARE I
UNIDADE DIDTICA I Engenharia de software: Conceitos, objetivos e princpios. Projeto de software. Especificao de software.

Engenharia
Arte de aplicar conhecimentos cientficos e empricos e certas habilitaes especficas criao de estruturas, dispositivos e processos que se utilizam para converter recursos naturais em formas adequadas ao atendimento das necessidades humanas. (Dicionrio Aurlio Eletrnico V.2.0) Engenharia, segundo BAZZO (2008), a aplicao de conhecimentos cientficos soluo de problemas. proveniente da palavra latina ingenium, que significa engenho ou habilidade. O autor destaca o papel importante que a engenharia tem desempenhado, desenvolvendo - dentre tantas outras utilidades sistemas de transporte e de comunicao, sistemas de produo, processamento e estocagem de alimentos, sistemas de distribuio de gua e de energia, ferramentas, equipamentos entre outros. Alm disso, LINSINGEN et al. (1999) citam que: a transformao da cincia em tecnologia, da inveno em inovao, est fundamentada na engenharia. O cientista descobre a cincia, e o engenheiro constri a tecnologia.

Engenharia de software
o estabelecimento e o emprego de slidos princpios de engenharia de modo a obter software de maneira econmica, que seja confivel e funcione de forma eficiente em mquinas reais. (Fritz Bauer)

Engenharia de software
Objetivo: Software de qualidade Enxuto; Eficiente; Econmico; Custo-benefcio vivel; Dentro do prazo;

O que software?
o produto que profissionais de software desenvolvem e ao qual do suporte no longo prazo. (Pressman) Instrues que, quando executadas, fornecem: caractersticas, funes e desempenho desejados; estruturas de dados que possibilitam aos programas manipular informaes adequadamente; informao descritiva, tanto na forma impressa quanto na virtual, descrevendo a operao e o uso dos programas.

Tipos de softwares
Software de sistema Conjunto de programas feitos para atender a outros programas. Ex.: compiladores, editores, utilitrios para gerenciamento de arquivos. Softwares que possuem: Ampla interao com o hardware do computador; Uso intenso por mltiplos usurios; Operao concorrente que requer escala da ordem, compartilhamento de recursos e gesto de processo sofisticada; Estrutura de dados complexas e mltiplas interfaces;

Tipos de softwares
Software de aplicao programa sob medida que solucionam uma necessidade especfica de negcio. Processam dados comerciais ou tcnicos de uma forma que facilite operaes comerciais ou tomadas de deciso administrativas/tcnicas. O software de aplicao tambm usado para controlar funes de negcio em tempo real. Ex.: transaes em ponto de venda, controle de processos de fabricao em tempo real.

Tipos de softwares
Software cientfico/de engenharia tem sido caracterizados por algoritmos number crunching (processamento numrico pesado). Desde a astronomia a vulcanologia, da anlise de tenses da indstria automotiva dinmica orbital de nibus espaciais, da biologia molecular fabricao automatizada. Obs : Estes softwares se afastando dos algoritmos numricos convencionais e cada vez mais adquirindo caractersticas de softwares de tempo real e at mesmo de software de sistemas.

Tipos de softwares
Software embutido Utilizados para implementar e controlar caractersticas e funes para o usurio final e para o prprio sistema, com funes limitadas e especficas. Ex. : Painel de um microondas, geladeira high tech, etc. E com capacidade de controle. Ex. : Computador de bordo de veculos, responsveis por vrias funes de controle: nvel de combustvel, temperatura do motor, alimentao, temperatura do ar-condicionado, etc.

Tipos de softwares
Software para linha de produtos projetado para prover capacidade especfica de utilizao por muitos clientes diferentes. Ex. : controle de estoque, controle de vendas, controle financeiro, etc. Ou mercado de consumo de massa. Ex. : planilha eletrnica, processador de texto, computao grfica, multimdia, entretenimento, aplicaes financeiras pessoais e comerciais, etc.

Tipos de softwares
Aplicaes para web centrada em redes, abarca uma gama imensa de aplicaes. Com o aparecimento da Web 2.0, tem evoludo e se transformado em sofisticados ambientes computacionais, integrados a banco de dados corporativos e aplicaes comerciais. A web tem evoludo e se transformado em sofisticado ambiente de recursos especializados, funes computacionais e contedo para o usurio.

Tipos de softwares
Software de Inteligncia artificial faz o uso de algoritmos no numricos para solucionar problemas complexos que no so passveis de computao ou anlise direta. Aplicao em: robtica, sistemas especialistas, reconhecimento de padres (de imagem e de voz), redes neurais artificiais, provas de teoremas e jogos.

Alm disso novos desafios tem aparecidos: Computao mundial aberta, Netsourcing (recursos via Internet), Software aberto.

Software Legado
Foram desenvolvidos dcadas atrs, e tem sido continuamente modificados para se adequar a mudanas dos requisitos de negcios e a plataformas computacionais. Um software legado caracterizado pela longevidade e criticidade de negcios. Quando o software tiver de ser readaptado, aperfeioado, expandido e rearquitetado, ento torna-se necessrio passar pela reengenharia para que permanea vivel para o futuro.

Engenharia de software
a aplicao de uma abordagem sistmica, disciplinada e quantificvel no desenvolvimento, na operao e na manuteno de software, isto , a aplicao da engenharia ao software. (IEEE)

Abordagem em camadas
A engenharia de Software uma tecnologia em camadas

A pedra fundamental que sustenta a engenharia de software o Foco na qualidade (Pressman). A gesto da qualidade e filosofias similares promovem uma cultura de aperfeioamento contnuo de processos. E a base para a Engenharia de software a camada de processos.

Processo de Software
Um conjunto de atividades, aes e tarefas realizadas na criao de algum produto de trabalho. Processo um conjunto de tarefas com um objetivo comum. No contexto da engenharia de software, um processo no uma prescrio rgida de como desenvolver um software, mas uma abordagem adaptvel, selecionando e escolhendo um conjunto apropriado de aes e tarefas. O propsito maior entregar um software dentro do prazo e com qualidade suficiente para satisfazer queles que patrocinaram sua criao e queles que que iro utiliz-lo.

Processo de Software
Metodologia (framework) de processo Alicerce para um processo de Engenharia de software completo, por meio da identificao de um pequeno nmero de atividades estruturais aplicveis a todos os projetos de software, independente de tamanho ou complexidade. A metodologia de processo engloba um conjunto de atividades de apoio aplicveis a todo o processo de software. Existem 5 atividades na Engenharia de Software:

Processos de Software
Atividades da metodologia Comunicao (Levantamento de requisitos) Planejamento (Mapa descrio de tarefas, riscos, recursos, produto resultante e cronograma) Modelagem (esboo, arquitetura, encaixe das partes constituintes do projeto, refinamento de detalhes, criando modelos para melhor entender o software) Construo (Gerao de cdigo e testes necessrios) Emprego (Entrega do software ao cliente para avaliao e feedback) Todas essas atividades so aplicadas de forma iterativa. Onde cada iterao produzir um incremento de software

Processos de Software
Atividades de apoio Controle e acompanhamento do projeto avaliar o progresso e tomar as medidas para o cumprimento do cronograma Administrao de riscos avaliar riscos que comprometam a qualidade do produto final Garantia de qualidade de software define e conduz atividades que garantam a qualidade Revises tcnicas Auto avaliao da prpria engenharia de software, tentando eliminar e identificar erros. Medio Define e coleta padres de medio Gerenciamento da configurao de software gerencia efeitos da mudana ao longo do processo Gerenciamento da reusabilidade define critrios para o reso de artefatos, estabelece mecanismos para obteno de componentes reutilizveis Preparo e produo de artefatos de software atividades necessrias para criar artefatos como, modelos, documentos, logs, formulrios e listas.

Princpios Gerais de David Hooker


1. 2. 3. 4. 5. 6. 7. A razo de existir propsito: gerar valor a seus usurios KISS (Keep It Simple, Stupid!, ou seja, faa de forma simples, tapado!) De fato, esse princpio contribui para um sistema mais simples de compreender e manter. Mantenha a viso Comprometer a viso arquitetnica de um sistema de software debilita e at poder destruir sistemas bem projetados. Manter a viso clara e reforar a adequao ajuda a assegurar o xito O que um produz, os outros consomem Um software no isolado em si. Algum ir usar, manter, documentar. Portanto sempre especifique, projete, implemente ciente de que algum mais tarde ter de entender o que voc fez. Est aberto para o futuro em se tratando de tecnologia, as especificaes mudam de um dia para o outro. A vida de um software medida em meses. Jamais faa projetos limitados, sempre pergunte e se Planeje com antecedncia visando reutilizao Evite redundncias, tenha a capacidade de fazer previses, prevendo a reutilizao de um cdigo do seu sistema Pense! Pensar bem e de forma clara antes de agir quase sempre produz melhores resultados

Trabalho em grupo
Web 2.0 Agile Ajax RUP SCRUM CMMI

Padro: Texto cientfico (Normas ABNT), conf. Padro de Artigo da SBC Texto mnimo de 10 pginas

Potrebbero piacerti anche