1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập kết thúc môn học kiến trúc & thiết kế hệ thống thông tin

31 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Bài Tập Kết Thúc Môn Học Kiến Trúc & Thiết Kế Hệ Thống Thông Tin
Tác giả Hoang Trung Phong
Người hướng dẫn Nhúm Tr& Dinh Quộ
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài tập
Năm xuất bản 2018
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 10,26 MB

Nội dung

VU File Edit View Navigate Source Refactor Run Debug Profile Team Tools Window Help 3E } 39 áo, a public List FfindAII { a a4 là *ÚH$ 46 a public List findRangeint[] range {

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CONG NGHE THONG TIN 1

BAI TAP KET THUC MON HOC

KIEN TRUC & THIET KE HE THONG THONG TIN

Giang vién: Tr& Dinh Qué’

Nhóm môn học : 03

Sinh viên:

Hoang Trung Phong — B14DCCN333

Trang 2

Biểu đ ồgói kiến trúc 3 tầng MVC SH HH HH HH HH Hit 4 Biểu đ ôtriển khai án HH Hà HH Hà HH HH HH TH HH HE TH KH 5 Sinh lược đ Öcơ sở dữ liệu từ biểu đ`ÔlỚp ccSc SH HH HH HH Hà Ho 5 Sinh code Java với các beaI nhàn HH HH HH HH HH TH HH HH 7

Trang 3

I Biểu đ 6lớp thiết kế của hệ thống

Trang 4

II Gói kiến trúc 3 tầng và biểu đ ôtriển khai cho hệ thống

2.1 Biểu đồôgói kiến trúc 3 tầng MVC

Trang 5

Ill Sinh lược đ Ôcơ sở dữ liệu từ biểu đ ôlớp

- _ Từ biểu đồlớp trên Ta chọn Tools -> Hibernate -> Synchronize to Entity Relationship Diagram

Trang 6

- _ Sau khi có lược đôCSDL ta tạo được được 1 CSDL tại MySQL

Mới dùng Ua ding a ‘Tite |

| Bê lọ

pe Tung 1 taikhoan VỀ ElDuyệt } Cấu trúc + Timkiểm 8£ Chèn Rồng @ Xóa @ InnoDB utf8_general_ci a2 cis F

- Kétndéi NetBeans voi CSDL BoCE vừa tạo ở trên

4.1 Entity Bean

- Sau khi da két n6i voi MySQL ta chon nhw hinh:

Trang 7

File Edit View Navigate Source Refactor Run Debug Profile Team Tools Window Help

b-[lị Gene Find Ctrl+F Session Beans For Entity Classes Š £ 3? FB# #đ+re

> Librat ity Classes from Database

5 Ente Cut Ctrl+X we teakntiee ners ope alabaster)

k § aoe CV ổ| Message-Driven Bean

Delete Delete _ Java Package 1;

Refactor i Entity Class

Compile Package F9 joe CE

Hectony ỉ Timer Session Bean

Trang 8

VU File Edit View Navigate Source Refactor Run Debug Profile Team Tools Window Help

3E }

39

áo, a public List<T> FfindAII() {

a a4) là

*ÚH$

46 a public List<T> findRange(int[] range) {

ae) eq.select (cq.from(entityClass));

- Mỗi Entity bean tương ứng với một bản ghi trong CSDL

- _ Giống như CSDL quan hệ, Entity bean cũng có quan hệ với các Entity bean khác

42 @NamedQuery (name = "Nguoi.findByHcTen", query = "SELECT n FROM Nguoi n WEERFE n.hoTen = :hoTen"|,

45 @NamedQuery (name = "Nguoi findByTaikhoan", query = "SELECT n FROM Nguoi n WHERE n.taikhoan = :taikhoan"),

46 @NamedQuery (name = "Nguoi.findByTenTG", query = "SELECT n FROM Nguoi n WHERE) n.cenTG = :tenTG™},

4Ê public class Nguoi implements Serializable {

4 private static final long seriaiVersionUID = iL;

so @id

52 @Basic (optional = false)

55 @Column (name = "HoTen")

sẽ @Temporal (TemporalType DATE)

58 Private Date ngaySinh;

62 @Column(name = "Taikhoan"}

Trang 9

q.setMaxResults(range[1] - range[0] + 1); q.setFirstResult (range[0]);

Trang 10

public class DonhangFacade extends AbstractFacade<Donhang> implements DonhangFacadeLocal

@PersistenceContext (unitName = "Bocee-ejbPU")

private EntityManager em;

- Session bean g ôm 2 loại

O Stateless: chi str dung trong 1 phiên, dữ liệu không được lưu lại H1 Statcfull: Dữ liệu được lưu lại (giỏ hàng)

Trang 11

Tìm hiểu và áp dụng 10 mau Design Pattern

b Code

Trang 12

public abstract class AbstractFactory {

abstract Color getColor(String color);

abstract Clothes getClothes (String clothes);

- Abstractfactoryparttern

package abstractfactory;

/k*

public class AbstractFactoryPattern {

public static void main(String[] args) {

AbstractFactory clothesFactory = FactoryProducer.getFactory("CLOTHES");

Clothes clothesl = clothesFactory.getClothes ("SHIRT");

AbstractFactory colorFactory = FactoryProducer.getFactory("COLOR");

Color colorl = color¥Factory.getColor ("RED");

Trang 15

System out.printlin("show pants");

@ Ĩ public void Type(){

Trang 16

public class Computer {

private final String HDD;

private final String RAM;

private final String Hang;

private final String Gia;

public String getHang() {

private final boolean isBluetoothEnabled;

public String getHDD() {

public String getRAM() {

Trang 17

@ public String toString() {

< private boolean isCrsphicsCardinabled;

6: private boolean isBluetoothEnabled;

e2 private String Hang;

B0 zeturn new Computer(this);

13 public class DemoBuilderPattern {

as Computer comp = new Computer ("soocB", "26", "ASUS","100000").setBluetoothEnabled (true)

16 -setGraphicsCardEnabled (true) -build();

Computer [HDD=500GB, RAM=2G,Hang = ASUS ,Gia=100000, GraphicsC ue, Bl

BUILD SUCCESSFUL (total time: 1 second)

li

14

c Áp dụng vào hệ thống

Trang 18

- _ Builder pattern được sử dụng để xử lý các vấn đ'êcòn tôn tại khi mà Object có nhị ân thuộc tính Ví dụ như trong hệ thống BoCE., Máy tính có nhi âi thuộc tính, Builder pattern xử lý các vấn đ`ênày bằng việc cung cấp một cách xây dựng đối tượng từng bước một và cung cấp một method để trả v`êđối tượng Cuối cùng

Trang 19

public void showMessage() {

System out.println("Show book");

public class clothes {

private static clothes instance = new clothes

Trang 20

public class elec {

private static elec instance = new elec();

private elec() {

}

return instance;

public void showMessage() {

System out.println("Show electronic”);

public class product {

private static product instance = new product();

Trang 22

s vn, 4 -mediaAdapter : lvancedMedia

+MediaAdapter(): +play() : void void

+playVLC(} : void +playVLC(} : void +play{} : vold

+playMp4() : void +playMp4() : void

b Code

c Áp dụng vào hệ thống

- Mơ hình Adapter làm viêp như mợpc nối giữa hai Interface khơng tương thích Mqu thiết kế kiến trúc này tạo tạo ra theo mơ hình kiến trúc vì nĩ kết hợp chức năng csa hai Interface đơ p lâm

- M6 hình bao gân mợlớp duy nhất cĩ trách nhiêp kết hợp các chức năng các Interface đơplâpp và khơng tương thích Mợryí dụ trong thực tế dé la da đọc tht nhớ hoạt đơng như mơfpbơ pchuyển đưi giữa tht nhớ và máy tính Chúng ta chỉ c®n cắm tht nhớ và đi đọc tht nhớ vào máy tính để tht nhớ cĩ thể đọc thơng qua máy tính

5.5 Bridge

a Biéu d dlop

Trang 23

uses ,| +drawAP! ; DrawAP! uses

+Sha pe() : void : +drawCircle() : void

+draw/() : String

+ extends

+ PhoneNumber phoneNumber

+ display()

b Code

- Name.Java

Trang 24

- Address.java

this.lastName) ;

Trang 25

}

- PhoneNumber.java

Trang 26

PersonFacade.java

Trang 28

public void setInformation() {

Scanner scanner = new Scanner (System.in);

String street = scanner.nextLine();

String city = scanner.nextLine();

String country = scanner.nextLine();

String number = scanner.nextLine();

String postealCode = scanner.nextLine();

String firstName = scanner-.nextLine();

String middleName = scanner.nextLine();

System.out.print("nhap ten: ");

String lastName = scanner.nextLine();

scanner.close();

MainApp.java

public class MainApp {

public static void main(String[] args) {

PersonFacade person = new PersonFacade();

person.setInformation();

person.display();

Output

Trang 29

nhap duong: Nguyen Trai

nhap quoc gia: VietNam

Ví dụ trong mô hình BoCE: Trên màn hình đăng ký, ta nhập thông tin như username, email sau đó sang màn hình tiếp theo nhập địa chỉ (quận/huyện, phường/xã, đường, số nhà ) r ñ sang màn hình tiếp để nhập các thông tin liên lạc như số điện thoại

Ta có 1 hệ thống cũ với các thông tin v`Êngươi như Address, PhoneNumber, Name Ta muốn quản lí các thông tin trên bằng cách xây dựng 1 lớp

PersonFacade tận dụng lại các lớp ở trên

Chain of responsibility

a Biéu d dlop

Trang 30

+main() : void

+DEBUG : int +ERROR ; int +level : int

+logMessage() : void -write() : void

+register0bserver (observer}

+notify() +unregister0bserver (observer )

+notifyObservers()

notify0bservers() for observer in observerColLection

call observer notify() ConcreteObserverA ConcreteObserverB

b Code

c Áp dụng vào hệ thống BoCE

Trang 31

implements | +setState() : void

StopState StartState

Ngày đăng: 23/02/2025, 21:27