Mostrando postagens com marcador modelagem. Mostrar todas as postagens
Mostrando postagens com marcador modelagem. Mostrar todas as postagens

sexta-feira, 19 de abril de 2013

Modelos da Aplicação


A classe principal que controla a aplicação é a StringlessGuitarUI. Ela contém as variáveis de instância que representam os botões para cada acorde de um tom. No diagrama coloquei apenas uma para servir de exemplo. Logo abaixo, a classe ButtonHandler, onde se encontra a lógica de abertura de um arquivo áudio, é interna da StringlessGuitarUI. Ela é marcada com um + dentro de um círculo ligados por uma seta.





A ButtonFactory é uma classe que encapsula a instanciação de todos os botões da tela. ButtonHandler implementa uma interface ouvinte de eventos de clique em um botão - ActionListener. Destaquei o método que realiza essa operação:



public void actionPerformed(ActionEvent e) {
           InputStream in;
           if(e.getSource() == buttonEm_CMaior){
           try{
                in = new FileInputStream(new File("C:\\Users\\Thiago\\Downloads\\Em_C Maior.wav"));
                AudioStream audios = new AudioStream(in);
                AudioPlayer.player.start(audios);
              }
           catch(Exception ex){
                JOptionPane.showMessageDialog(null, ex);
           }
      }

Um destaque para a interação do usuário com a máquina, ao clicar em um botão. O evento actionPerformed é disparado para a classe que o tratará (ButtonHandler):



A classe InputStream instancia um objeto da classe FileInputStream, que passa como argumento um path de um arquivo áudio (no momento em que actionPerformed é executado). Logo, a classe AudioInputStream instancia um objeto da própria classe e este recebe como argumento o path do arquivo, criando uma dependência de parâmetros.




quarta-feira, 27 de março de 2013

Modelagem de Domínio





Um modelo de domínio é uma representação visual de classes conceituais ou objetos do mundo real, em um contexto (Fowler, 1996). Ou seja, é uma descrição de coisas/conceitos em uma situação real, mas não de objetos de software, tais como classes em Java, por exemplo. O modelo de domínio, produzido na etapa de análise, ajuda na elaboração da lista de requisitos.

Nesse sentido, um tom determina 8 acordes (sem as variações) a serem tocados. Um tom pode ser maior ou menor; por causa disso, temos que Acordes Maior e Acordes Menor são um tipo de Acorde. Um acorde é composto por 3 notas tocadas simultaneamente. As instâncias C e C#m são apenas um exemplo de nota e acorde, respectivamente.