Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Введение

Поиск:
Когда вы слышите что-то, вы забываете это.
Когда вы видите что-то, вы запоминаете это.
Но только когда вы начинаете делать это,  
вы начинаете понимать это

Старинная китайская поговорка

Долгое время пытаясь научить студентов программированию и при первой возможности посвятить их в JAVA-технологии, я все время хотел создать пример, который используя одну задачу смог бы рассказать про основные возможности этой широко распространенной платформы. С одной стороны очень не хотелось бы вникать подробно в каждую деталь, а с другой – очень хотелось охватить как можно больше, показать насколько широкий спектр задач охватывает данная платформа. Часто встает необходимость увидеть не тонкости реализации, а просто возможности системы в целом.
В итоге появился «Студенческий отдел кадров», который функционально достаточно прост, т.е. количество сущностей и функций не очень велико, и в то же время решая эту задачу мы можем продемонстрировать различные технологии JAVA. Т.е. автору хотелось просто показать как можно больше технологий JAVA «в действии» без особого подробного описания – некий общий обзор и начальное понимание. Более подробное описание каждого элемента можно будет найти в документации или других книгах. 
Кроме этого мы будем затрагивать некоторые аспекты программирования, которые могут совсем не иметь отношения к JAVA. Подробное описание этих аспектов выходит за рамки нашей цели, но в то же время автор настоятельно советует ознакомиться самостоятельно с этими понятиями.
Рекомендуем: – такое слово обозначает, что то, что упоминается в параграфе надо рассмотреть самостоятельно.
Конечно же автор статьи считает, что читатель уже знаком с языком JAVA и понимание основных конструкций для него не проблема. Также автор надеется, что читатель знаком с понятием объектно-ориентированного программирования (ООП) и дизайна, знает, что такое классы, методы, объекты, наследование, полиморфизм и инкапсуляция.
Рекомендуем: Если у Вас нет таких знаний, то Вам необхожимо почитать книги по основным коснтрукциям JAVA и по ООП.
На форуме Vingrad вы можете посмотреть такого рода информацию по следующим ссылкам:
http://vingrad.ru/JAVA-JAV-000113
http://vingrad.ru/JAVA-JAV-000126

Функциональные требования к системе.
Важно отметить, что любой проект начинается с того, что мы узнаем у потенциального пользователя системы, что ему нужен некий продукт для выполнения определенной работы. Возможно мы сможем получить от него даже некоторые описания тех функций, которые он хотел бы там видеть. Вероятность того, что заказчик системы сможет нам описать визуальные формы, порядок перехода по этим формам кране низок. Но то, что скорее всего уже есть – это функциональные требования. Определим функциональные требования к нашей системе (в произвольной форме).
1. Система должна позволять хранить и редактировать информацию о студентах.
2. Система должна позволять хранить и предоставлять информацию о группах
3. Система должна выдавать некоторые отчеты по данным о студентах и группах. 
Например список одной группы, студентов определеного года рождения, только девушек и т.д.

После того, как были более менее сформулированы функциональные требования начинается более подробный процесс описание все тех же самых функциональных требований 
Рекомендуем: Для таких описаний существует специальный язык – UML (Unified Modelling Language – Универсальный язык моделирования). В нем существует специальные структуры описания функциональных требований (или Бизнес-процессов) – Use case. Также этот язык имеет механизмы описания классов, их взаимодействия и прочая.
Достаточно неплохое описание находилось здесь: 
http://khpi-iip.mipk.kharkiv.edu/library/c...leon/index.html

Для проектирования классов для какой-либо части проекта (если он очень большой) или для всего проекта целиком (как в нашем случае) часто (и достаточно успешно) применяется очень простой способ составления предварительного списка классов с их функциональностью. Описываем с помощью просто составленных предложений функциональность системы и существительные становятся классами, а глаголы – методы для этих классов.

Итак в нашем случае это может выглядеть так:
Написать программу, в которой есть список студентов и список групп. Пользователь может модифицировать список студентов (удалять, добавлять, переводить из группы в группу). Также пользователь может получать некоторые отчеты. Система отображает данные на экране.

Если внимательно посмотреть, то явно видно три класса. Первый – это программа (управляющая система), которая по идее все управляет – добавляет, удаляет, делает отчеты и пр. Также явно наличествует студент и группа.
Давайте на основании этой информации попробуем составить список классов. 

Код

Управляющая Система:
- Список студентов
- Список групп

- Добавить студента
- Удалить студента
- Редактировать данные о ст.
- Перевести всех студентов из одной группы в другую
- Удалить всех студентов из группы
- Отчеты (список группы, список юношей и т.д)

Студент:
- ИД студента
- Фамилия
- Имя
- Отчество
- Дата рождения
- Пол
- ИД Группы
- Год обучения в группе    

Группа:
- ИД группы
- Название
- Фамилия куратора
- Название специальности


Комментарий к параметрам класса:
1. Студент – год обучения в группе. Каждый год студенты обычно переходят в следующую группу. Чтобы отличать студентов в группе нынешнего года и следующего (когда перевели)
Все остальные поля вообщем не особо нуждаются в комментариях. Тем, кому не совсем понятен смысл введения полей ИД - мы рассмотрим их подробнее в следующих статьях.

И теперь мы можем перейти к следующей части нашего описания Часть 1 - Коллекции
Автор: AntonSaburov






Просмотров: 5848

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную