Objetivo da aula


  • Introduzir o conceito de Modelo Estruturado para projetos de software
  • Entender as etapas que fazem parte do Modelo Estruturado
  • Entender melhor sobre o enquadramento do tipo do projeto


Modelo Estruturado


Etapas do Modelo Estruturado

  • Desenvolvimento em Cascata
Erro ao criar miniatura: Arquivo não encontrado


Requisitos


(Concepção do Software) 

Nesta fase, desenvolvem-se:

  1. Levantamento das necessidades
  2. Coleta de documentos
  3. Entrevistas com usuários
  4. Observações do problema corrente
  5. Avaliação de tecnologias atuais
  6. Possibilidades de Inovação tecnológica
  7. Definição dos requisitos funcionais
  8. Definição dos requisitos não-funcionais


Exemplos:

  1. Criação de um sistema de controle para biblioteca
  2. Reunião com a diretora que é responsável pelo sistema que está obsoleto
  3. A ficha catalográfica dos livros, relatórios do controle atual, código ISBN, cadastro dos usuários, ...
  4. Conversas com as bibliotecárias, os alunos, a diretora, os professores, ...
  5. Vejo que existem pessoas que reclamam do atendimento! Muitos dizem que o processo de empréstimo é lento!
  6. É interessante inserir autenticação do usuário pelo polegar? Autenticação do livro via chip? Controle de uso por NFC? ...
  7. Que tal implantar uma pesquisa semântica? E autenticação do usuário pela íris? ...
  8. Finalmente: Quais itens serão desenvolvidos?
    1. Função 1: Cadastrar livro
    2. Função 2: Emprestar livro
    3. Função 3: Devolver livro
    4. Função 4: Cadastrar usuário
    5. Função 5: Autenticar usuário
    6. Função 6: Distribuir nas estantes
    7. Função 7: Relacionar devedores
    8. ...
    9. Função n: ....
  9. Para completar: Quais os aspectos externos?
    1. Aspecto 1: Sistema Operacional
    2. Aspecto 2: Ambiente web e mobile
    3. Aspecto 3: Dispositivos onde a aplicação será usada
    4. Aspecto 4: Facilidades disponíveis para o usuário
    5. Aspecto 5: Onde o sistema será hospedado
    6. Aspecto 6: Requisitos críticos => tempo de resposta, interface, escalabilidade, ...
    7. ...
    8. Aspecto n: ....


Análise




caption
caption
  • Quando se começa a discutir a possibilidade ou a necessidade de se fazer algo, deve-se avaliar a relação custo-benefício => Why
  • A partir do momento que se definem algumas tecnologias e as funcionalidades temos que avaliar:
    • 5W2H - Who: Avaliação dos recursos humanos necessários
      • Com quais profissionais que conhecem o Hardware ou Software poderei contar?
      • Quem terei que convidar para me ajudar na implantação e desenvolvimento do SI
    • 5W2H - What: Hardware, software
      • Em quais equipamentos minha equipe deverá ser treinada?
      • Quais equipamentos terei que comprar?
      • Que sistemas terei que contratar?



caption
caption
  • 5W2H - How: Aspectos das soluções que implicarão mudanças de rotinas existentes
    • Um software depois de pronto tem que ser corrigido, melhorado, etc. Os dados devem ser backupeados, atualizados, etc.
    • Existirão pessoas e ambientes que lidarão com ele


  • Para o estudo da viabilidade operacional é preciso entender primeiramente o atual problema do software em questão, e, a partir daí, o programador, ou a equipe, devem se perguntar algumas coisas como:
    • "Vale a pena resolver esse problema?"
    • "A solução proposta pode realmente resolver o problema?" ou
    • "Qual será a experiência do usuário final ao utilizar esse programa?".
  • Sendo assim é preciso fazer algumas comparações entre como é o momento atual e como ele estaria depois de implantado novo SI.


  • Alguns critérios interessantes de se analisar nesse quesito são:
    • A. Performance e eficiência: Nesse critério são feitas comparações do processo atual e a situação após a implantação do SI.
    • B. Informações: É necessário avaliar com profundidade para ter certeza de que as informações adquiridas estarão de fato seguras, confiáveis e úteis para a empresa ou usuário que manipula o software.
    • C. Economia: Obviamente também é preciso checar se a nova solução é economicamente viável, tanto para o programador, quanto para a empresa ou usuário do software em questão.


  • Após esse estudo é possível dizer se é viável ou não a implantação ou modificação do programa em questão, por isso, os temas acima são realmente necessários quando se trata do estudo da viabilidade operacional.



Erro ao criar miniatura: Arquivo não encontrado
caption
  • 5W2H - Where: Possíveis soluções tecnicamente disponíveis e utilizáveis
    • As estruturas que abrigarão o software devem ser consideradas porque efetivamente ele tem que rodar em algum lugar. Esse lugar tem custo e também requisitos técnicos
  • 5W2H - How much: Investimento necessário
    • Com os dados discutidos nos itens anteriores, deve-se ter a noção de custos nas seguintes fases: desenvolvimento, manutenção e operação.


Projeto Lógico


A solução escolhida começa a ser detalhada e criteriosamente desenhada.

Um sistema:

  • É um conjunto de componentes inter-relacionados organizados para atingir um certo objetivo
  • É organizado para executar certo método, procedimento ou controle ao processar informações
  • Automatiza ou apóia a realização de atividades humanas através do processamento das informações.


  • Para criar um Projeto Lógico podemos usar algum modelo, como Estruturado, Orientado a Objetos e outros entre várias práticas usadas no mundo, uma delas são os diagramas que permitem uma visualização das partes que poderão ser construídas.
  • Isto é similar aos Diagramas Estrutural, Elétrico, Hidráulico de um Projeto Civil.


Codificação (Projeto Físico)


  • Implementação do código baseado numa linguagem usando ambientes de desenvolvimento, e dependendo do porte, exigindo uma equipe de profissionais como programados Front-End, Back-End. DBAs, Full Stack e várias outras especialidades.



  • Nesta fase de codificação, implementação ou programação, são criados os programas baseados em uma série de ferramentas:
    • Linguagens de programação
    • Banco de Dados
    • Bibliotecas
    • Frameworks
    • APIs
    • WebServices
    • etc


Testes


  • Avaliação do cumprimento dos requisitos pré-estabelecidos em testes unitários, de carga ou de serviço.



  • Isto significa que todo o código que for criado precisar ser testado para garantir que esteja cumprindo a função que foi definida no projeto
  • Pode ter teste unitários que são aplicados em partes específicas do programa
  • Depois que as várias partes possíveis de um código são reunidas num só, efetivamente teremos o Teste Completo. Se esse teste for satisfatório a aplicação está pronta para entrar em produção.


Operação


  • Período em que o software será executado em regime de produção.



  • Após o Teste Completo, onde todos os requisitos são avaliados e aprovados, pode-se gerar o "executável" e disponibilizá-lo para os usuários finais e assim, os programadores não tem mais acesso a este ambiente. Apenas profissionais autorizados.


  • Alguns costumam chamar esta fase de Manutenção porque a partir do momento que o SI entra em operação (produção), poderemos ter situações em que o software poderá ser alterado para correção de erros (bugs) ou adição de novas funcionalidades.


Tipos de sistemas


  • Já discutimos que a ideia que se pretende implementar pode ser enquadrada em 4 tipos possíveis de sistemas.
  • Abaixo, alguns projetos que foram enquadrados e podem servir como exemplo:


  • Ideia Radical
    • Escopo cujo benchmarking mostra que não existe proposta igual ou que a solução mais parecida ainda está longe da definição do projeto encontrado.


  • Idéia incremental
    • Escopo cujo benchmarking mostra que existe proposta parecida e que este projeto pretende manter o escopo básico e criar funções adicionais inovadoras.


  • ­Prototipagem
    • Projeto que já tem um protótipo desenvolvido mas que não foi modelado. O escopo descreverá a proposta de construção de um sistema completo, com todas as funcionalidades possíveis para se tornar um produto profissional.


  • ­ Engenharia Reversa
    • Projeto que pretende usar uma solução existente e contribuir para sua evolução ou desenvolver um sistema com funcionalidades muito próximas do original.


  • Lembrando que ainda podemos definir o porte do SI com base nos critérios:
    • A. Definição dos requisitos técnicos
    • B. Definição dos número de integrações
    • C. Grau de Inovação
    • D. Complexidade do projeto
  • Ressaltando que cada profissional adota seus critérios.


Agora mãos a obra!!!!


  1. Definir problema (Ok)
  2. Dar nome ao projeto (Ok)
  3. Escrever escopo (Ok)
  4. Executar Etapa de Requisitos
  5. Preencher 5W2H


Iniciando um projeto


  • Seleção do projeto:
    • Brainstorm
      • Discussão sobre ideias, necessidades ou problemas
    • Definição:
      • Nome e escopo do projeto
    • Criação do link no site
      • Template: 5W2H


  • Aquisição dos dados
    • Requisitos Funcionais
    • Requisitos Não-Funcionais


  • Análise
    • Discussão em grupo de todos os detalhes possíveis


  • Projeto Lógico:
    • Documentação
    • Projeto escrito
    • Diagramas


A partir da próxima aula, começaremos a discutir os diagramas


Para finalizar aula, Formulário para preenchimento ...

https://docs.google.com/forms/d/e/1FAIpQLSfPe65ng0HBsr2aoGcMAhzsrSqNtgAOVFL7f6PNXF4AtEsJjQ/viewform