Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Введение 
:(
    Опции темы
AntonSaburov
Дата 2.10.2006, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



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

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

Долгое время пытаясь научить студентов программированию и при первой возможности посвятить их в 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 - Коллекции
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.