Professional Documents
Culture Documents
1 – General concepts
Characterization of the Software product; Software engineering
basic elements; Programming paradigms
2 – Software Process Engineering and the software
development problematic
Specification and software design (Structured Analysis, SSADM,
Information Engineering, SSM, Object Oriented Analysis and Design
(OOA/OOD),...)
Origin, structure and components of the Unified Modeling Language
(UML);
3 - Models of software development processes
Prescriptive models : Linear sequential, RAD , Prototyping,
evolutionary models, Rational Unified Process, Iconix.
4 – Agile development
Agile methods: XP, Scrum and Crystal,….
identify
components
candidates
build search
Axis of entry The next components
points system in the library
in iteration
the project
build
components
if not
available
• Heavy
• Preferably applicable to large development teams and large
projects
• Widely "customizable" -> makes it possible to be adapted for
projects of any scale.
• RUP includes a disciplined project management methodology
– clear assigns tasks and responsibilities in a software
development organization.
• Iterative and incremental development
• It is modular and automated. RUP is, itself, a software product
- methodology supported by various development tools and
sold by IBM integrated through "Rational suites".
Static components
• Environment
• Configuration and Change Management
• Project management
• Business modeling
• Requirements
• Analysis and Design ("Design")
• Implementation
• Test
• Installation
Visions(4+1) Artifacts
Workflow
General Diagram
General Diagram
Initial
Implementation
Model
Elements
implemented in the
specific physical
nodes
General Diagram
• 5 UML diagrams
• Simpler than the RUP (Rational Unified Process) but without the
simplicity of XP (Extreme Programing).
Requirements
Review Project
Detailed Final
review adjustments
and Project and
Critique Installation
https://www.red-gate.com/simple-talk/opinion/opinion-pieces/agile-development-and-
iconix/
Instituto Superior de Estatística e Gestão de Informação
Universidade Nova de Lisboa
ICONIX –Use Cases
«include»
od Use Case M
od Use Case Mo
od Use Case Mo
Tela de Cadastro de
Tipo de Envolvido
Lista de Tipos de
Envolvido Exibir Campos do Tipo
Tipo de Envolvido
de Envolvido
Selecionado
Gerente
Modelo de
Classes::TipoEnv olv ido
Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de Botão Gravar Tipo
de Tipo de Tipo de Envolvido Envolvido de Envolvido
Envolvido
Exibir
Atualizar Dados
Gravar Dados
Encerrar
(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)
Modelo de
Classes::TipoEnv olv ido
Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de
de Tipo de Tipo de Envolvido Envolvido
Envolvido
Exibir
Encerrar
(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)
Modelo de
Classes::TipoEnv olv ido
Gerente
Tela de Cadastro Botão Pesquisar Lista de Tipos de Botão Excluir Tipo
de Tipo de Tipo de Envolvido Envolvido de Envolvido
Envolvido
Exibir
Encerra
(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)
Modelo de
Classes::TipoEnv olv ido
Gerente
Tela de Cadastro Botão Incluir Tipo Botão Gravar Tipo
de Tipo de de Envolvido de Envolvido
Envolvido
Exibir
Informar Dados
Gravar Dados
Encerrar
(from Use Case Model) (from Modelo de Robustez) (from Modelo de Robustez) (from Modelo de Robustez)
Area
TipoEtapa
Etapa
Risco
Tarefa
Resultado Contingencia
AnaliseRisco
Impacto
Fonte Sev eridade
«interface»
IBaseOperacao
Area - id_objeto: Integer
- Nome: String
- Descricao: String + «property» id_objeto() : Integer
+ Incluir() : Boolean
Projeto
+ «property» Nome() : String + Alterar() : Boolean
+ «property» Descricao() : String Pertence a - Nome: String Depende de + Excluir() : Boolean
+ Incluir() : Boolean - Descricao: String + Carregar() : Boolean
+ Alterar() : Boolean - DataInicial: Date + CarregarColecao() : DataSet
+ Excluir() : Boolean - DataFinal: Date
+ Carregar() : Boolean TipoEnv olv ido - Observacoes: String
+ CarregarColecao() : DataSet
- Tipo: String + «property» DataFinal() : Date TipoFase
- Descricao: String + «property» DataInicial() : Date
+ «property» Observacoes() : String - Tipo: String
+ «property» Tipo() : String + Incluir() : Boolean - Descricao: String
Resultado + «property» Descricao() : String + Alterar() : Boolean Acompanhamento
+ Incluir() : Boolean + «property» Descricao() : String + «property» Tipo() : String
- Observacoes: String + Alterar() : Boolean + Excluir() : Boolean + «property» Descricao() : String - DataInicio: Date
- Atraso: Integer + Excluir() : Boolean + «property» Nome() : String + Incluir() : Boolean - DataFim: Date
- Corrigiu: Boolean + Carregar() : Boolean + Carregar() : Boolean + Alterar() : Boolean - DataAprovacao: Date
+ Excluir() : Boolean
+ CarregarColecao() : DataSet + «property» Observacao() : String Contém + «property» DataAprovacao() : Date
+ «property» Atraso() : Integer + CarregarColecao() : DataSet + Carregar() : Boolean TipoEtapa
+ «property» Corrigiu() : Boolean + CarregarColecao() : DataSet + «property» DataFim() : Date
+ «property» Observacoes() : String - Tipo: String + «property» DataInicio() : Date
+ Incluir() : Boolean - Descricao: String + Incluir() : Boolean
+ Alterar() : Boolean + Alterar() : Boolean
+ Excluir() : Boolean + «property» Tipo() : String + Excluir() : Boolean
+ Carregar() : Boolean É Gerenciado por Contém Depende de + «property» Descricao() : String + Carregar() : Boolean
+ CarregarColecao() : DataSet Fase + Incluir() : Boolean + CarregarColecao() : DataSet
+ Alterar() : Boolean
- Descricao: String Depende de
+ Excluir() : Boolean Recursos
- Observacoes: String + Carregar() : Boolean
- DataInicial: Date + CarregarColecao() : DataSet - DataInicioUtilizacao: Date
Contém
- DataFinal: Date - DataTerminoUtilizacao: Date
Env olv ido Caracteristica - Essencial: Boolean
+ «property» DataFinal() : Date
- Nome: String - Descricao: String + «property» DataInicial() : Date Baseline Realizado + «property» DataInicioUtilizacao() : Date
Contingencia - Endereco: String Depende de + «property» Descricao() : String + «property» DataTerminoUtilizacao() : Date
Contém + «property» Observacoes() : String - MargemErro: Decimal - DesvioEmDias: Integer TipoEquipamento
- Bairro: String + «property» Descricao() : String + «property» Essencial() : Boolean
- Descricao: String - Cidade: String + Incluir() : Boolean + Incluir() : Boolean - DesvioPercentual: Decimal + Incluir() : Boolean - Tipo: String
- Observacoes: String - Estado: String + Alterar() : Boolean + Alterar() : Boolean Contém + «property» MargemErro() : Decimal + Alterar() : Boolean - Descricao: String
- CEP: String + Excluir() : Boolean + Excluir() : Boolean + Incluir() : Boolean + «property» Desvio() : Integer
+ Excluir() : Boolean
+ «property» Descricao() : String - Telefone: String + Carregar() : Boolean + Carregar() : Boolean + Alterar() : Boolean + «property» DesvioPercentual() : Decimal
+ Carregar() : Boolean + «property» Descricao() : String
+ «property» Observacoes() : String - Celular: String + CarregarColecao() : DataSet + CarregarColecao() : DataSet + Excluir() : Boolean + Incluir() : Boolean + CarregarColecao() : DataSet + «property» Tipo() : String
+ Incluir() : Boolean - CPF: String + Carregar() : Boolean + Alterar() : Boolean
+ Alterar() : Boolean - RG: String Etapa + CarregarColecao() : DataSet + Excluir() : Boolean
+ Excluir() : Boolean - Sexo: Char Depende de + Carregar() : Boolean
+ Carregar() : Boolean - Nascimento: Date Depende de - Descricao: String Depende de + CarregarColecao() : DataSet
+ CarregarColecao() : DataSet - Observacoes: String
+ «property» Bairro() : String - DataInicial: Date
+ «property» Celular() : String Contém - DataFinal: Date
+ «property» CEP() : String
+ «property» Cidade() : String + «property» DataFinal() : Date
+ «property» DataInicial() : Date RecursoSoftware RecursoHardware
+ «property» CPF() : String
+ «property» Endereco() : String + «property» Descricao() : String Contém
+ «property» Observacoes() : String - Nome: String - Quantidade: Integer
+ «property» Estado() : String Contém
+ Incluir() : Boolean - Fabricante: String
+ «property» Nascimento() : Date Depende de + Alterar() : Boolean - Versao: String + «property» Quantidade() : Integer
+ «property» Nome() : String Contém - Quantidade: Integer
+ Excluir() : Boolean + Incluir() : Boolean
Contém + «property» RG() : String + Carregar() : Boolean RecursoHumano + Alterar() : Boolean
+ «property» Sexo() : Char + «property» Fabricante() : String
Contém + CarregarColecao() : DataSet + Excluir() : Boolean
+ «property» Telefone() : String + «property» Nome() : String
+ Incluir() : Boolean + Carregar() : Boolean
+ Incluir() : Boolean Contém + «property» Quantidade() : String + CarregarColecao() : DataSet
+ Alterar() : Boolean
+ Alterar() : Boolean + Excluir() : Boolean + «property» Versao() : String
Depende de
+ Excluir() : Boolean + Carregar() : Boolean + Incluir() : Boolean
+ Carregar() : Boolean Tarefa + CarregarColecao() : DataSet + Alterar() : Boolean
+ CarregarColecao() : DataSet Depende de + Excluir() : Boolean
- Descricao: String + Carregar() : Boolean
- Observacoes: String + CarregarColecao() : DataSet
- PontosFuncao: Integer
- PontosCasoDeUso: Integer Contém
Risco TipoCaracteristica Contém
- PercentualConcluido: Decimal
3 - When the requirements analysis finish then do the same steps for the preliminary
analysis.
• Some problems:
• Expensive and time-consuming process
• Shortage of technical people with proper training
• Slow Learning cycle => needed for proper training
• The elaborate models are not conducive to communication with
customers
• Principles
Agile processes
• Philosophy
• Customer satisfaction and incremental delivery of software
from the start
• Small project teams, highly motivated
• Informal methods
• Engineering work products of minimum software and
overall simplicity of development
• Developing guidelines
• Deliveries in contrast to the analysis and design
• Active and ongoing communication between development
team and customers