Introdução ao Projeto de Engenharia
Apresentação da Disciplina e Objetivos
LEP01348 - Introdução ao Projeto de Engenharia
Pré-requisito: LEP - 01111: Introdução à Engenharia de Petróleo; MAT-01207 - Cálculo numérico; Mat-01102-Fundamentos da Computação; PRO-01121: Introdução a Probabilidade e Estatística;
Créditos: 3
Carga Horária: 3*17 = 51
Horários das aulas
Formato - Aulas presenciais e eventualmente online usando ferramentas de internet como google meet.
Sala
Sala de aula do LDSC.
Sala de aula do Google Classroom.
Equipamentos
Computadores com sistema operacional Gnu/Linux - Fedora (ou Windows/Mac-OS X).
Acesso a internet.
Modelos de documentos e projetos
Para uso dos modelos é necessário conhecimentos básicos de git/github/lyx, apresentados em sala de aula.
Os modelos são disponibilizados no repositório do ldsc: https://github.com/ldsc.
A metodologia para desenvolvimento do projeto é descrita aqui (inclui lista de projetos desenvolvidos).
O modelo de desafio tecnológico pode ser obtido aqui.
O modelo de projeto pode ser obtido aqui.
Monitoria
Nome do monitor:
Atualmente sem monitor.
Horário de monitoria:
Comunicação
Classroom da disciplina 2024/1
Telegram da disciplina 2024/1
Objetivos
Após aprovação no conjunto de disciplinas desta linha o aluno deve ter noções claras de:
Conceitos básicos de modelagem e projeto de engenharia;
Conceber, elaborar, analisar e projetar sistemas, produtos (bens e serviços), componentes ou processos de forma criativa, desejável e viável, técnica e economicamente*, nos contextos em que serão aplicadas;
Conceber experimentos (casos de uso e diagramas de casos de uso), que mostrem o comportamento esperado dos fenômenos e sistemas em estudo. Ser capaz de reconhecer as necessidades dos usuários e formular de maneira ampla e sistêmica, questões de engenharia, considerando o usuário e seu contexto (especificação e requisitos de engenharia).
Adotar perspectivas multidisciplinares e transdisciplinares em sua prática, fazendo uma elaboração ampla e sistêmica do problema, de forma a levantar o escopo, abrangência e limites das soluções (diagramas de assuntos, pacotes e componentes e diagramas correspondentes).
Elaborar o problema de forma a compreender os fenômenos por meio de modelos simbólicos, físico matemático (equações quando o foco for um modelo teórico), modelos computacionais (modelos numéricos e algoritmos quando o foco for um modelo computacional) e outros (esboços e projetos tradicionais de engenharia).
Realizar a Análise que envolve a capacidade de modelar os fenômenos (de sistemas/produtos/serviços), utilizando ferramentas (incluindo estatísticas, softwares modeladores UML, simuladores computacionais, uso de inteligência artificial, entre outras). Sempre considerando os aspectos macro e micro( diferentes escalas) e os aspectos estáticos/dinâmicos dos sistemas.
Prever os resultados dos sistemas por meio dos modelos, como exemplo modelos UML, com a realização de testes (conceituais, lógicos, de unidade, de sistema);
Verificar e validar os modelos por meio de técnicas adequadas; Por exemplo, em termos de software de engenharia conceber os testes do sistema.
Documentar os sistemas desenvolvidos usando ferramentas profissionais de engenharia; Por exemplo uso de TeX/LaTeX/LyX. Além de gerar os “projetos em si”, iremos usar modelos disponibilizados no github do LDSC (https://github.com/ldsc/LDSC-ProjetoEngenharia-2-Software-TituloProjeto-ModeloCompleto).
Aplicar conceitos de administração, gestão, para planejar, supervisionar, elaborar e coordenar projetos e serviços de engenharia; Uso de ferramentas de gestão de documentos e projetos, como exemplo veremos o github projects, trello ou similar.
Ter noção dos conceitos de gestão para planejar, supervisionar, elaborar e coordenar a implantação das soluções de Engenharia.
Ter noção de gerencia de projetos, a ideia de liderar, de forma proativa e colaborativa, definindo as estratégias e construindo o consenso nos grupos.
Estão incluídos ainda, saber:
Conceitos básicos de metodologia científica e da pesquisa científica e tecnológica;
O ciclo do projeto de engenharia e do método científico (inovação);
Metodologias de administração e gestão de projetos (tradicionais e ágeis);
Trabalhar com documentos técnicos e científicos;
Utilizar ferramentas de produtividade(hardware/software e comandos de terminal - shell);
Utilizar ferramentas de modelagem (modelagem UML e ferramentas CASE);
Utilizar ferramentas de gestão(GTD/kanban/Trello/github projects/Scrum);
Desenvolver as etapas iniciais de um projeto de engenharia, incluindo: Ciclo de Planejamento e Detalhamento (concepção – requisitos e casos de uso, elaboração, análise, projeto);
Nota*: A análise econômica de um projeto requer os conhecimentos de disciplinas de economia que não serão abordadas aqui. Fala-se apenas a ideia geral.
Nota: Os conceitos serão aplicados ao desenvolvimento de sistemas de software utilizando o paradigma da orientação a objeto; Os conceitos básicos de programação foram vistos nas disciplinas pré-requisito e serão abordados nas disciplinas do setor. A parte central de C++ será vistas numa segunda disciplina, dependente desta. E um projeto completo sera desenvolvido na disciplina "Projeto de Software Aplicado à Engenharia"; Completando a lista de disciplinas que fundamentam os objetivos aqui definidos.
Nota: As ferramentas a serem utilizadas podem mudar, os nomes são apenas indicativos/ilustrativos.
Site do Professor: https://sites.google.com/view/professorandreduartebueno
Resumo da Ementa
Desenvolvimento de produtos tecnológicos (inovação tecnológica), passando pelas etapas de pesquisa, de desenvolvimento, implementação do produto/processo/serviço.
Etapa 1: Introdução à metodologia científica e a pesquisa científica e tecnológica;
Etapa 2: Introdução à modelagem e projeto de engenharia (conceitos, definições, metodologia prática);
Etapa 3: Introdução ao desenvolvimento de produtos;
Conceitos de administração e gestão de projetos (planejamento, execução, controle);
Administração – uso de metodologias tradicionais;
Administração – uso de metodologias ágeis;
Administração – uso de ferramentas de produtividade como git/github/github projects, inteligência artificial;
Ferramentas técnicas como emacs, vscode, lyx, gnuplot e outras;
Exemplos aplicados ao TCC, engenharia de software e a engenharia de petróleo.
Conteúdo Programático
Introdução aos Projetos – Tour. Demanda por produtos (sistemas e serviços). A visão do pesquisador, do engenheiro e do usuário. Desenvolvimento de Produtos - O Conceito de TRL - Technology Readiness Level.
Conceitos e Modelos. Paradigma, modelo, modelagem, técnica, tecnologia, metodologia, processo, produto(CRL), inovação, engenharia.
Etapa 1: Desenvolvimento científico (parte científica da engenharia, ideias, modelos e conceitos).
Modelagem/Modelos. Introdução à modelagem, porque usamos, tipos, tradicional e ágil. Modelos teóricos, numérico computacionais e modelos experimentais/laboratoriais.
Modelagem e Desenvolvimento de Projeto Científico. Pesquisa Científica Aplicada à Engenharia - O Ciclo do Método Científico. O Ciclo do Método Científico e Tecnológico na Atualidade.
Preparação do Candidato e Escolha do Tema. Estrutura do Projeto de Pesquisa(ex: modelos do LyX). Como Redigir Textos Científicos. Como Apresentar Trabalhos Científicos.
Etapa 2: Desenvolvimento tecnológico (parte tecnológica da engenharia, desenvolvimento de protótipos).
Introdução à Programação Orientada a Objeto – POO. Entendendo os objetos. Conceitos Básicos de Programação Orientada a Objeto – POO.
Modelagem Orientada a Objeto (UML). Ferramentas – ex: dia e umbrello.
Engenharia de Software (modelos tradicionais e ágeis).
Etapas para o Desenvolvimento de um Projeto de Engenharia. Concepção(especificação, cenários de uso, diagramas de caso de uso, diagramas de assuntos, diagramas de componentes), elaboração(abrangência, escopo), análise(diagramas de classe, diagramas de sequência, comunicação, atividade, máquina de estado), projeto sistema(recursos), projeto orientado a objeto(revisão dos diagramas), testes lógicos, divisão em “features”.
Etapa 3: Desenvolvimento de produto (parte aplicada da engenharia, transformação de protótipos em produtos finais).
Gestão: Introdução à Gestão.
Gestão Pessoal - Planejamento de Longo Prazo.
Gestão Pessoal – GTD. Ex: uso de aplicativos.
Gestão de Projetos – SCRUM. Ex: uso de github projects.
Atividades Práticas:
Exemplos de projetos didáticos e exemplos de desafios tecnológicos serão desenvolvidas em sala de aula (alguma carga horária embutida acima pois varia de acordo com os projetos que estão sendo apresentados) e em exercícios/trabalhos/projeto para casa.
Também podemos ter aulas online onde se utilizam ferramentas virtuais como reuniões com Google Meet, troca de informações com Trello ou github projects, uso de sistemas para controle de versões como Github, uso de sistemas para troca de mensagens como telegram, etc.
Importante destacar que a atividade de projeto de engenharia é extremamente variável e depende do projeto em si. Então, qualquer tentativa de definição fixa de carga horária para cada etapa é irreal.
Nota:
As ferramentas a serem utilizadas podem variar a cada semestre, colocou-se aqui alguns nomes apenas para ilustrar, pois é mais fácil localizar informações sobre o github do que sobre “Sistema de Controle de Versões”. Ou seja, os nomes ajudam nas pesquisas.
Metodologia de ensino tradicional (teoria/aplicação prática) ou metodologia de ensino através do uso de projetos de engenharia. Os exercícios e trabalhos de aula estarão relacionados às áreas de estatística, métodos numéricos, análise de imagens e de engenharia de petróleo, fazendo-se um link com algumas disciplinas do curso de engenharia; A cada semestre os projetos a serem estudados/analisados/desenvolvidos podem variar, podendo ser um projeto novo ou o aperfeiçoamento de um projeto existente.
A forma efetiva de avaliação será definida nos primeiros dias de aula de acordo com projeto a ser estudado no semestre.
A ordem de apresentação das etapas pode variar.
Atividades de Extensão:
Em alguns casos as atividades (ou projetos) a serem desenvolvidos poderão ter atividades extensionistas; Nestes casos as horas extras associadas às atividades de extensão irão contar horas e pontos para a exigência de atividades de extensão.
Avaliações
Variam a cada semestre de acordo com os projetos estudados.
Podem incluir:
Exercícios
O arquivo de apresentação de cada aula inclui uma seção exercícios. Os exercícios passados em uma semana devem ser entregues no primeiro dia de aula da próxima semana (de cada grupo de 3 exercícios o aluno é obrigado a fazer 1. Por exemplo: exercícios 1, 4, 7, 10, 13, etc). Também teremos exercícios passados através do google classroom com instruções específicas.
Testes
Os testes são realizados no início da aula e tem duração de até 15 minutos.
Abordam temas já vistos e o material da aula presente. De cada 10 testes a pior nota é desconsiderada.
Provas
Duas opções:
Duas provas teóricas ou
Uma prova e um projeto.
Nas provas são incluídos pontos extras. Mas os pontos extras só serão contabilizados para quem passar na média final, isto é, primeiro calcula a média final, aqueles que passaram terão contabilizados os pontos extras.
Projetos
Desenvolvimento das etapas de um projeto de engenharia
Lista de Programas a Serem Utilizados
Sistema operacional
GNU/Linux - Fedora.
Comandos de terminal
shell bash, aplicativos específicos para produtividade.
Modelagem UML
Gestão de projetos
Trello, github projects, microsoft project
Documentação - manuais.
Controle de versões (acesso ao repositório de programas)
Edição de projetos (editor)
Visualizadores
evince.
ggv, gv.
acroread (leitor pdf - manuais internet).
Material Extra
Material da disciplina (apresentação das aulas), material extra e fontes relacionadas a disciplina são disponibilizados aos alunos via compartilhamento do google classroom ou dropbox ou google drive.
Descrição da metodologia utilizada
Modelo projeto no site github
Diretório compartilhado:
Acesso com gmail institucional do LENEP
Site com Softwares:
Apostilas:
Apostila: Modelo de IC/MSC/DSC os arquivos para o modelo podem ser baixados no link Github.
Apostila: Metodologia Científica em Engenharia (versão bem preliminar em desenvolvimento, disponibiliza apenas para alunos).
Aulas que podem ser uteis:
Github:
Github do LDSC: https://github.com/ldsc (exemplos de projetos desenvolvidos por alunos)
Exemplo Software modo terminal: Simulat - Simulador Transf. Calor e Massa em Telhas
Links úteis
Bibliografia
Introdução aos projetos
Fundamentos em Gestão de Projetos - Construindo Competências para Gerenciar Projetos BRASIL. Ministério do Planejamento, Orçamento e Gestão (MPOG). Secretaria de Logística e Tecnologia da Informação. Metodologia de Gerenciamento de Projetos do SISP. Brasília: MP, 2011. Disponível em: <http://www.servidor.gov.br/noticias/noticias12/arq_down/publicacao_slti_mgp-sisp_versao_1.pdf >. Acesso em 22 jan. 2013.
HELDMAN, K. Gerência de projetos. Rio de Janeiro: Elsevier, 2005.
MENEZES, L.C.M. Gestão de Projetos. São Paulo: Atlas, 2001.
PMI. A Guide to the Project Management Body of Knowledge (PMBOK Guide), 4th. ed., Project Management Institute Inc., 2008.
ROSA, M. O. Gerenciamento de projetos de governo - PMI-DF - PMInforma, n.V, 10 mai. 2007.
VALERIANO, Dalton L. Gerência em Projeto. Makron Books. S. Paulo, 1998.
WOILER, S. Projetos: planejamento, elaboração, análise. São Paulo: Atlas, 1996.
Engenharia de software, especificação, elaboração, análise, projeto, teste, debugagem
Sommerville, Ian; Engenharia de Software; Pearson Universidades; 10ª edição; 2019;
Denis Alcides Rezende; Engenharia de Software e Sistemas de Informação; 3.ed; Brasport; 2005;
Roger S; Pressman; Engenharia de Software; 9ed; AMGH; 2021;
Blaha, Michael; Rumbaugu, James; Modelagem e projetos baseados em objetos com UML2; 2.ed; Rio de Janeiro: Elsevier, 2006; 496p; ISBN 85-352-1753-3;
Eric Frieman; Use a cabeça! padrões de projeto; 2.ed; 2007;
André Koscianski; Qualidade de software; Novatec; 2006;
Leonardo Molinari; Teste de software; Erica; 2003;
Marcio Delamaro, Mario Jino, Jose Maldonado; Introdução ao Teste de Software; GEN LTC; 2.ed; 2021;
Michal Young; Teste e analise de software; Bookman; 2008;
UML
Martim Fowler; UML Essencial – Um breve guia para a linguagem-padrão de modelagem de objetos; Bookman; 3 edição; Porto Alegre, 2005; ISBN: 9798536304549
Martim Fowler; UML Distilled: A Brief Guide to the Standard Object Modeling Language; Addison-Wesley Object Technology Series); 3rd Edição; 2018
Adilson da Silva Lima; UML 2.5: Do Requisito à solução; Editora Érica; 1ª edição ; 2014 ; ISBN-13 : 978-8536508320
Gilleanes T.A.Guedes; UML 2 guia prático; Novatec; 2014;
Bret Mclaughin; Use a cabeça! análise e projeto orientado a objeto; Altabook/Oreilly; 2008;
Alistair Cockburn; Escrevendo casos de uso eficazes; Alistar; 2004;
Booch, G; Rumbaugh, J;, and Jacobson, I; UML - Guia do Usuário; GEN LTC; 2ed; 2006;
C++
Stroustroup; Programming principles and pratice using C++; 2 edition; 2014;
Multiplataforma (GNU/Linux)
Richard E. Silverman; Git: Guia Prático ; Novatec Editora; 1ª edição; 2019;
Mariot Tsitoara; Beginning Git and Github: A Comprehensive Guide to Version Control, Project Management, and Teamwork for the New Developer; Apress; 2019;
Kenneth Geisshirt, Emanuele Zattin, Aske Olsson; Git Version Control Cookbook: Leverage version control to transform your development workflow and boost productivity; Packt Publishing; 2 Edition; 2018;
Alexandre Aquiles, Rodrigo Ferreira; Controlando versões com Git e GitHub; Casa do Codigo; 2021; link:
Livro texto
O livro texto a ser utilizado na disciplina:
Bueno, A.D; Programação Orientada a Objeto em C++ - Aprenda a programar em ambiente multiplataforma com software livre; Terceira Edição; (2024);Bueno, A.D. Apostila “Usando Emacs”, 2023.
Bueno, A.D. Apostila “Projeto de Integração Numérica - Integral Trapézio e Simpson”, 2023.
Bueno, A.D. Apostila “Projeto de Interpolação”, 2023.
Bueno, A.D. Apostila “Projeto de Aquisição da Dados Experimentais”, 2023.
Bueno, A.D. Apostila “Projeto de Processamento de Imagens Rochas Digitais”, 2023.
Exemplo
No exemplo a seguir, temos imagem do site Trello e uma tirinha com projetos de engenharia.
TRL - Nível de Maturidade Tecnológica
Diferentes níveis de maturidade tecnológica.
Projeto Engenharia - Ciclo Completo Resumido
Sequência de projeto de engenharia utilizando metodologia ágil.
Resumo da metodologia:
Etapa 0- O professor ou empresa de engenharia elabora um desafio tecnológico (preenche este formulário).
Etapa 1- A equipe de alunos seleciona o projeto de seu interesse e elabora um pré-projeto (um esboço); Este pré-projeto é então levado ao professor/empresa que montou o desafio e ao professor da disciplina para aprovarem o pré-projeto. A ideia aqui é ter certeza que os alunos entenderam o que o professor/empresa quer.
Etapa 2- Os alunos montam o projeto (detalhamento do pré-projeto; documento formal que descreve o que vai ser feito).
Ex: os contratos de projeto que assinamos com a Petrobras.Etapa 3- Os alunos fazem a modelagem de engenharia com acompanhamento dos professores.
Etapa 4- Os alunos desenvolvem o software em si (ciclos de planejamento, refinar a modelagem; implementar os códigos; realizar testes; montar a documentação).
Etapa 5- Entrega/defesa do produto final.
Projeto Engenharia - Etapa 0 - Definição do Desafio Tecnológico
.
Projeto Engenharia - Etapa 1 - Elaboração do Pré-Projeto
.
Projeto Engenharia - Etapa 2 - Elaboração do Projeto
.
Projeto Engenharia - Etapa 3 - Modelagem de Engenharia
.
A seguir diagramas que mostram detalhes desta etapa.
Projeto Engenharia - Etapa 4 - Ciclos de Planejamento/Detalhamento/Construção
.
A seguir diagramas que mostram detalhes desta etapa.
Projeto Engenharia - Etapa 5 - Entrega Produto
.