Requisitos de software

Engenharia de Software

06/11/2013

boa noite a todos,

trabalhei em uma empresa em que as telas do sistema eram muito amarradas, por exemplo, ficava-se tentando adivinhar o que o usuário iria fazer de "cagada".

Por exemplo, fazia-se validações para não permitir cadastrar unidades de produtos com o mesmo nome, não deixava-se cadastrar estados com o mesmo nome, datas, eram todas validadas. Ou seja tudo que pudesse fazer o usuário fazer "besteira" era bloqueado.
O que vocês acham disso? é uma boa prática? Ou o usuário deve ser responsável pelo que faz no software?

Felipe Rosa

Felipe Rosa

Curtidas 0

Melhor post

Marisiana Battistella

Marisiana Battistella

31/07/2014

Sem dúvida!
Segundo o SWEBOK (Corpo de Conhecimento da Engenharia de Software), versão 2004, as áreas de conhecimento da Engenharia de Software são:
- Requisitos (Requirements) de Software
- Projeto (Design) de Software
- Construção (Construction) de Software
- Teste (Testing) de Software
- Manutenção (Maintenance) de software
- Gerência de Configuração de Software
- Gerência de Engenharia de Software
- Processos de Engenharia de Software
- Ferramentas e Métodos de Engenharia de Software
- Qualidade (Quality) de Software
[url]http://pt.wikipedia.org/wiki/Engenharia_de_software[/url]
O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
[url]http://pt.wikipedia.org/wiki/Teste_de_software[/url]
A qualidade de software é uma área de conhecimento da engenharia de software que objetiva garantir a qualidade do software através da definição e normatização de processos de desenvolvimento
[url]http://pt.wikipedia.org/wiki/Qualidade_de_Software[/url]

Com base nessas informações, pode-se concluir que Testes de Software é uma etapa fundamental a ser executada para se obter a qualidade, pois a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento.
Em todos os processos do desenvolvimento existe uma etapa de verificação que consiste em analisar se etapa do processo está atendendo os requisitos de qualidade de software daquela etapa.
GOSTEI 1

Mais Respostas

Fernanda Acacia

Fernanda Acacia

06/11/2013

acredito que o caminho não é esse, mas a casos e casos...um treinamento do sistema é o basico.
GOSTEI 0
Aluisio Cavalcante

Aluisio Cavalcante

06/11/2013

procura saber mais sobre permissões de usuarios.
GOSTEI 0
Roniere Almeida

Roniere Almeida

06/11/2013

boa noite a todos,

trabalhei em uma empresa em que as telas do sistema eram muito amarradas, por exemplo, ficava-se tentando adivinhar o que o usuário iria fazer de "cagada".

Por exemplo, fazia-se validações para não permitir cadastrar unidades de produtos com o mesmo nome, não deixava-se cadastrar estados com o mesmo nome, datas, eram todas validadas. Ou seja tudo que pudesse fazer o usuário fazer "besteira" era bloqueado.
O que vocês acham disso? é uma boa prática? Ou o usuário deve ser responsável pelo que faz no software?



é só não deixar passar pelo banco de dados.
GOSTEI 0
Marcio Araujo

Marcio Araujo

06/11/2013

Felipe, o que deseja realmente fazer com o sistema?
GOSTEI 0
Roniere Almeida

Roniere Almeida

06/11/2013

como ficou sua duvida amigo?
GOSTEI 0
Felipe Rosa

Felipe Rosa

06/11/2013

So queria saber o que vocês acham dessa prática. Acredito que o nome para isso pode ser programação defensiva
GOSTEI 0
Felipe Rosa

Felipe Rosa

06/11/2013

So queria saber o que vocês acham dessa prática. Acredito que o nome para isso pode ser programação defensiva
GOSTEI 0
Marcos Oliveira

Marcos Oliveira

06/11/2013

Felipe, eu penso da seguinte forma:

Se você não "amarrar" nada no cadastro, seu cliente terá problemas e lógico, precisará de suporte. Isso pode sobrecarregar o suporte da empresa, já que o cliente muitas vezes por ser leigo, não sabe o que está fazendo errado.
Por outro lado, se você "amarrar" muito, pode sobrecarregar a programação, uma vez que esse tipo de tratamento pode ser muito trabalhoso.

Acho que deve haver aí um meio termo, entre facilitar a vida do suporte e a vida da programação, sem esquecer de facilitar a vida do cliente.
No meu caso, eu opto por tratar tudo de forma a ficar claro pro cliente. Quanto menos ele me ligar, melhor pra mim.

Att,

Marcos
GOSTEI 0
Carlos Thompson

Carlos Thompson

06/11/2013

Felipe, eu penso da seguinte forma:

Se você não "amarrar" nada no cadastro, seu cliente terá problemas e lógico, precisará de suporte. Isso pode sobrecarregar o suporte da empresa, já que o cliente muitas vezes por ser leigo, não sabe o que está fazendo errado.
Por outro lado, se você "amarrar" muito, pode sobrecarregar a programação, uma vez que esse tipo de tratamento pode ser muito trabalhoso.

Acho que deve haver aí um meio termo, entre facilitar a vida do suporte e a vida da programação, sem esquecer de facilitar a vida do cliente.
No meu caso, eu opto por tratar tudo de forma a ficar claro pro cliente. Quanto menos ele me ligar, melhor pra mim.

Att,

Marcos


Acredito que seja como o Marcos falou, o ideal é buscar o equilíbrio e bom senso para não bloquear ou liberar demais o sistema para que o usuário venha a cometer algumas falhas de preenchimento. Algumas coisas básicas como data, campo do tipo numérico não permitir texto. Lembrando sempre que essas validações ou restrições devem vir acompanhadas de mensagens (Avisos) para que o usuário entenda o porquê da restrição.
O foco principal é atender as necessidades do cliente buscando "facilitar para ele o uso de sistema" (Usabilidade), porque se o software não facilita sua vida então é melhor usar um formulário em papel que talvez dê menos trabalho. "Esse pode ser o pensamento de um cliente".
Abraços.
GOSTEI 0
Alex Lekao

Alex Lekao

06/11/2013

Ola Boa tarde!!!

Concordo com o Marcos e com o Thonsom.

e o Roniere, mencionou algo que eh interessante, alguns tratamentos podem ser dados no banco de dados, com isso integrando esse tratamento feito no banco com algo no sistema, pode ficar mais tranquilo de se contornar essa questao.

Agora na minha opniao, deve-se prever o maximo possivel de problemas, desde que nao interfira no desempenho e usabilidade, como ja foi mencionado, para que o usuario nao cometa erros.

Vejo sistemas que nao tem esses bloqueios unica e exclusivamente para se esquivar da responsabilidade da culpe pelo erro, ou operacao errada no caso, ai eh mais facil deixar a cargo do usuario, assim vc nao eh "responsavel", eu particularmente nao concordo.

Se vc deixar muito aberto, vc tem que ter um Phd para trabalhar e fazer algumas operacoes, embora se vc bloquear demais eh melhor um robo para fazer o trabalho ou usar papelo como foi dito que eh menos trabalhoso.

O melhor dos dois mundo eh interessante, se ha bloqueios mas nao eh burocratico e engessado demais, pq nao?

Abraco.

Alex - Lekao
GOSTEI 0
Roniere Almeida

Roniere Almeida

06/11/2013

tambem concordo com o que foi escrito acima, mas não basta uma mensagem(confiar demais). deve-se existir uma politica.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

muito bom mesmo o que foi escrito acima, não tinha pensado dessa forma.
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Na questão da validação deve ser desenhado com o cliente como será os tratamentos, pois em um sistema qualquer pode ser tratado tanto pelo banco de dados, client side e/ou server side.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Varallo, pela sua experiencia, existe uma formula magica do que deve ser validado pelo banco, linguagem ou isso realmente depende do sistema?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Na verdade as empresas precisam ter definido um processo de desenvolvimento, pois em muitos projetos quem faz a análise é o desenvolvedor, sendo que muitos desses profissionais tem a parte técnica e não a comunicativa. Esse é um dos fatores para o projeto não ser entregue dentro do prazo e ter um alto custo.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

é um erro que ainda cometem, um profissional que faz varias coisas então.
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Um Severino da vida...
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

verdade, da arrepio só de pensar.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

boa noite a todos,

trabalhei em uma empresa em que as telas do sistema eram muito amarradas, por exemplo, ficava-se tentando adivinhar o que o usuário iria fazer de "cagada".

Por exemplo, fazia-se validações para não permitir cadastrar unidades de produtos com o mesmo nome, não deixava-se cadastrar estados com o mesmo nome, datas, eram todas validadas. Ou seja tudo que pudesse fazer o usuário fazer "besteira" era bloqueado.
O que vocês acham disso? é uma boa prática? Ou o usuário deve ser responsável pelo que faz no software?

Não considero essas questões que descrevestes como besteiras que o usuário possa fazer.
É responsabilidade de quem fornece o produto garantir a qualidade dele. Se vc não fizer todas validações e controles necessários, vocês está deixando de cumprir regras básicas que vão interferir na qualidade dos dados que serão armazenados e isso vai ter muitas consequências quando o cliente for analisar seus dados para tomar decisões.
Essas questões não devem ser tratadas como besteira pois são questões que interferem nos resultados e dificultam a gestão empresarial devido a baixa qualidade de dados que foi armazenada.
É obrigação dos desenvolvedores garantir que os dados sejam armazenados da melhor forma possível além de realizar um bom treinamento aos usuários na entrega do produto.
Tem questões q podem ser insignificantes para um usuário que trabalha, por exemplo, no caixa da loja, mas para os gestores e tomadores de decisões são fundamentais.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Me desculpem se me exaltei no q falei...
Mas afirmo q é um inferno analisar os dados de um estrutura mal elaborada, com informações inconsistentes e com falhas nas validações de dados que deveriam ter sido tratadas por quem desenvolveu o sistema.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Marisiana, essa situação é bem complicada pois envolver pessoas, sejam da T.I ou os usuarios finais. cliente x desenvolvedor(analista) e profissional de B.I e gestores. se algo não for bem feito no inicio, logo, teremos problemas futuros.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Isso mesmo Fernanda!
Nesse sentido, muitos problemas podem ser evitados se pelo menos a TI fizer a parte dela completa.
Conforme o Thompson mencionou:
Algumas coisas básicas como data, campo do tipo numérico não permitir texto. Lembrando sempre que essas validações ou restrições devem vir acompanhadas de mensagens (Avisos) para que o usuário entenda o porquê da restrição.
O foco principal é atender as necessidades do cliente buscando "facilitar para ele o uso de sistema" (Usabilidade), porque se o software não facilita sua vida então é melhor usar um formulário em papel que talvez dê menos trabalho. "Esse pode ser o pensamento de um cliente".

O cliente não quer saber o que os profissionais de TI devem ou não fazer ele quer que o produto final que ele vai receber seja bom e de qualidade.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Verdade, delicado demais, mas é para isso que serve um analista, para entender tudo mas tudo mesmo que o cliente quer.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Inclusive! =)
Mas a qualidade que o cliente quer ver no produto não está apenas no resultado do trabalho do analista de sistemas.
Quando se fala na qualidade do produto final envolve o resultado do trabalho de cada membro da equipe.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

eu sei, mas qualidade deve começar desde o principio. rsrsrsrsrs
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Exato!
É pra isso que existe uma área de conhecimento dentro da Engenharia de software que se chama "Qualidade de Software".
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

existe alguma relação entre qualidade de software com testes de software?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Ainda é difícil inserir um processo de desenvolvimento de qualidade nas empresas como deveria ser feito um software, pois vejo em muitos relatos que tem lugares que não tem testadores, só desenvolvedores para analisar, desenvolver e gerenciar.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...
GOSTEI 0
Alex Lekao

Alex Lekao

06/11/2013

esses pontos sao complexos demais.

temos pequenas empresas bem estruturada como grandes empresas e temo grandes e medias empresas estruturadas como pequenas.

jja vivi nos dois cenarios, eh muito complicado. srsr
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


no processo de desenvolvimento e em seguidas os testes, por etapas ou modulos?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


Mas isso na realidade é bem difícil de acontecer. Nada contra, pois também sou desenvolvedor, pois pela experiência que tenho e vejo nos estudos de profissionais consagrados, poucos são desenvolvedores que testam ...
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


Mas isso na realidade é bem difícil de acontecer. Nada contra, pois também sou desenvolvedor, pois pela experiência que tenho e vejo nos estudos de profissionais consagrados, poucos são desenvolvedores que testam ...


assunto delicado pois os profissionais que estudam para ser desenvolvedor serão desenvolvedores e não testadores, o problema está na empresa e nos processos de desenvolvimento de software. problemas que envolvem profissionais e o produto, enfim é complicado demais.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


no processo de desenvolvimento e em seguidas os testes, por etapas ou modulos?

Depende de como foi definido no projeto, se as entregas serão por módulos, cada módulo deve ser testado e aprovado antes de ser validado com o cliente.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


Mas isso na realidade é bem difícil de acontecer. Nada contra, pois também sou desenvolvedor, pois pela experiência que tenho e vejo nos estudos de profissionais consagrados, poucos são desenvolvedores que testam ...

Isso é verdade. Vejo muito disso...
Não estou querendo criticar ou dizer q tá tudo errado, apenas desenvolvi a discussão para se fazer uma reflexão sobre como é a realidade e como deveria ser.
Vc não acha que todo desenvolvedor deve ser também analista e testador?
Como o desenvolvedor vai garantir que a solução que ele criou é eficaz e eficiente se ele não souber analisar a situação para encontrar a melhor solução a ser utilizada e se ele não tiver testado para ver se realmente está de acordo com o q foi proposto?
De certa forma todos são, mas como nem todos param pra pensar nesses detalhes, nem todos desenvolvem as habilidades que deveriam desenvolver. Ou, então, desenvolvem, mas não distinguem e por isso deixam de fazer com excelência.
GOSTEI 1
Fernanda Acacia

Fernanda Acacia

06/11/2013

Mas nesses casos, pode ser definido no processo que próprio desenvolvedores testem as aplicações...


no processo de desenvolvimento e em seguidas os testes, por etapas ou modulos?

Depende de como foi definido no projeto, se as entregas serão por módulos, cada módulo deve ser testado e aprovado antes de ser validado com o cliente.


dependendo do cronograma do projeto seria interessante fazer, eu acho.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Lição básica de gerência: “Se você não pode medir, você não pode gerenciar” (Peter Drucker)
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Acho que o problema poderia ser resolvido em ter algum sindicato próprio para a categoria de todos os profissionais de TI. Por exemplo, como é medido que o desenvolvedor é júnior, pleno ou sênio?????

Conheci pessoas que trabalham em empresas que não sabem nem o que cadastrar na carteira se é programador ou desenvolvedor ou técnico....huhuauahua

Acredito que com um sindicato, o profissional poderia tirar um registro como um advogado precisa fazer para começar as suas atividades e ter credibilidade. Além disso, essa ação poderia trazer para mais qualidade no desenvolvimento e entrega dos sistemas.

Só acho!
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Lição básica de gerência: “Se você não pode medir, você não pode gerenciar” (Peter Drucker)


bem lembrado.

Varallo, acho interessante essa discussão, da entender que o trabalho qualificado de T.I, não importando se é desenvolvedor, DBA, analista(todos os tipos), todos serão considerados a pessoa que mexe com informatica e nada mais, sobre a questão da carteira, é triste ver situações assim.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Permitam-me uma observação...
Engenharia de software não tem nada a ver com funções, cargos e salários...
Isso que o Varallo comentou é outro caso, é uma questão organizacional e de RH.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

eu sei Marisiana, mas quase sempre essas discussões fogem do foco.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Uhum... Mas de acordo com a sequência da conversa é isso que se pode entender. Apenas fiz a observação pra não deixar margem pra esse tipo de interpretação...
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

06/11/2013

boa noite a todos,

trabalhei em uma empresa em que as telas do sistema eram muito amarradas, por exemplo, ficava-se tentando adivinhar o que o usuário iria fazer de "cagada".

Por exemplo, fazia-se validações para não permitir cadastrar unidades de produtos com o mesmo nome, não deixava-se cadastrar estados com o mesmo nome, datas, eram todas validadas. Ou seja tudo que pudesse fazer o usuário fazer "besteira" era bloqueado.
O que vocês acham disso? é uma boa prática? Ou o usuário deve ser responsável pelo que faz no software?



Obviamente que quanto mais tratamentos melhor, não podemos simplesmente deixar na "mão do usuário" e esperar que ele faça tudo conforme mandam as regras, temos que pensar que ele sempre fará pelo lado errado.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Uhum... Mas de acordo com a sequência da conversa é isso que se pode entender. Apenas fiz a observação pra não deixar margem pra esse tipo de interpretação...


tudo certo então, entendi a sua observação.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013


Obviamente que quanto mais tratamentos melhor, não podemos simplesmente deixar na "mão do usuário" e esperar que ele faça tudo conforme mandam as regras, temos que pensar que ele sempre fará pelo lado errado.


Outra questão a ser considerada, é que o usuário que recebeu treinamento hoje, amanhã pode sair da empresa e o novo usuário não terá o mesmo treinamento que o usuário anterior teve.
Sem contar que tem usuários que "não estão nem aí" com a qualidade da informação que estão alimentando no sistema (situação bem comum em cadastros de produtos, clientes, etc.).
GOSTEI 1
Thiago Palmeira

Thiago Palmeira

06/11/2013

Também tem muitos casos em que o usuário acaba não repassando todas as regras para o analista, pois acredita que o sistema tomará o lugar dele na empresa.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

Infelizmente ainda tem pessoas que pensam assim.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

Também tem muitos casos em que o usuário acaba não repassando todas as regras para o analista, pois acredita que o sistema tomará o lugar dele na empresa.


ja ouvi falar bastante de situações assim, nesses casos o que pode se tentar fazer para minimizar o "estrago"?
GOSTEI 0
Thiago Palmeira

Thiago Palmeira

06/11/2013

Acredito que o profissional precise já ter experiência e recursos para conseguir obter a informação. Não é fácil!
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

experiencia com os erros e experiencia com diversos tipos de sistema, ou seja, conhecer varios sistemas e como eles deve se comportar, o que ter e o que não ter.
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

06/11/2013

O ponto importante é tentar fazer uma "pesquisa" no cliente para ver quem são as pessoas mais indicadas para repassar as informações necessárias.
Geralmente tem que ser um colaborador que esteja a mais tempo na empresa e que tenham uma boa posição (cargo), pois isso indica que é uma pessoa que tem mais compromisso com a empresa. Além de ter que ser uma pessoa que conheça os processos que são realizados na empresa.
GOSTEI 0
Fernanda Acacia

Fernanda Acacia

06/11/2013

É exatamente isso, não pode ser qualquer um.
GOSTEI 0
POSTAR