Please enable JavaScript.
Coggle requires JavaScript to display documents.
Desenvolvimento de Sistemas de Informação, Fundamentos, Valores - Coggle…
Desenvolvimento de Sistemas de Informação
Linguagens de programação
Linguagem de programação é uma ferramenta capaz de efetuar comunicação lógica entre humanos e máquinas
Paradigmas
Funcional
Baseada no conceito matemático de função
Haskell
Imperativo
Descreve a computação como ações que mudam o estado de um programa
Python
C
Java
Ruby
Orientado a objeto
Considera as estruturas de dados existem em um determinado estado e a medida que um programa interagem com o seu ambiente há a mudança desse estado
C++
C#
Lógico
Possui sua base lógica num subconjunto da lógica (cláusulas de Horn)
Prolog
Gráficos e Tabelas de Popularidade
Gráfico TIOBE
Site de estudos de informações na internet que disponibiliza gráficos de popularidade de linguagens mensalmente
Ranking IEEE Spectrum
Estudo feito pela revista IEEE Spectrum que passou a fazer levantamentos e coletas de dados, utilizando proxies, sobre a popularidade das linguagens
Desenvolvimento de Software
Metodologias Tradicionais
Metodologias Ágeis
Extreme Programming
leva ao extremo um conjunto de boas práticas na área de engenharia de software, tais como testes e integrações constantes, revisão, refatoração e simplicidade.
Incentiva a mudança, e propicia uma maior flexibilidade, pois o ato de errar gera uma consequência de baixo custo.
recomenda ciclos curtos, o que dá previsibilidade e redução de riscos, simplicidade e melhorias contínuas no código com o intuito de facilitar o processo de mudança, os testes automatizados e a integração contínua para o aumento da confiabilidade.
O XP prega que a atividade central do projeto é a Codificação, que os Testes servem de especificação de requisitos, e que a Comunicação oral entre os desenvolvedores é peça fundamental.
Scrum
É um framework dentro do qual pessoas podem lidar com problemas adaptativos complexos, ao mesmo tempo que fornecem produtos de mais alto valor possível.
A comunicação entre membros da equipe é crucial para o Scrum, com reuniões diárias e curtas.
Por ser muito focado em comunicação e interação entre a equipe e o cliente, o Scrum pode não ser a melhor opção para equipes distribuídas em diferentes lugares.
Fases
Planejamento simples e geral
Ciclos de Sprint
Finalização do projeto
Feature Driven Development
"Resultados frequentes, tangíveis e funcionais"
Busca o desenvolvimento por funcionalidade, é prático para o trabalho em projetos iniciais ou em projetos com codificações já existentes e funciona muito bem em conjunto com o Scrum.
Utilização de boas práticas de desenvolvimento
Modelagem Orientada a Objetos do Domínio
Classe proprietária
Equipes de recursos
Inspeção realizada de forma constante
Gerenciamento de configuração
Visibilidade dos vários progressos e os resultados finais de cada e do total.
Processos básicos
Análise orientada por objetos
Decomposição funcional
Planejamento incremental
Desenho orientado a objetos
Programação e testes orientado a objetos
Microsoft Solutions Framework
Abordagem adaptável que visa a entrega bem-sucedida de soluções de tecnologia com maior rapidez, número reduzido de pessoas e menor risco, possibilitando resultados de maior qualidade.
Um projeto MSF é regido por ciclos ou iterações. A cada ciclo, cada componente da equipe executa suas funções e atualiza o resultado do seu trabalho conforme a necessidade. Os ciclos se repetem até que o projeto seja concluído ou cada versão seja lançada.
Dynamic System Development Model
É um método, baseado em RAD, de desenvolvimento iterativo e incremental que enfatiza o envolvimento constante do usuário.
É aplicado em projetos de Sistemas caracterizados pelos cronogramas e custos limitados. Aponta falhas de informação mais comuns destes projetos, incluindo custos excedentes, perda de prazos, falta de envolvimento de usuários e acompanhamento da alta gerência.
Seu objetivo é entregar softwares no tempo e com custo estimados através do controle e ajuste de requisitos ao longo do desenvolvimento.
Princípios
Envolvimento
Autonomia
Entregas
Eficácia
Feedback
Reversibilidade
Previsibilidade
Ausência de Testes no escopo
Comunicação
Modelo Cascata
Segue uma sequência que deve ser seguida minusciosamente
Não é possível a regressão de etapas
Não é ideal em situações onde o cliente não tem uma boa ideia do produto final.
Comunicação
Planejamento
Modelagem
Construção
Implantação
Modelo Incremental
Segue em etapas conforme o Modelo Cascata mas o desenvolvimento é feito por incrementos de funções do software
É bem-vindo quando se tem uma equipe limitada de desenvolvedores
Modelo Evolucionário
O software é desenvolvido especialmente para receber posteriormente melhorias e correções
Prototipação
o protótipo pode ser desenvolvido e disponibilizado ao usuário final, podendo receber uma avaliação deste para possíveis melhorias no futuro.
Modelo Espiral
Fusão dos aspectos do modelo incremental e do modelo cascata.
Modelo revolucionário que trouxe a ideia de diminuição de riscos
Fundamentos
Promover uma comunicação aberta
Trabalhar em busca de uma visão compartilhada
Capacitar membros da equipe
Estabelescer responsabilidades com clareza e de forma compartilhada
Entregar valor incremental
Ficar em estado de alerta, prever e se adaptar à mudança
Investir na qualidade
Aprender com todas as experiências
Estabelescer parcerias com clientes internos e externos
Valores
Comunicação
Simplicidade
Feedback
Coragem
Coach