Processo de Desenvolvimento de Software, o Ciclo de Vida Clássico Sobre a Ótica da Norma ISO/IEC/IEEE 12207:2017

O processo de desenvolvimento de software pode ser entendido, segundo Macoratti (2014) como “um conjunto de atividades, métodos, ferramentas e práticas que são utilizadas para construir um produto de software”. Esta prática leva a produção de uma série de documentos que ao final são traduzidos em um programa executável que seja satisfatório (RAMOS, 2014, p. 4). Neste contexto, entende-se como satisfatório um produto de software que atenda as reais necessidades de um cliente sem apresentar defeitos, uma vez que o software é parte fundamental da tecnologia da informação (ISO/IEC/IEEE 12207:2017(E), p. 1).

Continuar a ler

Quality Assurance – mas afinal do que se trata?

Embora a qualidade de um produto ou serviço seja fundamental, até há pouco tempo muitas empresas tendiam a dedicar muito grande parte do tempo disponível para entregar a desenvolver o maior número de requisitos possíveis (tentado cumprindo prazos) mas descurando a qualidade dos mesmos. Ou seja, trabalhava-se em quantidade e não em qualidade.

Com um mercado cada vez mais competitivo e clientes finais mais exigentes, as empresas começaram a exigir aos seus fornecedores de produtos e serviços mais qualidade ao invés de quantidade, ou seja, aceitavam que fossem entregues menos funcionalidades novas mas que as mesmas tivessem garantia de menos problemas e mais satisfação e credibilidade junto dos seus próprios clientes. Estas alterações trouxeram a necessidade de prioritização, implementação efectiva de metodologias de trabalho em equipa, etc.

Continuar a ler

Revista PROGRAMAR nº 60 — Setembro de 2018

A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo CRaspberry + ESP8266 = “Light”, da autoria de António C. Santos e Rita Peres. Adicionalmente, nesta edição poderá encontrar mais 19 artigos, que listamos de seguida:

  • Através dos Olhos de uma rede Neuronal – Sérgio Saraiva
  • Introdução ao SonarQube – Nuno Cancelo
  • SEO e Desenvolvedores: Unindo esforços para o desenvolvimento – Aline Rossi
  • Blockchain – Bernardo Vieira
  • ASP.NET Core, Angular 5 – CRUD com Entity Framework – António Santos
  • Classes de infraestrutura: a classe Using – Nuno Picado
  • C# – Windows ML (ML.NET C#) – Rita Peres
  • Maker – Água fresca, scooby! – António Santos
  • Kernel Panic – Os Geeks “herdarão” o mundo! – António Santos
  • Core Dump – Pessoas, Dados & Privacidade – Fernando Martins
  • Retro Computing – Imperial March [BASIC] – António Santos
  • Review do livro: Business Intelligence – Da Informação ao Conhecimento 3. Edição Atualizada – Vitor Veiga
  • Review do livro: Criação Rápida de Sites Responsivos com Bootstrap – António Santos
  • DesignSpark – Explorar Ethereum com Raspberry Pi
  • Crypto-Jacking via ARP Poisoning em Redes Wi-fi – Pedro Tavares
  • HTTPS – Que Informação é Protegida – Pedro Tavares
  • Como Surge o RGPD e Quem é o Data Protection Officer? – Pedro Tavares
  • Processo de Desenvolvimento de Software, o Ciclo de Vida Clássico Sobre a Ótica da Norma ISO/IEC/IEEE 12207:2017 – Augusto Manzano
  • Quality Assurance – mas afinal do que se trata? – Patricia Mateus
  • CRM – Plataforma ou Customizado – Pedro Azevedo
  • Entrevista a: Prof. Nuno Garcia

Clique aqui para fazer o download desta Edição!

O vale da sombra do ; “ponto-e-vírgula”

Existem diversas expressões para se referirem a “horas negras”, locais temíveis, etc… etc… etc… Mas entre todos os adeptos de tecnologia, o mais universal e conhecido, creio que seja o “vale da sombra do ponto-e-vírgula”, por onde, todos aqueles que escrevem código, acabam por passar, uma e outra vez, seja a “voar” no ANSI-C, passando pelo Java, o C++, o PHP e o C#, para não falar em todas as outras linguagens…

Verdade se diga que algures, em algum momento na nossa vida de tecnologia, passaremos por esse “vale profundo”, onde reina a escuridão da sombra do ponto-e-vírgula e dos erros de compilação, onde a linha apontada pelo compilador nada tem a ver com a linha onde verdadeiramente falta o dito cujo mal-afamado ponto-e-vírgula!

Continuar a ler

Computação em Grelha, cross-platform usando BOINC

Ao longo de diversas edições fui escrevendo sobre clusters recorrendo ao SBC (single board computer) Raspberry Pi. Tendo em conta que cada vez existem mais dispositivos inteligentes (smart devices), dei por mim a pensar no eventual uso de tais dispositivos, que passam uma parte substancial do seu tempo de “vida útil” em “idle” (sem utilização, mas ainda assim ligados), para tarefas de computação. Algo parecido com o SETI@Home, de há uns anos atrás, quando eu era bem mais novo e a internet por cá, ainda chegava por “dial-up”.

É resumidamente isso que vos apresento neste artigo! Uma plataforma simples de instalar e utilizar, dedicada à computação distribuída, utilizando diversas plataformas e diversos dispositivos, aproveitando o tempo destes equipamentos, quando estão por exemplo parados a carregar baterias ou ligados à corrente mas inactivos.

Continuar a ler

Introdução ao Sonatype Nexus

Há algum tempo atrás, enfrentei um desafio ao gerir/ manter um projeto de software. Porque o cliente em que estava trabalhava na altura, tinha múltiplas equipas de desenvolvimento a trabalhar em múltiplas tecnologias e, admitamos, trabalhar com equipas que não tem estrutura e organização é um desespero.

Então, vagueei pela internet em busca de uma infraestrutura onde fosse possível guardar todos os artefactos dos “projetos”, independentemente da tecnologia utilizada. Foi então que me deparei com alguns, mas a minha predileção foi para Nexus Repository OSS versão 3.x.

Continuar a ler

Adobe PhoneGap Build: para construção de aplicações móveis híbridas

Introdução

No artigo Criar uma aplicação móvel com jQuery Mobile [Programar #58] vimos como usar a framework jQuery Mobile para programar uma aplicação Web direcionada a dispositivos móveis. Neste artigo, vamos ver como usar o serviço PhoneGap Build da Adobe para gerar uma aplicação para Android.

Adobe PhoneGap

PhoneGap é uma framework de desenvolvimento de aplicações móveis híbridas. Aplicações híbridas são aplicações que combinam componentes nativos e componentes web. Do ponto de vista do utilizador e da plataforma móvel, uma aplicação híbrida é indistinguível de uma aplicação nativa. No entanto, internamente, uma aplicação híbrida utiliza um componente web view que contém a maioria do conteúdo e lógica da aplicação – ou seja, a aplicação é essencialmente programada como se de um aplicação web se tratasse. A framework PhoneGap, baseada em Apache Cordova, permite que as aplicações híbridas tenham acesso a funcionalidades nativas através de componentes específicos para cada plataforma móvel (e.g., Android, iOS, Windows) mas cuja interface é exposta em JavaScript (o programador não se preocupa com a plataforma).

Continuar a ler

SoapUI: Uma ferramenta muito útil para quem desenvolve web services

O SoapUI

O SoapUI é uma aplicação open source utilizada em testes de web services de arquitecturas orientadas a serviços (SOA) ou transferências de estado representacional (REST). É uma aplicação multi-plataforma desenvolvida em Java. Existe também uma versão profissional que suporta múltiplas origens de dados de testes, geração de testes automatizados, análise inteligente de pedidos, etc.

Entre outras funcionalidades, o SoapUI permite:

  • Invocação de web services
  • Inspecção de web services
  • Geração de testes de carga em web services
  • Geração de testes de segurança em web services
  • Geração de documentação de web services

Continuar a ler

Xamarin Forms – usando Xamarin Effects

Este artigo tem como objetivo mostrar como usar efeitos no desenvolvimento de aplicações móveis usando a framework Xamarin Forms.

Introdução

A framework Xamarin Forms permite abstrair a camada de user interface entre as diversas plataformas, ie, através desta framework podemos escrever um único código que define toda a aplicação e que irá ter a sua representação gráfica respeitando é claro o controlos gráficos de cada plataforma. Refiro-me é claro às plataformas iOS, Android e Windows, cujo UX difere em alguns aspetos.

Continuar a ler