Anato - HUB
Relatório Parcial
Resumo da Proposta
-
Sistema informatizado que facilite o processo de obtenção, armazenamento e acompanhamento do status de laudos.
-
Análise estática e dinâmica, BDD (Behavior Driven Development), Testes funcionas, e por fim o TDD
Dificuldades Encontradas
- Dificuldade no uso do framework Django
- Dados dos usuários em banco de dados remoto.
- Configuração do ambiente de desenvolvimento.
Acompanhamento do Cronograma
Três atividades principais:
- Elaboração de um protótipo não funcional do software.
- Implementação um sistema de autenticação.
- Implementação de cadastro/exclusão/edição/consulta de pedido de exame
- Desenvolvimento não acompanhou o cronograma previsto.
- Cronograma reavaliado
Aplicação de V&V
Prototipagem
Prototipagem
- Oferece uma avaliação prévia do sistema tanto pelo cliente, como pelo desenvolvedor.
- Protótipos podem ser classificados quanto sua fidelidade.
- Foram apresentados dois protótipos na reunião realizada no dia 29/09/2014 na Unidade de Anatomia Patológica do HUB.
Balsamiq Mockups
- Permite a criação de modelos de sistemas web, mobile ou desktop.
- Oferece um meio termo entre protótipos de baixa e de alta fidelidade
- Elaborar as telas de forma rápida e funcional

WebNode
- Possibilidade de criar páginas reais na internet de forma gratuita.
- Com apenas alguns cliques, vários elementos interativos podem ser adicionados e posicionados na tela.
- Cliente consigue visualizar algo mais próximo da realidade.

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Protótipos Desenvolvidos

Aplicação de V&V
BDD
Behavior Driven Development
- Técnica de desenvolvimento ágil guiado pelo comportamento do negócio.
- Combinação de linguagem nativa e ubíqua.
- A escrita de um comportamento funcional do sistema é composta por duas partes.
Funcionalidade
Funcionalidade : [Nome]
Para [Valor ao negócio]
Eu, como [Papel]
Desejo poder realizar [Funcionalidade]
Cenários
Cenário: [Nome]
Dado que [Estado inicial do sistema]
Quando [Ação a ser realizada no sistema]
Então [Coisas que o sistema deve fazer após a ação do Quando]
Exemplo: Autenticação
Funcionalidade: Eu, como usuario,
Desejo efetuar login no sistema
Para poder utiliza-lo
Cenario: Usuario digita apenas o nome de usuario
Dado que o usuario acessa o sistema
E aparece a tela de login
Quando o usuario digita seu nome
Então o sistema nao permite que o botao entrar seja clicado
Cenario: Usuario digita apenas a senha
Dado que o usuario acessa o sistema
E aparece a tela de login
Quando digita a sua senha
Então o sistema nao permite que o botao entrar seja clicado
Cenário: Usuario se autentica no sistema com sucesso
Dado que o usuario acessa o sistema
E aparece a tela de login
Quando o usuario digita seu nome
E digita a sua senha
Então autentica o usuario com sucessoExemplo: Autenticação
@given(u'que o usuario acessa o sistema')
def accessing_the_system(context):
context.driver = webdriver.Firefox()
context.driver.get('http://localhost:8080/login/entrar/')
@given(u'aparece a tela de login')
def showing_login(context):
context.driver.title | should | equal_to('Login | Anato HUB')
@when(u'o usuario digita seu nome')
def insert_username(context):
username_input = context.driver.find_element_by_id('username')
username_input.send_keys('test_user')
@when(u'digita a sua senha')
def insert_password(context):
username_input = context.driver.find_element_by_id('password')
username_input.send_keys('123456')
@then(u'o sistema nao permite que o botao entrar seja clicado')
def enter_button_deactivated(context):
enter_button = context.driver.find_element_by_id('enter-button')
disabled_attribute = enter_button.get_attribute('disabled')
disabled_attribute | should | equal_to('true')
context.driver.close()Aplicação de V&V
Revisão em Pares
Revisão em Pares
- Duas pessoas implementam código juntas.
- Uma pessoa programa enquanto a outra revisa o código que está sendo construído.
- Reduz a incidência de bugs em um sistema.
- Falhas e erros de lógica são detectados (e corrigidos) mais cedo.
- Código mais simples de sofrer manutenção.
- Quantidade de tempo gasto na busca por defeitos diminui.
Dificuldades
- Exige um maior envolvimento das pessoas.
- Desenvolvedores devem entender que o código produzido é coletivo.
- Produz um aumento no custo do projeto.
- Dificuldade cultural de compartilhar conhecimento entre as pessoas.
Quadro de Pareamento

Obrigado
Anato - Relatorio Parcial
By Matheus Fernandes
Anato - Relatorio Parcial
- 429