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

Báo cáo btl xây dựng và thiết kế phầm mềm

48 527 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

Định dạng
Số trang 48
Dung lượng 1,77 MB

Nội dung

- Giao diện cho người quản lý: tại giao diện này người quản lý biết được tình trạng các thang hoạt động thế nào, đưa ra các thiết lập cần thiết - Hệ thống phải xử lý tối ưu cho việc chọn

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Bùi Văn Phước 20122255 CNTT 2.02-K57

Nguyễn Đa Long 20122007 CNTT 2.01-K57

Đỗ Văn Diện 20121380 CNTT 2.01-K57

Trang 2

Mục lục

Đề bài 4

Giải pháp thực hiện 5

Phần I: Đặc tả yêu cầu phần mềm 6

I Biểu đồ Use-case 6

II Phân tích Use-case 8

1 Quản lý số lượng thang máy hoạt động 8

2 Quản lý hoạt động của thang máy 9

3 Quản lí thời gian hoạt động của thang máy 10

4 Chọn tầng cần đến 12

5 Bảng thuật ngữ 13

6 Tài liệu phụ trợ 14

Phần II: Thiết kế kiến trúc 15

I Use-case quản lý hoạt động của thang máy 15

1 Biểu đồ trình tự 15

2 Biểu đồ giao tiếp 15

II Use-case quản lý thời gian hoạt động của thang máy 16

1 Biều đồ trình tự 16

2 Biểu đồ giao tiếp 17

III Use-case chọn tầng cần đến 18

1 Biểu đồ trình tự 18

2 Biểu đồ giao tiếp 19

Phần III: Thiết kế chi tiết 21

I Biểu đồ trình tự chi tiết 21

1 Use case quản lí thời gian hoạt động của thang máy 21

2 Use case quản lí hoạt động thang máy 21

3 Use case chọn tầng 22

II Biểu đồ lớp chi tiết 23

1 Biểu đồ lớp tổng quát 23

2 Biểu đồ lớp chi tiết 24

3 Giải thuật 35

III Giao diện 42

Trang 3

Phần IV: Sử dụng Design-Pattern 44

1 Pattern Builder 44

2 Iterator 44

Phần V: Kiểm thử 46

1 Test case cho chức năng quản lý hoạt động thang máy 46

2 Test case cho chức năng cài đặt thời gian hoạt độngc của thang máy 46

3 Test case kiểm tra thời gian xung đột 47

4 Test case cho chức năng chọn tầng 47

Trang 4

Đề bài

Một trung tâm thương mại lớn bao gồm 49 tầng, với 10 thang máy (từ A đến J) Hãy xây dựng hệ thống quản lý các thang máy này, với một số yêu cầu sau Vào một số thời điểm nhất định (ví dụ đêm, sáng sớm), chỉ cho phép một số thang máy hoạt động, biết rằng thời gian, số lượng và danh sách thang máy hoạt động

có thể được thiết lập bởi người quản lý Tại một thời điểm nhất định, có thể thiết lập để một số thang máy có thể bỏ qua một số tầng nào đó Khi có một khách bấm thang máy, hệ thống cần tính toán để tối ưu hoá: khoảng cách từ vị trí yêu cầu đến

vị trí hiện tại của thang máy, hướng của thang máy và hướng được yêu cầu

(lên/xuống), số thang máy rỗi và số lượng yêu cầu thang máy Tại mỗi tầng, người dùng được thao tác với một bảng số gồm 10 chữ số (0->9) để nhấn số tầng yêu cầu (từ -2 đến 49) Sau khi gửi yêu cầu số tầng, hệ thống hiển thị tên thang máy (A->Z) để người dùng biết có thể đi thang máy nào

Trang 5

Giải pháp thực hiện

Bước 1: tìm hiểu rõ nghiệp vụ bài toán

- Hệ thống cung cấp cho người đi thang máy và người quản lý hệ thống thang máy

- Hệ thống cần xây dựng có 10 thang máy, 49 tầng

- Giao diện tương tác với người dùng là một bảng số (0->9) để bấm tầng, phần hiển thị để người dùng biết đi thang nào

- Giao diện cho người quản lý: tại giao diện này người quản lý biết được tình trạng các thang hoạt động thế nào, đưa ra các thiết lập cần thiết

- Hệ thống phải xử lý tối ưu cho việc chọn tầng của người dùng

- Từ đó xác định được vấn đề căn bản cần xử lý :

+ Xây dựng được giao diện cho người dùng, người quản lý

+ Xây dựng thuật toán tối ưu cho việc xử lý chọn tầng của người dùng

- Ngôn ngữ mô hình hoá: UML

Bước 4: Đi vào thiết kế và cài đặt chương trình

Trang 6

Phần I: Đặc tả yêu cầu phần mềm

I Biểu đồ Use-case

- Biểu đồ use-case của người quản lý thang máy

Hình 1 Biểu đồ use-case của người quản lý thang máy

 Người quản lý có 3 use-case là quản lý thời gian hoạt động của thang

máy, quản lý số lượng thang máy hoạt động và quản lý hoạt động của

thang máy

 Quản lý thời gian hoạt động của thang máy là người quản lý có quyền

thiết lập thời gian hoạt động của thang máy trong ngày

 Quản lý số lượng thang máy hoạt động là thiết lập số lượng thang máy

cùng hoạt động tại một thời điểm

 Quản lý hoạt động của thang máy là thiết lập danh sách các tầng thang

máy hoạt động và không hoạt động

- Biểu đồ use-case của người dùng

Trang 7

Hình 2 Biểu đồ use-case của người dùng

 Người dùng sẽ có 1 use-case là chọn tầng cần đến, người dùng sẽ chọn

tầng cần đến và ấn ok, hệ thống sẽ tính toán và đưa ra tên thang máy cho

người dùng đi

- Có 3 use chính:

 Quản lý hoạt động thang máy( Nguyễn Đa Long thiết kế)

 Quản lý thời gian hoạt động của thang máy(Đỗ Văn Diện thiết kế)

 Chọn tầng cần đến(Bùi Văn Phước thiết kế)

Trang 8

II Phân tích Use-case

1 Quản lý số lượng thang máy hoạt động

1.1 Mã use-case

- Mã use-case: UC01

1.2 Tên use-case

- Tên use-case: quản lí số lượng thang máy hoạt động

1.3 Tác nhân tham gia

- Tác nhân: người quản lý

1.4 Luồng sự kiện chính

1 Hệ thống Hiển thị Các thang máy đang

hoạt động

2 Người quản lý Chọn các thang máy Số hiệu của thang máy

3 Người quản lý Lưu lại Danh sách các thang

máy

4 Hệ thống Thông báo Hiển thị thông báo

thành công 1.5 Luồng sự kiện phụ

1.6 Dữ liệu vào ra

- Input: thông tin số lượng thang máy hoạt đông

- Output: Các loại thông báo

1.7 Biểu đồ hoạt động

Trang 9

Hình 2 Biểu đồ hoạt động của use-case quản lý số lượng thang máy

2 Quản lý hoạt động của thang máy

2.1 Mã use-case

- Mã use-case: UC02

2.2 Tên use-case

- Tên use-case: quản lý hoạt động của thang máy

2.3 Tác nhân tham gia

- Tác nhân: người quản lý

2.4 Luồng sự kiện chính

1 Người quản lý Chọn thang máy Số hiệu của thang máy

2 Người quản lý Chỉnh số tầng cho phép

thang máy hoạt động

Số hiệu của tầng

3 Người quản lý Lưu lại Thông tin đã chỉnh sửa

4 Hệ thống Kiểm tra Hệ thống kiểm tra và

thực hiện

4 Hệ thống Thông báo Hiển thị thông báo

Trang 10

2.5 Luồng sự kiện phụ

stt Bên thực hiện Hành động Dữ liệu

2a Người quản lý Xóa, thiết lập lại Xóa các thông tin thiết

lậpvà thiết lập lại cài đặt 4a Hệ thống Thông báo Lỗi trong quá trình thực thi

2.6 Input và Output

- Input: số tầng cần bỏ qua

- Output: thông báo

2.7 Biểu đồ hoạt động

Hình 3 Biểu đồ hoạt động của use-case quản lý cách hoạt động của thang máy

3 Quản lí thời gian hoạt động của thang máy

Trang 11

3.3 Tác nhân tham gia

- Tác nhân: người quản lý

3.4 Luồng sự kiện chính

STT Bên thực hiện Hành động Dữ liệu

1 Hệ thống Hiển thị Hiển thị danh sách thang

máy đang hoạt động

2 Người quản lý Chọn thang máy Số hiệu thang máy

3 Người quản lý Thiết lập Thiết lập thời gian hoạt

động của thang máy

4 Người quản lý Lưu Lưu thông tin đã thiết lập

5 Hệ thống Kiểm tra Kiểm tra tính đúng đắn của

thời gian

6 Hệ thống Thông báo Hiển thị thông báo

3.5 Luồng sự kiện phụ

STT Bên thực hiện Hành động Dữ liệu

4a Người quản lý Xóa Xóa thời gian đã nhập

3.6 Input và Output

- Input: thời gian hoạt động của thang máy

- Output: thông báo

3.7 Biểu đồ hoạt động

Trang 12

Hình 4 Biểu đồ hoạt động của use-case quản lý thời gian hoạt động của thang

2 Người dùng Gửi Yêu cầu tầng cần đến

3 Hệ thống Kiểm tra Kiểm tra tính hợp lệ của

tầng tòa nhà

4 Hệ thống Tính toán Tính toán để đưa ra thang

Trang 13

máy tối ưu

5 Hệ thống Thông báo Hiển thị thang máy nào sẽ đi 4.5 Luồng sự kiện phụ

STT Bên thực hiện Hành động Dữ liệu

2a Người dùng Xóa số tầng Xóa tầng cần đến

4a Hệ thống Thông báo Tầng không có trong hệ

Trang 14

Thuật ngữ Mô tả

Điểm dừng Tầng mà thang máy dừng để đón khách Trạng thái 1 Thang máy đang đi lên

Trạng thái 2 Thang máy đang đi xuống

Trang 15

Phần II: Thiết kế kiến trúc

I Use-case quản lý hoạt động của thang máy

1 Biểu đồ trình tự

Hình 6 Biểu đồ trình tự của use-case quản lý hoạt động của thang máy

2 Biểu đồ giao tiếp

Trang 16

Hình 7.Biểu đồ giao tiếp của use-case quản lý hoạt động của thang máy

- ManagerScreen: lớp giao diện cho phép người quản lý thiết lập tầng hoạt

động của thang máy

- ManagerController: xử lý các thông tin đã thiết lập và truyền vào thang máy

- Elevator: Lớp lưu các thuộc tính, hành động của thang máy

II Use-case quản lý thời gian hoạt động của thang máy

1 Biều đồ trình tự

Trang 17

Hình 8 Biểu đồ trình tự của use-case quản lý thời gian hoạt động của thang

máy

2 Biểu đồ giao tiếp

Trang 18

Hình 10 Biểu đồ giao tiếp của use-case quản lý thời gian hoạt động của

thang máy

- ManagerScreen: Giao diện tương tác cho người quản lý tháng máy

- ManagerController: Điều khiển hoạt động của quản lý với giao diện

- Management: Kiểm tra và xử lý yêu cầu cập nhật thời gian hoạt động cho

các thang máy

III Use-case chọn tầng cần đến

1 Biểu đồ trình tự

Trang 19

Hình 11 Biểu đồ trình tự của use-case chọn tầng cần đến

2 Biểu đồ giao tiếp

Trang 20

- UserScreen: lớp giao diện giúp cho người dùng tương tác với hệ thống

- Alorithm: Lớp xử lý thuật toán để khi người dùng ấn tầng cần đến thì hệ thống sẽ tính toán và đưa ra một phương án tối ưu nhất

- ManagerController: Trả lại các thông tin của thang máy đã được thiết lập

Trang 21

Phần III: Thiết kế chi tiết

I Biểu đồ trình tự chi tiết

1 Use case quản lí thời gian hoạt động của thang máy

Hình 13 Biều đồ trình tự chi tiết của use case quản lí thời gian hoạt động của

thang máy

- Trong use-case sẽ có giao diện hiển thị lên để người quản lý thao tác thiết

lập thời gian

- Khi bắt đầu use-case này, lớp SettingScreen gọi đến contructer() của nó

để khởi tạo giao diện

- Sau đó người quản lý sẽ chọn thang máy cần thiết lập, hệ thống sẽ trả lại

thang máy được yêu cầu

- Tiếp theo người quản lý sẽ nhập thời gian hoạt động cho thang máy, khi

nhấn ok thì nó gọi tới phương thức setTimeAction() trong lớp

MainViewController, trong phương thức này gọi tới phương thức

setLiftTime() để thiết lập thời gian cho thang máy và cuối cùng gọi

phương thức setUptime() đề cập nhập thời gian vừa thiết lập vào mảng,

rồi hiển thị thông báo đã thiết lập

2 Use case quản lí hoạt động thang máy

Trang 22

Hình 14 Biểu đồ trình tự chi tiết của use case quản lí hoạt động của thang

máy

- Trong use-case này có màn hình hiển thị để cho người quản lý thao tác

thiết lập hoạt động của thang máy

- Khi bắt đầu use-case này, lớp SettingScreen gọi đến contructer() của nó

để khởi tạo giao diện

- Người quản lý sẽ chọn thang máy nào cần thiết lập, hệ thống sẽ trả lại

thang máy được yêu cầu

- Sau đó người quản lý sẽ nhập các tầng hoạt động của thang máy, từ giao

diện nó gọi đến phương thức setFloorsServeAction() trong

MainViewController, nếu dữ liệu nhập vào đúng thì sẽ gọi phương thức

setFloorsNotServe() trong lớp LiftSystem, còn nếu nhập sai thì sẽ có

thông báo cho người quản lý

- Tiếp theo từ phương thức setFloorsNotServe() trong lớp LiftSystem gọi

đến phương thức setFloorsNotServe() trong lớp Lift để cho danh sách các

tầng hoạt động vào mảng

- Cuối cùng trả lại thông báo và được hiển thị để cho người quản lý biết

3 Use case chọn tầng

Trang 23

Hình 15 Biểu đồ trình tự chi tiết của use case chọn tầng

- Trong use-case này có màn hình đề người dùng chọn tầng cần đến

- Khi bắt đầu use-case này, lớp UserScreen gọi đến contructer để khởi tạo

giao diện

- Người dùng sẽ chọn tầng cần đến và nhấn Ok để đồng ý

- Thông tin tầng cần đến và tầng đang ở sẽ được lớp UserScreen lấy và gọi

phương thức OKAction() trong lớp MainViewController với hai tham số

trên

- Tiếp theo từ phương thức OKAction() trong lớp MainViewController gọi

đến phương thức goFloor() trong lớp LiftSystem với 2 tham số là tầng

hiện tại người dùng và tầng người dùng yêu cầu đến, trong phương thức

này gọi đến phương thức timeToGoFloor() để tính toán thời gian đi giữa

2 tầng, trong phương thức này dùng vòng lặp gọi đến phương thức

addFloorWaiting() để tính toán thang máy tối ưu và đưa tầng hiện tại và

tầng cần đến vào hàng đợi của thang máy

- Cuối cùng sẽ hiển thị tên thang máy mà người dùng sẽ đi

II Biểu đồ lớp chi tiết

1 Biểu đồ lớp tổng quát

Trang 24

- Ngoài ra hệ thống có 2 lớp interface là: Screen, IMainView và IliftSystem

2 Biểu đồ lớp chi tiết

Trang 25

Hình 17 Biều đồ lớp chi tiết

- Lớp SettingScreen, LiftScreen, UserScreen lần lượt là lớp giao diện quản lí

hoạt động của thang máy, quản lí thời gian hoạt động thang máy và của

người dùng

- Ba giao diện trên nằm trên cùng MainView nên được kết tập vào lớp

MainView

- Các lớp MainViewController, LiftSystem là các lớp xử lý tương tác người

dùng yêu cầu và của người quản trị hệ thống

- Lớp Lift và lớp Uptime là lớp thực thể, lưu các trạng thái, sô tầng hoạt

động của thang máy

a Biểu đồ lớp ListScreen

Trang 26

- Thuộc tính liftID là đối tượng Label để hiển thị tên của thang máy

- Thuộc tính liftLocation là đối tượng ProgressBar để hiển thị trạng thái của gia tốc

- Phương thức getLiftID(): là phương thức trả về tên của thang máy

- Phương thức setAcceleration(int): là phương thức thiết lập hiển thị gia tốc của thang máy dựa vào tham số đầu vào

- Phương thức setFloor(int): là phương thức thiết lập hiển thị tầng thang máy đang ở

- Phương thức setFloorWaiting(Strirng): là phương thức thiết lập hiển thị danh sách các tầng có trong hàng đợi của thang máy

- Phương thức setSpeed(double): là phương thức thiết lập hiển thị tốc độ của thang máy dựa vào tham số đầu vào

Trang 27

- Phương thức setStatus(string): là phương thức thiết lập hiển thị của trạng thái thang máy là đóng hay mở cửa

Trang 28

- Phương thức showSetFloorsServe(string) là phương thức có chức năng hiển thị hộp thoại Dialog và lấy các tầng hoạt động do người quản lý nhập vào và trả lại theo định dạng chuỗi

- Phương thức showNotify(string): là phương thức trả lại thông báo cho người quản lý

- Phương thức setTimeAction() và phương thức setStatusAction(),

setFloorsServeAction để bắt sự kiện khi ấn nút

- Phương thức setStatus(boolean): phương thức thiết lập cho thuộc tính active và inactive

- Phương thức isActive(): phương thức trả lại giá trị của thuộc tính active

- Phương thức getLiftID(): phương thức trả lại tên của thang máy

Trang 29

- Thuộc tính cbEnd, cbStart là đối tượng ComboBox để hiển thị danh sách tầng đến và tầng đang đứng

- Phương thức OKAction() để bắt sự kiện khi ấn nút OK

- Phương thức getFloor(boolean): trả lại tầng đang đứng hoặc tầng cần đến

- Phương thức setLift(string): hiển thị thông báo người dùng đi thang máy nào

- Phương thức showNotify(string): hiển thị thông báo lỗi

d Biểu đồ lớp ManagerScreen

Hình 21 Lớp ManagerScreen

- Thuộc tính ss là một danh sách đối tượng SettingScreen

- Thuộc tính currentIndex là chỉ số duyệt mảng hiện tại, được sử dụng cho design-pattern

- Thuộc tính role là tên lớp

- Phương thức iterator() thiết lập currentIndex bằng 0

- Phương thức hasNext() kiểm tra currentIndex nhỏ hơn kích thước danh sách ss, nếu nhỏ hơn thì trả lại true, ngược lại sẽ trả lại false

- Phương thức next() trả lại đối tượng SettingScreen tiếp theo trong danh sách

- Phương thức getRole() trả lại giá trị thuộc tính role

e Biểu đồ lớp LiftSystemScreen

Trang 30

Hình 22 Lớp LiftSystemScreen

- Thuộc tính ls là danh sách đối tượng LiftScreen

- Thuộc tính role là tên lớp

- Thuộc tính currentIndex là chỉ số duyệt mảng hiện tại, được sử dụng cho design-pattern

- Phương thức getRole() trả lại giá trị thuộc tính role

- Phương thức iterator() thiết lập currentIndex bằng 0

- Phương thức hasNext() kiểm tra currentIndex nhỏ hơn kích thước danh sách ls, nếu nhỏ hơn thì trả lại true, ngược lại sẽ trả lại false

- Phương thức next() trả lại đối tượng ListScreen tiếp theo trong danh sách

f Biểu đồ lớp MainView

Hình 23 Biều đồ lớp MainView

- Thuộc tính screens là danh sách đối tượng Screen

- Phương thức getLiftSystemScreen() là phương thức trả lại đối tượng

LiftSystemScreen

- Phương thức getManagerScreen() là phương thức trả lại đối tượng

ManagerScreen

Ngày đăng: 16/03/2016, 23:47

TỪ KHÓA LIÊN QUAN

w