Os requisitos do software são a descrição das características e funcionalidades do sistema alvo. Os requisitos transmitem as expectativas dos usuários em relação ao produto de software. Os requisitos podem ser óbvios ou ocultos, conhecidos ou desconhecidos, esperados ou inesperados do ponto de vista do cliente.
- Engenharia de Requisitos
- Processo de Engenharia de Requisitos
- Estudo de Viabilidade
- Reunião de requisitos
- Software Requirement Specification
- Software Requirement Validation
- Requirement Elicitation Process
- Técnicas de Elicitação de Requisitos
- Entrevistas
- Surveys
- Questionários
- Análise de tarefas
- Análise de domínio
- Brainstorming
- Prototipagem
- Observação
- Software Requirements Characteristics
- Software Requirements
- Requisitos funcionais
- Exemplos –
- Requisitos não funcionais
- User Interface requirements
- Analisador de sistema de software
- Métricas e Medidas de Software
Engenharia de Requisitos
O processo de reunir os requisitos do software do cliente, analisá-los e documentá-los é conhecido como engenharia de requisitos.
O objetivo da engenharia de requisitos é desenvolver e manter um documento sofisticado e descritivo de ‘Especificação de Requisitos do Sistema’.
Processo de Engenharia de Requisitos
É um processo de quatro etapas, que inclui –
- Estudo de Viabilidade
- Reunião de Requisitos
- Especificação de Requisitos de Software
- Validação de Requisitos de Software
Deixe-nos ver o processo brevemente –
Estudo de Viabilidade
Quando o cliente se aproxima da organização para obter o produto desejado para o desenvolvimento, ele tem uma idéia aproximada sobre quais funções o software deve realizar e quais características são esperadas do software.
Referenciando a esta informação, os analistas fazem um estudo detalhado sobre se o sistema desejado e sua funcionalidade são viáveis de desenvolver.
Este estudo de viabilidade está focado no objetivo da organização. Este estudo analisa se o produto de software pode ser materializado praticamente em termos de implementação, contribuição do projeto para a organização, restrições de custo e de acordo com os valores e objetivos da organização. Ele explora aspectos técnicos do projeto e do produto como usabilidade, mantenabilidade, produtividade e capacidade de integração.
O resultado desta fase deve ser um relatório de estudo de viabilidade que deve conter comentários e recomendações adequadas para a gerência sobre se o projeto deve ou não ser realizado.
Reunião de requisitos
Se o relatório de viabilidade for positivo para a realização do projeto, a próxima fase começa com a coleta de requisitos do usuário. Os analistas e engenheiros comunicam com o cliente e os usuários finais para conhecer suas idéias sobre o que o software deve fornecer e quais recursos eles querem que o software inclua.
Software Requirement Specification
SRS é um documento criado pelo analista de sistema depois que os requisitos são coletados de várias partes interessadas.
SRS define como o software pretendido irá interagir com o hardware, interfaces externas, velocidade de operação, tempo de resposta do sistema, portabilidade do software através de várias plataformas, capacidade de manutenção, velocidade de recuperação após o crash, Segurança, Qualidade, Limitações, etc.
Os requisitos recebidos do cliente são escritos em linguagem natural. É responsabilidade do analista de sistemas documentar os requisitos em linguagem técnica para que eles possam ser compreendidos e úteis pela equipe de desenvolvimento de software.
SRS deve apresentar as seguintes funcionalidades:
- Requisitos do usuário são expressos em linguagem natural.
- Requisitos técnicos são expressos em linguagem estruturada, que é usada dentro da organização.
- Descrição do projeto deve ser escrita em código Pseudo.
- Format of Forms and GUI screen prints.
- Conditional and mathematical notations for DFDs etc.
Software Requirement Validation
After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked against following conditions –
- If they can be practically implemented
- If they are valid and as per functionality and domain of software
- If there are any ambiguities
- If they are complete
- If they can be demonstrated
Requirement Elicitation Process
Requirement elicitation process can be depicted using the folloiwng diagram:
- Reunião de requisitos – Os desenvolvedores discutem com o cliente e os usuários finais e conhecem suas expectativas a partir do software.
- Organização de requisitos – Os desenvolvedores priorizam e organizam os requisitos em ordem de importância, urgência e conveniência.
-
Negociação & discussão – Se os requisitos forem ambíguos ou se houver alguns conflitos de requisitos de várias partes interessadas, se forem, é então negociado e discutido com as partes interessadas. Os requisitos podem então ser priorizados e razoavelmente comprometidos.
Os requisitos vêm de várias partes interessadas. Para remover a ambiguidade e os conflitos, eles são discutidos por clareza e exatidão. Requisitos irrealistas são razoavelmente comprometidos.
- Documentação – Todos os requisitos formais & requisitos informais, funcionais e não-funcionais são documentados e disponibilizados para o processamento da fase seguinte.
Técnicas de Elicitação de Requisitos
Requisitos A Elicitação é o processo para descobrir os requisitos de um sistema de software pretendido, comunicando-se com clientes, usuários finais, usuários do sistema e outros que tenham interesse no desenvolvimento do sistema de software.
Existem várias maneiras de descobrir os requisitos
Entrevistas
Entrevistas são um meio forte para coletar os requisitos. A organização pode conduzir vários tipos de entrevistas, como por exemplo:
- Entrevistas estruturadas (fechadas), onde todas as informações a serem coletadas são decididas com antecedência, seguem padrões e assuntos de discussão firmemente.
- Entrevistas não estruturadas (abertas), onde as informações a serem coletadas não são decididas com antecedência, são mais flexíveis e menos tendenciosas.
- Entrevistas orais
- Entrevistas escritas
- Entrevistas de uma para uma que são realizadas entre duas pessoas ao longo da tabela.
- Entrevistas em grupo que são realizadas entre grupos de participantes. Elas ajudam a descobrir qualquer requisito em falta, já que muitas pessoas estão envolvidas.
Surveys
A organização pode realizar pesquisas entre os vários interessados, consultando sobre suas expectativas e requisitos do próximo sistema.
Questionários
Um documento com um conjunto pré-definido de perguntas objetivas e respectivas opções é entregue a todos os interessados para responder, que são coletados e compilados.
Uma falha desta técnica é que, se uma opção para algum problema não for mencionada no questionário, o problema pode ser deixado desacompanhado.
Análise de tarefas
Equipes de engenheiros e desenvolvedores podem analisar a operação para a qual o novo sistema é necessário. Se o cliente já possui algum software para realizar determinada operação, ele é estudado e os requisitos do sistema proposto são coletados.
Análise de domínio
Todos os softwares se enquadram em alguma categoria de domínio. O pessoal especializado no domínio pode ser uma grande ajuda para analisar os requisitos gerais e específicos.
Brainstorming
Um debate informal é realizado entre várias partes interessadas e todas as suas contribuições são registradas para análise posterior dos requisitos.
Prototipagem
Prototipagem é construir a interface do usuário sem adicionar funcionalidade detalhada para o usuário interpretar as características do produto de software pretendido. Ele ajuda a dar uma melhor idéia dos requisitos. Se não houver nenhum software instalado no final do cliente para referência do desenvolvedor e o cliente não estiver ciente de seus próprios requisitos, o desenvolvedor cria um protótipo baseado nos requisitos inicialmente mencionados. O protótipo é mostrado para o cliente e o feedback é anotado. O feedback do cliente serve como um input para a coleta de requisitos.
Observação
Equipes de especialistas visitam a organização ou o local de trabalho do cliente. Eles observam o funcionamento real dos sistemas instalados existentes. Eles observam o fluxo de trabalho no final do cliente e como os problemas de execução são tratados. The team itself draws some conclusions which aid to form requirements expected from the software.
Software Requirements Characteristics
Gathering software requirements is the foundation of the entire software development project. Hence they must be clear, correct and well-defined.
A complete Software Requirement Specifications must be:
- Clear
- Correct
- Consistent
- Coherent
- Comprehensible
- Modifiable
- Verifiable
- Prioritized
- Unambiguous
- Traceable
- Credible source
Software Requirements
We should try to understand what sort of requirements may arise in the requirement elicitation phase and what kinds of requirements are expected from the software system.
Requisitos do software devem ser categorizados em duas categorias:
Requisitos funcionais
Requisitos, que estão relacionados com o aspecto funcional do software enquadram-se nesta categoria.
Definem funções e funcionalidades dentro e a partir do sistema do software.
Exemplos –
- Opção de pesquisa dada ao utilizador para pesquisar a partir de várias facturas.
- O usuário deve ser capaz de enviar qualquer relatório para a gerência.
- Os usuários podem ser divididos em grupos e os grupos podem receber direitos separados.
- Deve cumprir as regras de negócios e funções administrativas.
- O software é desenvolvido mantendo a compatibilidade para baixo intacta.
Requisitos não funcionais
Requisitos, que não estão relacionados ao aspecto funcional do software, enquadram-se nesta categoria. Eles são características implícitas ou esperadas do software, que os usuários fazem supor.
Requisitos não-funcionais incluem –
- Security
- Logging
- Storage
- Configuration
- Performance
- Cost
- Interoperability
- Flexibility
- Disaster recovery
- Accessibility
Requirements are categorized logically as
- Must Have : Software cannot be said operational without them.
- Should have : Enhancing the functionality of software.
- Could have : Software can still properly function with these requirements.
- Wish list : These requirements do not map to any objectives of software.
While developing software, ‘Must have’ must be implemented, ‘Should have’ is a matter of debate with stakeholders and negation, whereas ‘could have’ and ‘wish list’ can be kept for software updates.
User Interface requirements
UI is an important part of any software or hardware or hybrid system. A software is widely accepted if it is –
- easy to operate
- quick in response
- effectively handling operational errors
- providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the software. UI is the only way for users to perceive the system. A well performing software system must also be equipped with attractive, clear, consistent and responsive user interface. Otherwise the functionalities of software system can not be used in convenient way. A system is said be good if it provides means to use it efficiently. User interface requirements are briefly mentioned below –
- Content presentation
- Easy Navigation
- Simple interface
- Responsive
- Consistent UI elements
- Feedback mechanism
- Default settings
- Purposeful layout
- Strategical use of color and texture.
- Facultar informação de ajuda
- Abordagem centrada no utilizador
- Configurações de visualização baseadas no grupo.
Analisador de sistema de software
Analisador de sistema numa organização de TI é uma pessoa, que analisa o requisito do sistema proposto e assegura que os requisitos são concebidos e documentados correctamente & correctamente. O papel de um analista começa durante a Fase de Análise de Software do SDLC. É responsabilidade do analista certificar-se de que o software desenvolvido atende aos requisitos do cliente.
Os analistas de sistemas têm as seguintes responsabilidades:
- Analizando e compreendendo os requisitos do software pretendido
- Entendendo como o projeto contribuirá nos objetivos da organização
- Identificar fontes de requisitos
- Validação de requisitos
- Desenvolver e implementar plano de gerenciamento de requisitos
- Documentação de negócios, técnica, requisitos do processo e do produto
- Coordenação com os clientes para priorizar requisitos e remover e ambiguidade
- Finalizar critérios de aceitação com o cliente e outras partes interessadas
Métricas e Medidas de Software
As Medidas de Software podem ser entendidas como um processo de quantificação e simbolização de vários atributos e aspectos do software.
As métricas de software fornecem medidas para vários aspectos do processo e do produto de software.
As medidas de software são requisitos fundamentais da engenharia de software. Elas não só ajudam a controlar o processo de desenvolvimento de software, mas também ajudam a manter a qualidade do produto final excelente.
De acordo com Tom DeMarco, um (Engenheiro de Software), “Você não pode controlar o que você não pode medir”. Por seu ditado, é muito claro como as medidas do software são importantes.
Deixe-nos ver algumas métricas do software:
-
Size Metrics – LOC (Lines of Code), a maioria calculada em milhares de linhas de código fonte entregues, denotadas como KLOC.
Function Point Count é a medida da funcionalidade fornecida pelo software. Function Point count define o tamanho do aspecto funcional do software.
- Complexity Metrics – A complexidade ciclomática de McCabe quantifica o limite superior do número de caminhos independentes em um programa, o que é percebido como complexidade do programa ou de seus módulos. É representada em termos dos conceitos da teoria dos gráficos através da utilização do gráfico de fluxo de controle.
-
Métricas de Qualidade – Defeitos, seus tipos e causas, conseqüência, intensidade de severidade e suas implicações definem a qualidade do produto.
The number of defects found in development process and number of defects reported by the client after the product is installed or delivered at client-end, define quality of product.
- Process Metrics – In various phases of SDLC, the methods and tools used, the company standards and the performance of development are software process metrics.
- Resource Metrics – Effort, time and various resources used, represents metrics for resource measurement.