Vòng đ i phát tri n h th ng ờ ể ệ ố Vòng đời phát trển hệ thống SDLC được tính từ khi tìm hiểu một hệ thống thông tin sẽ được xây dựng có thể đáp ứng được các yêu cầu nghiệp vụ như thế
Trang 1KHOA ĐI N T VI N THÔNG Ệ Ử Ễ
CHƯƠNG 1 Giới thiệu
Trang 2Ch ươ ng 1 Gi i thi u ớ ệ
Ch ươ ng 1 Gi i thi u ớ ệ
1.1 Giới thiệu phân tích thiết kế hệ thống
1.2 Phân tích thiết kế hệ thống hướng đối tượng
1.3 UML
May 19, 2017 OOD - FET.HUST 2
Trang 31.1 Gi i thi u phân tích thi t k h th ng ớ ệ ế ế ệ ố
1.1 Gi i thi u phân tích thi t k h th ng ớ ệ ế ế ệ ố
1 Vòng đời phát triển hệ thống
2 Các phương pháp luận
3 Nhiệm vụ và kỹ năng của các thành viên trong đội dự án
Trang 41 Vòng đ i phát tri n h th ng ờ ể ệ ố
Vòng đời phát trển hệ thống (SDLC) được tính từ khi tìm hiểu một hệ thống thông tin
sẽ được xây dựng có thể đáp ứng được các yêu cầu nghiệp vụ như thế nào, thiết kế nó, xây dựng nó và chuyển giao đến cho khách hàng sử dụng
◦ Thiết kế : Hệ thống làm việc như thế nào?
◦ Cài đặt : Chuyển giao đến người dùng.
May 19, 2017 OOD - FET.HUST 4
Trang 5◦ Thành lập đội dự án (project team)
◦ Kiểm soát và chỉ đạo quá trình xây
dựng hệ thống
Trang 6=> Phân tích và thiết kế sơ bộ
May 19, 2017 OOD - FET.HUST 6
Khái niệm ban đầu
về hệ thống mới
Trang 7 Xây d ng b n thi t k chự ả ế ế ương trình (phân hệ,
module, phương thức/hàm, etc.)
Trang 8May 19, 2017 OOD - FET.HUST 8
Trang 9System Specification New System and Maintenance Plan
Trang 102 Các ph ươ ng pháp phát tri n h ể ệ
th ng ố
Phương pháp luận (Methodologies): là
cách tiếp cận (hay các bước) và mối quan
hệ giữa các pha trong vòng đời phát triển
hệ thống.
Phân loại phương pháp: Dựa vào cách
tiếp cận hệ thống (hướng chức năng hay
Trang 11Thi t k có c u trúc ế ế ấ
Thi t k có c u trúc ế ế ấ
Dự án phải trải qua từng bước một cách có hệ thống
Hoàn thành bước này mới chuyển sang bước tiếp theo
Điển hình:
◦ Waterfall
◦ Parallel
Trang 12Waterfall – Mô hình thác n ướ c
May 19, 2017 OOD - FET.HUST 12
Trang 13Waterfall (ti p) ế
Waterfall (ti p) ế
Thực hiện các pha theo thứ tự
Mất nhiều thời gian tại các pha
Kết quả từng pha phải đưa ra báo cáo (dài) và phải
được duyệt trước khi chuyển sang pha tiếp theo
Khó khăn khi phải quay lại các pha đã qua
Sử dụng các sơ đồ khác nhau để mô tả hệ thống (DFD,
FD, ERD)
Trang 14Waterfall - u đi m & nh Ư ể ượ c đi m ể
Ưu điểm:
◦ Thời gian khảo sát yêu cầu dài =>
hạn chế phải thay đổi khi hệ thống
đang được xây dựng.
Nhược điểm:
◦ Phải hoàn thành bước thiết kế trước khi hệ thống bắt đầu được triển khai.
◦ Tốn nhiều thời gian.
◦ Phải làm lại các bước khi có thay đổi.
May 19, 2017 OOD - FET.HUST 14
Trang 15Parallel – Mô hình phát tri n song ể
song
Trang 16Parallel - u đi m & nh Ư ể ượ c đi m ể
Trang 17RAD – Mô hình phát tri n ng d ng nhanh ể ứ ụ
RAD – Mô hình phát tri n ng d ng nhanh ể ứ ụ
Điều chỉnh một số giai đoạn của SDLC để đẩy nhanh quá trình xây dựng hệ thống
Cần có các kỹ thuật đặc biệt và sử dụng các công cụ hỗ trợ trên máy tính để đẩy nhanh các giai đoạn phân tích, thiết kế & triển khai:
◦ Công cụ hỗ trợ (CASE tools)
◦ Ngôn ngữ lập trình thế hệ thứ 4
◦ Các bộ sinh mã
Phân loại:
◦ Phased Development
◦ Khuôn mẫu ( Prototyping )
◦ Khuôn mẫu loại bỏ ( Throwaway
Prototyping )
Trang 18Phased Development
May 19, 2017 OOD - FET.HUST 18
Trang 19Phased Development
Chia toàn bộ hệ thống thành các phiên bản khác nhau cần được xây dựng.
Phân loại yêu cầu, các yêu cầu quan
trọng và cần thiết nhất được đưa vào
phiên bản đầu tiên.
Sau đó phân tích, thiết kế, triển khai chỉ những yêu cầu đã được lựa chọn cho
phiên bản đầu tiên.
Khi hoàn thành phiên bản đầu tiên, tiếp tục phân tích, thiết kế, triển khai phiên bản tiếp theo.
Tiếp tục…… Đến khi hoàn thiện hệ
thống.
Trang 20May 19, 2017 OOD - FET.HUST 20
Trang 21Throwaway Prototyping
Trang 22 Quá trình phát triển là liên tục, đơn giản
Giảm thiểu/loại bỏ bước mô hình hoá hay tài liệu;
Tiết kiệm thời gian và nguồn lực
May 19, 2017 OOD - FET.HUST 22
Trang 235 Thúc đẩy/khuyến khích từng cá nhân đề xuất giải pháp;
cung cấp cho họ công cụ cần thiết và tin tưởng họ.
6 Các thành viên trong nhóm phát triển thường xuyên trao đổi với nhau
Trang 24Agile – 12 nguyên tắc (ti p) (ti p) ế ế
hoạt động tốt
cầu, kiến trúc và thiết kế tốt nhất
tiến quá trình phát triển.
May 19, 2017 OOD - FET.HUST 24
Trang 25Agile
Nhược điểm
◦ Nhóm nghiệp vụ và phát triển phải làm việc
cùng nhau
◦ Không được quản lý tốt/chặt chẽ
◦ Thiếu tài liệu => khó kiểm soát tính đúng đắn của sản phẩm.
Trang 26◦ Start with user stories – what the system needs to do
From simple small modules
Users are always available
Standardize: name, descriptions, coding pratices.
May 19, 2017 OOD - FET.HUST 26
Trang 27◦ Pick tasks at the beginning of the sprint
◦ Review tasks & deliverables by the end of the sprint
◦ New requirements:
Add to backlog
Trang 28 Self-organizing team
◦ Does not need a team leader
◦ Daily scrum meeting
Stand in a circle
Sumarize previous achievement
Plans for the day
Anyone outside the team can attend
◦ Blockers must be resolved quickly.
”Bad” decision is better than nothing
◦ Identify new/changed requirements
◦ Small teams
<= 7
◦ Scrum of scrums
Large project, needs large number of engineers
Team representatives attend scrum-of-scrums meeting
May 19, 2017 OOD - FET.HUST 28
Trang 30Các tiêu chí l a ch n ự ọ
Các tiêu chí l a ch n ự ọ
May 19, 2017 OOD - FET.HUST 30
Trang 31án của họ Mỗi văn phòng tại mỗi quốc gia có thể có các tiêu chuẩn đầu tư phần cứng cũng như phần mềm khác nhau.
Đây là một ý tưởng mới mà chưa có ai làm trước đó
Hệ thống phải đi vào hoạt động chính thức trong vòng 1 năm.
Câu hỏi:
Là một nhà tư vấn phát triển các dự án phần mềm, bạn sẽ đưa ra khuyến nghị sử dụng phương pháp nào? Vì sao?
Trang 33Project Team Roles
Trang 34T ng k t ổ ế
T ng k t ổ ế
SDLC: 4 phase
Methodologies: 8 typical methodologies
Roles and Skills: Project team
May 19, 2017 OOD - FET.HUST 34
Trang 351.2 Phân tích thi t k h ế ế ướ ng đ i ố
t ượ ng
Các khái niệm
◦ Lớp và đối tượng
◦ Phương thức và thông điệp
◦ Đóng gói và che dấu thông tin
◦ Thừa kế
◦ Đa hình và liên kết động
UML 2.0
Trang 36Objects - Đ i t ố ượ ng
Objects - Đ i t ố ượ ng
possible.
of a small number of other objects.
Trang 37Đ i t ố ượ ng (ti p) ế
Đ i t ố ượ ng (ti p) ế
Objects are instances of classes, each with a unique
identity
A class defines both the interface(s) and the
implementation for a set of objects, which determines their behavior
Abstract classes are classes that can have no instances
An object, once instantiated, cannot change its class
Trang 38Characteristics of Objects
Have unique identity.
Fall into categories, or classes.
Fall into hierarchies or aggregations.
Have well defined behaviors & responsibilities.
Separate interface from implementation.
Hide their internal structures.
Have states.
Provide services.
Send messages to other objects.
Receive messages from other objects, and
react appropriately.
May 19, 2017 OOD - FET.HUST 38
Trang 39and behaviors
depends on the attributes in which you are
interested.
Examples: streets, roads, and highways
Different programs would classify these
– Total number of Employees.
– How many Employees are fully vested?
Trang 40L p (ti p) ớ ế
L p (ti p) ớ ế
Classes are objects too
◦ A class can have attributes
An Employee class may have a list of all its instances
A LotteryTicket class may have a seed it uses to generate random ticket numbers; that seed is shared by all instances of the class.
◦ A class can have behaviors
An Employee class may have a getEmployeeBySerialNum behavior
A LotteryTicket class may have a generateRandomNumber
May 19, 2017 OOD - FET.HUST 40
Trang 41Ph ươ ng th c và thông đi p ứ ệ
Ph ươ ng th c và thông đi p ứ ệ
Phương thức (method): là hành động mà một đối tượng
có thể thực hiện
Thông điệp (Message): là lời gọi đến các phương thức của đối tượng (hay nói cách khác, thông điệp là thông tin được gửi tới đối tượng để kích hoạt một hành động)
Trang 42Đóng gói và che d u thông tin ấ
Đóng gói và che d u thông tin ấ
Đóng gói (Encapsulation): Kết hợp dữ liệu và phương thức xử lý dữ liệu vào cùng một thực thể
Che dấu thông tin (Information hidding): chỉ những
thông tin cần thiết để sử dụng một module mới được công khai
May 19, 2017 OOD - FET.HUST 42
Trang 43Th a k ừ ế
Th a k ừ ế
Inheritance is a way of describing a class by saying how
it differs from another class
Why use inheritance?
◦ When you have two types where
one is necessarily an extension of the other.
◦ Sometimes (but not all the time)
you are going to want to ignore the differences and look only at the
what they have in common (the
base class) This is called
generalization.
Trang 44Th a k (ti p) ừ ế ế
Th a k (ti p) ừ ế ế
May 19, 2017 OOD - FET.HUST 44
Trang 45Th a k (ti p) ừ ế ế
Th a k (ti p) ừ ế ế
Trang 46Th a k (ti p) ừ ế ế
Th a k (ti p) ừ ế ế
Base class ~ Parent Class ~ Supper Class ~ Abtract Class
Derived class ~ Child Class ~ Sub Class ~ Concrete Class
The Derived class inherits from the Base class; the Derived class extends the Base class; the Derived class is a
specialization of the Base class.
The Derived class may provide additional state (member
data), or additional behavior (member functions/methods), or
it may override the implementation of inherited methods.
l The Base class is a generalization of all its Derived classes.
May 19, 2017 OOD - FET.HUST 46
Trang 47Đa hình và liên k t đ ng ế ộ
Đa hình và liên k t đ ng ế ộ
Polymorphism
◦ A message can be interpreted
differently by different classes of
objects
Dynamic Binding
◦ Sometimes called late binding
◦ Delays typing or choosing a method
for an object until run-time
Static Binding
◦ Type of object determined at compile time
Trang 48Đa hình
Hinh c; c=new tron(); C.ve();
C=new chunhat(); c.ve();
May 19, 2017 OOD - FET.HUST 48
Trang 49Đa hình
Trang 50May 19, 2017 OOD - FET.HUST 50
Trang 51UML-unified modeling language
UML là gì?
Lịch sử UML
Tại sao chúng ta cần UML?
Các mô hình ý niệm trong UML
Trang 52UML – Unified Modelling Language
UML là m t ngôn ng dùng cho ộ ữ
◦ Mô hình hóa tr c quan (Visualizing) ự
◦ Đ c t (Specifying) ặ ả
◦ Xây d ng (Constructing) ự
◦ Tài li u (Documenting) ệ
“The UML is the standard language for
specifying, visualizing, constructing, and
documenting all the artifacts of a system.”
May 19, 2017 OOD - FET.HUST 52
Trang 53Mô hình hóa tr c quan ự
Mô hình hóa tr c quan ự
Trang 55(R-◦ Một lưu trữ bền vững của CSDL
HĐT (OO-DBMS)
Trang 56Tài li u ệ
Tài li u ệ
◦ Mô tả các yêu cầu (Requirements)
◦ Phân tích thiết kế (architecture,
design, source code,…)
Trang 57L ch s UML ị ử
L ch s UML ị ử
Trang 58L ch s UML (ti p) ị ử ế
L ch s UML (ti p) ị ử ế
May 19, 2017 OOD - FET.HUST 58
Trang 59Đóng góp cho UML
Fusion
Operation descriptions, Message numbering
Trang 60Các s đ trong UML ơ ồ
Các s đ trong UML ơ ồ
Tĩnh (Sơ đồ cấu trúc-Structure diagram)
◦ Sơ đồ đối tượng ( Object diagram )
◦ Sơ đồ lớp ( Class diagram )
◦ Sơ đồ thành phần ( Component diagram )
◦ Sơ đồ triển khai ( Deployment diagram )
Động (Sơ đồ hành vi – Behavior diagram)
◦ Sơ đồ tương tác ( Interaction diagram )
S đ tu n t (ơ ồ ầ ự Sequence diagram)
S đ h p tác (ơ ồ ợ Collborate Diagram)
◦ Sơ đồ hoạt động ( Activity diagram )
◦ Sơ đồ chuyển dịch trạng thái ( State transition
◦ Sơ đồ use-case ( Use-case diagram )
May 19, 2017 OOD - FET.HUST 60
Trang 61Các s đ trong UML ơ ồ
Các s đ trong UML ơ ồ
Trang 62S đ l p và s đ đ i t ơ ồ ớ ơ ồ ố ượ ng
S đ l p và s đ đ i t ơ ồ ớ ơ ồ ố ượ ng
Sơ đồ lớp:
◦ Mô hình hóa cấu trúc tĩnh của hệ
thống trong quá trình phát triển,
bao gồm các lớp và quan hệ giữa
chúng.
Sơ đồ đối tượng:
◦ Là một thể hiện của sơ đồ lớp, biểu diễn trạng thái của hệ thống tại một thời điểm cụ thể Nó chính là một
trường hợp thực tế của sơ đồ lớp.
May 19, 2017 OOD - FET.HUST 62
Trang 63 M t d li u tr u t ộ ữ ệ ừ ượ ng mà m t đ i t ộ ố ượ ng thu c l p đó có th ch a ộ ớ ể ứ
Tên thu c tính là m t danh t /c m danh t ộ ộ ừ ụ ừ
Phương th c (Operators)ứ
M t hành vi tr u t ộ ừ ượ ng mà m t đ i t ộ ố ươ ng thu c l p đó có th thi ộ ớ ể hành
Tên ph ươ ng th c là m t đ ng t /c m đ ng t ứ ộ ộ ừ ụ ộ ừ
Trang 65Quan hệ
Phụ thuộc (Dependency)
Tổng quát hóa (Generalization)
Liên kết (Association)
Trang 67Khái quát hóa (Generalization)
Các đối tượng của lớp cụ thể (lớp con) chia sẻ cấu trúc và hành vi của lớp tổng quát (lớp cha)
Định nghĩa một cấp bậc trừu tượng trong đó
một lớp con kế thừa từ một hoặc nhiều lớp cha
◦ Đơn kế thừa (Single inheritance)
◦ Đa kế thừa (Multiple inheritance)
Animal
Supperclass
Subclass
Trang 68◦ Sở hữu chặt và gắn liền với đời sống
◦ Bộ phận không thể tồn tại mà không có toàn thể
May 19, 2017 OOD - FET.HUST 68
Employer Employee
Trang 69 Điều hướng (Navigation)
◦ Liên kết là các quan hệ hai chiều
◦ Thường mong muốn hạn chế duyệt theo một hướng
Trang 70S đ l p ơ ồ ớ
S đ l p ơ ồ ớ
May 19, 2017 OOD - FET.HUST 70
Trang 71S đ đ i t ơ ồ ố ượ ng
S đ đ i t ơ ồ ố ượ ng
Trang 72Gói (Package)
Nhóm các phần tử khác của UML thành một gói
Sơ đồ chỉ chứa các gói và mối quan hệ giữa chúng
May 19, 2017 OOD - FET.HUST 72
Trang 74S đ thành ph n ơ ồ ầ
S đ thành ph n ơ ồ ầ
Bao gồm các thành phần và mối quan hệ giữa các
thành phân trong môi trường cài đặt
Các thành phần đại diện cho các yếu tố cài đặt vật lý của hệ thống (CSDL, I/O, Giao diện,…)
May 19, 2017 OOD - FET.HUST 74
Trang 75S đ thành ph n – Component Diagram ơ ồ ầ
S đ thành ph n – Component Diagram ơ ồ ầ
Trang 76S đ k ch b n s d ng (use-case) ơ ồ ị ả ử ụ
Mô tả hệ thống từ cách nhìn, quan điểm của NSD
Mô tả các tình huống của hệ thống
Use-case mô tả cái mà hệ thống thi hành, không phải là thi hành như thế nào
Đặt tả trạng thái của một use-case trong văn bản rõ
ràng giúp cho người bên ngoài dự án cũng có thể hiểu
dễ dàng
May 19, 2017 OOD - FET.HUST 76
Trang 77S đ use-case ơ ồ
S đ use-case ơ ồ
Tập hợp các hành động mà hệ thống thi hành để đạt được một kết quả có thể thấy được đối với một tác
Trang 79◦ Có thể trao đổi thông tin một cách chủ động với
hệ thống hoặc nhận thông tin bị động từ hệ
Trang 80S đ use-case – ví d : ơ ồ ụ
S đ use-case – ví d : ơ ồ ụ
May 19, 2017 OOD - FET.HUST 80
Submit Grades Professor
View Report Card
Select Courses to Teach
Student
Course Catalog
Maintain Professor Information Registrar
Billing System Close Registration
Login
Trang 81S đ use-case ơ ồ
S đ use-case ơ ồ
Được áp dụng trong 2 cách
◦ Để mô hình hoá ngữ cảnh của một hệ thống
V m t đẽ ộ ường biên xung quanh h th ngệ ố
Xác nh n nh ng actor n m ngoài h th ng mà có tậ ữ ằ ệ ố ương tác
Trang 82S đ use-case ơ ồ
S đ use-case ơ ồ
◦ Để mô tả yêu cầu của hệ thống
Đ c t nh ng cái mà h th ng s ph i làm (không ph c thu c vào ặ ả ữ ệ ố ẽ ả ụ ộ
cách làm)
Đ c t nh ng hành vi hặ ả ữ ướng t i c a h th ngớ ủ ệ ố
May 19, 2017 OOD - FET.HUST 82
Student
Billing System Professor
Request Course Roster
Maintain Curriculum
Trang 83 M t thành ph n v t lý t n t i trong th i đi m run-time và bi u ộ ầ ậ ồ ạ ờ ể ể
di n m t tài nguyên tính toánễ ộ
Thường có ít nh t m t b nh và kh năng x lýấ ộ ộ ớ ả ử
Trang 84S đ tri n khai ơ ồ ể
S đ tri n khai ơ ồ ể
May 19, 2017 OOD - FET.HUST 84
Trang 85S đ t ơ ồ ươ ng tác
S đ t ơ ồ ươ ng tác
đối tượng để thi hành một mục đích cụ thể.
Link
gởi một thông điệp đến đối tượng kia
Trang 86S đ tu n t (Sequence Diagram) ơ ồ ầ ự
Biểu diễn một tương tác nhấn mạnh
trình tự thời gian của các thông điệp
◦ Mô hình hoá luồng của tiến trình
◦ Luồng điều khiển (Focus of control)
Kho ng th i gian mà m t đ i tả ờ ộ ố ượng đang thi hành m t ộ
hành đ ngộ
May 19, 2017 OOD - FET.HUST 86
Trang 871.1: PerformAnother Responsibility
Hierarchical Message Numbering
Trang 88Sequence Diagram – Ví d (ti p) ụ ế
May 19, 2017 OOD - FET.HUST 88
: Student : RegisterForCoursesForm : RegistrationController : CourseCatalogSystem : Course Catalog
A list of the available
course offerings for this
semester are displayed
Student wishes to
create a new
schedule
1 // create schedule( )
1.2 // display course offerings( )
1.1 // get course offerings( )
1.1.1 // get course offerings(forSemester)
1.3 // display blank schedule( )