122
SISTEMA DE INFORMAÇÃO Turma ADS 0019

SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

Embed Size (px)

Citation preview

Page 1: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

SISTEMA DE INFORMAÇÃO

Turma ADS 0019

Page 2: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

DESIGN E DESENVOLVIMENTO DE SOFTWARE

UNIDADE 2

Page 3: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

OBJETIVOS DA UNIDADE 2• Compreender os fundamentos de design de

software;• Entender aspectos relevantes sobre design de

software;• Entender aspectos do desenvolvimento de

software;• Conhecer boas práticas de gerenciamento de

projetos de software.Profº Ricardo luiz 3

Page 4: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

DESIGN DE SOFTWARE

TÓPICO 1

Page 5: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Ao decidir pela construção de algo, seja tangível ou intangível, há uma série de etapas que são comuns.

Profº Ricardo luiz 5

Page 6: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Ao optar por construir uma casa você decide qual será o processo construtivo a ser adotado. Este processo poderá ser linear, incremental ou iterativo.

Profº Ricardo luiz 6

Page 7: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Você também definirá quais são os requisitos da sua construção. (peças).

• A etapa seguinte é transformar estes requisitos em uma planta para que uma equipe de obras civis possa realizar a construção. (funcionais ou não funcionais)

Profº Ricardo luiz 7

Page 8: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Na Engenharia de Software a fase de desenho da planta da construção civil corresponde à fase de design de software.

Profº Ricardo luiz 8

Page 9: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O objetivo do design de software é prover uma descrição da estrutura de funcionamento que servirá de base para a construção do software.

Profº Ricardo luiz 9

Page 10: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Também pode ser entendido como a descrição da forma que o sistema terá quando estiver pronto para utilização.

Profº Ricardo luiz 10

Page 11: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O termo descrição pode ser entendido como uma representação, que poderá ser textual ou gráfica.

Profº Ricardo luiz 11

Page 12: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Pfleeger (2004, p. 159) nos ensina que o design de software é o “processo criativo de transformar o problema em uma solução”.

Profº Ricardo luiz 12

Page 13: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

TIPOS DE DESIGN

TÓPICO 1

Page 14: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Em determinados momentos do processo de software há necessidade de utilização do design para comunicar como o software será construído para pelo menos dois públicos.(design conceitual e técnico)

Profº Ricardo luiz 14

Page 15: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O modelo conceitual tem a finalidade de esclarecer ao cliente/usuário como o software desempenhará as funções necessárias.

Profº Ricardo luiz 15

Page 16: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O design conceitual descreve os limites, as entidades, atributos e relacionamentos do sistema.

Profº Ricardo luiz 16

Page 17: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Esta descrição poderá responder a questões como (PFLEEGER, 2004):– De onde virão os dados?– O que acontecerá com os dados no sistema?– Qual será a aparência do sistema para os clientes/usuários?– Que opções serão oferecidas para os clientes/usuários?– Qual é a sequência de eventos?– Como será a aparência dos relatórios e das telas?

Profº Ricardo luiz 17

Page 18: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Este modelo de design não deverá utilizar termos técnicos e não se concentra em detalhes técnicos.

Profº Ricardo luiz 18

Page 19: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Este modelo de design não deverá utilizar termos técnicos e não se concentra em detalhes técnicos.– Ser escrito na linguagem do cliente/usuário.– Não conter jargão técnico.– Descrever as funções do sistema.– Ser independente da implementação.– Estar vinculado aos documentos de requisitos.Profº Ricardo luiz 19

Page 20: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Portanto, o design conceitual deverá possibilitar ao cliente/usuário o entendimento do que o sistema fará, o que oferecerá de resultados e também esclarece as características externas observáveis do sistema.

Profº Ricardo luiz 20

Page 21: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Já o desenho que será utilizado na comunicação com a equipe de desenvolvimento é chamado de design técnico.

Profº Ricardo luiz 21

Page 22: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Este modelo tem a finalidade de explicitar os componentes de software necessários para atender às necessidades do cliente/usuário.

Profº Ricardo luiz 22

Page 23: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O design técnico pode compreender inclusive componentes de hardware que precisam ser considerados na construção da solução proposta.

Profº Ricardo luiz 23

Page 24: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• No design técnico devem ser considerados diversos requisitos necessários à solução do problema do cliente/usuário.– Configurações de hardware.– Necessidades de software.– Interfaces de comunicação.– Entradas e saída do sistema.– Arquitetura de rede utilizada.

Profº Ricardo luiz 24

Page 25: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ARQUITETURA DE SOFTWARE

TÓPICO 1

Page 26: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Softwares que possuem grande conjunto de requisitos tipicamente são divididos ou decompostos em diversos subsistemas que oferecem o conjunto de serviços necessários para o software cumprir sua função.

Profº Ricardo luiz 26

Page 27: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O processo de definição de quais serão estes subsistemas, os controles necessários e a comunicação de tais subsistemas são conhecidos como o projeto de arquitetura do software.

Profº Ricardo luiz 27

Page 28: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A arquitetura de software é, portanto, a estrutura de organização e divisão dos módulos que o compõem.

Profº Ricardo luiz 28

Page 29: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Sommerville (2003), indica três vantagens de projetar e documentar explicitamente uma arquitetura de software:

Profº Ricardo luiz 29

Page 30: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

MODULARIDADE

TÓPICO 1

Page 31: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• No processo de definição do design mais adequado ao software, outra tarefa bastante árdua é a definição da modularidade.

Profº Ricardo luiz 31

Page 32: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• É uma tarefa árdua pelo fato de haver diversos fatores envolvidos na decisão da distribuição do software em módulos.

Profº Ricardo luiz 32

Page 33: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Pfleeger (2004), indica que o design de um software seja criado com base em um dos seguintes modos:–Decomposição modular;–Decomposição orientada a dados;–Decomposição orientada a eventos;–Design ‘outside-in’ (de fora para dentro);–Design orientado a objetos;Profº Ricardo luiz 33

Page 34: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O design de software pode ser elaborado através de uma das abordagens descritas ou a partir da combinação de algumas dessas abordagens. A idéia central é utilizar uma hierarquia, aumentando o detalhamento a cada nível.Profº Ricardo luiz 34

Page 35: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

DESIGN DE INTERFACES COM O USUÁRIO

TÓPICO 1

Page 36: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O design de interface com o usuário pode iniciar na fase de requisitos para os casos em que há necessidade de explicitar algumas interfaces críticas da aplicação.

Profº Ricardo luiz 36

Page 37: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Porém o maior volume de trabalho ocorre na fase de design. É nesta fase que as interfaces com o usuário são desenhadas.

Profº Ricardo luiz 37

Page 38: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Embora possa parecer simples, se considerarmos a importância que as interfaces com o usuários representam para um software, chegaremos à conclusão de que é uma atividade com grau de complexidade relativamente alto.Profº Ricardo luiz 38

Page 39: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Assumindo a premissa de que o usuário considera que o software é representado principalmente pelas suas partes visíveis, o seu design pode ser crítico para determinados projetos.

Profº Ricardo luiz 39

Page 40: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma interface com o usuário deve abordar:–Metáforas: elementos que podem ser

reconhecidos e aprendidos.–Modelo mental: organização e representação de

elementos.–Regras de navegação para o modelo: como se

mover entre os elementos.–Aspecto: aparência do sistema.– Impressão: experiência do usuário.

Profº Ricardo luiz 40

Page 41: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O objetivo de considerar tais elementos é permitir que o usuário obtenha acesso rápido ao conteúdo que necessita, sem que perca a compreensão enquanto navega pelas informações.

Profº Ricardo luiz 41

Page 42: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Duas questões fundamentais devem ser consideradas em seu design: cultura e preferência

Profº Ricardo luiz 42

Page 43: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Quando o software é desenvolvido para uso por uma grande diversidade de usuários que podem abranger o país ou quem sabe o mundo, é necessário que se considere diversos aspectos relacionados a este possível público. Profº Ricardo luiz 43

Page 44: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Os aspectos que devem ser considerados são as crenças, valores, normas, tradições, hábitos e até mesmo os mitos daqueles que utilizarão o software.

Profº Ricardo luiz 44

Page 45: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• As cores também podem ter significados muito relevantes. “Na Inglaterra, a cor púrpura representa a realeza, e, no Japão, púrpura significa dignidade e nobreza. Mas na Grécia antiga, púrpura simboliza a morte e o demônio”. Profº Ricardo luiz 45

Page 46: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

INDEPENDÊNCIA DOS COMPONENTES

TÓPICO 1

Page 47: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• É desejado que todo software desenvolvido seja estruturado de forma a facilitar o processo de manutenção.

Profº Ricardo luiz 47

Page 48: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Um design de software para poder ser considerado bom deveria possuir as seguintes características (PFLEEGER, 2004):

Profº Ricardo luiz 48

Page 49: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Facilidade de entendimento.• Facilidade de implementação.• Facilidade de realização de testes.• Facilidade de modificação.• Tradução correta dos requisitos em

software. Profº Ricardo luiz 49

Page 50: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A facilidade para realizar modificações é um aspecto altamente relevante, pois a manutenção é tipicamente de longo prazo.

Profº Ricardo luiz 50

Page 51: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• É relativamente comum encontrarmos casos de alterações em requisitos ou correção de defeitos exigirem que o design do software seja modificado para acomodar a mudança necessária.

Profº Ricardo luiz 51

Page 52: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma das formas de atender à boa parte das características do que é considerado um bom design é privilegiar a independência de componentes.

Profº Ricardo luiz 52

Page 53: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Para o reconhecimento e medição do grau de independência dos componentes de um software são utilizados os conceitos de acoplamento e coesão.

Profº Ricardo luiz 53

Page 54: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O conceito de acoplamento diz respeito ao grau de dependência entre componentes.• A coesão está relacionada à parte

interna da construção do componente.

Profº Ricardo luiz 54

Page 55: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O design de software considerado ideal é aquele que possui baixo acoplamento e alta coesão.

Profº Ricardo luiz 55

Page 56: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE

TÓPICO 2

Page 57: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• É nessa fase que entra em cena a arte da programação de computadores.• Para que o software seja escrito de

forma a atender requisitos de desempenho, proteção, segurança, disponibilidade e principalmente facilidade de manutenção.Profº Ricardo luiz 57

Page 58: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• É fundamental que o processo criativo da programação se restrinja às soluções dadas aos desafios de implementação.

Profº Ricardo luiz 58

Page 59: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Este processo criativo, portanto, deve seguir padrões de codificação, depuração e testes para que o código fonte seja legível e manutenível por qualquer pessoa que conheça os padrões.

Profº Ricardo luiz 59

Page 60: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma das fases que tipicamente tem consumido a maior fatia de esforço em um projeto de software é a fase de desenvolvimento, também conhecida como fase de codificação

Profº Ricardo luiz 60

Page 61: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

PADRÕES DE CODIFICAÇÃO

TÓPICO 2

Page 62: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Na fase de desenvolvimento deve ser dada grande atenção aos padrões de codificação. Padrões de codificação ou estilos de codificação se referem às convenções utilizadas para escrita de código fonte.

Profº Ricardo luiz 62

Page 63: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A definição do que é um bom padrão/estilo de codificação é relativamente dependente da equipe de desenvolvimento em que se está inserido.

Profº Ricardo luiz 63

Page 64: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Para determinadas equipes trabalhar utilizando um prefixo nas propriedades ou variáveis que identifique o tipo delas é uma das melhores práticas e que trazem resultados impressionantes.

Profº Ricardo luiz 64

Page 65: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Para outras equipes é considerada a coisa mais ridícula e inadmissível já criada pelo homem.

Profº Ricardo luiz 65

Page 66: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Utilizar padronizações de código é muito importante se olharmos do ponto de vista do processo que mais consome recursos no desenvolvimento de software, a manutenção.

Profº Ricardo luiz 66

Page 67: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A padronização de código pode ter valor incalculável do ponto de vista da redução da probabilidade de inserção de bugs em processos de manutenção e da agilidade que pode permitir no momento da detecção da origem de um determinado problema.Profº Ricardo luiz 67

Page 68: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A padronização de código também permite que pessoas que não desenvolveram aquele trecho de código façam a sua manutenção com um nível de facilidade aproximado ao nível de facilidade de quem o escreveu. Profº Ricardo luiz 68

Page 69: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A legibilidade de código se refere a quão simples/fácil um trecho de código é para leitura e qual é a quantidade de pessoas que conseguem ler o código escrito (as palavras-chave são facilidade de entendimento). Profº Ricardo luiz 69

Page 70: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Alguns elementos podem facilitar a legibilidade como endentação, cores utilizadas para diferenciar palavras reservadas, tipos das variáveis, tamanho do texto (linha), utilização de negrito, etc.

Profº Ricardo luiz 70

Page 71: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Todos os identificadores de um programa devem ter nomes significativos. A questão de nomes de identificadores também é muito controversa.

Profº Ricardo luiz 71

Page 72: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• As declarações de variáveis devem ser feitas sempre que possível no início de blocos de código.

• Obs.: A técnica de declarar variáveis no momento que serão utilizadas deve ser evitada.

Profº Ricardo luiz 72

Page 73: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• As variáveis devem ser inicializadas o mais próximo possível de sua declaração.

• Obs.: se houver algum valor padrão, este deve ser atribuído à variável para que na pior das hipóteses, o valor padrão seja utilizado.

Profº Ricardo luiz 73

Page 74: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Os iniciantes na programação têm uma tendência de não se importarem adequadamente com a questão da endentação

Profº Ricardo luiz 74

Page 75: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Não escrever linhas de código com mais de 90 caracteres. • Códigos grandes devem ter a quebra

de linhas após a vírgula, ou antes de um operador.

Profº Ricardo luiz 75

Page 76: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Outra questão relevante é o espaçamento entre operandos e operadores.• Deve-se considerar também a

importância do uso de parênteses para priorizar operações.

Profº Ricardo luiz 76

Page 77: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Cada tipo de laço de repetição deve ser utilizado para a situação mais apropriada.

Profº Ricardo luiz 77

Page 78: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Quando erros ou falhas são identificados no software pode ser necessário realizar o processo de depuração de código.

Profº Ricardo luiz 78

Page 79: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Bugs podem ser entendidos como "comportamentos" indesejados pela pessoa que programou o código.

Profº Ricardo luiz 79

Page 80: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILOS DE ENDENTAÇÃO

TÓPICO 2

Page 81: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Existem diversos tipos de estilos de endentação de código fonte, dentre estes, os mais conhecidos e utilizados são: o estilo K&R, BSD/Allman, BSD/KNF, Whitesiths, GNU e Banner.

Profº Ricardo luiz 81

Page 82: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILO K&R

Page 83: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILO BSD/ALLMAN

Page 84: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILO BSD/KNF

Page 85: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILO WHITESMITHS

Page 86: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ESTILO BANNER

Page 87: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

GERENCIAMENTO DE PROJETOS DE SOFTWARE

TÓPICO 3

Page 88: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Para o adequado gerenciamento de projetos de software os principais modelos utilizados atualmente são o PMBoK e o SCRUM.

Profº Ricardo luiz 88

Page 89: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O PMBoK é um guia de melhores práticas em gerenciamento de projetos que pode ser utilizado para gestão de projetos de quaisquer áreas. Ele descreve um modelo mais formal de gestão de projetos.

Profº Ricardo luiz 89

Page 90: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Já o SCRUM é um modelo para a gestão de projetos de software ágil. Ambos os modelos têm foco em planejamento, execução, controle e encerramento.

Profº Ricardo luiz 90

Page 91: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A gestão de pessoas é uma atividade muito importante no gerenciamento de projetos. Em função disso, o relacionamento interpessoal é fundamental para obtenção de melhores resultados.

Profº Ricardo luiz 91

Page 92: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O gerenciamento de projetos é uma das atividades mais árduas desempenhada pelo profissional de software, pois o grau de contribuição das pessoas no resultado do projeto é muito significativo em desenvolvimento de software.Profº Ricardo luiz 92

Page 93: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

ABRANGÊNCIA DO GERENCIAMENTO DE PROJETOS

TÓPICO 3

Page 94: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Softwares são muito utilizados como suporte aos negócios há poucas décadas.

Profº Ricardo luiz 94

Page 95: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma questão importante que deve ser levada em consideração é o fato de que o software deixou de ser diferencial para as organizações, pois praticamente todas fazem uso dele.

Profº Ricardo luiz 95

Page 96: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O uso de recursos de softwares é uma necessidade do dia a dia das organizações.

Profº Ricardo luiz 96

Page 97: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Cada organização tem um grau de dependência de softwares para execução de suas atividades e a margem de oportunidades para utilização como diferencial estratégico tem diminuído.

Profº Ricardo luiz 97

Page 98: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Na mesma proporção que o software deixa de ter participação como diferencial estratégico para as organizações ele passa a se tornar crítico em termos de dependência.

Profº Ricardo luiz 98

Page 99: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Os softwares precisam estar disponíveis 24 horas por dia, 7 dias por semana, caso contrário poderá representar um gargalo para o crescimento dos negócios.

Profº Ricardo luiz 99

Page 100: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Um fator que tem preocupado as organizações em relação às atividades de desenvolvimento de software é a falta de gente para atender às demandas existentes nas organizações.

Profº Ricardo luiz 100

Page 101: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Mas afinal o problema está na falta de gente ou no excesso de demanda? O que ocorre provavelmente é o reflexo do produto de ambos

Profº Ricardo luiz 101

Page 102: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Acredita-se que atualmente o software tem papel importante nas atividades das organizações. O software tornou-se um requisito básico para a sobrevivência e crescimento das organizações.

Profº Ricardo luiz 102

Page 103: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

DEFINIÇÃO DE PAPÉIS E RESPONSABILIDADES

TÓPICO 3

Page 104: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• A definição clara de papéis e responsabilidades dentro de um projeto de software é um elemento importante para que os componentes da equipe do projeto canalizem suas energias em realizar o escopo do projeto e não percam tempo com outras preocupações.

Profº Ricardo luiz 104

Page 105: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• No organograma deverão constar todos os níveis da estrutura hierárquica relevante do projeto. O registro dos papéis e responsabilidades pode ser feito, por exemplo, em uma ata de reunião.

Profº Ricardo luiz 105

Page 106: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Em projetos maiores é aconselhável que as preocupações de realizar o trabalho operacional sejam delegadas para um membro da equipe e que o responsável pelo projeto possa realizar o acompanhamento efetivo do progresso do projeto tomando decisões de forma ágil e imediata à necessidade.Profº Ricardo luiz 106

Page 107: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma ferramenta muito importante no gerenciamento de projetos maiores é a matriz RACI (Responsible, Accountable, Consult and Inform), pois possibilita uma visão clara das responsabilidades de cada envolvido no projeto. Profº Ricardo luiz 107

Page 108: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

FUNÇÕES E RESPONSABILIDADES

TÓPICO 3

Page 109: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• O processo de desenvolvimento do projeto é planejado em torno da exigência de que todo projeto seja administrado com uso de uma equipe integrada, que inclua a representação adequada das áreas funcionais e de negócios envolvidas.Profº Ricardo luiz 109

Page 110: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Os membros da equipe devem ter o poder de tomar decisões em nome da função ou área que representam.

Profº Ricardo luiz 110

Page 111: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• As funções e responsabilidades de cada membro da equipe devem ser definidas e claramente comunicadas a todos na equipe.

Profº Ricardo luiz 111

Page 112: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Os objetivos da organização e do projeto devem ser definidos e compreendidos por todos os membros da equipe, que aceitaram participar do projeto.

Profº Ricardo luiz 112

Page 113: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma equipe integrada de projeto exibe também características de trabalho em equipe, inclusive cooperação, comunicação aberta e alto nível de confiança entre os vários representantes que participam da equipe. Profº Ricardo luiz 113

Page 114: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma equipe integrada de projeto exibe também características de trabalho em equipe, inclusive cooperação, comunicação aberta e alto nível de confiança entre os vários representantes que participam da equipe. Profº Ricardo luiz 114

Page 115: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

GESTÃO DE PESSOAS

TÓPICO 3

Page 116: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• No mundo do trabalho, as habilidades das pessoas podem ser divididas em habilidades técnicas também conhecidas por "hard skills" e habilidades pessoais, também conhecidas como "soft skills”.

Profº Ricardo luiz 116

Page 117: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Cada vez mais se pode perceber que as habilidades pessoais têm influência no sucesso profissional.

Profº Ricardo luiz 117

Page 118: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Uma pessoa que cultive apenas as habilidades técnicas poderá tornar-se muito boa naquele assunto. O limite do crescimento profissional dela tipicamente está relacionado ao somatório das habilidades técnicas com as habilidades pessoais.Profº Ricardo luiz 118

Page 119: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Isto é realmente polêmico, mas o que normalmente se percebe na área de software é esta relação, pois mesmo que o profissional seja muito bom tecnicamente haverá momentos em que ele precisará interagir com pessoas. Profº Ricardo luiz 119

Page 120: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Habilidades Técnicas geralmente são fáceis para observar, quantificar e medir.• Já, as habilidades pessoais são

tipicamente difíceis de serem observadas, quantificadas e medidas.

Profº Ricardo luiz 120

Page 121: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Elas se referem na relação entre as pessoas comunicando, ouvindo, dialogando, fornecendo feedback, cooperando com membros, resolvendo problemas, contribuindo em reuniões, resolvendo conflitos, entre outras. Profº Ricardo luiz 121

Page 122: SISTEMA DE INFORMAÇÃO Turma ADS 0019. DESIGN E DESENVOLVIMENTO DE SOFTWARE

• Habilidades pessoais têm grande importância para as oportunidades e desenvolvimento da carreira, bem como conhecimentos técnicos aprofundados.

Profº Ricardo luiz 122