понеділок, 8 листопада 2010 р.

За роботу!

 Ну що ж, більш-менш вирішились, чи майже вирішились навколишні діла-дрова (скоріш дрова) і тепер можна приступити до якогось путнього програмування, а саме до курсової роботи.
Зроблю невеличкий вступ. Я навчаюсь в Львівському національному університеті імені Івана Франка на факультеті прикладної математики та інформатики. На щастя, чи на горе, невідомо, вже на 3 курсі. І цього року ми пишемо курсовий проект, роботу, чи ще як це можна назвати.

Отже, курсова!
Головна ідея - створити безплатний загальнодоступний продукт для роботи з логічними та електричними схемами різного типу.
Кодова назва - BUMMEL (BUM Miracle Electronics Lab (де BUM - ініціали нікнеймів учасників проекту а саме b0xer23, uko, mcangel, назву придумав uko :) ).
Над цим проектом працюю, як видно, не один - нас троє. Кожен має чи грає свою роль.
Моє завдання тут - архітектура програми. Тобто ядро (логіка) програми - що, куди, де і як повинно працювати та танцювати.
Як я казав (*писав) вище, я трохи справ позакривав - в мене звільнилось трохи часу. Тому сьогодні я взявся до проекту.
З чого почати? 
Почну з пошуку та осягення того з чим маю справу!
Трохи раніше мій одногрупник - uko, запитував у одного файного викладача якісь поради. Він підказав багато всього і поміж того те, що для промальовки об'єктів, себто самої схематики можна використовувати такі бібліотеки як: JGraph чи Piccolo (тут я ще не знаю як воно правильно пишеться :) ). Ну, що робити? - та лізти в інтернет і вичитувати.
Пошуки почались... З початку я натрапив на JUNG - хороша така річ для роботи з графами, правда трохи не підходить у моєму випадку.

А у моєму випадку потрібні, як мінімум, наступні речі:
1. Добре розведення прямокутних ліній сполучень об'єктів (так як всі це бачили на схемах, не самопальних)
2. Зручний підхід у сенсі програмування
3. Загально-прийняті та, по замовчуванню, зрозумілі функції маніпулювання об'єктами: масштабування, совання, додавання, видаляння, зміна розмірів і т.д.
(якоїсь пріоритетності тут ще нема, сам ще до кінця не продумав цей список :) )

Покопався я трохи в в "джунзі", - побачив що не підходить - продовжив пошуки.
Наступним на що натрапив була бібліотека, яка, мабуть, і стане тією обраною, але я ще не впевнений, це - JGraph.
Зразу напишу те що мені не сподобалось. На сторінці немає веб прикладів якихось простеньких програм що відображають роботу цієї бібліотеки, як це було на сторінці джунги. Але в оправдання знайшлись скріншоти таких програмок. На останньому з них зразу найшов все що потрібно для програми. Клас! Є! Можна качати і починати щось програмувати. Та не тут то все так просто. Я ж ще не дивився на "пікало" чи то "пікола". Жаба починає дусити, а що, як там ще краще??

Ось я знову в пошуках... 
Третій причал - Piccolo.
 
Ця сторінка отримує ще один мінус - відсутність навіть скріншотів... Але мене цікавість мучить і вирішив починати розбиратись саме з піколло. Завантажив, створив проект, додав в бібліотеки, все як треба, пройшовся по двох путівниках (на замітку, ми вирішили програмувати на Java + я працюю в NetBeans). Трохи розібрався що воно і як воно, але тут настала темна ніч і сон насів на вікно...
Стоп! Здецидуйшє! Треба подумати...
Почав аналізувати, чи дійсно треба в піколі розбиратись далі, може ще раз вернутись назад. Це, мабуть, була хороша думка. Знову переглядаючи сайти жграфа, звернув увагу на відгуки користувачів і компанії які ним користуються - зразу видно, каркас чи то framework себе зарекомендував "непогано". І тут до мене причіпилась така, трохи ще туманна думка - "скоріш за все використаю його". Але поспіхом вирішувати не хочеться, треба проаналізувати все.
Погляд зверху:
  JGraph позиціонує себе як "бла-бла" малювальний компомент "бла-бла",
  а Piccolo - "бла-бла" масштабувальний інструмент.
Може то розсудити по кількості "бла-бла"? :)
А якщо серйозно то тут в гості заходить думка: "а може попробувати використати і те і інше", але її доганяє думка про ресурсні затрати, тому трохи скрутно в цій ситуації. Доводиться обирати.
Оп, несподіванка! 
Поки писав цей допис, в пошуках посилання на піколло, натрапив на рядочок який пише про новий сайт і групу підтримки цього проекту, піколло мається на увазі.
Таааа.... Виявилось тут напрацювання доволі сильно відрізняються від тих що на попередньому сайті. Ще й вказані програми що використовують цей пакет. Так, бачу що це доволі солідний конкурент для JGraph. Тобто те що я поки дослідив - маленьке зернятко...

Отже дослідження повинні продовжуватись!

Правда на сьогодні доста - треба і поспати трохи :)

Матеріали:
- блог друга, який зі мною працює над цим проектом, а саме - Uko
- домашня сторінка JUNG
- домашня сторінка JGraph
- стара домашня сторінка Piccolo
- нова домашня сторінка Piccolo

2 коментарі: