Jul 27, 2012

Các bước thiết kế ứng dụng tựa thành phần

Nguyên bản

Tạo mô hình business concept

Tạo biểu đồ use case

Với mỗi use case, tạo một system interface

Tạo biểu đồ business type

Với mỗi thực thể kiểu <<core>> tạo một business interface

Xác định operation của business interface bằng biểu đồ communicate (hoặc biểu đồ sequence)

Chế biến

Ở bước 5 interface được tạo ra sẽ chứa tương đối nhiều operation, do vậy có thể tách ra làm các interface nhỏ hơn.

thực thể có kiểu <<core>> khi nó thỏa mãn hai điều kiện sau đây:
  • Có một định danh
  • Tồn tại độc lập, tức là không có các liên kết bắt buộc với các thực thể khác, trừ thực thể để định kiểu. (Thực thể Lớp có liên kết bắt buộc với Trường vì không có Trường thì không có Lớp, thực thể Thành Viên không có liên kết bắt buộc vì không có Tổ Chức thì Thành viên vẫn tồn tại hay có thể xác định bằng chỉ số multyply, nếu chỉ số multiply có thể là ko -> không có liên kết bắt buộc).

Jul 26, 2012

Ngắt kết nối internet bằng power shell

Ví dụ này sẽ hướng dẫn ngắt kết nối internet (hoặc kết nối lại) sử dụng windows power shell

Các bước thực hiện

  1. Mở powershell dưới quyền admin
  2. Liệt kê tất cả các adapter mạng trong hệ thống
  3. Xác định adapter thực hiện việc kết nối internet
  4. Gọi hàm Disable của đối tượng adapter để ngưng kết nối internet

Bắt đầu

Để chạy power shell dưới quyền admin, nhấn chuột phải vào biểu tượng windows power shell rồi chọn Run as administrator

Ở ví dụ này, tôi sẻ sử dụng WMI để lấy thông tin về tất cả các adapter có trong hệ thống. Gõ lệnh:

$adapterlist = Get-WMIObject -class Win32_NetworkAdapter

Sau lệnh này, $adaterlist sẽ chứa danh sách tất cả các adapter mạng trong máy

Gõ lệnh
$adapterlist

các bạn sẽ nhận được danh sách các adapter mạng của mình, trong máy của tôi là
Để ngưng kết nối internet, bạn phải xác định đúng adapter thực hiện nhiệm vụ này
Nhấn chuột phải vào biểu tượng mạng dưới thanh task bar, chọn Open Network and Sharing Center
Sau đó chọn Change adapter setting, khi đó bạn sẽ xác định được tên của adapter dùng để kết nối internet, trong máy tôi đó là Athros AR8151 PC....
Quay lại cửa sổ Powershell, ở danh sách các adapter trước đó, bạn xác định adapter có tên tương ứng, nhìn DevideID của nó bằng bao nhiêu (của tôi là 7) sau đó gõ lệnh
$adapterlist[7].Disable()
để ngắt kết nối internet


Tóm lại

DevideID là một chỉ số cố định, do vậy lần sau bạn chỉ cần gõ

$adapter = get-wmiobject -class win32_networkadapter | where {$_.DevideID -eq 7}
$adapter.Disable()

để ngắt kết nối và gõ

$adapter = get-wmiobject -class win32_networkadapter | where {$_.DevideID -eq 7}
$adapter.Enable()
để thực hiện lại kết nối


Các lệnh hay dùng trong Bash shell

Object Constrain Language (OCL)

bài này dịch lại từ slide OCL by Example của tiến sĩ Birgit Demuth

Các khái niệm cơ bản

Constrain

Invariant

Invariant là constrain luôn đúng cho một đối tượng trong suốt thời gian tồn tại của đối tượng.
Ví dụ:
Có biểu đồ UML như hình dưới
Invariant constrain là:

context Cuộc họp
inv : seft.Thời gian bắt đầu < self.Thời gian kết thúc

Trong đó context, inv, seft là từ khóa. seft là từ khóa giống như từ khóa this trong ngôn ngữ C++, C#, nó tham chiếu đến đối tượng là constrain đang áp dụng, có thể bỏ từ khóa này đi, cách viết sau là hợp lệ:
context Cuộc họp
inv : Thời gian bắt đầu < Thời gian kết thúc

Nếu muốn đặt tên cho constrain, viết tên của constrain ngay trước dấu ':'

Precondition/Postcondition

Đây cũng là hai loại ràng buộc, đối tượng của nó là operation của đối tượng.
Precondition là ràng buộc phải đúng ngay trước khi thực hiện operation

cú pháp:
context classifier::operation (các tham số)
pre tên ràng buộc: biểu thức boolean


Jul 25, 2012

Workspace trong Team Foundation Server

Trong Visual Studio (VS), hay Eclipse muốn lập trình thì phải tạo file .cpp, .h, .cs, ... Ở một góc nhìn nào đó, tập hợp các file này tạo thành một project, tập hợp các project tạo thành một solution (trong VS) hay workspace (trong Eclipse). Khái niệm workspace trong Team Foundation Server khác với khái niệm workspace trong Eclipse, nó là tập hợp các solution.

Mục đích

Workspace sinh ra để ánh xạ các thư mục trên máy server xuống ổ cứng của client.
Điều đó có nghĩa là client viết mã nguồn vào file trên ổ cứng của anh ta sau đó mới upload lên server.
Ví dụ:
  • Tạo một workspace sau đó ánh xạ folder $/Sort từ server xuống thư mục C:\Sort.
  • Khi đó người quản trị server có thể tạo một folder mới tên là $/Sort/BubbleSort.
  • Nếu client Update (Get Last Version) thì thư mục C:\Sort\BubbleSort sẽ tự động được tạo.
  • Nếu client tạo folder mới C:\Sort\QuickSort sau đó Pending Change (Check in) thì thư mục trên server tương ứng là $/Sort/QuickSort sẽ được tạo tự động, và các thành viên khác có thể cập nhật sự thay đổi đó về thư mục của mình.

Các sử dụng

Trước hết, phải kết nối được với server

Tạo Workspace

Khi tạo một team project mới, workspace tự động được tạo.

Xem tất cả các folder được ánh xạ

Vào menu File|Source Control|WorkSpaces...
Cửa sổ Manage Workspaces hiện ra, nhất nút Edit.
Cửa sổ Manage Workspaces
Visua studio sẽ liệt kê tất cả các thư mục được ánh xạ đến sever:

Thêm thư mục ánh xạ mới

Mặc định, TFS sẽ ánh xạ toàn bộ thư mục và thư mục con của nó

Cloak và Uncloak

Biểu đồ Use Case

Tác dụng

Use case được tạo ra để đảm bảo hệ thống sau khi xây dựng phù hợp với yêu cầu người dùng, không thừa, không thiếu.
Use case còn một số tác dụng nhỏ nữa có thể tham khác trong nhiều tài liệu use case khác.

Cách đọc

Hướng của các mũi tên trong use case thậm chí còn không được định nghĩa trong đặc tả UML

Cách xây dựng

Xác định actor

Xác định Use case

Phải luôn luôn dựa vào actor để xác định use case, đừng bị các chức năng của hệ thống chi phối nhiều khi tìm use case. (actor(s) is key to finding correct use-case(s))

Khi đọc biểu đồ use case ta nhìn thấy actor có thể làm gì với hệ thống chứ không phải hệ thống có chức năng gì.
Ngay trước khi xây dựng một hệ thống, ý tưởng về hệ thống có những chức năng gì đã nằm hết trong đầu người phát triển, và khi xây dựng biểu đồ use case rất dễ mắc phải việc đồng nhất giữa use case và chức năng của hệ thống, kết quả là sẽ vẽ thừa use case hoặc thiếu use case, như vậy mục tiêu căn bản để vẽ biểu đồ use case sẽ không thể đạt được nữa. Có vẽ hay không vẽ biểu đồ use case cũng bằng nhau.

Tìm đúng use case là công việc vô cùng khó, use case có thể tồn tại ở rất nhiều cấp độ
giả sử có một hệ thống mạng trong công ty, giúp cho toàn bộ nhân viên trong công ty có thể trao đổi với nhau qua các thông điệp (tựa như dịch vụ chat của yahoo). Khi đó dựa và

Tránh tạo các use case có tên chung chung như là quản lý, theo dõi, tương tác, ... Thay vào đó hãy chia ra làm các use case cụ thể lớn nhất có thể

Xác định mối quan hệ

Sau khi hoàn thành ít nhất là một luồng sự kiện cho tất cả các use case chính. Không nên cố tạo ra các use case include, nó có thể phản tác dụng.Nhớ rằng include là để đơn giản hóa biểu đồ chứ không phải phức tạp hóa nó.
Không, và không bao giờ sử dụng quan hệ generatoin, quan hệ này chỉ khiến biểu đồ use case khó đọc hơn, chẳng có một lý do nào để sử dụng mối quan hệ này cả.

Viết đặc tả


Jul 23, 2012

Business Concept Model

Tác dụng

Biểu đồ Business Concept là một biểu đồ dùng để mô tả các khái niệm trong yêu cầu của người dùng.
Nó còn có các tên gọi khác như là Domain Model, Class Concept Model.

Cách đọc

Cách xây dựng