Дипломная работа на тему "МТИ | Разработка среды для модульного программного обеспечения с поддержкой удаленного управления"

0
Похожие работы
Работа на тему: Разработка среды для модульного программного обеспечения с поддержкой удаленного управления
Оценка: отлично.
Оригинальность работы на момент публикации 50+% на антиплагиат.ру.
Ниже прилагаю все данные для покупки.
https://studentu24.ru/list/suppliers/Anastasiya1---1326

Демо работы

Описание работы

Негосударственное образовательное учреждение высшего образования
Московский технологический институт
Факультет: Техники и современных Кафедра: Информатики и автоматизации технологий

Уровень образования: Бакалавриат
Направление: Информатика и вычислительная техника Профиль: Вычислительные машины, комплексы, системы и сети

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
«Разработка среды для модульного программного обеспечения с поддержкой удаленного управления»

Москва 2018 г.

ОГЛАВЛЕНИЕ
ОГЛАВЛЕНИЕ 2
ВВЕДЕНИЕ 3
ГЛАВА 1. ЯЗЫК ПРОГРАММИРОВАНИЯ JAVA И МОДУЛЬНОСТЬ ПО 6
1.1. Язык программирования Java – возможности и основные характеристики 6
1 2. Модульность ПО – основные понятия, концепции и преимущества 16
ГЛАВА 2. СУЩЕСТВУЮЩИЕ ТЕХНОЛОГИИ ДЛЯ СОЗДАНИЯ МОДУЛЬНОГО ПО НА ЯЗЫКЕ JAVA 26
2.1. Технология OSGi (Open Services Gateway Initiative) 26
2.2. Технология JPMS (Java Platform Module System) 39
ГЛАВА 3. РЕАЛИЗАЦИЯ СРЕДЫ ДЛЯ МОДУЛЬНОГО ПО НА ЯЗЫКЕ JAVA 45
3.1. Постановка задачи и принципы разработки 46
3.2. Среда выполнения приложений Alpha 52
ЗАКЛЮЧЕНИЕ 65
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 70

ВВЕДЕНИЕ
Модульный подход к разработке программного обеспечения (ПО), при котором программы и библиотеки разделяются на некоторое множество модулей, является одним из основных современных подходов разработки. Популярность данного подхода объясняется тем, что модульное ПО обладает более высокими показателями практически по всем основным характеристикам качества: производительности, совместимости, удобству использования, надежности, безопасности, поддерживаемости и переносимости.
Можно выделить четыре этапа развития применения модулей для ПО, реализованного на языке программирования Java. Первый этап начинается в 1996 году с момента выхода Java 1.0. На данном этапе программы и библиотеки состояли из модулей (.jar файлов), но виртуальная машина Java (JVM) работала с содержимым модулей как с одним целым. Второй этап начинается в 2000 году с релиза 1 (R1) спецификации инициативы шлюза открытых сервисов (англ. Open Service Gateway initiative (OSGi)). Технология OSGi позволила управлять модулями во время выполнения программы, контролировать доступ к содержимому каждого модуля и создавать межмодульные сервисы. Третий этап берет начало в 2008 году и связан с возникновением и развитием среды Apache Karaf, которая, работая поверх OSGi, предоставила разработчикам и пользователям удобный интерфейс для работы с модулями и добавила большое количество часто используемой функциональности. Четвертый этап начинается 21 сентября 2017 году с выходом Java 9, которая включает в себя модульную систему для платформы Java (англ. Java Platform Module System (JPMS)).
Технология OSGi и технология JPMS являются системами управления модулями и основные задачи данных технологий совпадают,
хотя и существуют некоторые отличия. Вследствие того, что JPMS является неотъемлемой частью Java 9 и последующих версий, можно утверждать, что с выхода Java 9 использование технологии OSGi и среды Apache Karaf будет в значительной мере сокращено. Это объясняется тем, что одновременное использование двух модульных систем негативно сказывается как на модульном ПО, так и на процессе разработки.
Актуальность разработки среды для модульного программного обеспечения с поддержкой удаленного управления, работающей поверх JPMS, определяется двумя факторами. Во-первых, такая среда предоставляет широкий спектр преимуществ – она содержит общую для большинства модульных приложений функциональность (которую не нужно дублировать для каждого проекта), в том числе удаленного управления средой, позволяет повысить качество всего модульного ПО и сократить время и стоимость разработки ПО. Во-вторых, для технологии JPMS такой среды не существует.
Объект исследования работы – модульное программное обеспечение.
Предмет исследования работы – разработка среды для модульного программного обеспечения с поддержкой удаленного управления.
Цель работы заключается в снижение стоимости и времени разработки модульного ПО и оптимизации его сопровождения.
Для достижения поставленной цели были определены следующие задачи:
1. Провести обзор основных характеристик и возможностей языка Java.
2. Изучить модульность ПО – основные понятия, концепции и преимущества.
3. Рассмотреть технологию OSGi.
4. Рассмотреть технологию JPMS.
5. Поставить задачу по разработке среды для модульного ПО с поддержкой удаленного управления и сформулировать основные принципы разработки.
6. Спроектировать и реализовать среду выполнения приложений Alpha, рассмотреть ее реализацию и привести основные сведения по ее использованию.
Практическая значимость данной работы заключается в следующем:
1. В результате выполнения работы была создана среда, использование которой позволит снизить стоимость и время разработки модульного ПО и оптимизировать его сопровождения.
2. Наработан практический опыт использования новой технологии JPMS.
3. Среда была разработана с использованием бесплатных библиотек с открытым исходным кодом. В результате, эти библиотеки были изучены и опробованы, что позволяет использовать их в будущем в качестве замены платного ПО.
При написании работы в большом количестве использовались англоязычные источники (около 90% всех источников). Причина этого заключается в том, что официальный язык мира информационных технологий – английский. Все самые популярные книги и статьи всегда доступны на английском язык, в то время как на другие языки переводятся только некоторые из них.
Среди основных литературных источников можно указать книги Г. Шилдт – «Java. Полное руководство» [18], Б. Мейер – «Основы объектно- ориентированного программирования» [1] и Альвес Александра де Кастро
– «OSGi в деталях» [2] и ряд электронных ресурсов – официальные сайты OpenJDK, OSGi, Apache Felix, Apache Karaf и Интернет-энциклопедию Википедия.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Источники на русском языке
1. Мейер Б. Основы объектно-ориентированного программирования. – 2- е издание, исправленное. – Национальный Открытый Университет
«ИНТУИТ», 2016.
Источники на иностранных языках
2. Alves Alexandre De Castro. OSGI in Depth. – New York: Manning, 2012.
–394 p.
3. Bartlett Neil. OSGi In Practice. – December 17, 2009. – 313 p.
4. Eckel Bruce. Thinking in Java. – Fourth Edition. – Prentice Hall, 2006. – 1057 p.
5. Edstrom Johan, Goodyear Jamie. Instant OSGi Starter. – Birmingham: Packt Publishing, 2013. – 58 p.
6. Finegan Edward, Liguori Robert. OCA Java SE 7 Programmer I Study Guide (Exam 1Z0-803). – 2nd Edition. – McGraw-Hill Education, 2012. – 576 p.
7. Ganesh S. G., Sharma Tushar. Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805. – Apress, 2013. – 656 p.
8. Goncalves Antonio. Beginning Java EE 7. – Apress, 2013. – 608 p.
9. Graham Darrel L. C Programming: Language: A Step by Step Beginner's Guide to Learn C Programming in 7 Days. – CreateSpace Independent Publishing Platform, 2016.
10. Horstmann Cay S., Cornell Gary. Core Java. Volume I. – Eighth Edition. – Prentice Hall, 2008. – 811 p.
11. Johansen Andrew. C++: The Ultimate Beginner's Guide! – Kindle Edition.
12. Kochan Stephen G. Programming in C. – 4th edition. – Developer’s Library, 2014.
13. Lowe Doug. Java All-in-One For Dummies. – 4th edition. – For Dummies, 2014.
14. Patterson James. C++: A Beginner's Guide to Learning the Basics of C++ Programming. – Kindle Edition.
15. Perry Greg, Miller Dean. C Programming Absolute Beginner's Guide. – 3rd Edition. – Pearson Education, 2014.
16. Reese Richard M. Oracle Certified Associate, Java SE 7 Programmer Study Guide. – Packt Publishing, 2012. – 313 p.
17. Schildt Herbert. Java A Beginner’s Guide. – Sixth edition. – McGraw-Hill Education, 2014. – 567 p.
18. Schildt Herbert. Java The Complete Reference. – Ninth edition. – McGraw- Hill Education, 2014. – 1274 p.
19. Tale Steve. C++: The Ultimate Beginners Guide to C++ Programming. – Kindle Edition.
Электронные ресурсы
20. Декомпозиция. // Википедия. [Электронный ресурс].
21. Композиция. // Википедия. [Электронный ресурс].
22. Непрерывность. // Википедия. [Электронный ресурс].
23. Статический анализ кода. // Википедия. [Электронный ресурс].
24. 2.2 OSGi Concepts. // Virgo User Guide. [Электронный ресурс].
25. Apache Felix – Welcome to Apache Felix. // Apache Felix. [Электронный ресурс].
26. Apache Karaf Container 4.x - Documentation // Apache Karaf [Электронный ресурс].
27. Bash. // Википедия. [Электронный ресурс]. U
28. Benefits of Using OSGi. // OSGi Alliance. [Электронный ресурс].
29. C++11. // Wikipedia. [Электронный ресурс].
30. Chapter 4. Services. // O'Reilly. Java 9 Modularity by Sander Mak, Paul Bakker [Электронный ресурс].
31. Checkstyle. // Wikipedia. [Электронный ресурс].
32. Concierge - A small-footprint implementation of the OSGi Core R5 Specification. // Concierge. [Электронный ресурс].
33. Equinox. // Eclipse. [Электронный ресурс].
34. How to Throw Exceptions. // The Java™ Tutorials. [Электронный ресурс].
35. Java 9 modules - JPMS basics. // Stephen Colebourne's blog. [Электронный ресурс].
36. Java 9 modules. // JournalDev. [Электронный ресурс].
37. Java EE version history. // Wikipedia. [Электронный ресурс].
38. Java Platform, Micro Edition. // Wikipedia. [Электронный ресурс].
39. Java Platform, Standard Edition. // Wikipedia. [Электронный ресурс].
40. Java version history. // Wikipedia. [Электронный ресурс].
41. JCommander. // JCommander. [Электронный ресурс].
42. Jline 2.x. // GitHub [Электронный ресурс]. U
43. Knopflerfish - Open Source OSGi SDK and run-time container. // Knopflerfish. [Электронный ресурс].
44. Lessons: Annotations. // The Java™ Tutorials. [Электронный ресурс].
45. List of programming languages. // Wikipedia. [Электронный ресурс].
46. Modular Design. // Wikipedia. [Электронный ресурс].
47. On the Modularity of a System. // Malmo University Electronic Publishing. [Электронный ресурс].
48. OOPs in Java- Encapsulation, Inheritance, Polymorphism, Abstraction. // BeginnersBook. [Электронный ресурс].
49. OSGi. // Wikipedia. [Электронный ресурс].
50. Override. // Java Platform SE 7. [Электронный ресурс].
51. Overview (Java SE 9 & JKD 9). // Oracle Help Center. [Электронный ресурс].
52. Project Jigsaw. // OpenJDK. [Электронный ресурс].
53. Simple Logging Facade for Java (SLF4J). // SLF4J. [Электронный ресурс].
54. The Advantages of Modular Software and Programming. // Gwentech Embedded. [Электронный ресурс].
55. The Advantages of Modularization in Programming. // Techwalla. [Электронный ресурс].
56. TIOBE Index. // TIOBE – The Software Quality Company. [Электронный ресурс].
57. Trail: RMI. // Java Documentation. [Электронный ресурс].
58. What is loose coupling. // TechTarget. [Электронный ресурс].

НЕ НАШЛИ, ЧТО ИСКАЛИ? МОЖЕМ ПОМОЧЬ.

СТАТЬ ЗАКАЗЧИКОМ