A engenharia do como

Posted in Introdução a Engenharia de Software, processo de produção de software with tags , , on June 11, 2015 by José Augusto Fabri

A engenharia pode ser caracterizada como a arte de aplicar os conhecimentos, advindos das mais variadas áreas de conhecimento, na criação ou aperfeiçoamento de materiais, estruturas, máquinas, aparelhos, sistemas ou processos.

Já a ENGENHARIA DE SOFTWARE pode ser considerada uma área da Ciência da Computação que tem como objetivo a especificação, desenvolvimento e manutenção de sistemas de software. Atualmente, a ENGENHARIA DE SOFTWARE,                também estabelece uma relação estreita com outras áreas do conhecimento, tais como: Gerência de Projetos; Teoria da Qualidade; Gestão de Conhecimento.

Ao analisar ambas as definições é possível perceber que todas tratam o que fazer e não como fazer. Este fato é estendido aos livros, modelos de qualidade, disciplinas, consultorias e cursos ligados  à ENGENHARIA seguem o mesmo raciocínio, relatam o que e não como.

Afirmo isto com legitimidade, pois participo de diversas consultorias e trabalho dentro de um curso de engenharia de software que contrapõe a afirmação apresentada acima. A prova desta contraposição está ligada ao feedback que recebo de vários alunos e clientes (empresas que nos contratam, via Fundação, em consultorias). Estes feedbacks estão armazenados em minha base histórica de projetos, compartilho alguns com vocês.

  • O método de trabalho delineado pela sua equipe para nossa empresa alterou nossa forma de trabalho. Vocês executaram conosco, de forma prática, o método proposto, todos perceberam como fazer para estabelecer métricas de qualidade. A outra consultoria dizia-nos apenas o que fazer”. (feedback obtido após a implantação de um processo em uma empresa).
  • Professor, em sua disciplina sempre você apresenta como trabalhar a engenharia de software, você vai além do campo teórico, sempre embuti a prática em todas as aulas – esta constatação também pode ser estendida a todos os demais professores” (feedback obtido no final de 2014, após ministrar aulas de introdução a engenharia de software, no curso de Bacharelado em Engenharia de Software da Universidade Tecnológica Federal do Paraná).

Todos nós, profissionais que trabalhamos diretamente com as Engenharias, devemos relatar para toda a comunidade, acadêmica e empresarial, como fazer e não somente o que fazer.

O como fazer gera mais positividade, ou seja, a percepção do processo é real e todos entendem passo a passo aquilo o que está sendo construído. Possibilitam os envolvidos a receber um conjunto de conhecimentos mais sólidos.

Importante: O como fazer provê um aprendizado mais rápido e com maior qualidade.

Saia da esfera teórica e atinja a prática, durante a realização de seu trabalho, de suas aulas, de suas consultorias e na concepção de seus livros e materiais – foque mais o como.

Acredito que estamos perdendo este horizonte. As nossas universidades são, em sua grande parte, teóricas. A indústria necessita de pessoas que resolvem problemas de forma rápida e consistente.

Enfim, que tal praticar mais a engenharia do como e menos a engenharia do que?

José Augusto Fabri – fabri@utfpr.edu.br

Utilizando o Mindstorms ev3 no ensino fundamental e médio

Posted in gestão do conhecimento, Introdução a Engenharia de Software with tags , , , on June 2, 2015 by José Augusto Fabri

mindstorms

(Projeto coordenado por Marília Gabriela de Souza Fabri)

Pessoal, este texto destina aos diretores de escolas (públicas ou privadas) e professores que desejam utilizar o Mindstorms (robô apresentado na foto) no ensino fundamental e médio.

No texto, nós professores do Laboratório de Inovação (LabInov) da Universidade Tecnológica Federal do Paraná, campus Cornélio Procópio  (UTFPR-CP), estamos trabalhando com alguns projetos que envolvem alunos de escolas públicas e privadas no ensino de conceitos abstratos como física, programação de computadores, lógica e matemática.

Os objetivos dos projetos estão diretamente ligados a ideia de potencializar o raciocínio abstrato dos alunos e implementar técnicas para melhorar o desenvolvimento cognitivo.

Iremos apresentar uma pequena parte de um dos projetos desenvolvidos pelo LabInov.

Projeto: Ensino de geometria plana utilizando a Linguagem Logo e Mindstorms ev3.

Público alvo do projeto: Alunos do ensino fundamental.

Durante a execução deste projeto os alunos tiveram contato direto com os conceitos de introdutório ligados a geometria plana. Foram trabalhados conceitos inerentes a: reta; semireta; segmento; ângulo e propriedades angulares das figuras geométricas.

Abaixo é possível encontrar dois vídeos que trabalham diretamente estes conceitos utilizando a linguagem logo.

Perceba que no primeiro, os alunos do ensino fundamental executam os procedimentos: reta; semireta e segmento. Importante este procedimentos foram implementados pelos próprios alunos

Já o segundo apresenta os alunos implementando procedimentos: quadrado, quadrado1, triângulo e pentágono. No procedimento quadrado os alunos não utilizam o comando repita, comando este que agiliza a construção dos procedimentos. O repita é utilizado para as demais figuras. Por fim é importante ressaltar que na construção do triângulo e do pentágono os alunos percebem que uma das propriedades da figura é dividir 360 (área da circunferência) pelo número de lados que a figura possui. O resultado desta divisão caracteriza o grau que o ângulo deve possuir na composição da figura.

Após apresentar os referidos conceitos utilizando a linguagem Logo, os alunos trabalham diretamente com o Mindstorms (vide vídeos abaixo).

No primeiro vídeo é possível perceber que os alunos inserem dentro de uma estrutura de repetição dois objetos, o primeiro objeto possibilita o robô traçar os lados do quadrado, o segundo proporciona ao mindstorms rotacionar 90º.

O segundo vídeo apresenta o Mindstorms ev3 trançando um quadrado.

Já o terceiro apresenta os alunos interagindo fortemente com Mindstorms.

Por fim, é importante salientar que estou a disposição de todas as escolas do Brasil para realizar apresentações aos alunos, esta apresentação é classificada como um dia diferente da matemática na escola. Basta agendarmos e equalizarmos a forma de deslocamento, que um dos pesquisadores do LabInov vai até a escola.

Marília Gabriela de Souza Fabri

Contato: fabri@utfpr.edu.br

Como aplicar pontos por função na manutenção de um software?

Posted in gestão de projetos with tags on May 28, 2015 by José Augusto Fabri

Uma excelente pergunta. Acabei de recebê-la, via e-mail, do Jone Nunes.

Para respondê-la vou apresentar o problema reportado no e-mail.

“Vamos supor que eu tenho uma funcionalidade X que realiza uma entrada de dados qualquer. Necessito adicionar um campo a referida funcionalidade.  A informação quando digitada deve ser validada. Para validar a informação é necessário acessar 3 tabelas diferentes”.

Perceba que o problema é algo inerente à atividade de manutenção de software. Para calcular a complexidade desta manutenção utilizando pontos por função você deve seguir os seguintes passos:

1 – Mapeie a quantidade de tipo de elemento de dados que você irá manipular na manutenção. Perceba que trabalharemos diretamente com a inserção de um campo na entrada de dados e uma chave de acesso (utilizada nos procedimento de validação). Essa chave de acesso será comparada com o chave primária de outras 3 tabelas.  Neste caso temos: 1 campo + 1 chave de acesso + 3 chaves primárias = 5 tipos de elementos de dados.

2 – Calcule a quantidade de tipos de arquivos referenciados que você irá manipular na manutenção. Tendo em vista que a funcionalidade X é caracterizada como uma entrada de dados, suponho que esta entrada é armazenada em arquivo (ou tabela). Para validar a informações digitada é necessário acessar mais 3 tabelas. Neste caso a quantidade de tipos de arquivos referenciados é 4.

Resumindo, temos:

5 tipos de elementos de dados.

4 tipos de arquivos referenciados.

Ao utilizar a teoria básica para calculo de pontos por função obtenho a complexidade de 6 pontos para efetuar a manutenção (complexidade alta).

Concluindo:

A aplicabilidade da métrica pontos por função adere perfeitamente à atividade manutenção. Nesta atividade você deve mapear com um alto grau de certeza o número de tipos de elementos de dados e de tipos de arquivos referenciados e posteriormente efetuar o calculo.

José Augusto Fabri fabri@utfpr.edu.br

Capacidade, Agilidade e Perseverança…

Posted in gestão do conhecimento on April 29, 2015 by José Augusto Fabri

capacidadeAglidadePerseverancaTrês adjetivos que temos que buscar em nosso dia-a-dia como profissional.

A capacidade do Latim CAPAX, “o que pode abranger muito”. Em nosso contexto a capacidade caracteriza um indivíduo que abrange muito conhecimento em uma determinada área, por exemplo: você pode abranger um imenso conhecimento para lidar com números.

A agilidade deriva do Latim AGILITAS, “rapidez, mobilidade”. Em nosso contexto a agilidade é a capacidade de executar algo de forma rápida.

Perceba que a definição de agilidade passa pela capacidade. No mercado altamente dinâmico não basta ser capaz somente, é necessário ser ágil. A sociedade moderna está cada vez mais em busca de novos produtos que facilitam o seu dia-a-dia. Para criar estes produtos é necessário inovar, você consegue inovação somente se unir capacidade e agilidade. Sai sempre na frente.

Por fim, temos a perseverança, que caracteriza uma determinação constante. A determinação não é nada mais do que ter foco na ação. Em nosso contexto as suas ações devem levar você sempre a buscar novos conhecimentos, ou seja, se tornar mais capaz.

Seja perseverante na busca da capacidade. Utiliza a sua capacidade com agilidade.

José Augusto Fabri – fabri@utfpr.edu.br

Canvas para esboçar de trabalhos acadêmicos

Posted in off topic on March 10, 2015 by José Augusto Fabri

O Canvas é uma ferramenta de gerenciamento. Seu objetivo é esboçar modelos de negócio novos ou existentes. O Canvas pode ser considerado um mapa visual pré-formatado contendo 9 blocos de determinado modelo de negócios. O Canvas foi proposto por Alexander Osterwalder baseado no seu trabalho anterior sobre Business Model Ontology.

Estou sugerindo aos meus orientados de iniciação científica, de trabalho de conclusão de curso e de mestrado que elabore o Canvas para trabalhos acadêmicos. Nesta proposta podemos obter um refinamento rápido e prático do esboço do trabalho acadêmico.

Utilize a adaptação proposta a vontade.

José Augusto Fabri

Qual é a sua luta no dia 15 de março?

Posted in off topic on February 26, 2015 by José Augusto Fabri

Nos últimos dias vem crescendo o movimento 15 de março. O movimento ganhou força com a greve dos caminhoneiros. Este movimento tem como objetivo pedir o Impeachment da Presidente Dilma. Será que essa seria a nossa verdadeira luta?

Para responder esta questão temos que entender, minimamente, como funciona o Sistema Político Brasileiro.

O Brasil se caracteriza como uma Republica Federalista Presidencialista. República, porque o Chefe de Estado é eletivo e temporário. Federativa, pois os Estados são dotados de autonomia política. Presidencialista, porque ambas as funções de Chefe de Governo e Chefe de Estado são exercidas pelo Presidente.

O Poder do Estado Brasileiro é dividido entre órgãos políticos distintos. Adotamos um modelo semelhante ao apresentado por Charles de Montesquieu em seu livro “O Espírito das Leis” (1748), ou seja, temos três grandes órgãos ou poderes:

Executivo: exercido pelo Presidente.

Legislativo: exercido pelo Congresso Nacional (513 deputados e 81 senadores)

Judiciário: exercido pelo Supremo Tribunal Federal (11 juízes).

A função do  Executivo é bem simples, fazer as leis funcionarem. O presidente pode vetar ou sancionar leis criadas pelo poder Legislativo e editar medidas provisórias.

O Legislativo tem a responsabilidade de idealizar as leis e julgar as propostas do presidente. O parlamento brasileiro é bicameral – é composto por duas “casas”: a Câmara dos Deputados e o Senado. Qualquer projeto de lei, primeiramente, deve passar pela Câmara e depois, se aprovado, pelo Senado.

O Poder Judiciário tem como objetivo interpretar as leis e fiscalizar o seu cumprimento. O mesmo é composto por 11 juízes, escolhidos pelo presidente e aprovados pelo Senado.

O modelo apresentado também é instanciado nos estados e municípios. Elegemos Governador, Deputado Estadual (no Brasil temos 1.059), Prefeito e Vereadores (cerca 56.000).

De posse das informações que caracterizam o Sistema Político Brasileiro, vamos à questão que motivou o desenvolvimento deste texto:

Qual é a sua luta no dia 15 de março?

Atualmente, um deputado custa R$ 166.512,09 por mês. Este valor multiplicado por 513 gera um gasto mensal para união de  R$ 85.420.702,17, sem multiplicarmos esse montante por 48, teremos o custo de uma legislatura: R$ 4.100.193.704,16.

Não esqueça que temos o Senado, as  Assembleias legislativas e as Câmaras de Vereadores – é muita gente para legislar [as vezes em causa própria] e muito dinheiro gasto para sustentar essa máquina.

Quem é seu representante no legislativo? É…, aquele que você votou nas eleições de 2014? Você lembra quem é o seu Deputado Federal, Deputado Estadual e Vereador? Pode ter certeza que a maioria da população brasileira não lembra.

Que pena… a culpa da crise é do FHC, do Lula, da Dilma, seria do Aécio, da Marina ou do Eduardo Campos?

Para a população, a culpa sempre é do Presidente…

A culpa é nossa…

Dentro deste contexto acredito que TODOS temos que lutar primeiro por uma reforma política e depois por uma reforma tributária (este é tema para outro texto). Não defendo uma reforma de modelo e sim na sua forma de instanciação.

É necessário diminuir o número de deputados federais e estaduais e vereadores.

É necessário termos um congresso bicameral? Podemos discutir amplamente este tema.

Voto Distrital.

O Voto Distrital se caracteriza como um sistema eleitoral que irá melhorar a forma como você elege um político e acompanha o que ele faz.

Com o Voto Distrital eliminamos o coeficiente eleitoral.  Este é o número que cada partido ou coligação necessita alcançar para conseguir uma cadeira no Legislativo (ou Parlamento).

Calculo do coeficiente eleitoral:

Divide-se o número de votos válidos pelo número de cadeiras em disputa. Se tivermos 100 mil votos e 10 cadeiras no parlamento o coeficiente é 10 mil. Exemplo: Se um candidato a deputado do partido X tiver 40 mil votos, o partido tem o direito a 4 cadeiras no parlamento.  Se o partido X tiver mais 6 candidatos, 3 deles com 1 voto, 3 com zero, temos 3 candidatos  eleitos com 1 voto.

Mais de 90% dos deputados são eleitos sem serem os mais votados.

No voto distrital os estados são divididos em pequenas regiões. Cada partido apresenta um candidato por distrito a deputado, o mais votado é eleito.  Os eleitos devem prestar contas sistematicamente no seu distrito. Todos devem acompanhar o trabalho dos eleitos.

100 distritos no País.

Cada distrito deve representar um número equilibrado de eleitores, dentro deste contexto um voto no Acre deixa de possuir um maior peso se comparado com um voto no Paraná.

Reduzir o número de vereadores e deputados estaduais.

É muita gente para legislar.

Se eleito, o deputado deve passar por uma prova para comprovar que possui conhecimentos políticos.

Sim, isso evita os palhaços puxadores de voto.

Tem muita gente que vota nestes palhaços por protesto, e estas pessoas querem me dizer que não tem culpa.

A culpa é nossa…

Reduzir o custo de um deputado.

R$ 166.512,09 por mês para cada deputado federal é muito.

Reduzir o número de ministérios

Atualmente temos 39  – o segundo maior número de ministérios no mundo. Os EUA tem 15 o Chile 20.

Custo dos ministérios é de R$ 58 bilhões por ano.

Isso vai enxugar as contas públicas e a “máquina executiva”.

Consegui lembrar destes:

Ministério da Agricultura, Pecuária e Abastecimento; Ministério da Ciência, Tecnologia e Inovação; Ministério da Cultura; Ministério da Defesa; Ministério da Educação; Ministério da Fazenda; Ministério da Integração Nacional; Ministério da Justiça; Ministério da Previdência Social; Ministério da Saúde; Ministério das Cidades; Ministério das Comunicações; Ministério das Relações Exteriores; Ministério de Minas e Energia; Ministério do Desenvolvimento Agrário; Ministério do Desenvolvimento, Indústria e Comércio Exterior; Ministério do Esporte; Ministério do Meio Ambiente; Ministério do Planejamento, Orçamento e Gestão; Ministério do Trabalho e Emprego; Ministério do Turismo; Ministério dos Transportes; Secretaria da Micro e Pequena Empresa; Secretaria de Assuntos Estratégicos da Presidência da República; Gabinete de Segurança Institucional; Secretaria de Comunicação Social da Presidência da República; Secretaria de Direitos Humanos da Presidência da República; Secretaria de Políticas de Promoção da Igualdade Racial; Secretaria de Políticas para as Mulheres; Secretaria-Geral da Presidência da República; Controladoria-Geral da União; Advocacia-Geral da União; Banco Central do Brasil e Casa Civil.

Selecionei alguns que acho importante.

Política de estado

A política de governo se configura de maneira unilateral e muitas vezes restrita. Desenvolver política de estado possui uma complexidade muito maior. Para conceber esta vertente política é necessário mobilizar a esfera técnica da máquina pública, representante de instituições não governamentais, autarquias, fundações, ONGs, parlamento e demais grupos organizados. As discussões devem focar a relação entre custo, benefício, efetividade social na correção de distorções.

Praticar política de estado requer mobilização. A sociedade civil deve participar ativamente de todo processo de discussão.

Concluindo…

Gostaria de salientar que sou totalmente avesso a esta corrupção que assola o país. Isso vai muito além da Presidência  da República, independente quem é o presidente.  Volta a afirmar, a culpa não é de quem voltou em X ou Y para presidente em 1998, 2002, 2006, 2010 e 2014, a culpa é nossa que não sabemos lutar pelas grandes causas, não somos educados e muito menos politizados.

Pense nisso e aponte pontos substanciais para as reformas: POLÍTICA e TRIBUTÁRIA.

José Augusto Fabri  – fabri@utfpr.edu.br

Mapa conceitual representando conceitos de processo de software

Posted in processo de produção de software with tags , on February 14, 2015 by José Augusto Fabri

Pessoal,

Compartilho o mapa conceitual representando conceitos de processo de software. O mapa foi desenvolvido em uma das aulas de engenharia de software da UTFPR campus CP.

mapaProcessSw

Prof. Fabri – fabri@utfpr.edu.br

Follow

Get every new post delivered to your Inbox.

Join 42 other followers