Гость
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Как описать алгоритм в UML / 2 сообщений из 2, страница 1 из 1
24.05.2009, 14:59
    #36003987
CatWarrior
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как описать алгоритм в UML
Я сейчас рисую Activity и Sequence диаграммы для самых интерессных и уже написанных мест в программе. (знаю что это не правильно, но Use-Case и Class диаграммы были сделаны еще до написания кода).

Есть код (ниже) который я попытался отобразить на Sequence диаграмме , но както мне кажется не айс. Можно на Activity, но как я понимаю отображать не ней циклы еще более плохое решение.

Или в таких случаях надо опускаться до блок-схем? И с их помощью описывать функцию?

Вобщем у меня проблема такая. Я не понимаю как описывать в UML элементарный код типа (придумал от балды)
Код: plaintext
1.
2.
3.
4.
5.
6.
int superCounter=  0 ;
for( int i= 0 ;i<stopValue;++i )
{
superCounter+= 2 *i;
array.add(superCounter);
}



Вот исходный код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
    static function GetSameVector( $ids )
    {
    	//строим новый вектора по переданным id источников
    	
    	$query = "select SUM(cl1)/SUM(count), SUM(cl2)/SUM(count), SUM(cl3)/SUM(count), SUM(cl4)/SUM(count), SUM(cl5)/SUM(count), SUM(cl6)/SUM(count), SUM(cl7)/SUM(count) from classVector where";
    	foreach ($ids as $i => $id) 
    	{
    		if( $i == count($ids)- 1  )
    			$query .= " serviceid = $id";
    		else 
    			$query .= " serviceid = $id OR ";
    	}
    	
    	//echo $query;   	
    	
    	$out = "";
    	$ret = MySQL::ExecTransaction( array( $query ),$out);
    	if( $out != "" )
    	{
    		echo ClassVector::getXMLWithError($out, 1 );
    		exit( 1 );
    	}
    	
    	$resultVector = mysql_fetch_row($ret);
    	
    	
    	//получаем похожие вектора
    	$query = "select serviceid, us.name, us.type,
    	cl1/count * $resultVector[0] + 
    	cl2/count * $resultVector[1] + 
    	cl3/count * $resultVector[2] + 
    	cl4/count * $resultVector[3] + 
    	cl5/count * $resultVector[4] + 
    	cl6/count * $resultVector[5] + 
    	cl7/count * $resultVector[6] as result from 
classVector 
right join (select id, name, type from services) as us
on us.id = serviceid
order by result desc";
    	
    	
    	//echo $query;
    	$ret = MySQL::ExecTransaction( array($query), $out);
    	if( $out != "" )
    	{
    		echo ClassVector::getXMLWithError($out, 1 );
    		exit( 2 );
    	}
    	
    	
    	$retStr = "<?xml version=\" 1 . 0 \" encoding=\"cp1251\"?>\r\n";
		$retStr .= "<Services>\r\n";
	
		$count = mysql_num_rows( $ret);
		for( $i =  0 ; $i < $count; ++$i )
		{
			$mass = mysql_fetch_row($ret);
	        $retStr .= "<service id=\"$mass[ 0 ]\" name=\"$mass[ 1 ]\" />\r\n";
		}
	
		$retStr .= "</Services>";
		return $retStr;
    }
    
}
...
Рейтинг: 0 / 0
24.05.2009, 18:54
    #36004144
Big17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как описать алгоритм в UML
Имхо, нет смысла описывать в UML элементарный код.
Максимум - тот, который сложен с точки зрения алгоритмики и не более того.
...
Рейтинг: 0 / 0
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Как описать алгоритм в UML / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]