Universidade Federal de Pernambuco
Departamento de Informática
Curso de Especialização
em Tecnologia da Informação
Engenharia de Software
Questionário
para
Discussão e Reflexão
Aluna: Danielle Novaes de Siqueira Silva
1997
Questionário para Discussão e Reflexão
- Qual a importância em se manter o histórico das tomadas de
decisão ao longo do ciclo de vida de desenvolvimento do software?
r- É primordial para os envolvidos no desenvolvimento do software o
registro das decisões tomadas ao longo do ciclo de vida do software.
Algumas razões são enumeradas abaixo:
1. O registro das decisões tomadas oficializa um acordo entre as
partes envolvidas no projeto, o que evita conflitos futuros decorrentes
da insatisfação do usuário com o produto final apresentado. Através
do registro em documento apropriado, a equipe de desenvolvimento
terá condições de se defender de acusações infundadas por parte do
cliente/usuário.
2. Outro aspecto, talvez o mais importante, se refere a
necessidade de se registrar as decisões tomadas diante de
determinados problemas pelo simples fato de evitar que, futuramente,
diante de problemas semelhantes, o profissional seja capaz de decidir
pela melhor solução, baseado num histórico construído ao longo do
tempo. Aos profissionais envolvidos na manutenção do sistema, esse
registro é indispensável.
- Na sua opinião, quais as principais diferenças entre o que advoga
a Engenharia de Software e o desenvolvimento de software nas
empresas? Essas diferenças podem ser facilmente contornadas ou
não?
r- Em determinadas circunstâncias, é muito difícil para os
profissionais de informática seguirem a risca o que reza os princípios
de Engenharia de Software. Situações adversas freqüentemente são
encontradas ao longo do ciclo de vida do software, e que não estão
previstas nos manuais.
Para adaptar os princípios de Engenharia de software à
realidade e às necessidades da empresa, muitas desenvolvem
metodologias próprias de desenvolvimento de Sistemas.
- Explique porque, em sistemas de grande porte, é recomendado
que o protótipo seja jogado fora.
r- Existem situações, inclusive freqüentes, em que o usuário define
um conjunto de objetivos gerais para o software, mas não sabe
expressar com clareza os requisitos de entrada, processamento e
saída. Em outros casos, o próprio desenvolvedor não tem a certeza da
eficiência de um algoritmo, da adaptabilidade do Sistema Operacional
ou da forma que a interação Homem-Máquina deve assumir. Para
suprir essas deficiências e dirimir as dúvidas entre as partes,
freqüentemente o desenvolvedor recorre a elaboração de programas
que implementam um subconjunto da funções exigida, ou que
retratam a interface com o usuário. Esse programas, desenvolvidos
com o propósito de servir como instrumento de validação de parte do
software, é conhecido como protótipo. Geralmente, são desenvolvidos
em microcomputadores e com linguagens de 4ª geração.
Correntes divergem quanto ao destino do protótipo após sua
utilização. Alguns defendem que o protótipo deve evoluir, originando o
produto final. Outros discordam, afirmando que ele deve ser jogado
fora e iniciada a elaboração do sistema definitivo. No primeiro caso,
argumenta-se que jogar fora o protótipo aumenta o custo do Sistema e
desperdiça tempo. No segundo, portanto, as razões apontadas são
mais convincentes. Dentre elas, destacamos:
1. O primeiro sistema construído geralmente é lento, grande e
desajeitado em uso;
2. Como existe a pressa em colocar o protótipo em
funcionamento, o desenvolvedor não está preocupado com a qualidade
global do software e a manutenibilidade a longo prazo. Além disso,
algoritmos ineficientes podem ser implementados simplesmente para
demonstrar capacidade.
Apesar de alguns problemas que possam advir com a
prototipação, como a insistência do cliente em usá-lo como produto
final, ela ainda é considerada um paradigma muito eficiente da
Engenharia de Software. A chave é definir as regras desde o começo,
ou seja, o cliente e o desenvolvedor devem estar cientes que o objetivo
do protótipo é apenas de servir como mecanismo para definir
requisitos. Ao final da validação, deverá ser descontado e substituído
pelo software real já projetado.
- Na empresa onde você trabalha é empregada alguma técnica de
Engenharia de Software ou pretende-se empregar? Em caso
afirmativo, alguns dos modelos de ciclo de vida de software seria
adequado para se usar? Por quê?
r- Desconheço, pois atualmente não trabalho no setor de informática.
- Na sua opinião, quais são as necessidades de treinamento e
formação básicas ideais para o engenheiro de software do futuro.
r- O engenheiro de software é o profissional encarregado pela
transformação dos requisitos definidos na especificação formal no
código propriamente dito. Qualidade de software e otimização de
algoritmos são preocupações freqüentes a esse profissionais. Para
tanto, é indispensável que ele sempre esteja atualizado com as
tecnologias presentes e as tendências de mercado. Participação em
cursos, congressos e encontros com profissionais da área, bem como a
leitura de revistas especializadas e periódicos são maios para se
manter em dia com essas tecnologias.
Quanto a formação básica, considero indispensável a realização
de um curso superior na área de Ciência da Computação ou
Processamento de Dados, que oferecem a base do conhecimento
necessário ao trabalho que será desempenhado por esses
profissionais. Não que outra pessoa com formação acadêmica diferente
da apresentada não consiga ter sucesso, mas para tanto terá que
investir muito em cursos que abordem conteúdos básicos como
algoritmo, Engenharia de Software, etc.... Formação numa linguagem
específica não o habilita a construir software com qualidade.
Download

Questionário Para Discussão e Reflexão