PROFISSIONAL DE SOFTWARE
O maior desafio hoje em empresas desenvolvedoras de software está no fato de que os profissionais ainda não implementam, em sua grande parte, ações características do Engenheiro de Software. Nesta web aula, primeiramente discutiremos aspectos básico deste profissional, estudando o desenvolvimento profissional e também os aspectos éticos na engenharia de Software.
O desenvolvimento profissional de software está ligado aos inúmeros usuários que escrevem os programas, podendo ser pessoas envolvidas com negócios que os escrevem para simplificar seu dia-a-dia, ou engenheiros e cientistas para processar seus dados experimentais, aqueles que escrevem como hobby apenas por interesse próprio e diversão, e aqueles que desenvolvem profissionalmente, cujo software tem um propósito específico de negócio ou para inclusão de outros dispositivos, etc.
Sempre que tratamos de software algumas perguntas sempre surgem, tais como:
- O que é software?
- Quais atributos de um bom software?
- O que é engenharia de software?
- Quais as principais atividades de engenharia de software?
- Qual a diferença entre engenharia de software e ciência da computação?
- Qual a diferença entre engenharia de software e engenharia de sistemas?
- Quais são os principais desafios da engenharia de software?
- Quais são os custos da engenharia de software?
- Quais são as melhores técnicas e métodos de engenharia de software?
- Quais diferenças foram feitas pela internet na engenharia de software?
Dica:
A resposta as perguntas acima encontra-se no livro Engenharia de Software, 9ª edição, do autor Ian Sommerville, disponível na biblioteca digital.
O software profissional inclui técnicas para especificação, projeto, implementação e implantação que geralmente não são relevantes ao desenvolvedor pessoal.
Comumente, as pessoas associam um software como um programa de computador qualquer, porém a engenharia de software não trata apenas do programa em si, mas de toda a documentação associada a fazer este programa funcionar corretamente.
Outra diferença entre o desenvolvedor profissional e o amador é que o amador escreve um programa para ele mesmo utilizar, não se preocupando em escrever um manual do programa, documentação, etc., enquanto o desenvolvedor profissional, que desenvolve um software para outras pessoas usarem, necessita fornecer informações adicionais, assim como o código do programa.
Existem dois tipos e produtos de software:
- Produtos Genéricos:
Ex: Ferramentas de banco de dados, processadores de textos, compactadores de arquivos, pacotes gráficos, sistemas de contabilidade, sistemas comerciais, etc.
- Produtos sob Encomenda
Ex: Sistemas de controle de dispositivos eletrônicos, sistemas especialista para apoio ao negócio específico, sistemas de controle rodoviário, etc.
A diferença entre esses tipos de software é que no genérico a empresa que desenvolve controla sua especificação, já o sob encomenda a especificação é controlada pela empresa que está adquirindo o software.
Quando tratamos da qualidade do software profissional, devemos nos atentar aos seguintes atributos necessários a um bom software:
- Manutenibilidade, ou seja, a forma na qual o software possa evoluir para atender às necessidades dos clientes.
- Confiança e proteção, ou seja, um software não deve causar prejuízos físicos ou econômicos no caso de falhas do sistema.
- Eficiência, isto é, o software não deve desperdiçar recursos do sistema.
- Aceitabilidade.
Portanto, o software deve ser compreensível, usável e compatível com os outros sistemas conectados a ele.
Ética na Engenharia de Software
O desenvolvimento de software envolve grande responsabilidade, pois não é apenas aplicar habilidades técnicas, mas sim um conjunto de atividades sociais e legais, o que muitas vezes limita a liberdade das pessoas que trabalham nesta área. Desta forma, o engenheiro de software deve se comportar de forma ética e moralmente responsável se deseja ser respeitado como um engenheiro profissional.
Manter um padrão de honestidade e integridade é fundamental para um profissional de sistemas, visto que não se deve usar suas habilidades e conhecimentos para agir de forma desonesta ou de maneira na qual possa denegrir a profissão do engenheiro de software. Em algumas áreas de atuação do engenheiro de software, nas quais os padrões de comportamento não são limitados pelas leis, há uma tênue noção de responsabilidade profissional na qual envolve:
- Confidencialidade: devemos respeitar a confidencialidade de informações dos clientes, independentemente de ter sido assinado ou não um contrato de confidencialidade.
- Propriedade Intelectual: devemos conhecer as leis locais a respeito do assunto, tais como patentes e copyright, sempre tendo cuidado de proteger a propriedade intelectual dos empregados e clientes.
- Competência: não devemos aceitar, conscientemente, um trabalho fora de nossa competência profissional.
- Mau uso do computador: o profissional de software não deve usar de suas habilidade técnicas para fazer mau uso de computadores de outras pessoas, podendo variar desde o uso dos computadores da empresa para acesso a redes sociais, jogos, sites não liberados até algo mais sério, como a disseminação de vírus ou outros malwares.
Sommerville (2011 p.9 - 10) mostra no quadro abaixo o código de ética e praticas profissionais da ACM/IEEE 1999 de forma reduzida.
Código de ética e práticas profissionais da engenharia de software
Força-tarefa conjunta da ACM/IEEE para ética e práticas profissionais de engenharia de software
Prefácio
A versão curta do código resume aspirações a um nível alto da abstração; as cláusulas que são incluídas na versão cheia dão exemplos e detalhes de como estas aspirações mudam o modo que nós agimos como software que cria os profissionais. Sem as aspirações, os detalhes podem se tornar legalístico e tedioso; sem os detalhes, as aspirações podem se tornar soando altos, mas podem esvaziar; junto, as aspirações e os detalhes formam um código aderente.
Engenheiros de software começam a fazer a análise, especificação, designer, desenvolvimento, prova e manutenção de software. Conforme o seu compromisso para a saúde, segurança e bem-estar do público, os engenheiros de software aderirão aos seguintes princípios:
- Público: Engenheiros de software agirão constantemente com o interesse público;
- Cliente e Empregador: Engenheiros de software agirão até certo ponto, isto é, com interesse do seu cliente e empregador consistente com o interesse público;
- Produto: Os engenheiros de software assegurarão que os seus produtos e suas modificações estão relacionadas e satisfazem aos padrões profissionais de mais alto nível possível;
- Julgamento: Engenheiros de software manterão integridade e independência no seu julgamento profissional;
- Gerenciamento: Engenheiros de Software precisam lidar com os gerentes e líderes que atuam no projeto, promovendo assim uma aproximação ética à administração do desenvolvimento de software e manutenção do mesmo;
- Profissão: Engenheiros de software melhoraram à reputação da profissão da área de Tecnologia da Informação, indo de acordo com o interesse público;
- Colegas: Engenheiros de software devem ser justos e encorajar seus colegas;
- Si Próprio: Os engenheiros de software estão sempre aprendendo, por meio de experiências vitalícias relativo à prática de sua profissão.
A ética e a responsabilidade profissional estão ficando cada dia mais importante à medida que os sistemas que fazem uso intensivo de software se infiltram em cada aspecto do trabalho e da vida cotidiana.
Em resumo
- A Engenharia de Software é uma disciplina de engenharia que se preocupa com todos os aspectos de produção de software.
- Produtos de software consistem em programas desenvolvidos e documentação associada. Atributos de produto essenciais são manuteníveis, confiáveis, eficientes e usáveis.
- O processo de software consiste em atividades que são envolvidas em produtos de software em desenvolvimento. Atividades básicas são especificações de software, desenvolvimento, validação e evolução.
- Métodos são modos organizados de produzir software. Eles incluem sugestões para o processo a ser seguido, as anotações a ser usadas, regras que governam as descrições de sistema que são produzidas e projetam diretrizes.
- Ferramentas CASE são sistemas de software que são projetados para apoiar atividades rotineiras no processamento de software, como editar desígnio esquematizado, conferir a consistência de diagramas e rastrear e manter testes de programa que foram feitos.
- Engenheiros de software têm responsabilidades pertinentes à profissão de engenharia e à sociedade, não deveriam simplesmente ser interessados apenas em assuntos técnicos.
- Sociedades de profissionais publicam códigos de conduta que definem os padrões de comportamentos esperados dos seus sócios.
Nenhum comentário:
Postar um comentário