Você está na página 1de 44

Engenharia de Software

Fase Desenvolvimento
Prof. M.Sc. Nathielly de Souza Campos E-mail: nathielly@unisuamdoc.com.br Lattes: http://buscatextual.cnpq.br/buscatextual/ visualizacv.do?id=K4711153U6

Posso comear o desenvolvimento?


Todas as entradas do sistema esto especificadas, incluindo origem, preciso, intervalo de valores e frequncia de atualizao, formato?
Todas as sadas do sistema esto especificadas, incluindo seu destino, preciso, intervalo de valores, frequncia e formato?

Todos os relatrios esto definidos? Para quais formatos?

Posso comear o desenvolvimento?


Todas as interfaces com hardware e software externos ao produto esto desenhadas?
O tempo de resposta esperado est especificado? (do ponto de vista do usurio) O nvel de segurana est especificado?

Posso comear o desenvolvimento?


A manutenibilidade est especificada?
Como sero trabalhadas as mudanas ps entrega do produto? E o Gerenciamento de Usurios?

Os requisitos foram redigidos no idioma do usurio? Todos os requisitos so implementveis?

Posso comear o desenvolvimento?


A arquitetura do software est definida?
Quais so os subsistemas? Quais so as classes associadas? Quais so os mdulos? Quais so as classes associadas? Quais componentes sero utilizados?
J esto na linguagem planejada? (Devero ser portabilizados?)

O projeto do BD j est pronto? O projeto esttico do produto est pronto?

Posso comear o desenvolvimento?


A arquitetura do software est definida? (continuao)
O projeto de arquitetura de informao est pronto? O projeto de navegao est pronto? A arquitetura planejada permite extensibilidade do programa (permite seu crescimento futuro)? Foi solicitada internacionalizao do produto?
Ex: conjunto de caracteres que devero ser disponibilizados (ASCII, DBCS, etc.)

Posso comear o desenvolvimento?


A linguagem de programao a ser utilizada j est definida? Existe padro para ________ ? (variveis, campos do banco, etc...)
Nomenclatura Comentrios Apresentao Codificao

Posso comear o desenvolvimento?


J foi definido padro de integrao dos componentes ou partes do sistema?
Trabalho ser feito em pares? Quais so os passos que um programador deve utilizar para incluir seu cdigo nos arquivos fonte mestres dos controles de verses?

Posso comear o desenvolvimento?


Em relao ao controle da qualidade
Os programadores devero escrever seus casos de testes antes de program-lo? Os programadores inspecionaro os cdigos uns dos outros? Foi escolhida uma ferramenta de controle de revises?

Posso comear o desenvolvimento?


Regras de negcio podem sofrer alteraes. Foram planejadas as parametrizaes? Regras de negcio so polticas, condies ou restries que devem ser consideradas na execuo dos processos de uma organizao.
Descrevem a maneira pela qual a organizao funciona. Exemplos:
RN1. Quantidade mxima de inscries por semestre letivo: em um semestre letivo, um aluno pode se inscrever em uma quantidade de disciplinas cuja soma de crditos ultrapasse 20.

Estilo de programao
Programao defensiva (como proteger a aplicao?)
Decida como ir tratar entradas incorretas Retornar valor neutro:
continuar funcionando de onde parou ou trazer um valor neutro (campo ou tela em branco).

Substituir pelos prximos dados vlidos: continuar a ler a partir do prximo registro vlido. Registrar uma mensagem de alerta em um arquivo de log

Estilo de programao
Programao defensiva (continuao)
Retornar um cdigo de erro (mensagem tratada) Terminar a execuo Criao de barricadas (Ex: transformao de dados de entrada para o tipo correto ) espcie de parede corta-fogo.

Estilo de programao
Programao Ofensiva
Simule situaes que podem acontecer e veja como o sistema funciona:
Alocao de memria Preencha completamente todos o arquivo ou fluxos alocados para descobrir erros de formato de arquivo Programe arquivos de log de erros e envie para si mesmo.

Estilo de programao
Programao Ofensiva (continuao) Quais verificaes prprias (assertivas) o programa dever fazer? O valor de entrada est dentro do esperado? Um arquivo ou fluxo est aberto durante uma execuo e deve ser fechado Se um arquivo ou fluxo est aberto apenas para leitura quando ser necessria gravao Se uma varivel de valor apenas de entrada est sendo alterada Foram planejadas assertivas para documentao das pr-condies e ps-condies

Fazer ou comprar?
A determinao se os produtos ou componentes de produto sero adquiridos freqentemente referida como uma anlise de fazer-ou-comprar. Ela baseada na anlise das necessidades do projeto. Essa anlise de fazer-ou-comprar comea cedo no projeto durante a primeira interao de design, continua durante o processo de design, e finalizada com a deciso para desenvolver, adquirir ou reusar o produto

Fazer ou comprar?
Fatores que afetam a deciso de fazer-oucomprar:
Recursos e habilidades de projeto disponveis Custos de aquisio versus desenvolver internamente Datas crticas de entrega e integrao Alianas estratgicas de negcio, incluindo requisitos de negcio de alto nvel

Fazer ou comprar?
Fatores que afetam a deciso de fazer-oucomprar:
Funcionalidade e qualidade de produtos disponveis Habilidades e capacidades de fornecedores potenciais Impacto nas competncias principais Licenas, garantias, responsabilidades e limitaes associadas aos produtos que esto sendo adquiridos Disponibilidade de produto Questes de propriedade Reduo de riscos

Produtos de Prateleira
O uso de componentes de produto de prateleira (COTS) considerado com relao a custo, cronograma, desempenho e risco.

Codificao de software
Exemplos de mtodos de codificao de software:
Programao estruturada Programao orientada a objeto Gerao automtica de cdigo Reuso de cdigo de software Uso de padres aplicveis de design

Codificao de software
Exemplos de critrios de codificao de software:
Modularidade Clareza Simplicidade Confiabilidade Segurana Manutenibilidade

Codificao de software
Depurar o processo de identificar a causa raiz de um erro e corrigi-lo. Realizar reviso por pares nos componentes de produto selecionados. Executar teste de unidade do componente de produto quando apropriado.
Teste de cobertura de comandos Teste de valores limites Teste de valores especiais

Integrao do Produto
O propsito da Integrao de Produto (IP) :
montar o produto a partir de componentes de produto; garantir que o produto integrado execute as funes de forma apropriada; e, entregar o produto.

Integrao do Produto (CMMI)


SG 1 Preparar para a Integrao de Produto SP 1.1 Determinar a Sequncia de Integrao SP 1.2 Estabelecer o Ambiente de Integrao do Produto SP 1.3 Estabelecer os Procedimentos e Critrios para a Integrao do Produto SG 2 Garantir a Compatibilidade das Interfaces SP 2.1 Revisar as Descries de Todas as Interfaces SP 2.2 Gerenciar Interfaces SG 3 Montar os Componentes do Produto e Entregar o Produto SP 3.1 Confirmar se os Componentes do Produto esto Prontos para serem Integrados SP 3.2 Montar os Componentes do Produto SP 3.3 Avaliar os Componentes do Produto Montados SP 3.4 Empacotar e Entregar o Produto ou o Componente de Produto

Integrao do Produto
Sobre a Integrao: os procedimentos e critrios para a integrao de produto tratam do seguinte:
Verificao das interfaces Limiares de desvios de desempenho Requisitos derivados para a montagem e suas interfaces externas Substituies de componentes indisponveis Parmetros de ambiente de teste

Integrao do Produto
... os procedimentos e critrios para a integrao de produto tratam do seguinte:
(continuao)

Decises entre custo/qualidade nas operaes de integrao Taxa de entrega e sua variao Tempo decorrido entre a solicitao e a entrega Disponibilidade de pessoal Disponibilidade de facilidades/linhas/ambiente de integrao

Verificao
A equipe de desenvolvimento se pergunta: estamos produzindo o produto corretamente? Est seguindo o que foi especificado? Realizao de testes:
Teste de carga, stress e desempenho Teste baseado em decomposio funcional Testes de aceitao (Fase de Testes)

Verificao
Exemplos de fontes para critrios de verificao:
Requisitos de produto e componentes de produto Padres Polticas organizacionais Parmetros de teste Parmetros para compromisso entre qualidade e custo de teste Tipo dos produtos de trabalho Fornecedores Propostas e acordos

Verificaes
As revises por pares constituem um exame metdico dos produtos de trabalho pelos pares que os produzem para identificar defeitos a serem removidos e recomendar outras modificaes necessrias.

Verificaes
As atividades de preparao para a reviso por pares incluem tipicamente: a identificao da equipe que ser convidada para participar na reviso de cada produto de trabalho; a identificao dos revisores-chave que devem participar da reviso por pares; a preparao e atualizao de todos os documentos que sero usados durante a reviso por pares, tais como listas de verificao, critrios de reviso e cronograma das revises.

Verificaes
Cronograma das revises por pares Listas de verificao das revises por pares Critrios de entrada e sada para os produtos de trabalho Critrios para solicitao de uma outra reviso por pares Material de treinamento de reviso por pares Produtos de trabalho a serem revisados

Desenvolvimento rpido
Desenvolvimento rpido:
Desenvolvimento baseado no indivduo Software funcionando x documentao vasta Colaborao do cliente mais importante do que a negociao em contrato Mais adequado ao processo de evoluo e adaptaes de produtos Competncia e experincia tcnica Vantagens: atendimento mais gil e maior aderncias s mudanas.

Ferramentas de apoio
Aplicaes de apoio:
Ferramentas: as aplicaes IDEs Ambientes Integrados de Desenvolvimento possuem recursos interessantes de suporte ao desenvolvimento de software:
Compilao e deteco de erros Integrao de cdigo Ferramenta de testes Formatao em linguagem especifica Edio simultnea de vrios arquivos Etc.

Ferramentas de apoio
Aplicaes de apoio:
Gerador de interface e de Relatrios Aplicao COTS (software de prateleira)
Genexus Script Case

Gerador de cdigos a partir de ferramentas CASE

Questes de implementao
O foco aqui no na programao, apesar de, obviamente, essa ser importante, mas em outras questes de implementao que geralmente no so cobertas em textos sobre programao: Reuso: maioria dos softwares modernos so construdos pelo reuso de componentes e sistemas existentes. Quando se est desenvolvendo softwares, deve-se fazer o maior uso possvel de cdigos existentes. Gerenciamento de configurao: durante o processo de desenvolvimento, deve-se manter registro, em um sistema de gerenciamento de configurao, das vrias verses diferentes de cada componente de software.

Gerenciamento de configurao
Gerenciamento de configurao o nome dado para o processo geral de gerenciamento de um sistema de software em mudana.
O objetivo do gerenciamento de configurao dar suporte ao processo de integrao do sistema para que todos os desenvolvedores possam acessar o cdigo do projeto e os documentos de uma maneira controlada, descobrir quais mudanas foram feitas e compilar e ligar os componentes para criar um sistema.

Gerenciamento de configurao
Gerenciamento de verses, em que dado o suporte para manter registro das diferentes verses dos componentes de software. Sistemas de gerenciamento de verses incluem recursos para coordenar o desenvolvimento de diversos programadores.
Integrao de sistemas, em que dado o suporte para auxiliar os desenvolvedores a definir quais verses dos componentes sero usadas para criar cada verso do sistema. Em seguida, essa descrio usada para construir o sistema automaticamente, pela compilao e ligao dos componentes necessrios. Rastreamento de problemas, em que dado suporte aos usurios para reportarem bugs e outros problemas, e para permitir a todos os desenvolvedores que vejam quem est trabalhando nesses problemas e quando esses sero resolvidos.

Outros aspectos ...


Mudanas:
O mundo aps a Internet Padres para leiaute responsivo Padres Web Documentao dos projetos

Outros aspectos ...


O design responsivo?
... usa layouts flexveis para se adaptarem a quase qualquer tela? ... funciona em qualquer dispositivo?

ver vdeo:
http://www.youtube.com/watch?v=xSGhV3ynmm4

Mais informaes:
http://msdn.microsoft.com/pt-br/library/dn163510.aspx http://www.w3.org/2013/Talks/responsive-design.pdf http://alistapart.com/article/responsive-web-design

Outros aspectos ...


Melhores prticas para o desenvolvimento Mobile:
http://www.w3.org/2007/02/mwbp_flip_cards http://www.w3.org/TR/mobile-bp/

Prticas para Internacionalizao:


http://www.w3.org/International/

Outros aspectos ...


W3C - World Wide Web Consortium - http://www.w3c.br CERT.BR - Centro de Estudos, Resposta e Tratamento de Incidentes de Segurana no Brasil - http://www.cert.br/ CGI.br - Comit Gestor da Internet no Brasil http://www.cgi.br/ NIC.br - Ncleo de Informao e Coordenao do Ponto BR - http://www.nic.br/index.shtml CETIC.br - Centro de Estudos sobre as Tecnologias da Informao e da Comunicao - http://www.cetic.br/

Outros aspectos ...

Outros aspectos ...


Padres para o desenvolvimento Web http://www.w3.org/TR/

Selos e Validao ... W3C daSilva

Referncias