App-Requirement-Arch

 view release on metacpan or  search on metacpan

scripts/templates/master_categories.pl  view on Meta::CPAN

			},
			
		'Visualization' => 
			{
			'_DEFINITION' => 'Visualization applications to present a user friendly view (i.e. DAG etc)'
			},
			
		'Report' => 
			{
			'_DEFINITION' => 'Reports generated by the system'
			}
		},
		
	'System interaction with user' => 
		{
		'_DEFINITION' => 'interaction involving a live user (no automation)',
		'Usability' => 
			{
			'_DEFINITION' => '',
			}
		}
	},

'Metrics' => 
	{
	'_DEFINITION' => 'A set of ways of quantitatively and periodically measuring, assessing, controlling or selecting build software along with the procedures to carry out measurements and the procedures for the interpretation of the assessment in the l...
	},

'Security' => 
	{
	'_DEFINITION' => 'Insure only authorised persons have access to the system',
	'Access control' => 
		{
		'_DEFINITION' => 'Access rights to control access to and from the system',
		}
	},

'Support' => 
	{
	'_DEFINITION' => 'Tools and actions needed to support processes around platform builds',
	},

'User documentation' => 
	{
	'_DEFINITION' => 'System documentation and training',
	'System' => 
		{
		'_DEFINITION' => 'System user and administration documentation'
		},
	'Rollout' => 
		{
		'_DEFINITION' => 'System rollout documentation'
		},
	'Training' => 
		{
		'_DEFINITION' => 'System training and documentation'
		},
	},
};

my ($package) = caller() ;

unless(defined $package)
	{
	my ($missing_definitions, $number_of_categories) = (0, 0) ;

	my $display_filter = sub
		{
		my $tree = shift ;

		if('HASH' eq ref $tree )
			{
			$number_of_categories++ ;
			
			my $valid_definition = (exists $tree->{_DEFINITION} and $tree->{_DEFINITION} ne q{}) ;
			$missing_definitions += ! $valid_definition ;

			if($valid_definition)
				{
				return(Data::TreeDumper::DefaultNodesToDisplay($tree)) ;
				}
			else
				{
				return('HASH', $tree, sort grep {! /^_/} keys %$tree) ; 
				}
			}
		else
			{
			return('SCALAR', 1) ; # prune
			}	
		} ;
		
	print DumpTree $master_category, 'Category structure:', DISPLAY_ADDRESS => 0, USE_ASCII => 1 , NO_NO_ELEMENTS => 1, FILTER => $display_filter ;

	print <<EOT ;

number of categories = $number_of_categories
missing definitions = $missing_definitions
EOT

	}

$master_category = $master_category ; # leave this be, nkh



( run in 3.823 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )