You are on page 1of 46

Engenharia Mecatrônica Integrada

Aula 1 - Introdução

Engenharia de Controle e Automação

© UNIP 2020 all rights reserved


Conteúdo

Atividades
Requisitos

© UNIP 2020 all rights reserved


Atividades

3
© UNIP 2020 all rights reserved
Aulas
CURSO: Engenharia de Controle e Automação (Mecatrônica)
SÉRIE: 7º/8º semestre
DISCIPLINA: Engenharia Mecatrônica Interdisciplinar
CARGA HORÁRIA SEMANAL: 2,5 Horas/Aula
CARGA HORÁRIA MENSAL: 45 Horas/Aula
PROFESSOR: Daniel Pataca

4
© UNIP 2020 all rights reserved
Aulas
Aula 1 - Introdução
Aula 2 - Lógica de programação
Aula 3 - Introdução à Linguagem C
Aula 4 - Entrada e saída de dados
Aula 5 - Tomada de decisão
Aula 6 - Controle de Fluxo
Aula 7 - Funções e estrutura de programa
Aula 8 - Ponteiros e vetores
Aula 9 - Manipulando arquivos
Aula 10 - Outros comandos
© UNIP 2020 all rights reserved
Sala Virtual
Acesso à sala virtual pela URL:

https://classroom.google.com

Código de acesso:

d2o2kvb
© UNIP 2020 all rights reserved
Observações
Não adio datas e horários de entrega de trabalhos
A ferramenta de comunicação entre os alunos e o professor para assuntos
sobre a matéria ou resolução de problemas é a sala virtual para que todos
tenham acesso à pergunta e a resposta
“É atribuída nota ZERO ao aluno que usar meios ilícitos ou não autorizados
pelo professor por ocasião da execução dos trabalhos, das provas parciais,
dos exames ou de qualquer atividade que resulte na avaliação do
conhecimento por atribuição de nota, sem prejuízo da aplicação de
sanções cabíveis por esse ato de improbidade.”

© UNIP 2020 all rights reserved


Avaliações
Semestre
● Programas 40%
● Teste 10%
● Prova semestral 50%

SUB - Substitui a prova semestral (toda a matéria)

Exame (100%) - Toda a matéria do semestre (toda a matéria)

© UNIP 2020 all rights reserved


Implantação da IDE
Implantação da IDE Code::Blocks
http://www.codeblocks.org/
Não precisa implantar o compilador, já vem junto.

Implantação da IDE Visual Studio Code


https://visualstudio.microsoft.com/pt-br/
Precisa implantar o compilador

© UNIP 2020 all rights reserved


Implantação da IDE
Implantação compilador MinGW (conectado na internet)

http://www.mingw.org

http://sourceforge.net/projects/mingw/files/latest/download

http://www.mingw.org/wiki/Getting_Started
ANSI C é também conhecido por C89 ou C90

Implantação do IDE Geany

http://www.geany.org/Download/Releases

© UNIP 2020 all rights reserved


Por que aprender a programar?
Porque devo aprender a programar se estudo engenharia de controle e
automação e não computação?
Por que que cada vez mais o hardware é commodity e o que diferencia um
produto é o seu software.
As coisas estão se tornando cada vez mais complexas e a tendência é que, no
futuro, todos engenheiros tenham que programar.
Programar é muito útil para adquirir habilidades de raciocínio, resolução de
problemas e criatividade.
O mercado precisa de programadores e há excelentes oportunidades de
emprego e empreendimento na área. Quer encontrar trabalho? Aprenda a
programar!
Programar é divertido.
© UNIP 2020 all rights reserved
Por que aprender a programar?
Melhora o raciocínio
A nossa mente é como um atleta, quanto mais treina melhor fica. A nossa mente é
um atleta que deve ser treinado constantemente.
A programação por si só é um exercício para a mente, pois um dos principais
objetivos dela é de resolver problemas, quanto mais resolvemos problemas mas
ficamos safos e melhoramos nossas técnicas.
E a melhor maneira de "adquirir" esse raciocínio é treinando. E é isso que a
programação traz, pois programando você sempre estará resolvendo problemas
e mais problemas, deixando seu cérebro ainda mais treinado!
"Aprender a escrever códigos amplia sua mente, fazendo com que você raciocine
melhor, criando uma forma diferente de pensar, o que será extremamente útil em
todos os desafios da sua vida." - Bill Gates
© UNIP 2020 all rights reserved
Por que aprender a programar?
Melhora o raciocínio
O pensamento computacional ensina o aluno a como lidar e solucionar difíceis
problemas dividindo-os numa sequência de partes menores (de problemas mais
fáceis de serem solucionados). Dessa forma, aprender a programar possibilita
que o estudante saiba lidar com problemas complexos de forma eficiente. Ou
seja, ajuda a resolver primeiro problemas específicos para depois chegar na parte
mais abrangentes de um problema ou questão.
Steve Jobs dizia que “todos deveriam saber programar, porque isso nos ensina a
pensar”. Com a programação, o estudante aprende a pensar de forma
estruturada.

© UNIP 2020 all rights reserved


Por que aprender a programar?
Programar é o novo inglês
Enquanto no passado saber falar inglês era considerado um diferencial
competitivo no mercado, atualmente saber o idioma já é uma obrigação.
Os softwares estão cada vez mais presentes em nossas vidas e “falar a língua dos
computadores” será uma demanda cada vez mais presente em todos os níveis
profissionais.
“Não saber a linguagem dos computadores será tão desafiador como ser
analfabeto ou não saber fazer cálculos nos dias atuais”, sugere Dan Crow, diretor
de Tecnologia do Songkick,
Não saber programar é “como conseguir ler, mas não saber escrever com novas
tecnologias”, sugere, por sua vez, Mitch Resnick, do Laboratório de Mídia do MIT.

© UNIP 2020 all rights reserved


Por que aprender a programar?
Profissão do futuro (agora)
O mundo atual é dominado por softwares. Usamos celulares e smartphones cada
vez mais modernos que controlam não só nossas ligações e conversas, mas
grande parte de nossas vidas (agendas, contatos, redes sociais, etc.). Compramos
cada vez mais pela internet; fazemos agendamentos de exames médicos e de
serviços públicos online; usamos aplicativos para ver mapas e percursos no
trânsito.
O mundo da nova geração será ainda mais online e digital. Saber criar esses
programas e entender como um computador funciona é saber falar a língua do
futuro. Ser “fluente” em tecnologia significa entender como o computador pensa
e funciona e saber usá-lo a seu favor.

© UNIP 2020 all rights reserved


Por que aprender a programar?
Profissão do futuro (agora)
Sempre ouvimos que programação é a profissão do futuro, mas o futuro já
chegou. A área de TI é a que menos sofre atualmente com essa crise e a que mais
cresce baseado nas pesquisas.
Existem pesquisas que dizem que nos próximos anos haverá milhares de vagas
para quem sabe programar e poucos programadores qualificados. Atualmente
um programador fica desempregado se quiser ou não se qualificar e se atualizar.
Como tudo ao nosso redor precisa de um software para funcionar, logo
precisa-se de uma pessoa que saiba programar!

© UNIP 2020 all rights reserved


Por que aprender a programar?
Você pode ganhar mais
Você que trabalha com engenharia sabia que pode ganhar mais? Além de
melhorar muito o seu raciocínio ou seja, melhorar e otimizar as suas tarefas
diárias, você ainda poderá melhorar seu salário.
Sabe aquela tarefa repetitiva que toma seu tempo, aquele processo manual ou
demorado que você tem que fazer todo dia? Se você souber programar pode criar
um sistema que automatize isso melhorando seu desempenho na empresa, assim
você se destaca mais e consequentemente será recompensado por isso ou
poderá até fazer o sistema e vender "por fora" para a sua empresa, ou seja, no
final você irá ganhar mais.

© UNIP 2020 all rights reserved


Por que aprender a programar?
Em qualquer lugar e a qualquer hora
Programar é algo que exige basicamente apenas seu intelecto,
independentemente de estrutura física (escritório, mesa etc). Isso quer dizer que
você praticamente pode trabalhar de onde você quiser e a qualquer hora. E se
você souber falar inglês aí que suas chances aumentam.

© UNIP 2020 all rights reserved


Por que aprender a programar?
Nada paga a sensação de prazer
Quando você consegue exercitar seu cérebro para resolver problemas e a cada
vez que você resolve um problema, seja ele simples ou mais complexo, o seu
cérebro libera o que os cientistas chamam de dopamina que da aquela sensação
de prazer, realização e auto suficiência.
Sabemos que quando temos prazer em fazer algo acabamos viciados e ainda mais
motivados a melhorar e aprender, isso é um ciclo vicioso de melhoria constante e
aumento de qualidade, seja no seu trabalho ou na sua vida pessoal.

© UNIP 2020 all rights reserved


Passos para aprender a programar
Escolha uma linguagem de programação
Quando estamos começando a programar, a linguagem em si não importa, pois a
lógica é a mesma para todas as linguagens!
Vamos escolher o ANSI C pelas seguintes razões:
Linguagem padronizada compilada em praticamente todos os tipos de
processadores
A linguagem mais utilizada no mundo para software embarcado
A linguagem que será utilizada na maioria dos TCCs
Linguagem sem custos para a sua utilização

© UNIP 2020 all rights reserved


Passos para aprender a programar

21
© UNIP 2020 all rights reserved
Passos para aprender a programar
Praticar gera mais resultados do que teoria
Nunca aprendi uma linguagem de programação só aprendendo a teoria.
Colocar a mão na massa, tentativa e erro, praticar diversas vezes até
compreender um conceito ou algo novo que viu, faz parte do dia-a-dia de
qualquer programador. Quanto mais praticamos, mais compreendemos.
Aprende-se programação sozinho, esse é o único jeito que existe. Por mais que
esteja em uma turma, ou recebendo informação de um professor/instrutor, você
só conseguirá mesmo aprender programação quando focar em fazê-lo sozinho.
Portanto, comece com o mínimo, leia um pouco aqui e ali e parta para a prática de
imediato. Os obstáculos são inevitáveis e terá que exercitar o cérebro para
vencer cada etapa.
© UNIP 2020 all rights reserved
Passos para aprender a programar
A lógica de programação em primeiro lugar
A dica mais importante de todas para qualquer iniciante é procurar aprender,
antes de tudo, a lógica de programação.
Mas por que a lógica de programação? Por que não Orientação a Objetos, ou
programação funcional, ou estrutura de dados ou qualquer outro tópico da
programação? É justamente porque todos os outros tópicos que envolvem
programação são baseados na lógica de programação.
Em outras palavras, a lógica de programação são os ingredientes do bolo, ou seja,
programar sem lógica de programação é a mesma coisa que tentar fazer um bolo
sem ingredientes.

© UNIP 2020 all rights reserved


Passos para aprender a programar
Procure um amigo para estudar
Ter uma pessoa próxima para que consiga exibir suas ideias, discutir
implementações ou até mesmo compartilhar o que aprendeu faz toda a
diferença.
Um amigo ao seu lado para que possa compartilhar suas experiências e ele as
dele, fará com que, tanto você quanto ele, compreendam com mais facilidade
tudo que estudaram.

© UNIP 2020 all rights reserved


Requisitos

25
© UNIP 2020 all rights reserved
Definições
Os requisitos de um sistema são as descrições do que o sistema
deve fazer, os serviços que oferece e as restrições a seu
funcionamento.
Esses requisitos refletem as necessidades dos clientes para um
sistema que serve a uma finalidade determinada.
Engenharia de requisitos é o processo de descobrir, analisar,
documentar e verificar esses serviços e restrições.

© UNIP 2020 all rights reserved


Definições
O termo requisito não é usado de forma consistente pela indústria
de software e pode ser tanto uma:
Declaração abstrata em alto nível de um serviço que o sistema deve
oferecer, ou uma,
Definição detalhada e formal de uma função do sistema.
Mais do que classificar com grande precisão um dado requisito, o que
realmente importa é identificar que ele existe e compreender o seu
significado.

© UNIP 2020 all rights reserved


Definições
Para contratos de desenvolvimento de SW de grande porte deve-se
definir as necessidades de forma abstrata o suficiente para que a
solução não seja pré definida
Os requisitos devem ser escritos de modo que vários
desenvolvedores possam concorrer e oferecer diferentes maneiras de
atendê-los
Uma vez que o contrato tenha sido fechado o desenvolvedor deve
escrever para o cliente uma definição mais detalhada do sistema para
que este entenda e possa validar o que o software fará
Ambos os documentos são chamados de requisitos para o sistema
© UNIP 2020 all rights reserved
Tipos de Requisitos
As representações dos requisitos devem exibir uma série de
propriedades:
Serem claras
Fácil de interpretar
Serem escritas em linguagem natural
Frases simples
Sem ambiguidades
Escritos concisos sem recurso a jargão técnico ou acrônimos

© UNIP 2020 all rights reserved


Tipos de Requisitos
Existem dois tipos de descrição de requisitos:
Requisitos de usuário são declarações, em uma linguagem natural
com diagramas, de quais serviços o sistema deverá oferecer a seus
usuários e as restrições com as quais deve operar.
Requisitos de sistema são descrições mais detalhadas das funções,
serviços e restrições operacionais do sistema de SW. O documento de
requisitos do sistema (especificação funcional) deve definir
exatamente o que deve ser implementado. Pode ser parte do contrato
entre o comprador do sistema e os desenvolvedores de SW.

© UNIP 2020 all rights reserved


Especificação de Requisitos

© UNIP 2020 all rights reserved


Escrita dos Requisitos
Os requisitos precisam ser escritos em diferentes níveis de
detalhamento para que diferentes leitores possam usá-los de
diferentes maneiras.
Os leitores dos requisitos de usuário, por exemplo um gerente, não
costumam se preocupar com a forma como o sistema será
implementado.
Os leitores dos requisitos de sistema precisam saber mais
detalhadamente o que o sistema fará, porque estão interessados em
como ele apoiará os processos de negócio ou porque estão envolvidos
na implementação do sistema.
© UNIP 2020 all rights reserved
Clientes dos Requisitos

© UNIP 2020 all rights reserved


Tipos de Requisitos
Pode-se também dividir os requisitos em requisito funcional e
requisito não funcional.
Classificar um requisito como funcional ou não funcional depende
do ponto de vista do observador.
Um requisito para uma parte interessada pode ser considerado
funcional e pode ser considerado não funcional para outra. Por
exemplo, a forma de um edifício pode ser não funcional para um
engenheiro e funcional para um arquiteto.

© UNIP 2020 all rights reserved


Requisitos Funcionais

35
© UNIP 2020 all rights reserved
Tipos de Requisitos
Requisitos Funcionais
São declarações de serviços que o sistema deve fornecer, de como o
sistema deve reagir a entradas específicas e de como o sistema deve
se comportar em determinadas situações.
Descrevem o que o sistema deve fazer.
Dependem do tipo de SW a ser desenvolvido, de quem são seus
possíveis usuários e da abordagem geral adotada pela organização ao
escrever os requisitos.
A especificação de requisitos funcionais deve ser completa e
consistente.
© UNIP 2020 all rights reserved
Requisito Funcional
Descreve uma funcionalidade a disponibilizar aos usuários de um sistema,
caracterizando parcialmente o comportamento deste como resposta aos
estímulos a que está sujeito.
Devem-se eliminar deste tipo de requisito quaisquer questões
tecnológicas, ou seja, o ideal é que os requisitos independentes de
questões de concepção e de implementação.
O conjunto de requisitos funcionais deve ser completo e coerente. O
conjunto será coerente se não houver contradições entre seus elementos
e será completo se forem consideradas todas as necessidades que o
cliente quer ver satisfeitas.

© UNIP 2020 all rights reserved


Requisito Funcional
Um requisito implícito é um requisito incluído pela equipe de
desenvolvimento, devido ao conhecimento do domínio que esta tem,
apesar de não ter sido explicitamente solicitado pelas partes
interessadas. Um exemplo clássico de um requisito implícito é a inclusão
de uma porta de entrada em uma casa.
Em software é muito comum as aplicações web terem autenticação dos
usuários, mesmo que as partes interessadas não tenham referido essa
necessidade.
Um requisito explícito refere-se a um requisito que foi pedido pelos
clientes e que se encontra representado na documentação.

© UNIP 2020 all rights reserved


Requisitos Não Funcionais

© UNIP 2020 all rights reserved


Requisito Não Funcional
Corresponde a um conjunto de restrições impostas ao sistema a ser
desenvolvido, estabelecendo, por exemplo, quão atrativo, usável,
rápido e confiável.
Surgem por meio das necessidades dos usuários, devido a
restrições de orçamento, políticas organizacionais, necessidades de
interoperabilidade com outros sistemas de SW ou HW, ou a partir
de fatores externos como regulamentos de segurança ou
legislações de privacidade.

© UNIP 2020 all rights reserved


Requisito Não Funcional
São restrições aos serviços ou funções oferecidos pelo sistema.
Incluem restrições de timing, restrições no processo de
desenvolvimento e restrições impostas pelas normas.
Não estão diretamente relacionados com os serviços específicos
oferecidos pelo sistema a seus usuários. Podem estar relacionados
às propriedades emergentes do sistema como confiabilidade,
tempo de resposta e ocupação de área.
Os requisitos não funcionais, como desempenho, proteção ou
disponibilidade, normalmente especificam ou restringem as
características do sistema como um todo.

© UNIP 2020 all rights reserved


Requisito Não Funcional
Requisitos de produto. Especificam ou restringem o
comportamento do SW. Exemplos, requisitos de desempenho
(rapidez e memória requerida), confiabilidade (taxa aceitável de
falhas), proteção e usabilidade.
Requisitos organizacionais. Derivados das políticas e
procedimentos da organização do cliente e do desenvolvedor.
Exemplos: normas, linguagem de programação.
Requisitos externos. Derivam de fatores externos ao sistema e
seus processos de desenvolvimento. Exemplo, reguladores
(aprovação por um regulador), legais (sistema operando dentro da
lei) e éticos.
© UNIP 2020 all rights reserved
Requisito Não Funcional
Classificação para a estruturação do documento de requisitos:
1. Aparência - O aspecto visual e a parte estética do sistema,
principalmente a interface gráfica.
2. Usabilidade - A facilidade de uso do sistema e tudo aquilo que
permite uma experiência de uso mais agradável.
3. Desempenho - Questões de rapidez, de tempo real, de capacidade de
armazenamento e de correção de execução.
4. Operacional - Características sobre o que o sistema deve fazer para
funcionar corretamente no ambiente em que está inserido.

© UNIP 2020 all rights reserved


Requisito Não Funcional
Classificação para a estruturação do documento de requisitos:
5. Manutenção e suporte - Atributos que permitem que o sistema seja
reparado ou melhorado e que possam antecipar novas
funcionalidades.
6. Segurança - Tópicos relacionados ao acesso, à confidencialidade, à
proteção e a integridade dos dados.
7. Cultural e organizacional - Fatores relacionados à cultura e aos
hábitos das partes interessadas.
8. Legal - Leis, regras e normas que se aplicam ao sistema para que esse
possa ser colocado em funcionamento.

© UNIP 2020 all rights reserved


Requisito Não Funcional

© UNIP 2020 all rights reserved


Requisito Não Funcional

© UNIP 2020 all rights reserved

You might also like