1. Trang chủ
  2. » Thể loại khác

Trang_danh_cho_Sinhvien - Nguyễn Thế Dũng Chapter5

48 125 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 448,35 KB

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

Nội dung

Trang_danh_cho_Sinhvien - Nguyễn Thế Dũng Chapter5 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn...

Trang 2

Công Nghệ Phần Mềm 2

• 5.1 Thiết kế trong công nghệ phần mềm

• 5.2 Khái niệm thiết kế

• 5.3 Mô hình thiết kế

Trang 3

5.1 Thiết kế trong công nghệ phần mềm

Analysis Model

use-cases - text use-case diagrams activity diagrams swim lane diagrams

data flow diagrams control-flow diagrams processing narratives

state diagrams sequence diagrams

Da t a / Cla ss De sign Arc hit e c t ura l De sign Int e rf a c e De sign

Com pone nt -

Le v e l De sign

Design Model

Trang 5

Thuộc tính chất lượng

Chức năng (functionality): kèm theo tính an ninh

Tiện dụng (usability): bao gồm cả tính mỹ thuật,

toàn vẹn và tư liệu

Tin cậy (reliability): bảo đảm hoạt động, dùng The mean-time-to-failure (MTTF), Khả năng phục hồi từ lỗi

Thực thi (performance): tốc độ xử lý, thời gian đáp ứng, sử dụng tài nguyên, hiệu quả…

Khả năng hỗ trợ (suppotability): dễ mở rộng, khả năng ráp nối, khả năng phục vụ (3 thuộc tính của khả năng bảo trì), khả năng test, khả năng cấu hình, khả

năng tương thích…

Trang 6

Công Nghệ Phần Mềm 6

Hướng dẫn thiết kế

• Một thiết kế phải đưa ra một kiến trúc mà

ƒ (1) Dùng mẫu (pattern) hay kiểu (style) kiến trúc

được thừa nhận

ƒ (2) Gồm những thành phần có đặc trưng thiết kế tốt

ƒ (3) Có thể thi hành theo cách tiến hóa

• Thiết kế phải module hóa

• Thiết kế phải trình bày riêng dữ liệu, kiến trúc, giao diện vàthành phần (component)

• Thiết kế phải đưa ra cấu trúc dữ liệu phù hợp với lớp thực thi và từ những mẫu dữ liệu được thừa nhận

• Thiết kế phải đưa ra những thành phần mà độc lập chức

năng

Trang 7

Hướng dẫn thiết kế

• Thiết kế phải đưa ra những giao diện mà giảm sự phức tạp của việc kết nối giữa các thành phần, và với môi trường

ngoài

• Thiết kế được đưa ra từ việc dùng phương pháp lặp mà

được định hướng bởi thông tin đạt được suốt quá trình

phân tích yêu cầu phần mềm

• Thiết kế phải dùng những ký hiệu hiệu quả cao trong việc thông tin

Trang 8

Công Nghệ Phần Mềm 8

Nguyên lý thiết kế

• Thiết kế phải tránh ‘tunnel vision’

• Thiết kế phải có thể lần vết ra mô hình phân tích

• Thiết kế phải không “reinvent the wheel”

• Thiết kế “minimize the intellectual distance” giữa phần mềm và những vấn đề trong thế giới thực

• Thiết kế phải thể hiện tính đồng nhất và tích hợp

Trang 9

Nguyên lý thiết kế

• Thiết kế phải hỗ trợ sự thay đổi

• Thiết kế phải làm nhẹ đi những lệch lạc về dữ liệu

sự kiện hay điều kiện hoạt động

• Thiết kế không là code, code không là thiết kế

• Thiết kế phải được đánh giá chất lượng khi nó

đang được tạo không phải khi nó có vấn đề

• Thiết kế phải được kiểm tra để làm giảm thiểu

những lỗi khái niệm (semantic)

Trang 10

Công Nghệ Phần Mềm 10

5.2 Khái niệm thiết kế

Trừu tượng (Abstraction) - data, procedure, control

Kiến trúc (Architecture) - the overall structure of the software

Mẫu (Patterns) - ”conveys the essence” of a proven design

Độc lập chức năng (Functional independence) -

single-minded function and low coupling

Tinh chế (Refinement) - elaboration of detail for all

abstractions

Phân tách (Refactoring) - a reorganization technique that

simplifies the design

Trang 11

Khái niệm cơ bản

không thừa không thiếu

một phương thức thì lớp không thể cung cấp cách thức khác để thực hiện một điều tương tự

những điều đơn lẻ Vd lớp VideoClip

khác, cần giới hạn, làm cho khó hiện thực và test Các lớp chỉ nên truyền MSG với những lớp trong

cùng hệ thống con

Trang 13

c o m po nent -lev el elem ent s

deplo y m ent -lev el elem ent s

Trang 14

chúng, cộng tác

Trang 15

Những thành phần trong mô hình thiết kế

• Giao diện (Interface)

những thực thể tạo hay tiêu thụ thông tin

• Thành phần (Component)

• Triển khai (deployment)

Trang 16

swing direction inserts

lights type number weight opening mechanism

Trang 18

Công Nghệ Phần Mềm 18

Thiết kế hướng đối tượng

Lớp thiết kế

Thừa kế (Inheritance) - all responsibilities of a

superclass is immediately inherited by all subclasses

to occur in the receiving object

Đa hình (Polymorphism) - a characteristic that

greatly reduces the effort required to extend the design

Trang 19

ƒ Lớp biên được thiết kế với nhiệm vụ quản lý cách

thức mà những đối tượng của thực thể được thể hiện cho người dùng

• Lớp điều khiển được thiết kế để quản lý

ƒ Tạo hay update những đối tượng thực thể

ƒ Thể hiện đối tượng biên khi chúng nhận thông tin từ

những đối tượng thực thể

ƒ Truyền thông phức tạp giữa các đối tượng

ƒ Kiểm tra sự hợp lệ của các dữ liệu truyền thông giữa

các đối tượng hay giữa người dùng và ứng dụng

Trang 20

định: nếu một lớp cao hơn trong hệ thống phân

cấp (superclass) chứa hầu hết thuộc tính và tác vụ được đòi hỏi thì lớp mới thừa kế từ superclass và

bổ sung thêm theo yêu cầu

Trang 21

Đa hình(Polymorphism )

case of graphtype:

if graphtype = linegraph then DrawLineGraph (data);

if graphtype = piechart then DrawPieChart (data);

if graphtype = histogram then DrawHisto (data);

if graphtype = kiviat then DrawKiviat (data);

end case;

All of the graphs become subclasses of a general class called graph

Using a concept called overloading [TAY90], each subclass defines an operation called draw An object can send a draw message to any one

of the objects instantiated from any one of the subclasses The object

receiving the message will invoke its own draw operation to create the appropriate graph

graphtype draw

Conventional approach …

Trang 22

với những thành phần khác

cầu phương thức

Trang 23

Kiến trúc

kiến trúc phải xác định bằng cách nào để thiết kế

hệ thống đạt được những đòi hỏi về thi hành, khả năng, tính tin cậy, an toàn, khả năng kết nối và

các đặc trưng khác

những mẫu mà thường gặp trong những thiết kế tương tự Quan trọng là thiết kế phải có khả năng

sử dụng lại những khối xây dựng kiến trúc

Trang 24

Công Nghệ Phần Mềm 24

easier to build, easier to change, easier to

Trang 25

number of modules

module integration cost module development cost

Trang 27

Che dấu thông tin

module

controlled interface

"secret"

clients

a specific design decision

Trang 28

• Nhấn mạnh tới việc thông tin qua những

interface có điều khiển

• Ngăn cản việc dùng dữ liệu cục bộ

• Đưa tới việc đóng gói là một thuộc tính của

thiết kế chất lượng cao

• Làm cho phần mềm chất lượng cao hơn

Trang 29

end repeat

Trang 30

Công Nghệ Phần Mềm 30

Độc lập chức năng

COHESION - the degree to which a module performs one and only one function

COUPLING - the degree to which a module is "connected" to other

modules in the system.

Trang 31

Couple và phụ thuộc

Uncoupled

Loosely Couple: Some Dependencies

Highly Couple: Many Dependencies

Trang 32

Công Nghệ Phần Mềm 32

Phân chia module hiệu quả

• Có nhiều mức độ liên kết (từ cao đến thấp)

dung bên trong của module khác

được dùng để điều khiển thứ tự thực thi lện của

Trang 33

Functional Sequential Communicational Procedural Temporal Logical Coincidental

Trang 34

Công Nghệ Phần Mềm 34

Phân chia module hiệu quả

• Có nhiều mức độ kết dính (từ thấp đến cao)

quan tâm tới loại)

thực thi trong một khoảng thời gian

phải được thực hiện theo một trật tự nhất định

vùng dữ liệu nào đó

Trang 35

Cohesion (từ cao đến thấp)

• Chức năng: mỗi thành phần trong 1 module thì cần thiết vàthiết yếu cho chỉ một chức năng

• Trình tự: mỗi thành phần của một module có liên quan

trong việc thực hiện những phần khác nhau của trình tự

hoạt động, output của hoạt động này là input của thành

phần kế tiếp

• Thông tin: những thành phần hoat động trên cùng dữ liệu

• Thủ tục: những thành phần của module là tất cả các phần của một thủ tục

• Thời gian: các thành phần trong module quan hệ với nhau theo thời gian, nhưng không cần phải xuất hiện trong một thứ tự chắc chắn hay hoạt động trên cùng dữ liệu

• Logic: Những thành phần của module tất cả hướng về phía thực hiện một tập những hoạt động xác định

• Ngẫu nhiên: Không có quan hệ thiết yếu

Trang 36

Công Nghệ Phần Mềm 36

Phân chia module

• Độ kết dính (cohesion) và sự liên kết (coupling)

• Độ kết dính dùng để đo lường quan hệ về chức

năng của một module

• Sự liên kết đo lường sự liên kết giữa các module

• Thiết kế kiến trúc phần mềm: cố gắng tăng độ kết dính, giảm sự liên kết

Trang 37

Width

Trang 38

Công Nghệ Phần Mềm 38

Phân tách (Refactoring)

• Fowler [FOW99] xác định:

phần mềm trong cách thức mà không biến đổi hành vi bên ngoài của code (thiết kế) nhằm cải thiện cấu trúc bên trong của nó”

• Khi phần mềm được phân tách thiết kế sẽ được

Trang 39

Module hiệu quả

module riêng biệt

nó là nhỏ nhất

module phải được che dấu khỏi các module khác

thật sự cần thiết

Trang 40

trong vùng điều khiển của nó

phức tạp, dư thừa và tăng cường tính toàn vẹn

hạn chế các module nhiều ràng buộc

tránh những kết nối ở giữa module

Trang 41

Giao diện (Interface)

Trang 42

Công Nghệ Phần Mềm 42

Thành phần (Component)

SensorManagement

Sensor

Trang 43

Thành phần

Trang 45

Thiết kế Pattern

• Người thiết kế tốt có khả năng nhận ra những mẫu giải quyết vấn đề và những mẫu tương ứng để giải quyết vấn đề

• Mô tả mẫu thiết kế cũng xem xét một tập những

ảnh hưởng thiết kế (design force)

yêu cầu phi chức năng (dễ bảo trì, dễ mang

xách…) kết hợp với phần mềm mà mẫu áp dụng,

nó ảnh hưởng đến mẫu.

• Những đặc trưng mẫu (lớp, nhiệm vụ, cộng tác)

xác định thuộc tính của thiết kế mà có thể điều

chỉnh để cho phép mẫu giải quyết vấn đề

Trang 46

Công Nghệ Phần Mềm 46

Pattern

the pattern in a short but expressive name

design situations in which the pattern is applicable

Trang 47

required to implement the pattern

responsibilities of the classes that are required to

implement the pattern

participants collaborate to carry out their

responsibilities

forces” that affect the pattern and the potential

trade-offs that must be considered when the pattern

is implemented

related design patterns

Trang 48

Công Nghệ Phần Mềm 48

Framework

framework không là mẫu kiến trúc, đúng hơn là

một khung với nhiều điểm nối (móc hay khe) cho phép nó ráp nối với một miềm vấn đề đặc trưng

• Gamma et al:

Framework

Ngày đăng: 15/12/2017, 17:56

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w