UML для программистов

Содержание

Слайд 2

Концептуальный уровень Уровень спецификаций Уровень реализаций

Концептуальный уровень
Уровень спецификаций
Уровень реализаций

Слайд 3

Слайд 4

public class Animal { } public class Dog : Animal { }

public class Animal { }
public class Dog : Animal { }

Слайд 5

public class TreeMap { private TreeMapNode topNode = null; public void

public class TreeMap
{
private TreeMapNode topNode = null;
public void

Add(IComparable key, object value)
{
if (topNode == null)
topNode = new TreeMapNode(key, value);
else
topNode.Add(key, value);
}
  public object Get(IComparable key)
{
return topNode == null ? null : topNode.Find(key);
}
}
Слайд 6

internal class TreeMapNode { private static readonly int LESS = 0;

internal class TreeMapNode
{
private static readonly int LESS = 0;

private static readonly int GREATER = 1;
private IComparable key;
private object value;
private TreeMapNode[] nodes = new TreeMapNode[2];
  public TreeMapNode(IComparable key, object value)
{
this.key = key;
this.value = value;
}
  public object Find(IComparable key)
{
if (key.CompareTo(this.key) == 0) return value;
return FindSubNodeForKey(SelectSubNode(key), key);
}
Слайд 7

private int SelectSubNode(IComparable key) { return (key.CompareTo(this.key) } private object FindSubNodeForKey(int

private int SelectSubNode(IComparable key)
{
return (key.CompareTo(this.key) < 0) ? LESS

: GREATER;
}
private object FindSubNodeForKey(int node, IComparable key)
{
return nodes[node] == null ? null : nodes[node].Find(key);
}
public void Add(IComparable key, object value)
{
if (key.CompareTo(this.key) == 0)
this.value = value;
else
AddSubNode(SelectSubNode(key), key, value);
}
Слайд 8

private void AddSubNode(int node, IComparable key, object value) { if (nodes[node]

private void AddSubNode(int node, IComparable key, object value)
{
if (nodes[node]

== null)
nodes[node] = new TreeMapNode(key, value);
else
nodes[node].Add(key, value);
}
Слайд 9

Диаграммы классов

Диаграммы классов

Слайд 10

Классы представляются прямоугольниками, а отношения между ними – стрелками. На данной

Классы представляются прямоугольниками, а отношения между ними – стрелками.
На данной диаграмме

все отношения являются ассоциациями.
Имя над ассоциацией соответствует имени переменной, в которой хранится ссылка.
Число рядом с острием стрелки обычно говорит о том, сколько экземпляров может быть связано данным отношением. Если это число больше 1, то, как правило, имеется в виду массив.
В прямоугольниках классов может быть несколько отделений. В верхнем отделении всегда записывается имя класса, а в остальных содержатся функции и переменные.
Нотация «interface» означает, что IComparable – интерфейс.
Большая часть остальных показанных обозначений необязательна.
Слайд 11

Диаграммы объектов

Диаграммы объектов

Слайд 12

Диаграммы последовательности

Диаграммы последовательности

Слайд 13

Диаграммы кооперации

Диаграммы кооперации

Слайд 14

Диаграммы состояний

Диаграммы состояний

Слайд 15

Работа с диаграммами Зачем нужно моделирование Зачем строить модели программ

Работа с диаграммами

Зачем нужно моделирование
Зачем строить модели программ

Слайд 16

Общение с другими людьми

Общение с другими людьми

Слайд 17

public class BubbleSorter { private static int operations; public static int

public class BubbleSorter
{
private static int operations;
public static int Sort(int[]

array)
{
operations = 0;
if (array.Length <= 1)
return operations;
for (int nextToLast = array.Length - 2;
nextToLast >= 0; nextToLast--)
for (int index = 0; index <= nextToLast; index++)
CompareAndSwap(array, index);
return operations;
}
private static void Swap(int[] array, int index)
{
int temp = array[index];
array[index] = array[index + 1];
array[index + 1] = temp;
}
private static void CompareAndSwap(int[] array, int index)
{
if (array[index] > array[index + 1])
Swap(array, index);
operations++;
}
}
Слайд 18

Слайд 19

Карты

Карты

Слайд 20

Финальная документация

Финальная документация

Слайд 21

Слайд 22

Слайд 23

Слайд 24

Слайд 25

public class Button { private Dialer itsDialer; public Button(Dialer dialer) { itsDialer = dialer; } }

public class Button
{
private Dialer itsDialer;
public Button(Dialer

dialer)
{ itsDialer = dialer; }
}
Слайд 26

Слайд 27

Слайд 28

public class ButtonDialerAdapter : ButtonListener { private int digit; private Dialer

public class ButtonDialerAdapter : ButtonListener
{
private int digit;
private Dialer dialer;

public ButtonDialerAdapter(int digit, Dialer dialer)
{
this.digit = digit;
this.dialer = dialer;
}
public void ButtonPressed()
{
dialer.Digit(digit);
}
}