1. Trang chủ
  2. » Công Nghệ Thông Tin

1651 assignment 1 (pass)

32 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Examine and Design Solutions with OOP and Design Patterns
Người hướng dẫn Le Ngoc Thanh
Trường học University of Greenwich
Chuyên ngành Advanced Programming
Thể loại Assignment
Năm xuất bản 2021 - 2022
Thành phố London
Định dạng
Số trang 32
Dung lượng 697,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • ASSIGNMENT 1 FRONT SHEET (1)
  • ASSIGNMENT 1 BRIEF (4)
    • 1. MusicDisc Class (23)
    • 2. EdmMusicDisc Class (24)
    • 3. PopMusicDisc Class (24)
    • 4. MusicDiscShop Class (25)

Nội dung

1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) 1651 assignment 1 (pass) fpt greenwich

Trang 1

Assessor name: LE NGOC THANH

Learner’s name: Đào Vĩnh Khang

Trang 2

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 20: Advanced Programming

Submission date 14-02-2022 Date Received 1st submission 14-02-2022

Re-submission Date Date Received 2nd submission

Student Name DAO VINH KHANG Student ID GCS200222

Class GCS0905B Assessor name LE NGOC THANH

Trang 3

Grade: Assessor Signature: Date:

Signature & Date:

Trang 4

ASSIGNMENT 1 BRIEF

Qualification BTEC Level 5 HND Diploma in Business

Unit number Unit 20: Advanced Programming

Assignment title Examine and design solutions with OOP and Design Patterns

Academic Year 2021 - 2022

Unit Tutor LE NGOC THANH

Issue date 28 November 2022 Submission date

IV name and date

Submission Format:

Format: The submission is in the form of a group written report This should be written in a concise,

formal business style using single spacing and font size 12 You are required to make use of headings, paragraphs and subsections as appropriate, and all work must be supported with research and referenced using the Harvard referencing system Please also provide a bibliography using the Harvard referencing system

Submission Students are compulsory to submit the assignment in due date and in a way requested by the

Tutors The form of submission will be a soft copy in PDF posted on corresponding course of http://cms.greenwich.edu.vn/

Note: The Assignment must be your own work, and not copied by or from another student or from

books etc If you use ideas, quotes or data (such as diagrams) from books, journals or other sources, you must reference your sources, using the Harvard style Make sure that you know how to reference properly,

and that understand the guidelines on plagiarism If you do not, you definitely get fail

Assignment Brief and Guidance:

Trang 5

Scenario: You have recently joined a software development company to help improve their documentation of their in-houses

software libraries which were developed with very poor documentation As a result, it has been very difficult for the company to utilise their code in multiple projects due to poor documentation Your role is to alleviate this situation by showing the efficient

of UML diagrams in OOAD and Design Patterns in usages

Tasks

You and your team need to explain characteristics of Object-oriented programming paradigm by applying Object-oriented analysis and design on a given (assumed) scenario The scenario can be small but should be able to presents various characteristics of OOP (such as: encapsulation, inheritance, polymorphism, override, overload, etc.)

The second task is to introduce some design patterns (including 3 types: creational, structural and behavioral) to audience by giving real case scenarios, corresponding patterns illustrated by UML class diagrams

To summarize, you should analyze the relationship between the object-orientated paradigm and design patterns

The presentation should be about approximately 20-30 minutes and it should be summarized of the team report

Learning Outcomes and Assessment Criteria

LO1 Examine the key components related to the object-orientated programming paradigm, analysing

design pattern types

P1 Examine the characteristics

of the object-orientated

paradigm as well as the

various class relationships

M1 Determine a design pattern

from each of the creational, structural and behavioural pattern types

D1 Analyse the relationship

between the object-orientated paradigm and design patterns

LO2 Design a series of UML class diagrams

P2 Design and build class diagrams

using a UML tool

M2 Define class diagrams for specific

design patterns using a UML tool

D2 Define/refine class diagrams

derived from a given code scenario using a UML tool

Trang 7

Table Content

Contents

ASSIGNMENT 1 FRONT SHEET 2

ASSIGNMENT 1 BRIEF 4

P1 Examine the characteristics of the object-orientated paradigm as well as the various class relationships 9

Object-oriented programming 9

Abstract calculation concept 11

Encapsulation: 12

The concept of inheritance 13

Concept of polymorphism 14

Features of Interface 15

P2 Design and build class diagrams using a UML tool 18

Information Gathering: 18

Scenario 18

Use-case Diagrams: 19

Class Diagrams: 21

1 MusicDisc Class 23

2 EdmMusicDisc Class 24

3 PopMusicDisc Class 24

4 MusicDiscShop Class 25

Sequence Diagram: 28

REFERENCES 30

Trang 9

P1 Examine the characteristics of the object-orientated paradigm

as well as the various class relationships

Object-oriented programming

Object-oriented programming (OOP) is one of the very important programming techniques nowadays It is applicable in most practical construction applications at businesses Most popular programming languages and programming frameworks such as Java, C# and

.NET support object-oriented programming Most programmers have learned about

objectoriented programming in universities, but the basic principles of object-oriented

programming sometimes do not know how to misuse the wrong philosophy of

programming object-oriented

In this article, I will summarize the basic principles of object-oriented programming to help

you get an overview of OOP and how convenient it is

What is object-oriented programming?

Object-oriented programming is a programming technique that allows programmers to create

objects in code that abstract actual objects in life This approach is currently very successful and has become one of the software development templates, especially for software using on

business

Trang 10

When developing applications using OOP, we will define classes (classes) to model actual

objects In the application these classes will be initialized into objects and during the time the application runs, the methods of this object will be called

What is the class that defines the object: include methods and properties An object is just an instance of the class Classes interact with each other by the public API: its set of

methods, its public properties

Trang 11

Abstract calculation concept

Abstraction in Java is a non-specific property that only names the problem It is a process of hiding the inner activities and only showing the essential features of the object to the user For example, if a person uses his phone to send a message, he will enter the text of the message, the recipient's information and press the send button When he started sending the message,

he didn't know what was going on during the sending process but only knew if the result of the message was successfully sent to the recipient So in this example, the process of sending the message has been hidden and only shows the functions that the user needs is the function of entering the message content, the recipient information, the result of sending the message successfully or failure That is abstraction

Advantages of using abstraction for programming:

Abstraction allows programmers to eliminate the complexity of an object by only giving the object's needed attributes and methods in programming, improving the maintainability of the system

Abstraction helps us focus on the essential core of the object rather than being concerned with how it works

Abstraction provides many extended features when used in combination with polymorphism and inheritance in object-oriented programming

Java abstracts through abstract classes and interfaces In this article, I will guide you to learn about abstract classes and abstract methods

Trang 12

Encapsulation:

Definition

- This property does not allow the user to change the intrinsic state of an object Only the object's internal methods allow to change its state In any way, allowing the

external environment to affect the internal data of an object is entirely up to the

person writing the code This is a property that ensures the integrity of the object.Encapsulation enables a group of properties, methods and other members to be

considered a single unit or object

Trang 13

Example code:

The concept of inheritance

+ Definition

- This feature allows an object to have the properties that other objects already

have through inheritance This allows objects to share or expand available features without having to redefine However, not all object-oriented languages have this property

- Multi-level Hierarchy: A derived class can have only one direct base class

However, inheritance is transitive If ClassC is derived from ClassB, and ClassB is derived from ClassA, ClassC inherits the members declared in ClassB and ClassA Example:

Trang 14

Concept of polymorphism

Polymorphic techniques in object-oriented programming languages enable programmers to

increase the ability to reuse code written in a general way and can change behavior flexibly

depending on the type of object

Polymorphism in Java is understood in each case, different circumstances, the object has

different morphology depending on the context The polymorphic object is considered to be a

Trang 15

special object because sometimes it becomes another object and sometimes it becomes

another object (depending on the situation) This "role-playing" in different objects makes it

possible for the original polymorphic object to perform different actions of each specific object

Features of Interface

The interface has only abstract methods

Interface is a technique to achieve complete abstraction and multiple inheritance in Java

The interface always has a modifier: public interface, whether you explicitly specify it or not

If there are fields, they are: public static final, whether or not you specify them

Trang 16

Its methods are abstract methods, meaning there is no function body, and all modifiers are: public abstract, whether you declare it or not

Interface has no constructor

An interface is not a class Writing an interface is like writing a class, but they have two different definitions A class describes the properties and behavior of an object An interface contains the behaviors a class implements

Unless an interface implementation class is an abstract class, all of the interface's methods need

to be defined in the class

The Java Compiler adds the keyword public abstract before the interface method and public static final keywords before data members

Trang 18

P2 Design and build class diagrams using a UML tool

Information Gathering:

Scenario

My brother recently asked me to help them build a record management platform for their business I plan to develop an application that will keep a list of music discs available in the store This software allows users to add new discs by entering disc information such as ID, name, artist, description, year and price In addition, the system contains tasks requested by

Trang 19

Use-case Diagrams:

Use case diagram: Here the actors are the user and the admin Each use case comes with the description, actors, pre/post conditions and the flow of control Here the admin is the one that maintains the application

Trang 20

Coming to the conditions on the use cases, the implicit one is that the user must be logged into the system to access recommendations Flow of control would be the inherent activies of each use case like the processing of the request as soon as the user enters a query for searching the music, the compiling of the list generated from the scores and showing those with high values etc

Trang 21

Class Diagrams:

Trang 22

Figure 3: MusicDisc Class Diagram

❖ Class EdmMusicDisc is the class which is inherits from MusicDisc class, this class contains Price which is overrides the property Price from class MusicDisc and it also contains three methods GetTitle(), GetType() and DisplayMusicInfo() which

is overrides the abstract method abstract from class MusicDisc

Figure 4: EdmMusicDisc Class Diagram

❖ Class PopMusicDisc is the same as class EdmMusicDisc because it also inherits from class MusicDisc

Trang 23

➢ Field includes id, name, artist, description, year and price

➢ Properties include Id, Name, Artist, Description, Year, and Price (this property with the keyword virtual appears to mean that it can be overridden by children

Trang 24

for example, other classes will access the id field via its property Id

In addition, this MusicDisc Class is also an abstract class and it have three methods for inherited classes to define themselves which is GetTitle() to get the title of the disc, GetType() to get the type of the disc and

DisplayMusicInfo() to display the info of the disc

2 EdmMusicDisc Class

Class Diagram

As previously stated, this class is the child class of the MusicDisc class, or we can say it

employs inheritance, that is one of the characteristics of OOP; it inherits everything contained

in the parent class (MusicDisc class), and I also highlighted that the MusicDisc class contains the property 'Price' with the 'virtual' key word for child class having the capability to modify the logic within it (this is a polymorphism characteristic of OOP) Last but not least, it also

contains three methods GetTitle(), GetType() and DisplayMusicInfo() which is overrides the abstract method abstract from class MusicDisc

3 PopMusicDisc Class

Class Diagram

Trang 25

As previously stated, this is also the child class of MusicDisc and this class is the same as EdmMusicClass because it also inherits everything in parent class (MusicDisc Class)

MusicDiscs: this is the list of items that have a music disc within

CheckID(): Because each music disc's id is unique, I wrote this method to

check if the id is duplicated or not; if duplicated, the user will be prompted

Trang 26

'musicDiscs' list

AddMusicDisc(): this is the method to add more disc into the list

PrintAllDisc(): this is the method to display all of the disc that exist in

the list

PrintAllEdm(): this is the method to display all of the EDM music disc

that exist in the list

PrintAllPop(): this is the method to display all of the POP music disc that

exist in the list

UpdateById(): It is difficult to update music discs by name or artist since

they can be duplicated, but each disc's id is unique, thus I created this method to update music discs by id

DeleteById(): This method is the same as Update because it is also

difficult to remove disc by name or artist since they can be duplicated It would be rather amusing if I opted to remove the disc by name because I may delete the wrong disc because there are many songs with the same name in the world nowadays, but each disc's id is unique, thus I created this method to delete music discs by id

GetMusicDiscById(): As I mentioned from update and delete method

that each disc's id is unique, so I designed this method to help users discover the music disc in the most convenient way possible

GetMusicDiscByName(): Each music disc has its own name, but their

names can be the same, so I created this method to find discs by their names in order to keep track of how many discs with the same name are entered

GetMusicDiscByArtist(): Each disc has its own artist name, and they can

write many songs on each disc, so I devised this system for finding discs by their creator's name in order to keep track of how many discs that artist has composed

Ngày đăng: 18/07/2023, 23:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w