Você está na página 1de 41

Programação e Desenvolvimento de Software 2

Módulo/Biblioteca
+Requisitos
Continuação da aula 2...

Aplicação

Usuário

Especificação

Programador

Implementação

Programação e Desenvolvimento de Software 2 2


Módulo/Biblioteca (Fazer Juntos...)
Criar o Módulo Ponto:
Crie um arquivo de cabeçalho chamado ponto.h com as declarações necessárias para o módulo.
Crie um arquivo de implementação chamado ponto.c com as definições das funções relacionadas aos pontos.
Definir a Estrutura Ponto:
No arquivo ponto.h, defina a estrutura Ponto com os campos x e y.
Função para Criar um Ponto:
No arquivo ponto.c, implemente uma função chamada criar_ponto que recebe as coordenadas x e y como
argumentos e retorna um ponto.
Função para Calcular a Distância entre Dois Pontos:
Implemente uma função chamada calcular_distancia que recebe dois pontos como argumentos e retorna a
distância entre eles.
A fórmula para calcular a distância entre dois pontos (x1, y1) e (x2, y2) é: distancia = sqrt((x2 - x1)^2 + (y2 - y1)^2).
Exemplo de Uso:
No arquivo principal (por exemplo, main.c), inclua o arquivo de cabeçalho ponto.h.
Crie pontos, calcule a distância entre eles e exiba o resultado.

Programação e Desenvolvimento de Software 2 3


Programação e Desenvolvimento de Software 2 4
Programação e Desenvolvimento de Software 2 5
Programação e Desenvolvimento de Software 2 6
GIT

Programação e Desenvolvimento de Software 2 7


GIT

Programação e Desenvolvimento de Software 2 8


GIT

Programação e Desenvolvimento de Software 2 9


GIT

Programação e Desenvolvimento de Software 2 10


GIT

Programação e Desenvolvimento de Software 2 11


GIT

Programação e Desenvolvimento de Software 2 12


GIT

Programação e Desenvolvimento de Software 2 13


GIT

Programação e Desenvolvimento de Software 2 14


GIT

Programação e Desenvolvimento de Software 2 15


GIT

Programação e Desenvolvimento de Software 2 16


GIT

Programação e Desenvolvimento de Software 2 17


GIT

Programação e Desenvolvimento de Software 2 18


GIT

Programação e Desenvolvimento de Software 2 19


Programação e Desenvolvimento de Software 2 20
Ciclo de vida

Programação e Desenvolvimento de Software 2 21


Ciclo de vida x Processo de software

O modelo de ciclo de vida é como um plano ou um mapa que orienta


o desenvolvimento do software, enquanto o processo de software é a
realização efetiva desse plano, envolvendo as ações concretas para
construir o software

Programação e Desenvolvimento de Software 2 22


Ciclo de Vida
Cascata: Este é um modelo linear e sequencial onde cada fase deve ser concluída antes
da próxima começar. Não há sobreposição ou iteração entre as fases.

Espiral: Combina elementos do modelo cascata com iterações, permitindo avaliações e


refinamentos ao longo do desenvolvimento.

Incremental: O software é construído e entregue em partes, cada uma adicionando


funcionalidades até que o produto esteja completo.

Ágil: Um conjunto de princípios para desenvolvimento de software sob o qual requisitos


e soluções evoluem através do esforço colaborativo de equipes auto-organizadas e
cross-funcionais.

Programação e Desenvolvimento de Software 2 23


Ciclo de Vida

Programação e Desenvolvimento de Software 2 24


Ciclo de Vida

Programação e Desenvolvimento de Software 2 25


Processo de software
Reuniões Diárias
Programação em par
Revisão de Código
Testes (Carga, estresse, integração,...)

Programação e Desenvolvimento de Software 2 26


Processo de software

Programação e Desenvolvimento de Software 2 27


Processo de software - Requisitos

Programação e Desenvolvimento de Software 2 28


Especificação de Software - Requisitos

Programação e Desenvolvimento de Software 2 29


Especificação de Software - Requisitos

Programação e Desenvolvimento de Software 2 30


Requisitos

 Funcionais
 Serve para tratar sobre funcionalidades do sistema
(comportamento)
 Exemplo: Elevador  mudar de andar

 Não Funcional (restrição)


 Exemplo  1 segundo por andar

Programação e Desenvolvimento de Software 2 31


Regra de Negócio

 Independente do mundo computacional


 Processos
 Afeta os requisitos

O que, por que, por quem, quando, onde, como?

Programação e Desenvolvimento de Software 2 32


Requisito Funcional

Autenticar no Sistema

O que: O sistema deve permitir que o usuário faça login usando seu nome de
usuário e senha.
Por que: Para garantir que apenas usuários autorizados tenham acesso ao sistema.
Por quem: Usuários registrados com credenciais válidas.
Quando: Sempre que o usuário desejar acessar o sistema.
Onde: Na interface principal do sistema.
Como: Através de um formulário de autenticação seguro.

Programação e Desenvolvimento de Software 2 33


Requisito Não Funcional

Autenticar no Sistema

Desempenho:
O sistema deve responder a solicitações de login em menos de 2 segundos em 95% dos
casos.

Segurança:
O sistema deve registrar todas as tentativas de login falhadas e bem-sucedidas.

Programação e Desenvolvimento de Software 2 34


Requisito Funcional

 Algo que o software deve executar


 Verbo no infinitivo
 Buscar, definir, cadastrar, solicitar, etc

Programação e Desenvolvimento de Software 2 35


A Rede de Hotéis Sol Nascente está desenvolvendo um novo sistema de
reservas online para melhorar a experiência de seus clientes. O sistema
permitirá que os usuários pesquisem quartos disponíveis, façam reservas,
modifiquem reservas existentes e cancelem reservas com até 48 horas de
antecedência sem custo. Além disso, o sistema deve ser seguro, as
requisições não devem demorar mais de três segundos e estar disponível
98% ao longo do ano.

Tarefa:
Identifique pelo menos cinco requisitos funcionais e dois requisitos não funcionais
para o sistema de reservas online da Rede de Hotéis Sol Nascente. Considere as
necessidades dos usuários finais, bem como as metas de negócios do hotel.
O que, por que, por quem, quando, onde, como?

Programação e Desenvolvimento de Software 2 36


Requisitos Funcionais
Criar reservas
O que: Permitir a criação de novas reservas.
Por que: Para facilitar o processo de reserva para os clientes.
Por quem: Qualquer cliente com acesso à internet.
Quando: A qualquer momento, conforme a necessidade do cliente.
Onde: No site ou aplicativo móvel do hotel.
Como: Preenchendo um formulário online com as informações necessárias.

Visualizar reservas
O que: Visualização de reservas existentes.
Por que: Para que os clientes possam gerenciar suas reservas.
Por quem: Clientes que já fizeram reservas.
Quando: Em qualquer estágio antes da data de check-in.
Onde: Na seção de perfil do usuário no sistema de reservas.
Como: Acessando a conta pessoal e navegando até a seção de reservas.

Programação e Desenvolvimento de Software 2 37


Requisitos Funcionais
Modificar reservas
O que: Modificação de reservas.
Por que: Para oferecer flexibilidade aos clientes em seus planos de viagem.
Por quem: Clientes que desejam alterar suas reservas.
Quando: Até um determinado período antes do check-in.
Onde: No sistema de reservas online.
Como: Utilizando a opção de edição na reserva específica.

Cancelar reservas
O que: Cancelamento de reservas.
Por que: Para permitir que os clientes desistam de suas reservas sem penalidades.
Por quem: Clientes que não podem ou não querem mais manter a reserva.
Quando: Até 48 horas antes do check-in.
Onde: No sistema de reservas online.
Como: Selecionando a opção de cancelamento na reserva específica.

Programação e Desenvolvimento de Software 2 38


Requisitos Não Funcionais
O que: Segurança dos dados de transação.
Por que: Para proteger as informações pessoais e financeiras dos clientes.
Por quem: O sistema de reservas com protocolos de segurança.
Quando: Em todas as transações online.
Onde: No processo de comunicação entre o cliente e o servidor.
Como: Implementando criptografia SSL e outras medidas de segurança.

O que: Desempenho na resposta às reservas.


Por que: Para garantir uma experiência de usuário rápida e eficiente.
Por quem: O sistema de reservas.
Quando: Durante todas as transações de reserva.
Onde: No servidor do sistema de reservas.
Como: Otimizando o código e a infraestrutura do servidor.

Programação e Desenvolvimento de Software 2 39


Em uma pitoresca cidade conhecida como Vale dos Livros, a Biblioteca Comunitária Aurora é um centro de
conhecimento e cultura há gerações. Com suas paredes repletas de tomos antigos e novos lançamentos, a biblioteca
sempre foi um local de encontro para os ávidos leitores da cidade. No entanto, com o avanço da tecnologia e as
mudanças nas necessidades da comunidade, a biblioteca se viu diante de um desafio: modernizar suas operações
preservando o charme histórico que tanto encanta seus visitantes.

Para enfrentar esse desafio, a biblioteca decidiu implementar um novo sistema de gerenciamento de biblioteca. Este
sistema não só permitirá que os membros pesquisem o catálogo de livros de forma eficiente, mas também oferecerá
funcionalidades como reservas online, renovação de empréstimos e inscrição em programas de leitura e eventos
culturais. Além disso, a biblioteca deseja que o sistema seja uma extensão de sua hospitalidade, garantindo que seja
acessível a todos, seguro contra ameaças digitais e fácil de manter para a equipe.

A Biblioteca Aurora espera que, com essas melhorias, possa continuar a ser um farol de aprendizado e descoberta,
atraindo não apenas os habitantes locais, mas também visitantes de terras distantes, ansiosos por explorar os tesouros
literários que o Vale dos Livros tem a oferecer.

O que, por que, por quem, quando, onde, como?


Identifique cinco requisitos funcionais e dois requisitos não funcionais

Programação e Desenvolvimento de Software 2 40


A QuickCart busca desenvolver um sistema de logística avançado que suporte a
missão de fornecer entregas no mesmo dia para o seus clientes. O sistema deve ser
capaz de gerenciar e rastrear eficientemente o inventário, além de otimizar as rotas
de entrega. A otimização das rotas de entrega é crucial e deve ser realizada através da
integração com sistemas de mapeamento e GPS, permitindo que os motoristas
escolham as rotas mais eficientes. Espera-se que o sistema seja altamente escalável,
confiável e seguro, integrando-se perfeitamente com os sistemas dos parceiros. O
objetivo final é melhorar a eficiência operacional, reduzir os tempos de entrega e
aumentar a satisfação do cliente.

O que, por que, por quem, quando, onde, como?


Identifique cinco requisitos funcionais e dois requisitos não funcionais

Programação e Desenvolvimento de Software 2 41

Você também pode gostar