Tải bản đầy đủ (.pdf) (32 trang)

1651 assignment 1 (pass)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (697.25 KB, 32 trang )

Higher Nationals in Computing

Unit 19:
ASSIGNMENT 1
Advanced Programming (1651)

Assessor name: LE NGOC THANH
Learner’s name: Đào Vĩnh Khang
ID: GCS200222
Class: GCS0905B
Subject code: 1651
Assignment due:

Assignment submitted:


ASSIGNMENT 1 FRONT SHEET
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


Re-submission Date

14-02-2022

Date Received 2nd submission

Student Name

DAO VINH KHANG

Student ID

GCS200222

Class

GCS0905B

Assessor name

LE NGOC THANH

Student declaration
I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand
that making a false declaration is a form of malpractice.
Student’s signature
Grading grid
P1
P2


M1

M2

D1

D2

KHANG


❒ Summative Feedback:

Grade:
Signature & Date:

❒ Resubmission Feedback:

Assessor Signature:

Date:


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
/>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:


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
Pass

Merit

Distinction


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.



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



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.


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.


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.


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.



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:


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


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.


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.



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

customers such as adding, deleting, updating and searching disc information.


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.


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.


Class Diagrams:


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.



Figure 5: PopMusicDisc Class Diagram.

1. MusicDisc Class.
❖ Class Diagram:

As previously stated, the MusicDisc class has the fundamental fields that other
classes can inherit, such as:
➢ 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


class) to encapsulate the field and change the way other classes access this class,
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.


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).

4. MusicDiscShop Class.
❖ Class Diagram.

As previously stated, because it has a list of books and a CRUD function, the
MusicDiscShop class is critical to the overall software. Here is the explanatory
specification:
➢ 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


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×