# data[].attributes.body
Group Members:
1.Anis Safiyyah Binti Adnan(2116330)
2.Hannah Kamillia Binti Hamidi(2113570)
3.Che Wan Sarah Najwa Binti Che Wan Ahmad(2117644)
4.Amira Shazleen Binti Aminuddin(2118164)

Banking application system
Hiding sensitive information is a very important factor in financial applications like banking systems. This application illustrates the classification of bank account information into various security levels and allowing access only to some data to authorized users based on sensitivity of the information. The information maintained by the CheckingAccount class is extracted into special interfaces like AccountSummary and AccountOwnerDetails to be accessible to actors like AccountHolder and BankClerk. In this example, the account holder and the bank clerk can both access AccountSummary but only the account owner can see certain account details like SSN, and pin through AccountOwnerDetails

# data[].attributes.body
Group Members:
1. Ahmad Hazim bin Mohd Zin (2118511)
2. Muhamad Arash Bin Abdullah @ Shamsudin (2118279)
3. Muhammad Nur Badri Bin Mahazir (2110797)
4. Muhammad Mujahid Bin Mahazanan (2119989)

Food Delivery System
Refactoring is a technique to improve the quality of existing code. Refactoring is a continuous process of improvement for avoiding code degradation and structure which leads to an increase in difficulties and costs of maintaining a system. This technique has been applied in this kind of system, one of the examples that developers have made is separating the ordering function and delivering function. This will make the system less complex and developers can easily spot the bugs and make further improvement to the system. Besides, it will make the code easy to understand by the other team's developers.Through these techniques , the certain failed function can be simplified easily .This separate method is called extract technique where the developers break down the code into parts and move those parts to different methods. This application also uses refactoring by abstraction. This technique reduces the amount of duplicate code. This is done when there is a large amount of code to be refactored.Other than that, developer also can refactor the application by removing the unused advertisements that shown in the main menu, it is because sometimes when to many advertise pop-up at the same time it will distract the customer to order the food and at the same time lose their interest about that application.

# data[].attributes.body
members:
1.  Khairul Ikhwan (2110753)
2. Syahmi Salam (2115083)
3. Zafran Syahmi (2111851)
4. Khairul Fahmi (2115889)

Calculator application

Cohesion and coupling are used to assess functional independence. If a module has high cohesion and low coupling, it is considered to be functionally independent of other modules. Coupling measures the degree to which modules interact with one another. The level of coupling between two modules is determined by several modules, including interface complexity, the type of data that passes via the interface, communication style, number of interfaces per module, and so on. Cohesion is a measure of a module's relative functional strength. It represents the strength of the bond between the modules' internal components. The stronger the cohesiveness of a module, the more tightly the elements are tied to one another. As an example, suppose we create a calculator application and divide it into some modules to do a specific operation or function. Each module in the calculator interacts with the others as little as feasible. Furthermore, each module must function separately and autonomously to function properly, such as the addition function, which does not require the subtraction function to execute the addition operation.

# data[].attributes.body
Group members:
1. Nuur Nadheerah Binti Mohammad Lutfi (2117898)
2. Farah Izzah Wong Binti Abdul Rahman Wong (2111188)
3. Husna Ezzah Binti Mohd Fakhrurrazi (2110942)
4. Jawaher Abdulrahim (1636616)

Subject Update Program

Refinement simply refers to the process of removing impurities from something in order to improve the quality. The refinement design concept is a process of developing the software or system in a detailed manner which implies to elaborate a system or software. It is essential for identifying and reducing any errors that may occur. The Subject Update program is a program that displays a form where the data values are generated by the built-in constants. Then, the interface could perhaps show a fixed row of the Subjects’ table as the second refinement. The third refinement allows a subject code to be entered and display its corresponding row. A fourth stage may allow for the updating of a specific datum and continues until the final stage where error messages might be displayed. For example, “Class is already full.”

# data[].attributes.body
Group Members :
1) MUHAMMAD FIKRI BIN  MOHAMMAD ISA  2110105
2) MUHAMMAD SYAZWAN BIN MAT SHUKI 2119861
3) MUHAMMAD ADIB BIN MOHD SAID 2116287
4) MUHAMMAD HANIF BIN MD KAMAL 2114963

Java application system

The offering of a single interface to entities of many kinds is known as polymorphism. The idea is based on a biological theory that states that an organism or species may exist in several forms or phases. Polymorphism in Java refers to an object's capacity to adopt several forms. Simply said, polymorphism in Java enables us to accomplish the same function in a variety of ways. Assume there is an Animals base class from which the subclasses Horse, Fish, and Bird are descended. Assume that the Animals class contains a Move method that is inherited by all of the subclasses indicated. Polymorphism allows each subclass to implement the function in its own unique way. In effect, Polymorphism reduces the developer's workload by allowing him to construct a generic class with all of the traits and behaviours that he desires. When the developer is ready to build more specialised subclasses with specified characteristics and behaviours, he or she may simply change the code in the areas where the behaviours differ. The remainder of the code may be left alone.

# data[].attributes.body
Group Members :
1) SHAFIA HANIS BT SHAMSUL ASMADI 2110578
2) PUTERI SABRINA RAYSA BT RAMLAN 2111742
3) PUTERI NOOR FARHANA BT MEGAT MOHD SUHAIMI 2116304
4) NOORALYA QASRINA BT ZURAIMI 2118228

Text-to-speech Application

Modules with low dependencies on other modules are used in modularization. As a result, we can quickly make modifications to a module without having to worry about the rest of the program. This application will analyze the input text from the user, and then modularize to read the user’s text out loud. We can apply modularization to this application and decompose text-to-speech to parse the user’s text to be read out loud, computer voice for user-selectable computer voices and text speech controller to control the user's preferred speaking speed. Instead of constructing the program as a single big monolith, it might be divided into modules, each of which is dedicated to a certain software function. As a result, the developers may work on each module at the same time, cutting down on development time. The text-to-speech and computer voice modules can also be utilized for other purposes, such as voice navigation. As a result of employing modularization to create the text-to-speech program , each module is responsible for its own independent function, making it easier to develop, test, and maintain. They can also be utilized in other projects.

# data[].attributes.body
Group members:
-Hussein Ahmed Gaafar Albaiti (2110925)
-Muhammad Afiq Bin Mohd Ara (1910829)
-Muhammad 'Affif Bin Rusli (1923949)
-Muhammad Haniff B Ismail (2110619)

Java Inheritance Implimentation

Inheritance is looking at the class hierarchy from the bottom up. A subclass inherits behaviors and attributes from its superclass. A subclass automatically possesses certain behaviors and/or attributes simply because it is classified as being a subclass of an entity that possesses those behaviors and/or attributes. That is, a cherry can be said to automatically contain a seed because it is a subclass of Fruit and all fruit contain seeds.

Inheritance is useful from a code reuse perspective. Any (non-private) code in the superclass does not have to be replicated in any of the subclasses because they will automatically inherit those behaviors and attributes. However, one must be very careful when transferring common code from the subclasses to the superclass (a process called "hoisting"), as the proper abstraction represented by the superclass may be broken

# data[].attributes.body
Group members:

1. MUHAMAD ZIKRY ADIB BIN MOHD SUHAIMI (2112197)

2. AMEER AL-WAFIQ BIN NORAZAM (2119005)

Zakat calculator

Procedural abstraction is the idea that each method should have a coherent conceptual description that separates its implementation from its users. You can encapsulate behavior in methods that are internal to an object or methods that are widely usable. Example of procedural abstraction is Zakat Calculator. User just need to declare their income and the program will decide how much zakat that they need to pay based on the formula written in the program and user does not require to calculate by themselves.