﻿@startuml
top to bottom direction
skinparam Linetype ortho
skinparam shadowing false
skinparam objectFontSize 18
scale max 1600 width
title Domain Model RUP Management

object project
object phase
object team
object iteration
object activity
object inception
object elaboration
object construction
object transition
object DisciplineRequirements
object domainModel
object role
object discipline
object member
object artifact
object AnalyzeArchitecture
object AnalyzeUseCases
object AnalyzeClasses
object AnalyzePackages
object DesignArchitecture
object DesignClass
object DesignUseCase
object DesignSubsystems
object DisciplineAnalysis
object DisciplineDesign
object FindActorsAndUseCases
object PrioritizeUseCases
object DetailUseCases
object PrototypeUI
object StructureUseCaseModel
object NonFuncionalRequirements
object ImplementArchitecture
object IntegrateSystems
object ImplementClass
object ImplementSubsystem
object UnitTesting

phase <|-[#374F6B]- inception
inception *-d- DisciplineRequirements
DisciplineRequirements *-- FindActorsAndUseCases
DisciplineRequirements *-- PrioritizeUseCases  
DisciplineRequirements *-- StructureUseCaseModel
DisciplineRequirements *-- DetailUseCases
DisciplineRequirements *-- PrototypeUI
phase <|-[#374F6B]- elaboration

phase <|-[#374F6B]- construction
phase <|-[#374F6B]- transition

project "1" *-- "1" inception 
project "1" *-- "1" elaboration
project "1" *-- "1" construction
project "1" *-- "1" transition
project *-- team
team "1" *-- "N" member
role <|-[#374F6B]- member

discipline "1" *-- "1" role
discipline "1" *-- "N" activity
discipline <|--  DisciplineRequirements
discipline <|--  DisciplineAnalysis
discipline <|--  DisciplineDesign

DisciplineRequirements --> domainModel  : Require
project *-- domainModel
inception --> elaboration : Next
elaboration *-- DisciplineAnalysis
DisciplineAnalysis --> DisciplineDesign : Next
DisciplineAnalysis *-- AnalyzeArchitecture
AnalyzeArchitecture *-- NonFuncionalRequirements
AnalyzeArchitecture --> domainModel : require
AnalyzeArchitecture --> StructureUseCaseModel : Require
DisciplineAnalysis *-d- AnalyzeUseCases
DisciplineAnalysis *-d- AnalyzeClasses
DisciplineAnalysis *-d- AnalyzePackages

AnalyzeUseCases --> AnalyzeArchitecture : Next
AnalyzeClasses --> AnalyzeUseCases : Next
AnalyzePackages --> AnalyzeClasses : Next
elaboration *-- DisciplineDesign
DisciplineDesign *-d- DesignArchitecture
DisciplineDesign *-d- DesignClass
DisciplineDesign *-d- DesignUseCase
DisciplineDesign *-d- DesignSubsystems
DesignArchitecture --> DesignClass : Next
DesignArchitecture --> DesignUseCase : Next
DesignUseCase --> DesignClass : Next
DesignClass --> DesignSubsystems : Next
DesignUseCase --> DesignSubsystems : Next

elaboration --> construction : Next
construction *-d- ImplementArchitecture
construction *-d- IntegrateSystems
construction *-d- ImplementClass
construction *-d- ImplementSubsystem
construction *-d- UnitTesting
ImplementArchitecture --> IntegrateSystems: Next
IntegrateSystems --> ImplementClass : Next
IntegrateSystems --> ImplementSubsystem : Next
ImplementClass --> UnitTesting : Next
ImplementSubsystem --> UnitTesting : Next
ImplementSubsystem --> ImplementClass : Next
construction --> transition: Next

phase "1" *-- "N" iteration 
iteration "1" *-- "N" activity
member --* activity 

activity --> artifact : Create or modify

FindActorsAndUseCases --> PrioritizeUseCases : Next
PrioritizeUseCases --> DetailUseCases: Next
DetailUseCases --> PrototypeUI: Next
DetailUseCases --> StructureUseCaseModel: Next

iteration : N days interval
activity : estimated time
activity : real time
activity : status

 
@enduml
