Tải bản đầy đủ (.docx) (11 trang)

Data, databases, and the software engineering process

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 (63.15 KB, 11 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

1.1 DỮ LIỆU

Dữ liệu, như chúng tôi sử dụng thuật ngữ này, là sự thật về điều gìđó hoặc ai đó. Ví dụ: một người có tên, địa chỉ và giới tính. Một sốdữ liệu (sự thật) về một người cụ thể có thể là “Mary Jo Davis,”“123 4th St.,”,"Nữ giới." Nếu chúng ta có một danh sách tên, địachỉ và giới tính của một số người, chúng ta sẽ có một tập hợpthơng tin về một số người. Cơ sở dữ liệu là một tập hợp các dữ liệuliên quan. Để “bộ thông tin thực tế về một số người” này được gọilà một cơ sở dữ liệu, chúng tôi mong đợi những người trong cơ sởdữ liệu có nội dung gì đó chung - nghĩa là chúng "có liên quan"theo một cách nào đó. Ở đây liên quan không ngụ ý một mốiquan hệ gia đình, mà đúng hơn là một cái gì đó giống như “nhữngngười chơi gơn”, “những người ni chó” hoặc “những người tôiđã phỏng vấn trên đường phố hôm nay." Trong một “cơ sở dữ liệuvề con người”, người ta mong đợi mọi người có một số

đặc điểm chung gắn kết chúng lại với nhau. Một “tập hợp các sựkiện về một số người” không phải là cơ sở dữ liệu cho đến khi đặcđiểm chung cũng được xác định. Nói cách khác: Tại sao tên và địachỉ của những người này lại được giữ trong một danh sách?

1.2 XÂY DỰNG CƠ SỞ DỮ LIỆU

Làm thế nào để chúng ta xây dựng một cơ sở dữ liệu? Giả sửbạn được yêu cầu tập hợp cơ sở dữ liệu về các món đồ người tacất giữ trong tủ đựng thức ăn. Bạn sẽ làm như thế nào? Bạn cóthể lấy một mảnh giấy và bắt đầu liệt kê những món đồ bạn nhìnthấy. Khi hồn tất, bạn sẽ có cơ sở dữ liệu về các món đồ trong tủđựng thức ăn. Thật đơn giản bạn đã có một bộ sưu tập dữ liệu liên

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

quan. Nhưng hãy tự hỏi—Đây có phải là cơ sở dữ liệu tốt khơng?Cách tiếp cận của bạn để xây dựng cơ sở dữ liệu có phải là mộtphương pháp tốt khơng? Câu trả lời cho những câu hỏi này phụthuộc một phần vào lý do tại sao và cách bạn xây dựng danh sáchcũng như ai sẽ sử dụng danh sách đó để làm gì. Ngồi ra, có phảibất cứ ai sử dụng cơ sở dữ liệu này đều có thể tìm thấy thơng tinmột cách dễ dàng? Nếu bạn có kiến thức hơn, bạn sẽ tự hỏi mìnhcách tốt nhất để xây dựng cơ sở dữ liệu này trước khi bạn lấy giấyvà bắt đầu ghi danh sách các mục.

Khi xử lý phần mềm và hoạt động liên quan đến máy tínhnhư cơ sở dữ liệu, tồn tại một môn khoa học về “cách thực hiện”được gọi là sofware engineering (công nghệ phần mềm (SE)). SElà một quá trình xác định hệ thống và viết phần mềm. Để thiết kếmột cơ sở dữ liệu tốt, chúng tôi sẽ sử dụng một số ý tưởng từ SE.

Trong chương này, chúng tơi trình bày mơ tả ngắn gọn về SEkhi nó liên quan đến việc lập kế hoạch cho cơ sở dữ liệu củachúng ta. Sau phần thông tin cơ bản/tổng quan về SE này, chúngta khám phá các mơ hình cơ sở dữ liệu và đặc biệt là mơ hình cơsở dữ liệu quan hệ. Mặc dù trong lịch sử có nhiều loại mơ hình cơsở dữ liệu, hầu hết các cơ sở dữ liệu ngày nay đều sử dụng mơhình được gọi là “cơ sở dữ liệu quan hệ”. Trọng tâm của chúng tôitrong cuốn sách này là đưa ra một phương pháp dựa trên SE đểthiết kế một cơ sở dữ liệu quan hệ hợp lý.

1.3. QUY TRÌNH KỸ THUẬT PHẦN MỀM LÀ GÌ?

Thuật ngữ sofware engineering (cơng nghệ phần mềm) đềcập đến một quá trình xác định, thiết kế, viết, cung cấp, bảo trì và

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

cuối cùng ngừng sử dụng phần mềm. Software engineer thườngđề cập đến “vòng đời” của phần mềm; phần mềm có sự khởi đầuvà sự kết thúc. Có rất nhiều tài liệu tham khảo tuyệt vời về chủ đềS.E. Một số được tham khảo ở cuối chương này.

Một số tác giả sử dụng thuật ngữ cơng nghệ phần mềm đồngnghĩa với “phân tích và thiết kế hệ thống”, nhưng điểm cơ bản làbất kỳ hệ thống thơng tin nào cũng cần có một số quy trình đểphát triển nó một cách chính xác. SE trải dài nhiều nhiệm vụ củahệ thống thông tin. Nhiệm vụ mà chúng ta quan tâm chủ yếu ởđây là xác định và thiết kế cơ sở dữ liệu. “Xác định cơ sở dữ liệu”có nghĩa là ghi lại những gì cơ sở dữ liệu phải chứa và cách thựchiện nhiệm vụ thiết kế tổng thể.

Ý tưởng cơ bản trong SE là xây dựng phần mềm một cáchchính xác; một loạt các bước hoặc giai đoạn cần triển khai triểnxuyên suốt một “vòng đời” của phần mềm. Các bước này đảmbảo rằng quá trình suy nghĩ đi trước hành động—suy nghĩ thơngqua “cái gì là cần thiết” đặt trước “phần mềm nào được viết”. Hơnnữa, “suy nghĩ” trước khi hành động” đòi hỏi tất cả các bên thamgia phát triển phần mềm phải hiểu và trao đổi với nhau. Một điểnhình của quan điểm “suy nghĩ trước khi hành động” chính là mơhình “thác nước”; Q trình phát triển phần mềm được cho là diễnra theo hướng có định hướng mà không bị lùi lại. Như một thácnước, một khi điểm quyết định được thơng qua, rất khó có thể đểquay ngược và thực hiện lại các bước trước đó.

Nói chung, bước đầu tiên trong quy trình SE bao gồm việcxác định chính thức những gì phải được thực hiện. Chúng ta có thể

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

chia bước đầu tiên này thành hai bước: (a) làm sáng tỏ yêu cầu và(b) thống nhất một tài liệu đặc tả. Ý tưởng thác nước ngụ ý rằngmột khi đặc tả của phần mềm được được người dùng viết và chấpnhận, nó khơng thể thay đổi hoặc xem lại mà hơn hết là được sửdụng làm cơ sở cho việc thiết kế. Sáng tỏ yêu cầu là nơi bạn nóivới người xây dựng phần mềm những gì bạn muốn. Tài liệu đặc tảlà một tuyên bố chính thức về mong muốn của bạn.

Để minh họa, giả sử bạn tiếp xúc với một người xây dựng.Bạn nói bạn muốn có một căn nhà ba phịng ngủ, hai phịng tắm.Người xây dựng sau đó đặt câu hỏi- một hoặc hai tầng, gạch hoặcvách ngoài, bạn muốn công tắc đèn ở đâu, sàn như thế nào, v.v.Người xây dựng sau đó sẽ thu thập tất cả các ghi chú về mongmuốn của bạn, sắp xếp thông tin và trình bày các ghi chú để bạnphê duyệt. Việc người xây dựng đặt câu hỏi được gọi là “làm sángtỏ”. Sau khi người xây dựng đưa ra cho bạn những gì người xâydựng nghĩ là mong muốn của bạn, “danh sách mong muốn cuốicùng đã thương lượng,” bạn có một tài liệu đặc tả. Chắc chắn phảicó một cuộc đối thoại giữa bạn và người xây dựng. Đến một lúcnào đó, bạn và người xây dựng hiểu bạn muốn gì, và mong muốncủa bạn được thực hiện để người xây dựng có thể tiếp tục qtrình thiết kế ngôi nhà. Sự phát triển của phần mềm và cơ sở dữliệu hoạt động giống như ví dụ về việc xây ngơi nhà. Làm cho quytrình xây nhà trở nên chính thức để đảm bảo người xây dựngkhông lãng phí thời gian để thiết kế một cái gì đó bạn khơngmuốn. Điều tương tự cũng đúng với việc thiết kế cơ sở dữ liệu.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Sau khi đã thống nhất tài liệu đặc tả, bước tiếp theo là thiếtkế ngôi nhà theo tài liệu đặc tả. Khi ngôi nhà được thiết kế và bảnthiết kế được rút ra, việc xem lại thông số kỹ thuật là không đượcchấp nhận ngoại trừ những lỗi nhỏ cần thay đổi. Phải có “cuộc gặpgỡ giữa các ý kiến” ở cuối giai đoạn xác định thông số kỹ thuật đểdi chuyển cùng với thiết kế (bản thiết kế) của ngôi nhà để đượcxây dựng. Việc phát triển phần mềm và cơ sở dữ liệu cũng vậy.Phần mềm sản xuất là một quy trình vòng đời—phần mềm (cơ sởdữ liệu) được tạo ra, sử dụng, duy trì và cuối cùng đã dừng lại.

Những “người chơi” trong vịng đời phát triển phần mềm cóthể được đặt thành hai phe, thường được gọi là người dùng và nhàphân tích. Phần mềm được nhà phân tích thiết kế cho người dùngtheo thông số kỹ thuật của người dùng. Trong bài này, chúng tasẽ coi mình là nhà phân tích đang cố gắng trình bày những gìngười dùng nghĩ họ muốn. Nhớ lại ví dụ trong chương này về danhsách sách ở thư viện gia đình. Ở đây, người yêu cầu danh sách làngười dùng; người lập danh sách sách là nhà phân tích (hay cịngọi là người viết phần mềm, người xây dựng hoặc người thiết kế).

Không có sự thống nhất chung giữa các kỹ sư phần mềm vềsố bước hoặc giai đoạn chính xác trong mơ hình phát triển phầnmềm. Các mơ hình khác nhau tùy theo sự quan tâm của nhànghiên cứu SE ở phần này hay phần khác trong quá trình. Một mơtả rất ngắn gọn về quy trình phần mềm như sau: (Phần mềm dướiđây có thể được hiểu là cơ sở dữ liệu)

<b>Bước 1 (hoặc Giai đoạn 1): Yêu cầu. Tìm hiểu xem người dùng</b>

muốn/cần gì. “Thủ tục tìm ra” được gọi là “làm sáng tỏ”.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Bước 2: Đặc tả yêu cầu kỹ thuật. Viết ra mong muốn/nhu cầu</b>

của người dùng một cách chính xác nhất. Ở bước này, người dùngvà nhà phân tích khơng chỉ ghi lại những gì mong muốn mà cịnchi phí là bao nhiêu và mất bao lâu để đi vào sử dụng. Nguyên tắccơ bản của SE là tạo ra phần mềm đúng thời gian và đúng ngânsách. Vì vậy, ngồi việc làm cho nhau hiểu những gì muốn/cần,một bước rất cần thiết là xác định ngân sách và mốc thời gian tạora sản phẩm.

<b>Bước 2a: Phản hồi đặc tả kỹ thuật cho người dùng. Một sự</b>

xem xét chính thức đặc tả kỹ thuật được thực hiện để xem liệu (a)người dùng có đồng ý nhà phân tích đã đưa ra chính xác những gìngười dùng muốn và (b) nhà phân tích hài lịng rằng các u cầucủa người dùng được xác định rõ ràng.

<b>Bước 2b: Làm lại đặc tả kỹ thuật nếu cần và quay lại bước2a cho đến khi</b>

nhà phân tích và người dùng đều hiểu nhau và đồng ý tiếp tụcthực hiện. Hãy nhớ mơ hình thác nước—khi đã kết thúc giai đoạnđặc tả, người ta sẽ khơng thể quay ngược dịng.

<b>Bước 3: Thiết kế—Phần mềm hoặc cơ sở dữ liệu được thiếtkế để đáp ứng các yêu cầu kỹ thuật từ bước 2. Là nhà xây</b>

dựng nội bộ, giờ đây nhà phân tích (người xây dựng) biết những gìđược yêu cầu, vì vậy kế hoạch cho phần mềm được chính thứchóa - một kế hoạch chi tiết được soạn thảo.

<b>Bước 3a: Thiết kế phần mềm được kiểm tra độc lập dựatrên đặc tả kỹ thuật. Việc kiểm tra độc lập thiết kế sẽ chứng</b>

minh được nhà phân tích có đáp ứng các đặc tả kỹ thuật hay

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

không. Khi bước 3 bắt đầu, việc hồi lại là khó khăn nhất. Có thểmột vài đặc điểm kỹ thuật nhỏ có thể được xem lại, nhưng nhìnchung ý tưởng là phải ln đi về phía trước sau khi kết thúc mỗibước. Sau khi hoàn thành bước 3a, cả người dùng và nhà phântích đều biết phải làm gì kế tiếp. Nếu trong bối cảnh xây nhà thìbản thiết kế nhà đã được lập ra.

Một điểm cuối cùng cần lưu ý: Trong phần đặc tả kỹ thuật,ngân sách và dịng thời gian được nhà phân tích đề xuất và đượcngười dùng chấp nhận. Trong giai đoạn thiết kế, phần ngân sáchnày của thiết kế tổng thể đôi khi được điều chỉnh lại. Tất cả phầnmềm phát triển cần có tiền bạc và thời gian. Điều quan trọngkhơng chỉ là sản xuất chính xác một sản phẩm nhất định mà còncần phải làm rõ cho tất cả các bên tham gia về chi phí và thờigian tiêu tốn cho dự án đó.

<b>Bước 4: Phát triển. Phần mềm được viết; một cơ sở dữ liệu được</b>

tạo ra.

<b>Bước 4a: Trong giai đoạn phát triển, phần mềm được kiểm tra so</b>

với thiết kế cho đến khi nhà phân tích hiểu rõ thiết kế đó. Ghi chú,thơng số kỹ thuật ở bước 2 đã có từ lâu và chỉ có những sửa đổinhỏ về thiết kế sẽ được chấp nhận ở đây hoặc ở Bước 3. Điểmquan trọng ở bước 4 là xây dựng phần mềm theo thiết kế từ bước3. Trong trường hợp của chúng tôi, cơ sở dữ liệu được tạo và phổbiến trong giai đoạn này.

<b>Bước 5: Thực hiện. Phần mềm được chuyển giao cho người dùng</b>

sử dụng

trong ứng dụng.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Bước 5a: Người dùng kiểm tra phần mềm và chấp nhận hoặc từ</b>

chối nó. Câu hỏi đặt ra là “Cơ sở dữ liệu có được tạo chính xáckhơng? Nó có đáp ứng các đặc điểm kỹ thuật và thiết kế không?Trong trường hợp của chúng ta, cơ sở dữ liệu được truy vấn, dữliệu được thêm hoặc xóa và người dùng chấp nhận những gì đãđược tạo. Một người có thể nghĩ rằng đây là sự kết thúc của vịngđời phần mềm, nhưng có hai bước quan trọng hơn.

<b>Bước 6: Bảo trì. Việc bảo trì được thực hiện trên phần mềm cho</b>

đến khi nó khơng còn sử dụng được. Cho dù được quy định, thiếtkế và viết tốt đến đâu, một số các phần của phần mềm có thể bịlỗi. Trong cơ sở dữ liệu, một số mục dữ liệu có thể cần thiết đểthêm vào hoặc xóa đi. Có lẽ sẽ cần phải có một số bảng phụ tạothêm. Một số phần của cơ sở dữ liệu có thể cần được sửa đổi theothời gian để phù hợp với người dùng hoặc để nâng cao hiệu suất.Thời gian thay đổi, yêu cầu và nhu cầu cũng thay đổi theo. Việcbảo trì rất tốn thời gian và là phần tiêu tốn nhiều của quy trìnhphần mềm- đặc biệt nếu quy trình SE chưa được thực hiện tốt.Bảo trì bao gồm việc sửa các lỗi phần mềm ẩn cũng như nâng caochức năng của phần mềm.

Trong cơ sở dữ liệu, các mục dữ liệu mới thường được ucầu; một số dữ liệu cũ có thể khơng còn cần thiết nữa. Phần cứngthay đổi. Hệ điều hành thay đổi. Bản thân công cụ cơ sở dữ liệu, làphần mềm, cũng thường được nâng cấp - các phiên bản mới phảiluôn được cập nhật trên thị trường. Dữ liệu trong cơ sở dữ liệuphải phù hợp với sự thay đổi và quy trình thay đổi dữ liệu trong cơsở dữ liệu phải được thực hiện.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Bước 7: Kết thúc phần mềm. Bất cứ phần mềm nào được viết</b>

ra đều trở thành lỗi thời. Hãy nghĩ về của các trò chơi điện tử cũđã từng là công nghệ tiên tiến và giờ đã trở nên lỗi thời và lạchậu. Cơ sở dữ liệu máy tính và cơng nghệ nói chung đều đangphát triển. Gói phần mềm cũ mà bạn sử dụng trên một số máytính cá nhân cũ khơng hoạt động được nữa vì hệ điều hành đãđược cập nhật, máy tính đã lỗi thời và phần mềm cũ phải được gỡbỏ. Về cơ bản, quá trình SE phải bắt đầu lại từ đầu với các thôngsố kỹ thuật mới. Điều này cũng đúng với cơ sở dữ liệu và hệ thốngthiết kế. Đôi khi, điều tiết kiệm chi phí nhất cần làm là bắt đầu lạitừ đầu.

1.4. SƠ ĐỒ MỐI QUAN HỆ THỰC THỂ VÀ VÒNG ĐỜI KỸ THUẬT PHẦN MỀM

Cuốn sách này tập trung vào các bước từ 1 đến 3 của vòngđời phần mềm cho cơ sở dữ liệu. Cơ sở dữ liệu là tập hợp các dữliệu có liên quan. Khái niệm về dữ liệu liên quan có nghĩa là cơ sởdữ liệu lưu trữ thông tin về một tổ chức: một doanh nghiệp, mộtcơ quan, một nhóm người hoặc các quy trình liên quan. Ví dụ, mộtcơ sở dữ liệu có thể chứa dữ liệu về Acme Plumbing và liên quanđến khách hàng và các cuộc gọi dịch vụ. Một cơ sở dữ liệu khác cóthể là về các thành viên và hoạt động của một nhóm nhà thờtrong thị trấn. Sẽ khơng phù hợp nếu có dữ liệu về nhóm nhà thờvà Acme Plumbing trong cùng một cơ sở dữ liệu vì hai tổ chức nàykhơng liên quan đến nhau. Một lần nữa, cơ sở dữ liệu là một tậphợp các dữ liệu liên quan. Việc lưu giữ một cơ sở dữ liệu cho từngthực thể trên là điều dễ dàng, nhưng

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

không nên lưu chúng trong cùng một cơ sở dữ liệu.

Các hệ thống cơ sở dữ liệu thường được mơ hình hóa bằng sơđồ mối quan hệ thực thể (ER) làm bản thiết kế mà từ đó cơ sở dữliệu thực tế được tạo ra; các kế hoạch chi tiết hoàn thiện là đầu racủa giai đoạn thiết kế. Sơ đồ ER là công cụ của nhà phân tích đểlập sơ đồ dữ liệu sẽ được lưu trữ trong hệ thống cơ sở dữ liệu. Giaiđoạn 1, giai đoạn yêu cầu, có thể khá khó chịu khi nhà phân tíchphải khơi gợi nhu cầu và mong muốn từ người dùng. Người dùngcó thể “hiểu biết về máy tính” hoặc khơng và có thể biết hoặckhơng biết các khả năng của phần mềm hệ thống. Nhà phân tíchthường gặp khó khăn trong việc giải mã nhu cầu của người dùngvà muốn tạo ra một đặc tả kỹ thuật (a) có ý nghĩa đối với cả haibên (người dùng và nhà phân tích) và (b) cho phép nhà phân tíchthiết kế một cách hiệu quả.

Trong thế giới thực, người dùng và nhà phân tích đều có thểlà chuyên gia, nhưng người dùng (hoặc nhóm người dùng) phảitruyền đạt ý tưởng của họ cho nhà phân tích (hoặc nhóm nhàphân tích). Người dùng phải thể hiện những gì họ muốn và nhữnggì họ nghĩ họ cần; Các nhà phân tích phải gợi ra những mongmuốn và nhu cầu này, ghi lại chúng và lập kế hoạch để hiện thựchóa các u cầu của người dùng.

Mơ tả của người dùng có thể mơ hồ và khơng có cấu trúc.Thơng thường, người dùng có hiểu biết rõ về cơng việc kinh doanhcũng như mơ hình kinh doanh của họ. Trong khi đó người phântích thường khơng biết gì về cơng việc kinh doanh nhưng hiểuđược phần cuối của vấn đề trên máy tính. Đối với những người

</div>

×