Sie sind auf Seite 1von 18

ICONIX

Processo de Anlise e Desenvolvimento de Sistemas Iterativo e Incremental.

Por : Mario F. Miranda Jr.

O que o ICONIX ?
Processo de Anlise e Desenvolvimento de Software dirigido por Casos de Uso. Utiliza apenas cinco diagramas da UML sendo que dois so adendos. Utiliza prototipao desde o inicio da definio. Mais simples que o RUP(Rational Unified Process) porm sem a simplicidade do XP (Extreme Programing).

As fases do Processo
Prototipao Anlise de Requisitos Anlise e Projeto Preliminar Reviso do Projeto Preliminar

Reviso dos Requisitos

Projeto

Os diagramas utilizados

Casos de Uso
O mais simples e detalhado possvel.
Sem ambigidades e podendo fazer referncia aos objetos do prottipo.
ud Manter Cadastro de Tipo de Env olv ido Incluir Tipo de Env olv ido

include Excluir Tipo de Env olv ido

Atualizar Tipo de Env olv ido Gerente

include

include Consultar Tipo de Env olv ido

Exemplo
Curso Normal :
1 O sistema exibe a tela. 2 O usurio clica no boto pesquisar. 3 O sistema apresenta uma lista dos tipos de envolvidos cadastrados em uma tabela. 4 O usurio seleciona um dos itens da lista executando duplo clique sobre o tipo de envolvido desejado. 5 O sistema apresenta na tela os dados do tipo de envolvido selecionado. 6 O usurio altera os dados do tipo de envolvido selecionado. 7 O usurio clica no boto salvar. 8 O sistema grava os dados do tipo de envolvido. 9 Retornar para tela anterior.

Diagrama de Robustez
od Cadastro de Tipo de Env olv ido Tela de Cadastro de Tipo de Envolvido

Lista de Tipos de Envolvido

Exibir Campos do Tipo de Envolvido Selecionado

Tipo de Envolvido

Gerente (from Use Case Model) Boto Incluir Tipo de Envolvido Limpar Campos da Tela de Tipo de Envolvido

Boto Pesquisar Tipo de Envolvido

Montar Lista de Tipos de Envolvido

Boto Excluir Tipo de Envolvido

Excluir Tipo de Envolvido

Boto Gravar Tipo de Envolvido

Gravar Tipo de Envolvido

Diagrama de Robustez (Cont.)


od Use Case Model

Atores Como no diagrama de caso de uso.


Ator

od Use Case Model

Interface

Interface Com quem os atores interagem. Controle Ligao entre Interface e Entidade.

od Use Case Model

Controle

od Use Case Model

Entidade

Entidade Como no diagrama de Classe.

Diagrama de Sequncia
sd Atualizar Tipo de Env olv ido Modelo de Classes::TipoEnv olv ido Gerente Tela de Cadastro de Tipo de Envolvido Exibir Boto Pesquisar Tipo de Envolvido Lista de Tipos de Envolvido Boto Gravar Tipo de Envolvido

Pesquisar Tipos de Envolvido Carregar Lista de Tipos de Envolvido Lista de Tipos de Envolvido Selecionar um Tipo de Envolvido Carregar Tipo de Envolvido Selecionado Tipo de Envolvido Selecionado

Atualizar Dados

Gravar Dados Gravar Tipo de Envolvido Selecionado Gravao Realizada com Sucesso Encerrar

(from Use Case Model)

(from Modelo de Robustez) (from Modelo de Robustez)

(from Modelo de Robustez)

(from Modelo de Robustez)

Diagrama de Sequncia (cont.)


sd Consultar Tipo de Env olv ido Modelo de Classes::TipoEnv olv ido Gerente Tela de Cadastro de Tipo de Envolvido Exibir Boto Pesquisar Tipo de Envolvido Lista de Tipos de Envolvido

Pesquisar Tipo de Envolvido

Carregar Lista de Tipos de Envolvido

Lista de Tipos de Envolvido

Selecionar um Tipo de Envolvido Carregar Tipo de Envolvido Selecionado

Tipo de Envolvido Selecionado

Encerrar

(from Use Case Model)

(from Modelo de Robustez)

(from Modelo de Robustez)

(from Modelo de Robustez)

Diagrama de Sequncia (cont.)


sd Excluir Tipo de Env olv ido Modelo de Classes::TipoEnv olv ido Gerente Tela de Cadastro de Tipo de Envolvido Exibir Boto Pesquisar Tipo de Envolvido Lista de Tipos de Envolvido Boto Excluir Tipo de Envolvido

Pesquisar Tipos de Envolvido Carregar Lista de Tipos de Envolvidos

Lista de Tipos de Envolvidos

Selecionar um Tipo de Envolvido Carregar Tipo de Envolvido Selecionado Tipo de Envolvido Selecionado

Excluir Tipo de Envolvido Selecionado

Excluir Tipo de Envolvido Excluso Realizada com Sucesso

Encerra

(from Use Case Model)

(from Modelo de Robustez)

(from Modelo de Robustez)

(from Modelo de Robustez) (from Modelo de Robustez)

Diagrama de Sequncia (cont.)


sd Incluir Tipo de Env olv ido Modelo de Classes::TipoEnv olv ido Gerente Tela de Cadastro de Tipo de Envolvido Exibir Boto Incluir Tipo de Envolvido Boto Gravar Tipo de Envolvido

Requisitar um Novo Tipo de Envolvido

Ficha de Cadastro em Branco

Informar Dados

Gravar Dados

Gravar Tipo de Envolvido Gravao Realizada com Sucesso

Encerrar

(from Use Case Model)

(from Modelo de Robustez)

(from Modelo de Robustez)

(from Modelo de Robustez)

Diagrama de Domnio
cd Diagrama de Domnio do Sistema Area Env olv idoTipo Proj eto TipoFase Acompanhamento Env olv ido Recurso TipoEquipamento

TipoEtapa TipoCaracteristica Caracteristica Fase Baseline Realizado RecursoHumano RecursoSoftw are

RecursoHardw are

Etapa

Risco Tarefa Resultado Contingencia

RiscoProj eto

RiscoFase

RiscoEtapa

RiscoTarefa

AnaliseRisco

Impacto

Fonte

Sev eridade

Diagrama de Classes
cd Diagrama de Classes interface IBaseOperacao Area + + + + + + + Nome: String Descricao: String Proj eto property Nome() : String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Pertence a + + + + + + + + + + + Nome: String Descricao: String DataInicial: Date DataFinal: Date Observacoes: String property DataFinal() : Date property DataInicial() : Date property Observacoes() : String Incluir() : Boolean Alterar() : Boolean property Descricao() : String Excluir() : Boolean property Nome() : String Carregar() : Boolean property Observacao() : String CarregarColecao() : DataSet Depende de + + + + + + id_objeto: Integer property id_objeto() : Integer Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet TipoEnv olv ido + + + + + + + Tipo: String Descricao: String property Tipo() : String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet TipoFase + + + + + + + Tipo: String Descricao: String Acompanhamento property Tipo() : String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Gerenciado por Depende de Fase Env olv ido + + + + + + + + + + + + + + + + + Nome: String Endereco: String Bairro: String Cidade: String Estado: String CEP: String Telefone: String Celular: String CPF: String RG: String Sexo: Char Nascimento: Date property Bairro() : String property Celular() : String property CEP() : String property Cidade() : String property CPF() : String property Endereco() : String property Estado() : String property Nascimento() : Date property Nome() : String property RG() : String property Sexo() : Char property Telefone() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + + Caracteristica Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Depende de Contm + + + + + + + + + Descricao: String Observacoes: String DataInicial: Date DataFinal: Date property DataFinal() : Date property DataInicial() : Date property Descricao() : String property Observacoes() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Depende de + + + + + + + TipoEtapa Tipo: String Descricao: String property Tipo() : String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + + + + DataInicio: Date DataFim: Date DataAprovacao: Date property DataAprovacao() : Date property DataFim() : Date property DataInicio() : Date Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Recursos Baseline Contm + + + + + + Depende de MargemErro: Decimal property MargemErro() : Decimal Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + + + Realizado DesvioEmDias: Integer DesvioPercentual: Decimal property Desvio() : Integer property DesvioPercentual() : Decimal Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + + + + DataInicioUtilizacao: Date DataTerminoUtilizacao: Date Essencial: Boolean property DataInicioUtilizacao() : Date property DataTerminoUtilizacao() : Date property Essencial() : Boolean Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Resultado + + + + + + + + Observacoes: String Atraso: Integer Corrigiu: Boolean property Atraso() : Integer property Corrigiu() : Boolean property Observacoes() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Contm Contm

Contm

Contingencia + + + + + + + Descricao: String Observacoes: String property Descricao() : String property Observacoes() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

TipoEquipamento + + Tipo: String Descricao: String property Descricao() : String property Tipo() : String

Depende de Depende de + + + + + + + + + Contm

Etapa Descricao: String Observacoes: String DataInicial: Date DataFinal: Date property DataFinal() : Date property DataInicial() : Date property Descricao() : String property Observacoes() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Contm

RecursoSoftw are Contm Contm Contm RecursoHumano + + + + + Depende de Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + + + + + Nome: String Fabricante: String Versao: String Quantidade: Integer property Fabricante() : String property Nome() : String property Quantidade() : String property Versao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + +

RecursoHardw are Quantidade: Integer property Quantidade() : Integer Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Depende de

Contm

Contm

Depende de Tarefa + + + + + + + + + + Descricao: String Observacoes: String PontosFuncao: Integer PontosCasoDeUso: Integer PercentualConcluido: Decimal property Descricao() : String property Observacoes() : String property PercentualConcluido() : Decimal property PontosCasoDeUso() : Integer property PontosFuncao() : Integer Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Risco + + + + + + AnaliseRisco + + + + + + Probabilidade: Decimal property Probabilidade() : Decimal Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + +

TipoCaracteristica Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Contm Contm

Contm

Fonte + + + + + + Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Contm Contm

Contm Contm

RiscoProj eto + + + + + Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + +

RiscoFase Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + +

RiscoEtapa Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + +

RiscoTarefa Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

Impacto + + + + + + Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet + + + + + +

Sev eridade Descricao: String property Descricao() : String Incluir() : Boolean Alterar() : Boolean Excluir() : Boolean Carregar() : Boolean CarregarColecao() : DataSet

O Processo passo a passo


Prototipar a interface com usurio. Escrever um caso de uso que d uma boa idia de como a interface ir se comportar. Esboar os diagramas de Robustez, Sequncia e Domnio. Programar a interface de modo que ela implemente o que o caso de uso determina. Retornar ao primeiro passo. Quando a anlise de requisitos terminar seguir os mesmos passos para a anlise preliminar. Quando a anlise de preliminar terminar j se deve estar num estgio de pr-entrega, faltando apenas pequenos ajustes.

Concluso
O Processo razoavelmente simples e muito robusto. O Processo permite que os erros de anlise e as dvidas dos usurios sejam minimizadas conforme as iteraes do processo ocorrem. O Processo minimalista, utiliza o mnimo possvel de suas ferramentas.

Ferramentas
Enterprise Architect 4.1

Obrigado pela Ateno

Fim.

Contato : mariojr@wcode.com.br mario.junior@vivo.com.br