A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SISTEMA DE INFORMAÇÃO Turma ADS 0019.

Apresentações semelhantes


Apresentação em tema: "SISTEMA DE INFORMAÇÃO Turma ADS 0019."— Transcrição da apresentação:

1 SISTEMA DE INFORMAÇÃO Turma ADS 0019

2 DESIGN E DESENVOLVIMENTO DE SOFTWARE
UNIDADE 2 DESIGN E DESENVOLVIMENTO DE SOFTWARE

3 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

4 TÓPICO 1 DESIGN DE SOFTWARE

5 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

6 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

7 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

8 Na Engenharia de Software a fase de desenho da planta da construção civil corresponde à fase de design de software. Profº Ricardo luiz

9 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

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

11 O termo descrição pode ser entendido como uma representação, que poderá ser textual ou gráfica.
Profº Ricardo luiz

12 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

13 TÓPICO 1 TIPOS DE DESIGN

14 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

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

16 O design conceitual descreve os limites, as entidades, atributos e relacionamentos do sistema.
Profº Ricardo luiz

17 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

18 Este modelo de design não deverá utilizar termos técnicos e não se concentra em detalhes técnicos.
Profº Ricardo luiz

19 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

20 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

21 Já o desenho que será utilizado na comunicação com a equipe de desenvolvimento é chamado de design técnico. Profº Ricardo luiz

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

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

24 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

25 ARQUITETURA DE SOFTWARE
TÓPICO 1 ARQUITETURA DE SOFTWARE

26 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

27 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

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

29 Sommerville (2003), indica três vantagens de projetar e documentar explicitamente uma arquitetura de software: Profº Ricardo luiz

30 TÓPICO 1 MODULARIDADE

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

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

33 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

34 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

35 DESIGN DE INTERFACES COM O USUÁRIO
TÓPICO 1 DESIGN DE INTERFACES COM O USUÁRIO

36 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

37 Porém o maior volume de trabalho ocorre na fase de design
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

38 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

39 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

40 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

41 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

42 Duas questões fundamentais devem ser consideradas em seu design: cultura e preferência
Profº Ricardo luiz

43 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

44 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

45 As cores também podem ter significados muito relevantes
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

46 INDEPENDÊNCIA DOS COMPONENTES
TÓPICO 1 INDEPENDÊNCIA DOS COMPONENTES

47 É desejado que todo software desenvolvido seja estruturado de forma a facilitar o processo de manutenção. Profº Ricardo luiz

48 Um design de software para poder ser considerado bom deveria possuir as seguintes características (PFLEEGER, 2004): Profº Ricardo luiz

49 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

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

51 É 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

52 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

53 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

54 A coesão está relacionada à parte interna da construção do componente.
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

55 O design de software considerado ideal é aquele que possui baixo acoplamento e alta coesão.
Profº Ricardo luiz

56 DESENVOLVIMENTO DE SOFTWARE
TÓPICO 2 DESENVOLVIMENTO DE SOFTWARE

57 É 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

58 É fundamental que o processo criativo da programação se restrinja às soluções dadas aos desafios de implementação. Profº Ricardo luiz

59 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

60 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

61 PADRÕES DE CODIFICAÇÃO
TÓPICO 2 PADRÕES DE CODIFICAÇÃO

62 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

63 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

64 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

65 Para outras equipes é considerada a coisa mais ridícula e inadmissível já criada pelo homem.
Profº Ricardo luiz

66 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

67 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

68 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

69 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

70 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

71 Todos os identificadores de um programa devem ter nomes significativos
Todos os identificadores de um programa devem ter nomes significativos. A questão de nomes de identificadores também é muito controversa. Profº Ricardo luiz

72 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

73 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

74 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

75 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

76 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

77 Cada tipo de laço de repetição deve ser utilizado para a situação mais apropriada.
Profº Ricardo luiz

78 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

79 Bugs podem ser entendidos como "comportamentos" indesejados pela pessoa que programou o código.
Profº Ricardo luiz

80 TÓPICO 2 ESTILOS DE ENDENTAÇÃO

81 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

82 ESTILO K&R

83 ESTILO BSD/ALLMAN

84 ESTILO BSD/KNF

85 ESTILO WHITESMITHS

86 ESTILO BANNER

87 GERENCIAMENTO DE PROJETOS DE SOFTWARE
TÓPICO 3 GERENCIAMENTO DE PROJETOS DE SOFTWARE

88 Para o adequado gerenciamento de projetos de software os principais modelos utilizados atualmente são o PMBoK e o SCRUM. Profº Ricardo luiz

89 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

90 Já o SCRUM é um modelo para a gestão de projetos de software ágil
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

91 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

92 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

93 ABRANGÊNCIA DO GERENCIAMENTO DE PROJETOS
TÓPICO 3 ABRANGÊNCIA DO GERENCIAMENTO DE PROJETOS

94 Softwares são muito utilizados como suporte aos negócios há poucas décadas.
Profº Ricardo luiz

95 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

96 O uso de recursos de softwares é uma necessidade do dia a dia das organizações.
Profº Ricardo luiz

97 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

98 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

99 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

100 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

101 Mas afinal o problema está na falta de gente ou no excesso de demanda
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

102 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

103 DEFINIÇÃO DE PAPÉIS E RESPONSABILIDADES
TÓPICO 3 DEFINIÇÃO DE PAPÉIS E RESPONSABILIDADES

104 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

105 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

106 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

107 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

108 FUNÇÕES E RESPONSABILIDADES
TÓPICO 3 FUNÇÕES E RESPONSABILIDADES

109 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

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

111 As funções e responsabilidades de cada membro da equipe devem ser definidas e claramente comunicadas a todos na equipe. Profº Ricardo luiz

112 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

113 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 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

115 TÓPICO 3 GESTÃO DE PESSOAS

116 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

117 Cada vez mais se pode perceber que as habilidades pessoais têm influência no sucesso profissional.
Profº Ricardo luiz

118 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

119 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

120 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

121 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

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


Carregar ppt "SISTEMA DE INFORMAÇÃO Turma ADS 0019."

Apresentações semelhantes


Anúncios Google