
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
Requisitos
(Concepção do Software)
Nesta fase, desenvolvem-se:
- Levantamento das necessidades
- Coleta de documentos
- Entrevistas com usuários
- Observações do problema corrente
- Avaliação de tecnologias atuais
- Possibilidades de Inovação tecnológica
- Definição dos requisitos funcionais
- Definição dos requisitos não-funcionais
Exemplos:
- Criação de um sistema de controle para biblioteca
- Reunião com a diretora que é responsável pelo sistema que está obsoleto
- A ficha catalográfica dos livros, relatórios do controle atual, código ISBN, cadastro dos usuários, ...
- Conversas com as bibliotecárias, os alunos, a diretora, os professores, ...
- Vejo que existem pessoas que reclamam do atendimento! Muitos dizem que o processo de empréstimo é lento!
- É interessante inserir autenticação do usuário pelo polegar? Autenticação do livro via chip? Controle de uso por NFC? ...
- Que tal implantar uma pesquisa semântica? E autenticação do usuário pela íris? ...
- Finalmente: Quais itens serão desenvolvidos?
- Função 1: Cadastrar livro
- Função 2: Emprestar livro
- Função 3: Devolver livro
- Função 4: Cadastrar usuário
- Função 5: Autenticar usuário
- Função 6: Distribuir nas estantes
- Função 7: Relacionar devedores
- ...
- Função n: ....
- Para completar: Quais os aspectos externos?
- Aspecto 1: Sistema Operacional
- Aspecto 2: Ambiente web e mobile
- Aspecto 3: Dispositivos onde a aplicação será usada
- Aspecto 4: Facilidades disponíveis para o usuário
- Aspecto 5: Onde o sistema será hospedado
- Aspecto 6: Requisitos críticos => tempo de resposta, interface, escalabilidade, ...
- ...
- Aspecto n: ....
Análise

- 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?
- 5W2H - Who: Avaliação dos recursos humanos necessários

- 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.
- 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!!!!
- Definir problema (Ok)
- Dar nome ao projeto (Ok)
- Escrever escopo (Ok)
- Executar Etapa de Requisitos
- 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
- Brainstorm
- 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