Hasil Pencarian  ::  Simpan CSV :: Kembali

Hasil Pencarian

Ditemukan 39 dokumen yang sesuai dengan query
cover
Ichlasul Affan
Abstrak :

Perkembangan teknologi internet membuat kebutuhan masyarakat akan pembuatan produk web yang beragam perlu dilakukan secara cepat. Pendekatan software product line engineering (SPLE) dapat menjadi salah satu alternatif yang baik untuk menghadapi tantangan tersebut. Berbagai penelitian telah berhasil mengaplikasikan SPLE untuk pembuatan produk web, namun penelitian tersebut masih dilakukan secara terpisah. Untuk membangun produk web yang utuh, diperlukan integrasi antara komponen front end dan back end, serta kemudahan pemasangan (deployment) produk web agar dapat diakses oleh masyarakat luas. Penelitian ini berhasil menjawab tantangan untuk mengintegrasikan otomatisasi pembuatan komponen produk web tersebut. Penelitian ini juga berhasil mengurangi intervensi manusia saat proses pemasangan produk web dengan mewujudkan Single Sign On berbasis OAuth 2 menggunakan layanan autentikasi Auth0. Penelitian ini juga berhasil membungkus semua komponen produk web beserta manajemen produk dengan membuat aplikasi berbasis antarmuka command line (CLI). Dengan membangun sistem deployment tersebut, estimasi waktu proses pembuatan produk web menggunakan SPLE dapat ditekan dari 16 menit jika dilakukan secara manual menjadi 38 detik.


Internet technology advancements are increasing peoples demand on fast and highly varied web products. Software product line engineering (SPLE) approach is a promising alternative to face those challenges. There are currently existing researches that applied SPLE to create web products, unfortunately they were not integrated yet. So, integration issues between those components and seamless web product deployment process are important to think of. Hence, this research successfully tried to answer these problems by integrating the SPLE-based product derivation of back end and front end. This research successfully reduced human intervention in deployment process by creating Single Sign On authentication using Auth0 as an OAuth provider. To wrap up these components, this research also built a command line interface (CLI) app for deployment and product management. By building such deployment system, estimated time to run SPLE-based web product derivation reduced from 16 minutes to 38 seconds.

Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2020
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Tolhas Parulian Jonathan
Abstrak :
Software Product Line Engineering (SPLE) merupakan suatu paradigma untuk menghasilkan berbagai perangkat lunak dengan variasi fitur yang berbeda-beda. Produk perangkat lunak yang dihasilkan dengan paradigma SPLE membutuhkan autentikasi dan otorisasi agar pengguna dapat dikenali dan dibatasi aksesnya untuk setiap fitur. Penelitian sebelumnya telah mengembangkan autentikasi pada perangkat lunak bagian front-end menggunakan diagram Interaction Flow Modeling Language (IFML) dan IFML UI Generator Plugin, namun belum terdapat fungsionalitas untuk mengelola data pengguna dan membatasi akses pengguna yang terhubung dari front-end ke back-end. Berdasarkan kebutuhan tersebut, penelitian ini akan mengembangkan lima halaman autentikasi dan otorisasi, halaman autentikasi terdiri dari halaman login, register, dan lupa password, halaman otorisasi terdiri dari manajemen pengguna dan manajemen role. Penelitian ini memodifikasi halaman login dari pengembangan sebelumnya, dan menambahkan halaman register, forgot password, manajemen pengguna, dan manajemen role. Penelitian ini akan memodifikasi diagram IFML dan UI Generator agar dapat menyediakan halaman autentikasi untuk mengidentifikasi pengguna dan halaman otorisasi untuk membatasi akses pengguna berdasarkan role. Selain itu, pengembangan autentikasi dan otorisasi juga dilakukan di bagian back-end pada library Auth Variability Modules for Java (VMJ) yang akan digunakan pada framework WinVMJ, untuk membuat bagian back-end berdasarkan paradigma SPLE. Pengembangan bagian back-end pada penelitian sebelumnya telah menyediakan penyimpanan data pengguna dan role, namun dibutuhkan modifikasi untuk memenuhi kebutuhan login, manajemen pengguna, manajemen role, serta pembatasan akses pengguna. Modifikasi dilakukan pada library Auth VMJ agar dapat memberikan fungsionalitas menambah, membaca, mengubah, dan menghapus data pengguna serta role pada suatu perangkat lunak. Produk yang dihasilkan akan dievaluasi melalui perbandingan dengan pengembangan sebelumnya serta dilakukan pengujian pembatasan akses fitur-fitur produk. Secara umum, penelitian ini berhasil menyediakan autentikasi dan otorisasi pada bagian front-end dan back-end perangkat lunak yang dikembangkan dengan paradigma SPLE. ......Software Product Line Engineering (SPLE) is a paradigm that can be used to produce various software with feature variations. Software developed based on SPLE paradigm requires authentication and authorization to identify and restrict users to access each feature. Previous research has developed authentication in the front-end side using Interaction Flow Modeling Language (IFML) diagram and IFML UI Generator Plugin, but there are issues with managing user data and restricting user access. Based on these issues, this research will develop five authentication and authorization pages, authentication pages consist of login page, register, and forgot password, authorization pages consist of user management and role management. This research modifies login page from previous research, and add register page, forgot password, user management, and role management. This research will modify IFML diagram and UI Generator to implement authentication pages to identify user and authorization pages to restrict user based on role. On the other side, authentication and authorization development is also carried out on the back-end side using Variability Modules for Java (VMJ) Auth Library. VMJ Auth Library will be used in WinVMJ framework, to create back-end based on SPLE paradigm. Previous research on back-end authentication has provided user and role databases, but modifications are still needed to support login, manage user data, manage role data, and restrict user access. Modifications are made to the VMJ Auth Library, to provide functionality for adding, reading, changing, and deleting user and role data. The resulting product will be evaluated through comparison with the previous development and testing of access restrictions on product features. In general, this research successfully implements authentication and authorization on front-end and back-end that developed based on SPLE paradigm.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2023
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Muhammad Tsaqif Al Bari
Abstrak :
Payment Gateway adalah teknologi perangkat lunak yang menyediakan layanan pembayaran. Seiring berjalan waktu muncul requirement baru dan dilakukan pengembangan perangkat lunak untuk memenuhinya. Namun cara tersebut tidak efisien karena pada tiap iterasi pengembangan requirement baru, diperlukan implementasi ulang requirement yang sudah diimplementasi pada pengembangan sebelumnya. Maka dari itu dibutuhkan paradigma pengembangan perangkat lunak yang terbuka pada perubahan dan penggunaan ulang, yaitu Software Product Line Engineering (SPLE). SPLE adalah paradigma pengembangan perangkat lunak yang memanfaatkan reusable platform dan mass customisation. Pada penelitian ini akan dikembangkan product line untuk Payment Gateway dengan mengimplementasi fitur Payment, fitur layanan pembuatan pembayaran. Penelitian menggunakan framework SPLE yang fokus pada dua tahap dalam Domain Engineering yaitu Domain Design dan Domain Realization. Domain Design akan menggunakan UML-DOP, profil UML untuk merepresentasikan konsep Delta-Oriented Programming, dan U2VMJ Generator, code-template generator dari PricesIDE. Domain Realization akan menggunakan WinVMJ Composer, sebuah FeatureIDE Composer dari PricesIDE. Setelah itu akan dilakukan Application Engineering untuk menghasilkan dan menguji product dari product line. Hasil yang ditemukan adalah dalam satu proses pengembangan perangkat lunak product line Payment Gateway, lima variasi product Payment Gateway berhasil dihasilkan dan diuji dan implementasi pemanggilan external API fitur Payment menghasilkan granularitas fitur. ......Payment Gateway is a software technology that serves payment services. As new requirements are needed, a software development is done to fulfill it. This method is not efficient because on each software development started to fulfill a new requirement, similar requirements that has been implemented from previous software development need to be re-implemented. A new paradigm in software development is needed that are open to changes and reusability, one of which is Software Product Line Engineering (SPLE). SPLE is a software development paradigm that uses a reusable platform and mass customisation. In this research we will develop a product line of Payment Gateway by implementing a feature called Payment, a payment creation service. This research uses the SPLE framework and focus on two steps in Domain Engineering which are Domain Design and Domain Realization. Domain Design will use UML-DOP, a UML profile to represent Delta-Oriented Programming concept, and U2VMJ Generator, a code-template generator from PricesIDE. Domain Realization will use WinVMJ Composer, a FeatureIDE Composer from PricesIDE. Next, an Application Engineering will be done to generate and test products generated from the product line. It is found that in one software development process of Payment Gateway product line, five variations of Payment Gateway successfully generated and tested and implementation for external API calls in Payment feature cause a feature granularity.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2023
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Lumban Gaol, Timothy Efraim Hotasi
Abstrak :
Software deployment merupakan suatu proses yang dilakukan terhadap perangkat lunak (software) agar tersedia untuk digunakan pada suatu environment tujuan. Salah satu model pengembangan software (software development) adalah Software Product Line Engineering (SPLE) yang bertujuan mengembangkan sekumpulan variasi software dari basis yang sama. Salah satu tools pengembangan SPLE hasil penelitian lab Reliable Software Engineering (RSE) Fakultas Ilmu Komputer Universitas Indonesia (Fasilkom UI) sebelumnya adalah PRICES-IDE. PRICES-IDE merupakan sekumpulan plugin Eclipse IDE untuk mengembangkan produk software aplikasi website secara otomatis. Penelitian ini, sebagai bagian dari lab penelitian RSE, bertujuan untuk mengimplementasikan solusi deployment terhadap software aplikasi website hasil pengembangan PRICES-IDE yang sebelumnya bersifat pragmatis terhadap SPLE dan berproses secara manual. Implementasi solusi deployment ini menggunakan pendekatan teknologi sistem software deployment Nix dan teknologi lainnya agar sejalan dengan SPLE dan berproses secara otomatis. Hasil penelitian menunjukkan bahwa implementasi Nix dengan teknologi lainnya berhasil mengatasi redundansi deployment untuk produk PRICES-IDE, dan berproses lebih cepat dibandingkan solusi deployment dengan pendekatan lain serta meminimalkan usaha yang diperlukan melalui otomatisasi yang telah berhasil diterapkan. ......Software deployment is a process to make software available to use in a destination environment. One of software development models is Software Product Line Engineering (SPLE) which aim to develop a set of software variations from the same base. One of the SPLE development tools, previously researched by Reliable Software Engineering (RSE) laboratory from Faculty of Computer Science, University of Indonesia, is PRICES-IDE. PRICES-IDE is a set of Eclipse IDE plugins for developing website application software products automatically. This research, as part of the RSE research lab, aims to implement a deployment solution for website application software developed by PRICES-IDE which was previously pragmatic towards SPLE’s characteristic and processed manually. Implementation of this deployment solution uses the Nix software deployment system technology approach and other technologies to be in line with SPLE and process automatically. The results of the research show that the implementation of Nix with other technologies has succeeded in overcoming deployment redundancies for PRICES-IDE products, and processes faster than deployment solutions with other approaches and minimizes the effort required through successfully implemented automation.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2023
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Claudio Yosafat
Abstrak :
Kebutuhan masyarakat terhadap sebuah produk berbasis website sangat bervariasi. Soft- ware Product Line Engineering merupakan salah satu solusi yang dapat digunakan untuk memenuhi variasi kebutuhan tersebut. SPLE akan melihat persamaan dan variasi dari ke- butuhan pengguna untuk menghasilkan berbagai macam software yang sesuai dengan ke- butuhan pengguna. Software yang sudah dibangun akan melalui tahapan deployment agar dapat diakses secara luas. Terdapat sebuah penelitian yang membantu proses deploy- ment produk SPLE. Namun, produk-produk yang dibangun menggunakan hasil peneli- tian tersebut belum dijalankan di dalam sebuah isolated environment. Hal tersebut dapat menghasilkan beberapa masalah ketika sedang dilakukan maintenance atau konfigurasi pada salah satu produk sehingga dapat mempengaruhi produk lainnya. Penelitian ini akan melakukan eksperimen terhadap deployment produk SPLELive yang dibangun menggu- nakan metode SPLE untuk melalui proses deployment menggunakan Docker. Docker De- ployment pada penelitian ini akan melalui tiga buah proses dan setiap proses dijalankan pada server yang berbeda. Server 1 digunakan untuk proses membangun Docker Im- age produk SPLELive, Server 2 digunakan untuk proses penyimpanan Docker Image menggunakan Docker Registry, dan Server 3 digunakan untuk proses menjalankan pro- duk SPLELive di dalam sebuah Docker Container. Pembangunan Docker Image pada Server 1 akan menggunakan metode Multi-Stage Build untuk mengoptimalkan ukuran Docker Image produk SPLELive. Melalui proses Docker Deployment, produk SPLELive yang dibangun akan berjalan dalam sebuah isolated environment dan dapat meningkatkan portability dari produk SPLELive. Penelitian ini diharapkan dapat membuktikan bahwa Docker Deployment dapat diterapkan pada SPLE. ......People’s needs for a website-based product vary widely. Software Product Line Engineer- ing is a solution that can be used to meet these variations in requirements. SPLE will look at the similarities and differences of user needs to produce various kinds of software ac- cording to user needs. Software that has been built will go through the deployment stage so that it can be widely accessed. There is a study that helps the SPLE product deploy- ment process. However, the results of this research have not yet been run in an isolated environment. This can result in several problems when it is being carried out maintenance or configuration of one product to affect other products. This research will conduct ex- periments on the deployment of SPLELive products built using the SPLE method to go through the deployment process using Docker. Docker Deployment in this study will go through three processes, and each process is run on a different server. Server 1 is used for building Docker Image SPLELive products, Server 2 is used for the Docker Image storage process using the Docker Registry, and Server 3 is used for the process of running SPLELive products in a Docker Container. Docker Image development on Server 1 will use the Multi-Stage Build method to optimize the Docker Image size for SPLELive prod- ucts. Through the Docker Deployment process, the SPLELive products that are built will run in an isolated environment and can increase the portability of the SPLELive products. This research is expected to prove that Docker Deployment can be applied to SPLE.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2020
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Fardhan Dhiadribratha Sudjono
Abstrak :
Dalam Game Development, proses penyusunan objek dalam permainan merupakan proses yang repetitif. Fitur-fitur pada suatu game object ada yang dapat digunakan ulang pada sebuah game object yang baru. Pendekatan tersebut mirip dengan pendekatan software product line engineering (SPLE) yang menggunakan konsep commonality dan variability. Penelitian dilakukan untuk melihat bagaimana eksekusi proses penyusunan objek dalam game dengan pendekatan SPLE. Proses penelitian dimulai dari identifikasi fitur dan penyusunan feature model untuk objek permainan terlebih dahulu, kemudian analisis perbandingan metode menyusun objek permainan cara manual dengan cara pendekatan SPLE. Ditemukan bahwa metode penyusunan dengan pendekatan SPLE memiliki jumlah langkah yang lebih sedikit dibandingkan metode manual. Metode penyusunan game object dengan metode SPLE dapat menjadi alternatif solusi untuk penyusunan game object yang memiliki fitur yang mirip. ......In Game Development, the process of creating an object is a repetitive process. Several features defined in a previously made game object can be reused when creating a brand new game object. The approach is similar to the software product line engineering (SPLE) concept which defines commonality and variability. This research is conducted to document the object creation process inside a game using the SPLE approach. The research begins from feature identification and feature model creation for the game object, followed by a comparison analysis of the manual game object creation process and the SPLE approach. From the results, it can be deduced that the method using the SPLE approach takes less steps compared to the manual approach. The object creation process using the SPLE method can be an alternative solution to the creation of game objects with similar features.
Depok: Fakultas Ilmu Komputer Universitas Indonesia , 2020
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Abi Fajri Abdillah
Abstrak :
Proses pembuatan game object pada pengembangan game dapat dilakukan dengan lebih efisien bila menggunakan pendekatan software product line engineering (SPLE). Hal ini dikarenakan sebuah game object berkemungkinan mempunyai fitur-fitur yang dapat digunakan kembali pada game object lain, layaknya konsep commonality dan variability yang ada pada SPLE. Penelitian ini bertujuan menghasilkan aplikasi character generator yang dapat digunakan game developer untuk membuat game object berupa karakter pada game yang dibuat. Aplikasi tersebut dirancang sedemikian rupa mengikuti kaidah-kaidah SPLE. Batasan pada penelitian ini adalah hasil game object dari aplikasi tersebut hanya dapat digunakan pada Godot Engine dan untuk game dengan genre turn-based role-playing game. ......Creation process of game object in game development can be done more efficiently when using software product line engineering (SPLE) approach. This is because a game object can possibly has features that can be reused on other game objects, like the concept of commonality and variability in SPLE. The purpose of this research is to produce a character generator application that game developers can use to create game objects which are characters in the game that is made. The application is designed in such a way following SPLE principles. Restrictions in this research are the game object results from the application can only be used on Godot Engine and for games with the genre of turn-based role-playing game.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2022
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Abdurrahman Luqmanul Hakim
Abstrak :
Proses pembuatan game object pada pengembangan game dapat dilakukan dengan lebih efisien bila menggunakan pendekatan software product line engineering (SPLE). Hal ini dikarenakan sebuah game object berkemungkinan mempunyai fitur-fitur yang dapat digunakan kembali pada game object lain, layaknya konsep commonality dan variability yang ada pada SPLE. Penelitian ini bertujuan menghasilkan aplikasi character generator yang dapat digunakan game developer untuk membuat game object berupa karakter pada game yang dibuat. Aplikasi tersebut dirancang sedemikian rupa mengikuti kaidah-kaidah SPLE. Batasan pada penelitian ini adalah hasil game object dari aplikasi tersebut hanya dapat digunakan pada Godot Engine dan untuk game dengan genre turn-based role-playing game. ......Creation process of game object in game development can be done more efficiently when using software product line engineering (SPLE) approach. This is because a game object can possibly has features that can be reused on other game objects, like the concept of commonality and variability in SPLE. The purpose of this research is to produce a character generator application that game developers can use to create game objects which are characters in the game that is made. The application is designed in such a way following SPLE principles. Restrictions in this research are the game object results from the application can only be used on Godot Engine and for games with the genre of turn-based role-playing game.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2022
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
Ryan Karyadiputera
Abstrak :
Metode Clone-and-Own merupakan metode yang umum digunakan dalam pengembangan software. Clone-and-Own merupakan cara pengembangan yang menerapkan teknik kloning terhadap software yang sudah ada dan dimodifikasi dengan menambahkan atau mengurangi modul di softwaretersebut. Terdapat alternatif untuk metode Clone-and-Own, yaitu Software Product Line Engineering atau SPLE. Metode SPLE digunakan pada framework seperti WinVMJ. WinVMJ merupakan framework yang menggunakan bahasa Java dan berbasis Variability Modules for Java. Penelitian ini akan membandingkan metode Clone-and-Own dan SPLE dengan mengimplementasikan modul notifikasi di aplikasi Amanah yang menggunakan framework WinVMJ. Tujuan dari modul notifikasi adalah untuk memberikan pemberitahuan kepada pengguna saat terjadi perubahan dari suatu fitur. Modul ini juga akan memiliki pengaturan yang bertujuan agar pengguna dapat menentukan jenis notifikasi yang diterima, sehingga pengguna hanya mendapatkan notifikasi yang diinginkan. Penelitian ini menyimpulkan bahwa metode SPLE lebih baik daripada Clone-and-Own di mana metode SPLE memiliki efisiensi yang lebih baik dari segi line of code yang digunakan dalam pengembangan aplikasi. ......Clone-and-Own is a method that is commonly used in developing software. Clone-and-Own is a development method that works by cloning an existing software and modifying it by adding or removing modules in that software. An alternative method of it is Software Product Line Engineering or SPLE. SPLE method is used on frameworks like WinVMJ. WinVMJ is a framework that uses Java programming language. WinVMJ is based on Variability Modules for Java. This research will compare Clone-and-Own and SPLE methods by implementing notification module in Amanah app that uses WinVMJ framework. This module's purpose is to notify users of content changes in a feature. This module will also have a configuration to make users decide which kind of notifications will be received, so users will only get needed notifications. This research concludes that SPLE method is better than Clone-and-Own. SPLE method has better efficiency in terms of line of code for developing software.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2022
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
cover
William
Abstrak :
Terdapat aplikasi-aplikasi yang mempunyai kesamaan dalam hal fitur-fitur namun berbeda dalam fungsi. Hal ini memotivasi penggunaan Software Product Line Engineering (SPLE). SPLE menentukan fitur-fitur yang umum dan bagaimana fitur-fitur tersebut menghasilkan aplikasi yang bervariasi. Aplikasi SPLE dapat digunakan sebagai layanan pembuatan web. Namun, menjalankan banyak aplikasi produk memerlukan suatu sistem monitoring untuk memantau semua aplikasi. Penelitian ini mencoba menangkal permasalahan tersebut dengan menerapkan sistem monitoring yang terpusat. Sistem monitoring ini diterapkan untuk memonitor dan mendeteksi masalah dalam menjalankan aplikasi produk. Problem tersebut dapat berupa masalah performa dan error dari aplikasi, aplikasi tidak berjalan, atau kekurangan kapasitas CPU, memori, dan disk. Aplikasi produk dimonitor dengan mendapatkan metrik yang menggambarkan performa aplikasi. Log dari aplikasi produk juga didapatkan untuk membantu debugging suatu problem yang timbul. Pada sistem ini, terdapat Prometheus, Promtail, dan Loki yang berperan dalam mengumpulkan metrik dan log. Data yang sudah dikumpulkan ini diakses oleh Grafana untuk visualisasi data dan mendeteksi problem yang terjadi. Untuk memverifikasi kinerja sistem sebagai jawaban dari masalah utama penelitian ini, sistem ini diujikan dalam beberapa skenario. Terdapat 3 jenis skenario yang diujikan, skenario matinya aplikasi produk atau aplikasi monitoring, skenario penggunaan CPU, memori, dan disk yang tinggi, serta skenario terjadinya error dalam aplikasi produk. Penelitian juga menganalisis Beban sistem monitoring dan kemungkinan penerapan monitoring sebagai variabilitas dalam SPLE. Dengan penerapan ini, diharapkan sistem monitoring dapat mendeteksi problem dan membantu developer dalam menyelesaikan problem. Penelitian ini diharapkan dapat membuktikan bahwa monitoring dapat diterapkan ada SPLE. ...... There are applications that are similar in terms of features but different in functionality. This motivates the use of Software Product Line Engineering (SPLE). SPLE defines common features and how they result in varied applications. SPLE applications could be used as web development services. However, running many product applications requires a monitoring system to monitor all applications. This research tries to counteract the problem by implementing a centralized monitoring system. This monitoring system is implemented to monitor and detect problems in running applications. These problems can be in the form of performance issues and errors from the application, the application not running, or lack of CPU, memory, and disk capacity. Applications are monitored by obtaining metrics that describe application performance. Logs of applications are also obtained to help debug a problem that arises. In this system, Prometheus, Promtail, and Loki are responsible for collecting metrics and logs. The data that has been collected is accessed by Grafana for data visualization and problem detection. To verify the performance of the system as an answer to the main problem of this research, this system is tested in several scenarios. There are 3 types of scenarios tested, unexpected application shutdown, high resource usage, and error occurrence in applications. The research also analyzed the resource usage by monitoring system and the possibility of implementing monitoring options as a variability in SPLE. With this implementation, it is expected that the monitoring system can detect problems and assist the developers in solving problems. This research is expected to prove that monitoring can be applied to SPLE.
Depok: Fakultas Ilmu Komputer Universitas Indonesia, 2023
S-pdf
UI - Skripsi Membership  Universitas Indonesia Library
<<   1 2 3 4   >>