Objetivo da aula
- Introduzir o conceito de Modelo Estruturado para projetos de software
- Entender as etapas que fazem parte do Modelo Estruturado
- Enquadrar o projeto dentre 4 tipos possíveis
Modelo Estruturado
- Modelo Estruturado:

Etapas do Modelo Estruturado
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 n: ....
- Para completar: Quais os aspectos externos?
- Aspecto 1: Sistema Operacional
- Aspecto 2: Ambiente web
- Aspecto 3: Dispositivos
- Aspecto 4: facilidades para o usuário
- 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
- Avaliação dos recursos técnicos disponíveis => Who
- Tendo a certeza de que será feito, quem poderá gerenciar, desenvolver, usar, pagar, manter, etc
- Hardware, software e pessoas => What
- Com a definicação clara do que será feito e sabendo que um sistema é um processo de Input - Processamento - Saída pode-se definir tudo o que interagirá com o sistema em termos de dados.
- Aspectos das soluções que implicarão mudanças de rotinas existentes => How
- 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?" e "Qual será a experiência do usuário final ao utilizar esse programa?". Sendo assim é preciso fazer algumas comparações entre o programa em sua fase atual e como ele estaria depois das alterações necessárias. Alguns critérios interessantes de se analisar nesse quesito são:
- 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.
Performance e eficiência: Nesse critério são feitas comparações do programa atual e o modificado a respeito do tempo de resposta, utilização de todos os recursos disponíveis e também as facilidades para a compreensão de seu funcionamento.
Informações: É necessário comparar os programas para ter certeza de que as informações adquiridas são de fato seguras, confiáveis e úteis para a empresa ou usuário que manipula o software.
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 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.
- Impactos na área, na empresa, na sociedade. Discussões de ordem ética e moral => When
- Durante ou depois que for desenvolvido, será utlizado por pessoas ou empresas. No tempo em que for usado interferirá em alguma regra, ambiental, legal ou regulatória?
- No tópico acima foram abordados temas de maneira mais geral, mas também é preciso ver a unicidade de cada situação, sendo assim, é preciso entender que cada usuário, empresa ou organização que pode ser usuário desse software e para isso estuda-se as regras internas de cada empresa, os direitos dos trabalhadores e humanos. Não deve-se esquecer também que em pleno século XXI a natureza encontra-se cada vez mais desgastada e por isso faz-se necessária uma análise de legislação ambiental.
- Durante ou depois que for desenvolvido, será utlizado por pessoas ou empresas. No tempo em que for usado interferirá em alguma regra, ambiental, legal ou regulatória?
Concluí-se então que, após a análise dos temas do tópico acima somados com as peculiaridades de cada empresa, seus funcionários, usuários e o ambiente temos a compreensão se é viável ou não a alteração do software.
- Possíveis soluções tecnicamente disponíveis e utilizáveis => Where
- 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
- Investimento necessário => How much
- 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.
Codificação (Projeto Físico)
- Implementação do código baseado numa linguagem com a adição de bibliotecas, APIs, Webservices, Banco de Dados e ambientes de desenvolvimento.
Testes
- Avaliação do cumprimento dos requisitos pré-estabelecidos em testes unitários, de carga ou de serviço.
Operação
- Período em que o software será executado em regime de produção.
Tipos de sistemas
- Normalmente cada projeto se enquadra em um dos seguintes tipos:
I - Idéia 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.
- Exemplo:
- Dinâmica:
- A. Se for de médio ou grande porte => requer projeto e protótipo
- B. Se for de pequeno porte => requer projeto e implementação.
II - 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.
- Exemplo:
- Dinâmica:
- Se for de médio ou grande porte => requer projeto e protótipo
- Se for de pequeno porte => requer projeto e implementação de todas funções adicionais
III - 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.
- Exemplos:
- Dinâmica:
- Como já tem protótipo, se for de médio ou grande porte => requer projeto completo e demonstração
- Como já tem protótipo, se for de pequeno porte => requer projeto e implementação de novas funções.
IV - 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.
- Exemplos:
- Dinâmica:
- Como já tem o sistema pronto, se for de médio ou grande porte => requer projeto completo.
- Como já tem o sistema pronto, se for de pequeno porte => requer projeto e implementação de novas funções.
- Como se enquadra um sistema em pequeno, médio ou grande porte?
- Número de funções
- Número de interações
- Complexidade das funções
Agora mãos a obra!!!!
- Definir problema
- Dar nome ao projeto
- Escrever escopo
- 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
- Prototipagem:
- Transformação do projeto lógico em um projeto físico reduzido.
- Se pequeno: implementação completa
- Se médio: implementação da navegação e de poucas funções ou casos
- Se grande: implementação da navegação e de uma função ou caso
- Transformação do projeto lógico em um projeto físico reduzido.
Questões
Lucas Henrique de Oliveira Andrade
- 01. Com relação ao problema para o qual irá modelar um sistema como pretende coletar dados para aprofundar o máximo possível sobre ele?
- A coleta de dados pode ser feita através de pesquisas com os potenciais usuarios do sistema que irei desenvolver, com ela é possível entender as reais necessidades destes usuarios.
- 02. Descreva suscintamente as tecnologias que poderão ajudar a resolver seu problema.
- Tecnologias como o código de barras 2D que pode ser processado por uma webcam comum.
- 03. Quais especialistas sobre o assunto você conhece ou ouviu falar que poderá ajudar a conhecer mais sobre as possíveis soluções para seu problema?
- O sistema será voltado para a área acadêmica por isso os professores são os especialistas mais qualificados para a ajudar a desenvolver uma solução que atendera de forma satisfatoria.
Alyson willians
- 04. Você sabia que inovação tecnológica não quer dizer invenção? O que é então?
- Sim. Inovação tecnológica e um termo com um leque grande de significados que dependente de sua aplicação,em um embasamento geral seria tudo novo criado e implantado em sistemas e setores por meio de pesquisas e investimentos.
- 05. Cite um exemplo de inovação tecnológica em qualquer área.
- Celulares a Smartphone , foi uma transição que teve varias inovações e e uma area que nao para de se aperfeiçoar.
- 06. Descreva um exemplo de operação, por exemplo, na Biblioteca da sua escola.
- Renovação e devolução de livros.
Victor Biagiotti Saint Martin
- 07. Descreva um exemplo de operação, por exemplo, no site de comércio eletrônico.
- Cadastro de um novo equipamento eletrônico.
- 08. O problema que pretende resolver pode ser enquadrado em qual dos tipos de sistemas?
- Tipo I, no da ideia radical, uma vez que a solução mais próxima está muito distante do nosso objetivo.
- 09. O que são Mod-Games? O que é um SDK?
- Mod-Games são modificações para jogos. Estas não precisão ser, necessariamente, criadas desde o início, parte das produtoras de games disponibilizam programas que auxiliam os usuários. Por exemplo, a SCS Software, criadora do Euro Truck Simulator, disponibiliza o SCS Blender Tools, que da total suporte para a criação e edição de novos caminhões. SKD é a sigla, em inglês, para Kit de Desenvolvimento de Software. Algumas empresas disponibilizam esses SKDs para que os usuários consigam interagir com o software.