# 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:
Qhuratul Nissa Binti Mior Idris | 2116092
Fariha Hadaina binti Mohd Shazali | 2114478
Maryam Umairah binti Arman Yatim | 2110256
Sofea Hani binti Ahmad Shazali | 2115668

ONLINE SHOPPING SYSTEM

When a database is complex, it requires it to be split into smaller sections so that it is more manageable. For example, the online shopping system is one big database that is divided into multiple concerns with each independent concern holding a variety of its own information. Thus, it is quicker to make modifications such as upgrading, reusing, and independent development to each of the concerns. As in the diagram, payments and orders are two separate concerns, with Payments exclusively in charge of processing payments and will not intermingle with the process of the other concerns.

# data[].attributes.body
GROUP MEMBERS:
1.MUHAMMAD IRFAN ZAKI BIN MOHD RAZALI (2119015)
2.SITI NURFARAHANIM BINTI MOHD ISA (2119316)
3.NURSYAHIRA BINTI SALLEH (2115912)
4.NOOR NAJIHAH BINTI NORDIN(2116116)

REFACTORING

Example: FOOD ORDERING SYSTEM

This refactoring application can be seen in this kind of system, one of the refactoring that the developer did is separate displayMenu() from orderFood() function. Although both of them can be put under the same method ( resulting in long code in one function) but it is separated into two different methods by using extract technique and the function will be called during the execution process when needed. the main purpose of this is to make the code highly readable by other developer team members, especially the back-end developer. Moreover, it is easier to debug code that is simplified. All the changes can be made in that particular function only without having to go through other code that is not related to the changes.

# data[].attributes.body
Group Members :

Danish Zahiruddin bin Khairul Anuar | 2012785
Nurul Alifah Maisarah binti Abdul Halim | 2114912
Nurin Afiqah binti Mohd Baharuddin | 2113272
Nursyahirah binti Syarkan | 2112510

DESIGN CONCEPT : INFORMATION HIDING

The way and why people use their cellphones has changed dramatically in recent years. People may link to their business and social networks, as well as their bank accounts, vehicle insurance, medical databases, and even their home operating systems, using smart mobile devices. They are the lifeblood of consumer behaviors on a daily basis. Smartphones use a number of mobile security methods to restrict access. Complex alphanumeric passwords, as well as biometric procedures like fingerprint access and voice activation, are examples of this. E-wallets work in a similar way. Consumers can secure their e-wallet account with an extra password. When this is combined with modern encryption technologies, a consumer's information is more protected from hackers and other third parties.

# data[].attributes.body
Group members :

1. Hadura Fairuzza binti Abd Halim (2113584)

2. Shahir Akram bin Anuar (2113999)

3. Farahiyyah binti Munawwar Hidayat (2116780)

4. Hanis Karmila binti Suhaimi (2113412)

REMOTE CONTROL SYSTEM

Data abstraction allows you to avoid getting sidetracked by every aspect of a device while still keeping clear instructions for easy operation. The abstract data is human readable and useful why the raw data is complex and technical. Users can focus on the machine's essential functions with data abstraction. The buttons instruct you on how to adjust the volume and turn on and off the television, and these commands are useful to you. The manner in which the remote links to the television after you push the button may be unimportant because it has little impacts on how we use it.

# data[].attributes.body
Group Members:
1) Nursyakirah binti Ridzuan (2112324)
2) Nurul Balqis binti Azri (2116956)
3) Nurul Farhanah Natasya binti Rozelan (2115210)
4) Nor Anisah binti Amir Hamzah (2114564)

Principle: Polymorphism

Example: JAVA PROGRAMMING

Polymorphism is a feature of the object-oriented programming language, Java, which implies that you can perform a single task in different ways. In the technical world, polymorphism in Java allows one to do multiple implementations by defining one interface. Polymorphism occurs when there is inheritance, i.e. there are many classes that are related to each other. Inheritance is a powerful feature in Java. Java Inheritance lets one class acquire the properties and attributes of another class. Polymorphism in Java allows us to use these inherited properties to perform different tasks. Thus, allowing us to achieve the same action in many different ways.

# data[].attributes.body
Group Members :
1) Nur Fatihah binti Abdullah (2115778)
2) Nur 'Aqilah binti Zaidon (2110682)
3) Nurul Nuha binti Mohd Zaki Udin (2111738)
4) Naafilah Hudaa binti Muhammad Shakir (2111798)

Principle: Refinement
Example: Grab (Deliveries and Mobility System)

In its system, Grab uses the refinement principle. Grab is an app that allows you to order food and get a ride. Allowing location access is required in order to use the app. When you use the app, it will need your location data. Grab is able to provide its services to you because of the precise location of your device. Because it is a ride-hailing and food delivery app, it needs to know where your phone is in order to provide you with its services, which include transportation and food delivery. It follows the refinement principle, allowing location access before using the app so that it can provide faster and more accurate ride pickups and other services, as well as better ensure your safety.

# data[].attributes.body
1. MUHAMMAD ALIF HAZIQ BIN
MOHD RAZMI (2110091)
2. MUHAMMAD AL-QARDHAWI BIN
AZAHAR (2114045)
3. MUHAMMAD AIMAN BIN JOHARI (2118131)
4. MUHAMMAD AKMAL BIN
RAHIMEY (2119651)

EXAMPLE - BMI CALCULATOR

- PROCEDURAL ABSTRACTION

In Procedural Abstraction, methods are used to capture the procedural patterns, abstracting over behavior.  The procedural abstraction is making use of methods that accept formal parameters and hide the implementation from the user. The user only needs to know what the procedure does and ignore how it does it. An example of this BMI calculator where the user only needs to put data like their weight, height, and age. The app will calculate their BMI and decide whether it is normal or not, the user did not have know how the app calculates their BMI

# data[].attributes.body
GROUP MEMBERS:
Ahmad Imtiyaz bin Suhaimi (2113719)
Adam Haikal bin Alias (2114265)
Amir Arif bin Rosli (2116249)
Abdul Hannan bin Zainudin (2118719)

Design Concept : Inheritance

Example : Student & Employee Identifying System

Inheritance means the object of the subclass inherits the common features from the Superclass. In student & employee system every Person have name, date of birth, children, parents so it is inside the superclass. So then, it will inherite to two types of person which is employee and students that have their own student id or employee id.

# data[].attributes.body
Group members :

1.Ainul Mardhiah Binti Mohammed Rafiq  (2112100)

2. Aina Zahira Binti Mohd Zaki (2115676)

3. Afiqah Binti Abdul Rashid (2116908)

4. Aida Najihah Binti Mohd Marzuki (2118230)

Design Principle : Modularity

Example : Speech Recognition Application

Modularity is a property that describes how replaceable the components or modules of a system are. A modular device has several parts that serve smaller functions which combine to serve the overall purpose of the device. Modules can be removed, replaced, or upgraded without affecting other components.Modularity principle can be shown at speech recognition application that has a few modular such as speech to text  for converting spoken speech into computer-readable text,Voice UI for interacting with users using inquiries, commands, and confirmations stored in the system, instruction manager for storing and providing the application’s questions, commands, and confirmations and computer voices for users to choose from.Everything is clumped together when the software is designed as a monolith. There are no initial distinctions between the various parts of the application. The modular design, on the other hand, identifies the features.The modules can be created concurrently, each with its own set of capabilities. Writing coherent bits of code that represent capabilities is easier when designing apps that are made up of modules. The capabilities of each module might possibly be employed in other contexts as well.