МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ
Національний унiверситет "Львiвська полiтехнiка"
Інститу комп’ютерних наук та інформаційних технологій
Кафедра САПР
/
Звіт
про проходження проектно-технологічної практики на
ТзОВ «Елекс»
Підготував:
Керівник практики:
Львів 2015
Вступ
Проектно-технологічна практика є невід’ємною складовою освітньо-професійної програми підготовки студентів вищих навчальних закладів України. Вона становить важливу та обов’язкову ланку в системі наскрізної практичної підготовки висококваліфікованих фахівців до майбутньої практичної діяльності. Проектно-технологічна практика спрямована на закріплення теоретичних знань, отриманих за час навчання, та вдосконалення практичних навичок і умінь в роботі за обраною спеціальністю.
Мета
Поглиблене ознайомлення зі специфікою майбутньої спеціальності, розширення й доповнення знань, здобутих під час вивчення теоретичних курсів та виконання практичних і лабораторних завдань з дисциплін “Алгоритмізація та програмування”, “Проблемно-орієнтоване програмування”, “Основи інформаційних технологій”, “Системне програмування”, “Операційні системи”, “Теорія алгоритмів» Організація баз даних та знань”, “Схемотехніка комп’ютерів”, “Методи та засоби КІТ”, “Архітектура комп’ютерів”, “Комп’ютерні мережі”, “Чисельні методи в інформатиці”, “Моделювання систем”, “Організація баз даних та знань”, “Системи штучного інтелекту” , “Технології захисту інформації” та інших, а також формування професійних умінь і навичок для прийняття самостійних рішень і розв’язування задач пов’язаних із сучасними комп’ютерними інформаційними технологіями в реальних науково-дослідницьких або виробничих умовах, виховання потреби систематично оновлювати свої знання та творчо застосовувати їх у практичній діяльності.
ЧАСТИНА І
База практики
ТзОВ “Елекс”
Адреса: м. Львів, вул. Наукова, 7г
Email: office@eleks.com
Сайт: eleks.com
Телефон: +38 032 297 12 51
Факс: +380 32 244-7002
ELEKS - українська компанія, яка надає послуги з розробки програмних продуктів, забезпечення контролю якості та тестування програмного забезпечення. Головний офіс розташований у Львові. Центри розробки - у Івано-Франківську, Тернополі , Кременчуку та закордоном у США(Невада), Великобританії(Лондон), Польщі(Жешув). Генеральний директор – Руслан Захарченко.
Додаткова інформація:
Компанію засновано в 1991 році Олексієм Івановичем Скрипником та Олексієм Олексійовичем Скрипником. Перші роки свого існування компанія займалася розробкою власних програмних продуктів для електроенергетичних підприємств. З 1997 року компанія почала надавати послуги з розробки програмного забезпечення на замовлення. З 1999 року компанія працює із закордонними замовниками .
ELEKS Software – одна з найбільших ІТ компаній в Україні з головним офісом у Львові. Сьогодні компанія налічує понад 900 працівників і надає послуги клієнтам зі всього світу. Компанія є Золотим партнером компанії Microsoft, бізнес-партнером IBM , технологічним партнером Borland, членом асоціації IT Ukraine .
ELEKS Software пропонує повний цикл розробки програмного забезпечення, а також супроводу проектів на всіх стадіях життєвого циклу, починаючи від дизайну та розробки і завершуючи тестуванням і підтримкою.
Послуги :
Розробка, підтримка, локалізація і тестування ПЗ;
Створення і підтримка веб-сайтів;
ІТ-аутсорсинг і консалтинг.
Власні розробки:
DAKAR - (діалоговий автоматизований комплекс аналізу режимів) - призначений для розрахунку та аналізу усталених нормальних, граничних та післяаварійних режимів роботи електричних мереж напругою 0,4÷1150 кВ; електромеханічних перехідних процесів (аналіз стійкості) електроенергетичних систем з врахуванням дії будь-яких пристроїв автоматики, реакції теплосилового обладнання електричних станцій.
Доктор ELEKS - медична інформаційна система, що дозволяє клінікам накопичувати, впорядковувати та зберігати усю необхідну інформацію про пацієнтів, включно із відео та графічними зображеннями у єдиній картотеці.
Клієнти:
/
Рис.1. Клієнти Eleks.
Технології, що використовуються:
Мови програмування:
/
Рис.2. Мови програмування, що використовує Eleks.
Бази даних:
/
ОС:
/
/
Рис.3. Операційні системи, для яких розробляється ПЗ.
Технології, що вивчались на проектно-технологічній практиці:
/
Рис.4. Технології для платформи Java.
SWING
Інструментарій для створення графічного інтерфейсу користувача (GUI) мовою програмування Java. Це частина бібліотеки базових класів Java (JFC, Java Foundation Classes). Swing розробляли для забезпечення функціональнішого набору програмних компонентів для створення графічного інтерфейсу користувача, ніж у ранішого інструментарію AWT. Компоненти Swing підтримують специфічні look-and-feel модулі, що динамічно підключаються. Завдяки ним можлива емуляція графічного інтерфейсу платформи (тобто до компоненту можна динамічно підключити інші, специфічні для даної операційної системи вигляд і поведінку). Основним недоліком таких компонентів є відносно повільна робота, хоча останнім часом це не вдалося підтвердити через зростання потужності персональних комп'ютерів. Позитивна сторона —— універсальність інтерфейсу створених програм на всіх платформах.
Архітектура:
Незалежність від платформи: Swing — платформо-незалежна бібліотека, що означає, що програму з використанням Swing можна запустити на всіх платформах, які підтримують JVM.
Можливість для розширення: Swing — дуже розподілена архітектура, яка дозволяє «підключати» реалізації користувача вказаної інфраструктури інтерфейсів: користувачі можуть створити свою власну реалізацію цих компонентів, щоб замінити компоненти без обумовлення (за замовчуванням). Взагалі, користувачі Swing можуть розширити структуру, продовжуючи (з допомогою extends) існуючі класи і/або створюючи альтернативні реалізації основних компонентів.
Apache Maven
Засіб автоматизованої роботи з програмними проектами, що спочатку використовувався для Java проектів. Використовується для управління (management) та складання (build) програм, створений Джейсоном ван Зилом (Jason van Zyl) у 2002 році. У діяльності подібний до Apache Ant, але має простіший вигляд build-налаштувань, який базується на форматі XML. XML-файл описує проект, його зв'язки з зовнішніми модулями і компонентами, порядок будування (build), папки та необхідні плагін. Сервер МавенА розміщується на Apache Software Foundation, де він був частиною Jakarta Project.Для опису програмного проекту який потрібно побудувати (build), Maven використовує конструкцію відому як Project Object Model (POM), залежності від зовнішніх модулів, компонентів та порядку побудови. Виконання певних, чітко визначених задач - таких, як компіляція коду та пакетування відбувається шляхом досягнення заздалегідь визначених цілей (targets).
JUnit
Бібліотека для тестування програмного забезпечення для мови Java.
Створений Кентом Беком і Еріком Ґаммою, JUnit є представником родини фреймворків xUnit для різних мов програмування, яка бере початок у SUnit Кента Бека для Smalltalk. JUnit породив екосистему розширень — JMock, EasyMock, DbUnit, HttpUnit, Selenium тощо.Досвід одержаний при роботі з JUnit був важливим у розробці концепцій тестування програмного забезпечення.
Основні методи:
assertEquals
assertFalse
assertNotNull
assertNull
assertSame
assertTrue
JDBC
Java DataBase Connectivity (англ. Java DataBase Connectivity — з'єднання з базами даних на Java), скорочено JDBC) — прикладний програмний інтерфейс Java, який визначає методи, з допомогою яких програмне забезпечення на Java здійснює доступ до бази даних. JDBC — це платформо-незалежний промисловий стандарт взаємодії Java-застосунків з різноманітними СУБД, реалізований у вигляді пакета java.sql, що входить до складу Java SE.
В основі JDBC лежить концепція так званих драйверів, що дозволяють отримувати з'єднання з базою даних по спеціально описанному URL. Драйвери можуть завантажуватись динамічно (під час роботи програми). Завантажившись, драйвер сам реєструє себе й викликається автоматично, коли програма вимагає URL, що містить протокол, за який драйвер «відповідає».
SPRING
Spring Framework — це програмний каркас (фреймворк) з відкритим кодом та контейнера з підтримкою інверсії управління для платформи Java.
Основні особливості Spring Framework можуть бути використані будь-яким застосунком Java, але є розширення для створення веб-застосунків на платформі Java EE. Незважаючи на це, Spring Framework не нав'язує будь-якої конкретної моделі програмування, Spring Framework став популярним в співтоваристві Java в якості альтернативи, заміна Enterprise JavaBean (EJB) моделі.
ЧАСТИНА ІІ
Індивідуальне завдання:
Розроблення ПП з використанням технологій Java Swing і Maven та його тестування з викоританням бібліотеки JUnit 4.
1. Створення проекту в Eclipse IDE з використанням Apache Maven.
/
Рис.1. Створення нового Maven проекту.
/
Рис.1.Структура створеного проекту.
2.Проектування та розроблення графічного інтерфейсу користувача на основі бібліотеки Swing.
Метод для обчислення середнього балу:
void calc()
{
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
int quantity = model.getRowCount();
for(int i=0;i<quantity;i++)
{
try{
Object o1 = model.getValueAt(i, 1)+"";
Object o2 = model.getValueAt(i, 2)+"";
String s1 = o1.toString();
String s2 = o2.toString();
koef += Double.parseDouble(s1);
k = Double.parseDouble(s1);
score += Integer.parseInt(s2)*k;
}
catch(NumberFormatException e)
{
JOptionPane.showMessageDialog(null, "Некоректні дані!","Помилка", JOptionPane.WARNING_MESSAGE);
}
}
s = score/koef;
// s = score;
jLabel3.setText(koef+"");
jLabel2.setText(s+"");
koef = 0;
score = 0;
k = 0;
}
/
Рис.1.Створення GUI з використанням NetBeans IDE
3.Створення файлу pom.xml для автоматичного тестування і збірки проекту.
У файлі вказується назва продукту (<name>ELEKS_SB</name>), версія (<version>1.0.</version>), формат файлу після архівування (<packaging>jar</packaging>) та залежності від сторонніх бібліотек (<artifactId>junit</artifactId>).
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MVN</groupId>
<artifactId>ELEKS_SB</artifactId>
<version>1.0.</version>
<packaging>jar</packaging>
<name>ELEKS_SB</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
4.Написання unit тесту для перевірки коректності обчислень о роботи з файлами.
package MVN.ELEKS_SB;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class AppTest {
App sb;//Створення обєкта головного класу програми
// Ініціалізація
@Before
public void setUp() throws Exception {
System.out.println("Початок тесту.");
sb = new App();
}
// Завершення тесту
@After
public void tearDown() throws Exception {
System.out.println("Тест завершено.\n\n\n");
}
// Тест коректності вводу даних
@Test
public void checkInputData() {
assertEquals(true, sb.check(2, 50));
System.out.println("Тест коректності вводу даних пройдено!");
}
// Тест обчислення сб
@Ignore
@Test
public void checkCalculating() {
sb.koef = 2;
sb.score = 78;
sb.calc();
assertTrue(78 == sb.s);
System.out.println("Тест коректності обрахунків пройдено!");
}
// Тест запису в файл
@Test
public void checkSaving() {
sb.write("Тест запису в файл!");
assertTrue(true == sb.flag);
System.out.println("Тест запису в файл пройдено!");
}
}
5.Результати тестування.
/
Початок тесту.
Тест коректності вводу даних пройдено!
Тест завершено.
Початок тесту.
Тест запису в файл пройдено!
Тест завершено.
Початок тесту.
Тест коректності обрахунків пройдено!
Тест завершено.
6.Збірка ПП з допомогою Maven Plugin для Eclipse IDE.
/
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ELEKS_SB 1.0.
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ ELEKS_SB ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\Vikno\workspace\ELEKS_SB\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ ELEKS_SB ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ ELEKS_SB ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\Vikno\workspace\ELEKS_SB\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ ELEKS_SB ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ ELEKS_SB ---
[INFO] Surefire report directory: C:\Users\Vikno\workspace\ELEKS_SB\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running MVN.ELEKS_SB.AppTest
Початок тесту.
Тест коректності вводу даних пройдено!
Тест завершено.
Початок тесту.
Тест запису в файл пройдено!
Тест завершено.
Початок тесту.
Тест коректності обрахунків пройдено!
Тест завершено.
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.385 sec
Results :
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ ELEKS_SB ---
[INFO] Building jar: C:\Users\Vikno\workspace\ELEKS_SB\target\ELEKS_SB-1.0..jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ELEKS_SB ---
[INFO] Installing C:\Users\Vikno\workspace\ELEKS_SB\target\ELEKS_SB-1.0..jar to C:\Users\Vikno\.m2\repository\MVN\ELEKS_SB\1.0.\ELEKS_SB-1.0..jar
[INFO] Installing C:\Users\Vikno\workspace\ELEKS_SB\pom.xml to C:\Users\Vikno\.m2\repository\MVN\ELEKS_SB\1.0.\ELEKS_SB-1.0..pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.647 s
[INFO] Finished at: 2015-09-09T18:15:37+02:00
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
7.Результати виконання програми.
/
/
8.Отриманий файл з обрахунками.
/
Висновок
Під час проходження проектно-технологічної практики в ТзОВ «Елекс» я ознайомився з нормативно-технологічною документацією підприємства і специфікою його роботи, покращив свої знання в сфері розробки і тестування ПЗ з використанням платформи Java.
Список використаної літератури:
https://uk.wikipedia.org– онлайн-енциклопедія.
http://docs.oracle.com/javase/tutorial/uiswing/ - документація по Swing.
http://junit.org/javadoc/latest/index.html - документації по JUnit.
http://maven.apache.org/guides/ - документація по Maven.