Vốn đầu tư được hình thành từ các nguồn tiết kiệm, tích lũy và nó là cơ sở cho vốn sản xuất, tạo ra vốn sản xuất
Trang 1Chơng I Cơ sở và phơng pháp luận cơ bản để xây dựng chơng trình quản lý nhân sự.
Khi thập kỷ 1980 bắt đầu, một bài báo đăng trên trang nhất của tạp chí Business Week đã loan báo dòng tiêu đề sau: “Phần mềm : Lực điều khiển mới” Phần mềm đã vào một thời đại - nó đã trở thành một chủ đề cho sự quan tâm của các tạp chí Trong suốt giữa những năm 1980, bài báo bao quát trong tạp chí Fortune than thở về “Lỗ hổng lớn dần trong phần mềm”, và cuối thập kỷ thì tạp chí Business Week lại cảnh báo các nhà quản lý về “Cái bẫy phần mềm - tự
động hay cái gì khác” Khi những năm 1990 bùng lên một bài báo chính trong tạp chí Newsweek đã hỏi “Liệu chúng ta có thể tin cậy vào phần mềm không?” Còn tạp chí The Wall Street Journal lại kể một câu chuyện về công việc của một công ty phần mềm chủ chốt với bài đăng trên trang nhất nhan đề “Tạo ra phần mềm mới là nhiệm vụ thật khổ sở ” Những dòng tiêu đề khác giống chúng là lời báo hiệu cho một cách hiểu mới về tầm quan trọng của phần mềm máy tính - những cơ hội mà nó đem đến và những hiểm nguy mà nó đặt ra
Phần mềm bây giờ đã vợt trội hơn phần cứng xem nh điểm mấu chốt cho
sự thành công của nhiều hệ thống dựa trên máy tính Dù cho máy tính đợc dùng
để vận hành một doanh nghiệp, kiểm soát một sản phẩm hay làm thành một hệ thống, phần mềm vẫn là nhân tố khác biệt Tính đầy đủ và đúng thời hạn của thông tin do phần mềm cung cấp (và các cơ sở dữ liệu liên quan) làm khác biệt một công ty này với các đối thủ cạnh tranh với nó Thiết kế và “tính thân thiện con ngời” của một sản phẩm phần mềm làm khác biệt nó với các sản phẩm cạnh tranh có chức năng tơng tự khác Sự thông minh và chức năng do phần mềm đợc nhúng trong đó đa ra thờng làm khác biệt hai sản phẩm tiêu thụ hay công nghiệp tơng tự nhau Chính phần mềm tạo sự khác biệt đó
Trang 21 Khái niệm Công nghệ phần mềm.
Mặc dù sự ra đời của máy tính đã đợc gần nửa thế kỷ nhng khái niệm công nghệ phần mềm chỉ mới xuất hiện trong khoảng thời gian gần đây khi phần mềm đã thực sự trở thành một ngành công nghiệp có vị trí đáng kể trong nền kinh tế quốc dân (Nền công nghệ phần mềm Mỹ có vị trí thứ 6 trong toàn bộ nền kinh tế Mỹ) Với quy mô sản xuất công nghiệp, phần mềm
từ chỗ là công cụ phân tích và xử lý thông tin đã trở thành một ngành công nghiệp mũi nhọn Môn học công nghệ phần mềm là một môn học tích hợp các phơng pháp và công cụ để nghiên cứu quá trình sản xuất một phần mềm không phải ở quy mô học đờng mà ở quy mô công nghiệp thơng mại hoá trên thị trờng
Công nghệ phần mềm là một tổ hợp các công cụ, phơng pháp và thủ tục làm cho ngời quản trị viên dự án nắm đợc xu thế tổng quát phát triển một phần mềm và giúp cho kỹ s lập trình có một nền tảng để triển khai các định hớng của phần mềm Nh vậy khái niệm công nghệ phần mềm biểu diễn một cách trực quan qua hình vẽ sau:
CNPM
Trang 3Quá trình phát triển một dự án phần mềm đều trải qua ba giai đoạn :
- Giai đoạn 1: Giai đoạn xác định
- Giai đoạn 2: Giai đoạn phát triển
- Giai đoạn 3: Giai đoạn bảo trì
Quả
n trị viên
dự
án.
Kỹ
s phần mềm
Xác định
Phát triển
Bảo trì
Trang 4- Bảo trì sửa đổi.
sử dụng Định nghĩa này xác định thành phần của phần mềm trong công nghệ phần mềm, tổng quát và đầy đủ hơn nhiều so với khái niệm thông thờng
Phần mềm đã trải qua các công đoạn phát triển đợc biểu diễn trong bảng sau:
- Xử lý theo chế
độ thời gian thực
- Thơng mại hoá
- Hệ thống phân tán
- Hiệu quả
th-ơng mại
- Phần mềm thông minh
- Hệ thống để bàn
- Lập trình xử
lý hớng đối ợng
t Xử lý song song
Xem xét tiến trình phát triển của phần mềm xuất phát từ thời điểm năm
1950 khi lần đầu tiên trên thế giới xuất hiện hai chiếc máy tính ở Liên Xô và Mỹ
Trang 53 Vòng đời phát triển của phần mềm.
Trong công nghệ phần mềm ngời ta đặc biệt quan tâm đến vấn đề vòng
đời phát triển của phần mềm Vòng đời của một phần mềm đợc hiểu là một quy trình từ khi phần mềm ra đời cho đến khi đợc đa vào sử dụng và quá trình nâng cấp bảo trì phần mềm đó Mục đích của việc nghiên cứu vòng đời phát triển phần mềm là phân ra thành các giai đoạn, trên cơ sở đó tìm giải pháp và công cụ thích hợp để tác động vào mỗi giai đoạn Vòng đời phát triển của phần mềm đợc biểu diễn bằng một mô hình thác nớc sau:
Công đoạn đầu tiên là công nghệ hệ thống nó bao trùm toàn bộ các quá trình tiếp theo trong công nghệ phần mềm Vì công nghệ phần mềm là một thành phần của hệ thống quản lý, do đó nó phải xem xét trong mối liên quan tổng thể về kinh tế, kỹ thuật, tổ chức của toàn bộ bộ máy quản lý
Công
nghệ hệ
Phân tích
Thiết kế
Mã
hoá
Kiểm thử
Bảo trì
Trang 6Công đoạn tiếp theo là phân tích với mục đích xác định rõ ràng và cụ thể các yêu cầu của phần mềm.
Phần thiết kế trong công nghệ phần mềm hớng tới các vấn đề sau đây: Thiết kế kiến trúc hệ thống, thiết kế kỹ thuật Phần thiết kế hệ thống là quan trọng nhất vì nó cho ta một cái nhìn tổng thể về phần mềm cần xây dựng còn thiết kế kỹ thuật đi vào các vấn đề cụ thể bao gồm : thiết kế dữ liệu, thiết kế các thủ tục, thiết kế công cụ cài đặt
Mô hình thác nớc biểu diễn vòng đời của chơng trình với hai nghĩa sau:
- Để khẳng định đây là các giai đoạn của một quy trình thống nhất không tách rời và có mối liên quan mật thiết với nhau
- Trong mô hình này các công đoạn càng ở phía dới thì càng chịu sự tác
động của tất cả các công đoạn ở phía trên chỉ trừ có công đoạn công nghệ hệ thống là không chịu sự tác động của bất cứ công đoạn nào
4 Các đặc trng của phần mềm.
A, Phần mềm đợc phát triển hay đợc công nghệ hoá, nó không đợc
chế tạo theo nghĩa cổ điển.
Mặc dầu có một số điểm tơng đồng giữa phát triển phần mềm và chế tạo phần cứng, hai hoạt động này cơ bản là khác nhau Trong cả hai hoạt động này, chất lợng cao đợc đạt tới thông qua thiết kế tốt, nhng giai đoạn chế tạo phần cứng có thể đa vào vấn đề chất lợng mà không tồn tại (hay dễ sửa đổi) cho phần mềm Cả hai hoạt động này đều phụ thuộc vào con ngời, nhng mối quan hệ giữa ngời đợc áp dụng và công việc đợc thực hiện là hoàn toàn khác nhau Cả hai hoạt động đều đòi hỏi việc xây dựng sản phẩm nhng cách tiếp cận hoàn toàn khác nhau
Trang 7B, Phần mềm không “hỏng đi”
Phần cứng trong quá trình sử dụng sẽ dẫn đến hao mòn và hỏng hóc Việc hỏng hóc của phần cứng sẽ dẫn đến việc thay thế phần cứng mới nhng phần mềm cũng có hỏng hóc nhng việc cập nhật phần mềm giúp cho phần mềm ít bị hỏng hóc hơn so với phần cứng Việc phần mềm hỏng hóc cũng là
điều không thể tránh khỏi của bất kỳ sản phẩm nào vì thế cần sửa chữa kịp thời tránh gây tác hại xấu đến thông tin xử lý
C Phần lớn phần mềm đều đợc xây dựng theo đơn đặt hàng chỉ ít khi đợc lắp ráp từ các thành phần có sẵn
5 Định nghĩa về thiết kế phần mềm.
Thiết kế là bớc đầu tiên trong giai đoạn phát triển cho bất kỳ sản phẩm hay hệ thống công nghệ nào Nó có thể đợc định nghĩa là: “ tiến trình áp dụng nhiều kỹ thuật và nguyên lý với mục đích xác định ra một thiết bị, một tiến trình hay một hệ thống đủ chi tiết để cho phép thực hiện nó về mặt vật lý.”
Mục tiêu thiết kế là để tạo ra một mô hình hay biểu diễn của một thực thể
mà sau này sẽ đợc xây dựng Tiến trình phát triển mô hình này tổ hợp trực giác
và đánh giá dựa trên kinh nghiệm trong việc xây dựng các thực thể tơng tự, một tâp các nguyên lý và hoặc các trực cảm hớng dẫn cách tiến triển mô hình này, một tập hợp các tiêu chuẩn để có thể đánh giá chất lợng, và một tiến trình lập lại
để cuối cùng dẫn tới biểu diễn thiết kế chung cuộc
Thiết kế phần mềm máy tính, giống nh cách tiếp cận thiết kế công nghệ trong các lĩnh vực khác, liên tục thay đổi khi các phơng pháp mới, cách phân
Trang 8tích tốt hơn và hiểu biết rộng hơn tiến hoá lên Không giống nh thiết kế cơ khí hay điện tử, thiết kế phần mềm có ở ngay giai đoạn tơng đối sớm trong sự tiến hoá của nó Chúng ta đã nêu ý tởng nghiêm chỉnh về thiết kế phần mềm( nh đối lập với “Lập trình hay viết mã”) chí ít cũng đã hơn ba thập kỷ nay Do đó, phơng pháp luận thiết kế phần mềm thiếu độ sâu, sự mềm dẻo và bản chất định tính mà thông thờng có gắn với nhiều bộ môn thiết kế công nghệ cổ điển Tuy nhiên, các
kỹ thuật cho thiết kế phần mềm thì đã có, tiêu chuẩn về chất lợng thiết kế cũng
có sẵn, và chúng ta có thể áp dụng đợc phơng pháp công nghệ thiết kế
5.1 Thiết kế phần mềm và công nghệ phần mềm.
Thiết kế phần mềm nằm ở trung tâm kỹ thuật của tiến trình công nghệ phần mềm và đợc áp dụng bất kể tới khuôn cảnh phát triển đợc sử dụng Một khi các yêu cầu phần mềm đã đợc phân tích và đặc tả thì thiết kế phần mềm là một trong ba hoạt động kỹ thuật - thiết kế, lập trình và kiểm thử - những hoạt động cần để xây dựng và kiểm chứng phần mềm Từng hoạt động này biến đổi thông tin theo cách cuối cùng tạo ra phần mềm máy tính hợp lệ
Sơ đồ quy trình thiết kế:
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
Thi
ết kế
Lập trình
Kiể
m thử
Thiết kế dữ liệu
Thiết
kế thủ tục
Mô hình thông tin
Thiết kế
kỹ thuật
Phần mềm đã Mô hình
hành vi
Trang 9Luồng thông tin trong giai đoạn kỹ thuật này việc xây dựng phần mềm dựa trên các mô hình thông tin, chức năng và hành vi là đầu vào cho thiết
kế Bằng việc sử dụng một trong một số phơng pháp thiết kế tạo ra thiết kế cơ sở dữ liệu, thiết kế kiến trúc, và thiết kế thủ tục Thiết kế dữ liệu chuyển mô hình lĩnh vực thông tin đã đợc tạo ra trong bớc phân tích các cấu trúc dữ liệu sẽ cần cho việc cài đặt phần mềm Thiết kế kiến trúc định nghĩa ra mối quan hệ giữa các thành phần cấu trúc chính của chơng trình Thiết kế thủ tục biến đổi các thành phần cấu trúc thành mô tả thủ tục của phần mềm Chơng trình gốc đợc sinh ra rồi việc kiểm thử đợc thực hiện để tích hợp và làm hợp lệ phần mềm
Thiết kế, lập trình và kiểm thử chiếm đến 75% hay hơn nữa của chi phí công nghệ phần mềm (trừ bảo trì) Chính tại bớc này mà chúng ta quyết định rằng sự thành công của việc cài đặt phần mềm sẽ bị ảnh hởng, và điều quan trọng là làm dễ dàng cho việc bảo trì phần mềm Những quyết định này đợc thực hiện trong thiết kế phần mềm, làm cho nó thành bớc thử nghiệm trong giai đoạn phát triển
5.2 Tiến trình thiết kế.
Thiết kế phần mềm là một tiến trình qua đó các yêu cầu đợc dịch thành một biểu diễn phần mềm Ban đầu biểu diễn mô tả cho quan điểm toàn bộ về
Mô đun chơng trình
Trang 10phần mềm Việc làm mịn tiếp sau dẫn tới một biểu diễn thiết kế rất gần với
ch-ơng trình gốc
Theo quan điểm quản lý dự án, thiết kế phần mềm đợc tiến hành theo hai bớc Thiết kế sơ bộ quan tâm với việc dịch các yêu cầu thành kiến trúc dữ liệu và phần mềm Thiết kế chi tiết tập trung vào việc làm mịn biểu diễn thuật toán cho phần mềm
Trong phạm vi thiết kế sơ bộ và chi tiết, có xuất hiện một số hoạt động thiết kế khá nhau Bên cạnh việc thiết kế dữ liệu, kiến trúc và thủ tục, nhiều ứng dụng hiện đại có hoạt động thiết kế giao diện phân biệt Thiết kế giao diện lập ra cách bố trí và cơ chế tơng tác cho tơng tác ngời – máy Mối quan hệ giữa các khía cạnh kỹ thuật và quản lý của thiết kế đợc minh hoạ trong hình sau:
5.3 Thiết kế dữ liệu.
Trang 11Thiết kế dữ liệu là hoạt động thiết kế đầu tiên trong ba hoạt động thiết kế
đ-ợc chỉ đạo trong công nghệ phần mềm Tác động của cấu trúc dữ liệu lên cấu trúc chơng trình và độ phức tạp thủ tục làm cho thiết kế dữ liệu có một ảnh hởng sâu xa tới chất lợng phần mềm Từng phơng pháp thiết kế có những u nhợc điểm riêng Tuỳ theo từng yêu cầu của phần mềm mà lựa chọn phơng pháp khác nhau
5.4 Thiết kế kiến trúc.
Mục tiêu chủ yếu của thiết kế kiến trúc là phát triển một cấu trúc chơng trình mô đun và biểu diễn mối quan hệ điều khiển giữa các mô đun Bên cạnh
đó thiết kế cấu trúc còn trộn lẫn cấu trúc chơng trình và cấu trúc dữ liệu, xác
định các giao diện làm cho dữ liệu chảy qua toàn bộ chơng trình
5.5 Thiết kế thủ tục.
Thiết kế thủ tục xuất hiện sau khi cấu trúc dữ liệu và cấu trúc chơng trình đợc thiết lập Trong thế giới lý tởng, đặc tả thủ tục yêu cầu việc định nghĩa ngôn ngữ tự nhiên, nh Tiếng Việt Sau hết , các thành viên của tổ chức phát triển phần mềm đều nói cùng ngôn ngữ tự nhiên (ít nhất cũng về lý thuyết) những ng-
ời bên ngoài lĩnh vực phát triển phần mềm có thể dễ dàng hiểu đặc tả hơn và không cần phải học điều mới
5.6 Các tiêu chuẩn thiết kế phần mềm.
Hiện tại có một số hớng dẫn sau về tiêu chuẩn thiết kế phần mềm:
- Thiết kế nên nêu ra cách tổ chức theo cấp bậc để dùng cách kiểm soát thông minh trong số các thành phần phần mềm
- Thiết kế nên theo các mô đun (nh chơng trình con hay thủ tục) nêu ra các đặc trng chức năng đặc biệt
- Thiết kế nên chứa cách biểu diễn phân biệt và tách biệt giữa dữ liệu và thủ tục
Trang 12- Thiết kế nên dẫn tới giao diện làm rút gọn độ phức tạp của việc nối ghép giữa các mô đun với môi trờng bên ngoài.
- Thiết kế nên đợc hớng theo cách dùng một phơng pháp lặp lại đợc điều khiển bởi thông tin có trong phân tích các yêu cầu phần mềm
E Các rằng buộc, giới hạn thiết kế chính
II Tài liệu tham khảo
A Tài liệu phần mềm hiện có
B Tài liệu hệ thống
C Tài liệu ngời cung cấp (Phần cứng và phần mềm)
D Tham khảo kỹ thuật
III Mô tả thiết kế
A Mô tả dữ liệu
a Tổng quan về luồng dữ liệu
b Tổng quan về cấu trúc dữ liệu
B Cấu trúc chơng trình suy diễn
C Giao diện bên trong cấu trúc
IV Mô đun; Cho từng mô đun:
A Lời thuật xử lý
B Mô tả giao diện
C Mô tả ngôn ngữ thiết kế( hay những mô tả khác)
Trang 13B Dữ liệu toàn cục
C Tham khảo chéo tệp và dữ liệu
VI Tham khảo chéo yêu cầu
VII Điều khiển kiểm thử
A Hớng dẫn kiểm thử
B Chiến lợc tích hợp
C Xem xét đặc biệt
VIII Đóng gói
A Các điều khoản cho chơng trình chồng chất đặc biệt
B Xem xét chuyển đổi
IX Lu ý đặc biệt
X Phụ lục
6 Ngôn ngữ lập trình và lựa chọn ngôn ngữ giải bài toán.
Tất cả các bớc công nghệ phần mềm đã đợc trình bày cho đến điểm này
đều trực tiếp hớng tới mục tiêu cuối cùng: dịch biểu diễn của phần mềm thành một dạng máy tính có thể hiểu đợc Cuối cùng đó là bớc lập trình – một tiến trình chuyển đổi thiết kế vào trong ngôn ngữ lập trình Gerald Weinberg đã diễn tả đã tả ý nghĩa đúng của lập trình khi ông viết: “ khi chúng ta nói tới máy tính thì bất hạnh là chúng ta thờng nói theo giọng điệu khác ”
Trang 14Tuy kỹ thuật thế hệ thứ t đang làm thay đổi cách hiểu về thuật ngữ “ngôn ngữ lập trình” Thay vì lập trình, ngời phát triển một số lớp thế hệ thông tin quản lý(và lĩnh vực có giới hạn của các ứng dụng kĩ nghệ và khoa học ) bây giờ có thể mô tả các kết quả mong muốn, thay vì thủ tục mong muốn, trong ngôn ngữ phi thủ tục Chơng trình gốc trong ngôn ngữ lập trình quy ớc sau đó đợc sinh ra một cách tự động.
Tuy nhiên đại đa số các ứng dụng phần mềm vẫn còn nằm ngoài tầm của cách tiếp cận thế hệ thứ t Với hiện tại, các ngôn ngữ lập trình vẫn là các ngôn ngữ lập trình nhân tạo nh ADA, PASCAL, C
Khi đợc xét nh một bớc trong tiến trình kỹ nghệ phần mềm, việc lập trình
đợc coi nh một hệ quả tự nhiên của thiết kế Tuy nhiên các đặc trng ngôn ngữ lập trình và phong cách lập trình có thể ảnh hởng sâu sắc tới chất lợng và tính dễ bảo trì của phần mềm
a, Tiến trình dịch
.
Bớc lập trình dịch một biểu diễn thiết kế chi tiết của phần mềm thành việc thể hiện bằng ngôn ngữ lập trình Tiến trình dịch tiếp tục khi trình biên dịch chấp nhận chơng trình gốc làm cái vào và tạo ra chơng trình đích là cái ra Cái ra của trình biên dịch lại đợc dịch thêm lần nữa thành mã máy – các lệnh thực tại
điều khiển các mạch lôgíc vi lập trình trong đơn vị xử lý trung tâm
Bớc dịch khởi đầu – từ thiết kế chi tiết sang ngôn ngữ lập trình là mối quan tâm chủ yếu trong hoàn cảnh công nghệ phần mềm Việc hiểu không đúng
về đặc tả thiết kế chi tiết có thể dẫn tới chơng trình gốc có lỗi Độ phức tạp hay hạn chế của ngôn ngữ lập trình có thể dẫn đến chơng trình gốc xoắn xít đến mức khó mà kiểm thử và bảo trì Tinh vi hơn, các đặc trng của ngôn ngữ lập trình có thể ảnh hởng đến cách ta nghĩ, khi phổ biến các thiết kế phần mềm và cấu trúc
Trang 15dữ liệu có giới hạn không cần thiết Các đặc trng ngôn ngữ có tác động lên chất lợng và tính hiệu quả của việc dịch
b, Các đặc trng ngôn ngữ lập trình.
Ngôn ngữ lập trình là phơng tiện để liên lạc giữa con ngời và máy tính Tiến trình lập trình – sự liên lạc thông qua ngôn ngữ lập trình – là một hoạt động con ngời Hiểu theo cách thông thờng các đặc trng tâm lý của một ngôn ngữ có một tác động quan trọng lên chất lợng của liên lạc Tiến trình lập trình cũng có thể đợc coi nh một bớc trong tiến trình công nghệ phần mềm Các đặc trng công nghệ của ngôn ngữ có thể ảnh hởng tới chất lợng của thiết kế chi tiết( nhớ lại rằng việc thực hành thờng qui định rằng thiết kế chi tiết cần đợc hớng tới một ngôn ngữ lập trình riêng) Do đó, các đặc trng kỹ thuật có thể ảnh hởng tới mối quan tâm của cả con ngời và công nghệ phần mềm
*Cách nhìn tâm lý
Một số đặc trng tâm lý xuất hiện nh kết quả của thiết kế ngôn ngữ lập trình Mặc dù những đặc trng này không đo đợc theo bất kỳ cách thức định lợng nào nhng thừa nhận biểu hiện của chúng trong mọi ngôn ngữ lập trình
- Tính đồng đều chỉ ra mức độ theo đó ngôn ngữ dùng ký pháp nhất quán,
áp dụng các hạn chế dờng nh tuỳ ý và hỗ trợ cho các ngoại lệ cú pháp và ngữ nghĩa đối với quy tắc
- Tính mơ hồ trong ngôn ngữ lập trình đợc ngời lập trình cảm nhận Trình biên dịch bao giờ cũng diễn giải một câu lệnh theo một cách, nhng con ng-
ời có thể hiểu câu lệnh đó theo cách khác Tại đây có sự mơ hồ về tâm lý
- Tính gọn gàng của ngôn ngữ lập trình là một chỉ dẫn về khối lợng thông tin hớng chơng trình mà trí nhớ con ngời phải ghi nhớ
Trang 16- Tính cục bộ là đặc trng toàn thái của ngôn ngữ lập trình Tính cục bộ
đ-ợc làm nổi bật khi các câu lệnh có thể đđ-ợc tổ hợp thành các khối, khi các kết cấu
có cấu trúc có thể đợc cài đặt trực tiếp, và khi thiết kế và chơng trình gốc đều mang tính mô đun và cố kết cao độ Một đặc trng ngôn ngữ hỗ trợ hay khuyến khích cho xử lý biệt lệ đều vi phạm tính cục bộ này
- Tính tuyến tính là một đặc trng tâm lý có liên quan chặt chẽ với khái niệm bảo trì của lĩnh vực chức năng Tức là, nhận biết con ngời đợc thuận lợi khi gặp một dãy tuyến tính các thao tác lôgíc Những nhánh nhảy xa (và, với một mở rộng nào đó, các chu trình lớn) vi phạm tính tuyến tính của xử lý
Về các kiểu tri thức này, tri thức ngữ nghĩa là khó thu nhận đợc hơn cả và
đòi hỏi dùng nhiều trí tuệ Tất cả các bớc công nghệ phần mềm trớc phần lập trình đều dùng rất nhiều tri thức ngữ nghĩa Bớc lập trình áp dụng tri thức cú pháp vốn là “bất kỳ và theo lệnh” đợc học theo kiểu vẹt Khi học một ngôn ngữ lập trình mới tơng tự nhng không tơng đơng với cú pháp ngôn ngữ đó Tuy nhiên khi học một ngôn ngữ mới các lập trình viên cần học cú pháp và ngữ nghĩa của ngôn ngữ đó
* Một cách nhìn công nghệ
Cách nhìn công nghệ phần mềm về các đặc trng của ngôn ngữ lập trình tập trung vào nhu cầu xác định dự án phát triển phần mềm riêng Mặc dù vậy
Trang 17vẫn cần các yêu cầu riêng t cho chơng trình gốc, có thể thiết lập đợc một tập hợp tổng quát những đặc trng công nghệ : (1) Dễ thiết kế để dịch chơng trình, (2) Trình biên dịch hiệu quả, (3) Khả chuyển chơng trình gốc, (4) Có sẵn công cụ phát triển, và (5) Dễ bảo trì.
6.1 Ngôn ngữ lập trình và công nghệ phần mềm.
Bất kể đến khuôn cảnh công nghệ phần mềm, ngôn ngữ lập trình sẽ có tác
động tới việc vạch kế hoạch dự án, phân tích, thiết kế, lập trình, kiểm thử, bảo trì Nhng vai trò của ngôn ngữ lập trình phải đợc giữ theo viễn cảnh Ngôn ngữ không đa ra các phơng tiện cho việc dịch ngời – máy; tuy thế, chất lợng của kết quả cuối cùng có liên hệ chặt chẽ hơn với các hoạt động công nghệ phần mềm trớc và sau khi lập trình
Trong khi lập kế hoạch dự án, hiếm khi tiến hành xem xét các đặc trng kỹ thuật của ngôn ngữ lập trình Tuy nhiên, việc lập kế hoạch cho các công cụ hỗ trợ có liên quan tới định nghĩa tài nguyên cần có, nó thể yêu cầu rằng một chơng trình biên dịch chuyên dụng( và phần mềm liên kết) hay môi trờng lập trình đợc xác định Ước lợng về chi phí và lịch biểu có thể yêu cầu điều chỉnh đờng cong học hỏi do nhân viên cha có kinh nghiệm với một ngôn ngữ mới
Một khi các yêu cầu phần mềm đã thiết lập thì các đặc trng của ngôn ngữ lập trình ứng cử viên trở thành quan trọng hơn Nếu cần tới các cấu trúc dữ liệu phức tạp thì ngôn ngữ với sự hỗ trợ cho các cấu trúc dữ liệu phức tạp (nh PASCAL hay một ngôn ngữ khác) nên đợc tính tới một cách cẩn thận Nếu cần khả năng hiệu năng cao, thời gian thực thì ngôn ngữ đợc thiết kế chuyên về thời gian thực hoặc hiệu quả về bộ nhớ có thể đợc xác định
Chất lợng của thiết kế phần mềm đợc thiết lập theo cách độc lập với các
đặc trng ngôn ngữ lập trình.Tuy nhiên thuộc tính ngôn ngữ đóng một vai trò
Trang 18trong chất lợng của thiết kế đợc cài đặt và ảnh hởng ( cả có ý thức lẫn vô thức) tới cách thiết kế đợc xác định.
6.2 Nền tảng của ngôn ngữ lập trình.
Các đặc trng kỹ thuật của ngôn ngữ lập trình trải rộng lên vô số chủ
đề từ lý thuyết (nh lý thuyết và đặc tả ngôn ngữ hình thức) tới thực chứng (nh so sánh chức năng của các ngôn ngữ chuyên dụng)
a, Kiểu dữ liệu và định kiểu dữ liệu
Ngày nay, lợi ích của ngôn ngữ lập trình đợc đáng giá không chỉ ở
cú pháp và sự phóng khoáng của các kết cấu thủ tục của nó Định kiểu đữ liệu,
và các kiểu dữ liệu đặc biệt đợc ngôn ngữ lập trình hỗ trợ là khía cạnh quan trọng của chất lợng ngôn ngữ
Pratt mô tả kiểu dữ liệu và định kiểu dữ liệu là: “ Một lớp các sự vật dữ liệu cùng với một tập các phép toán để tạo ra và thao tác trên chúng.” Một sự vật dữ liệu kế thừa một tập hợp các thuộc tính nền tảng của kiểu dữ liệu mà nó thuộc vào Một sự vật dữ liệu có thể lấy một giá trị nằm bên trong miền giá trị hợp lệ cho kiểu dữ liệu đó và có thể bị các phép toán của kiểu dữ liệu đó thao tác
Các kiểu dữ liệu đơn trải trên một miền rộng bao gồm các kiểu số (nh
số nguyên, phức, số phẩy động), kiểu liệt kê (nh kiểu dữ liệu do ngời dùng định nghĩa trong PASCAL hay C), kiểu boolean (nh true hay false, yes hay no) và kiểu xâu String( nh dữ liệu chữ số) Các kiểu dữ liệu phức tạp hơn bao gồm các cấu trúc dữ liệu trải qua hết từ mảng một chiều đơn giản (vec tơ) cho tới cấu trúc danh sách tới các mảng và bản ghi đa tạp phức tạp
Trang 19Các phép toán có thể đợc thực hiện trên một kiểu dữ liệu đặc biệt và theo cách thức mà trong đó các kiểu khác nhau có thể thao tác trong cùng câu lệnh sẽ đợc điều khiển bởi việc kiểm tra kiểu vốn đợc cài đặt bên trong trình biên dịch hay thông dich ngôn ngữ lập trình Fairley định nghĩa năm mức kiểm tra kiểu thờng gặp phải trong các ngôn ngữ lập trình:
Mức 0: Phi kiểu
Mức 1: Bó buộc kiểu tự động
Mức 2: Kiểu hỗn hợp
Mức 3: Kiểm tra kiểu giả mạnh
Mức 4: Kiểm tra kiểu mạnh
b, Chơng trình con
Chơng trình con là một thành phần chơng trình dịch đợc tách biệt có chứa dữ liệu và cấu trúc điều khiển Trong đó bất kể đến tên của chơng trình con hay mô đun hay thủ tục, hàm hay bất kỳ tên gọi đặc biệt nào thì nó vẫn biểu lộ một cách đặc trng tổng quát: (1)Phần mô tả có chứa tên của nó và mô tả giao diện; (2) Phần cài đặt có chứa dữ liệu và cấu trúc điều khiển; (3) Một cơ chế kích hoạt làm cho chơng trình con đợc gọi từ một nơi nào đó khác trong chơng trình
c, Cấu trúc điều khiển
Tại mức cơ bản mọi ngôn ngữ lập trình hiện đại đều cho phép ngời lập trình biểu diễn sự tuần tự, tuyển chọn và lặp – các kết cấu lôgíc lập trình có cấu trúc Phần lớn các ngôn ngữ hiện đại đều đa ra một cú pháp cho đặc tả trực tiếp về lệnh if-then-else, do-while, và repeat-until (cũng nh case)
Trang 20Bên cạnh các kết cấu thủ tục cơ sở của lập trình có cấu trúc, các cấu trúc
điều khiển khác cũng có thể của nó Đệ qui tạo ra sự kích hoạt lần thứ hai của chơng trình con trong lần kích hoạt lần thứ nhất Tức là chơng trình con gọi tới hay kích hoạt bản thân nó nh một phần của thủ tục đã xác định Tơng tranh đa ra
sự hỗ trợ cho việc tạo ra nhiều nhiệm vụ, đồng bộ hoá các nhiệm vụ này và liên lạc nói chung giữa các nhiệm vụ ấy Tính năng ngôn ngữ này là vô giá khi phải thực hiện các ứng dụng hệ thống hay thời gian thực Khiển giải biệt lệ là tính năng ngôn ngữ lập trình đặt bẫy các điều khiển lỗi hệ thống hay của ngời dùng rồi truyền điều khiển cho bộ phân khiển giải biệt lệ để xử lý
d, Hỗ trợ cho cách tiếp cận hớng sự vật
Về lý thuyết, việc tạo ra các sự vật và kết cấu của phần mềm hớng sự vật có thể đợc thực hiện bằng cách dùng bất kì ngôn ngữ lập trình qui ớc nào Nhng trong thực tế, việc hỗ trợ cho các cách tiếp cận hớng sự vật nên đợc xây dựng trực tiếp bên trong ngôn ngữ lập trình sẽ đợc dùng để cài đặt thiết kế hớng sự vật
6.3 Các lớp ngôn ngữ lập trình.
Có hàng trăm ngôn ngữ lập trình đã đợc sử dụng vào lúc này lúc khác
những nỗ lực phát triển phần mềm nghiêm chỉnh Ngay cả một thảo luận chi tiết
về năm ngôn ngữ thông dụng nhất cũng nằm ngoài phạm vi bài này
Bất kỳ một phân loại ngôn ngữ lập trình nào vẫn là vấn đề để mở cho tranh luận Trong nhiều trờng hợp, một ngôn ngữ lập trình có thể nằm hợp lệ trong nhiều phạm trù Vì vậy minh hoạ cho các lớp ngôn ngữ lập trình ta có hình sau
Trang 216.4 Giới thiệu về Visual Basic.
Visual Basic là sản phẩm của hãng Microsoft và nó đợc tích hợp trong bộ Microsoft Visual Studio, ra đời từ năm 1991 và tới năm 1998 ra
đời bộ Visual studio 98 (Visual Basic 6.0), sau đó phiên bản kế tiếp là bộ Visual Studio Net là bộ công cụ chuyên để xây đựng các ứng dựng Web
Visual Basic là ngôn ngữ lập trình hớng sự kiện và cho phép lập trình hớng đối tợng để xây dựng các ứng dụng hoạt động trong môi trờng Windows
Visual Basic là ngôn ngữ hỗ trợ việc lập trình với tính trực quan cao
Visual Basic cung cấp nhiều công cụ để cho phép kết nối và khai thác dữ liệu ở nhiều hệ quản trị cơ sở dữ liệu khác nhau
a, Các thành phần trong giao diện phát triển của Visual Basic
Ngôn ngũ thế
hệ thứ ba
Vạn năngChuyên dụng
Hướng sự vậtNgôn ngữ thế hệ
hai
Ngôn ngữ thế hệ bốn
Trang 22- Của sổ thiết kế Form: Là nơi thiết kế các giao diện thực hiện các chức năng của ứng dụng.
- Cửa sổ dự án: Là nơi chứa tất cả những thành phần của dự án phần mềm thông qua đó có thể truy xuất tới mọi đối tợng là thành phần của dự
án bằng cách nháy kép chuột vào tên mỗi đối tợng ở trong cửa sổ dự án
- Cửa sổ thuộc tính: Là nơi hiển thị và cho phép thay đổi các thuộc tính của một đối tợng nằm trên giao diện thiết kế
- Hộp công cụ: Là nơi chứa các đối tợng sử dụng để thiết kế nên các giao diện
- Cửa sổ lập trình: Là nơi để viết mã nguồn chơng trình để thực hiện các chức năng của phần mềm
- Thanh công cụ và thanh menu: Là nơi chứa danh mục các chức năng cùng với các nút bấm để truy xuất nhanh tới các chức năng liên quan
đến việc phát triển ứng dụng
- Report: Là nơi hiển thị kết quả đầu ra của dự án phần mềm
c, Các bớc thực hiện để xây dựng một dự án phần mềm trong Visual Basic
Bớc 1: Xây dựng giao diện chính và hệ thống thực đơn chức năng
Trang 23Bớc 2: Thiết kế các biểu mẫu thành phần tơng ứng với các chức năng của dự án.
Bớc 3: Thiết kế và xây dựng kết nối với cơ sở dữ liệu
Bớc 4: Lập trình thực hiên chức năng hiển thị và cập nhật dữ liệu.Bớc 5: Lập trình thực hiện chức năng tìm kiếm dữ liệu
Bớc 6: Thiết kế các mẫu báo cáo và lập trình thực hiện chức năng in báo cáo
Bớc 7: Lập trình thực hiện chức năng đăng nhập hệ thống, quản lý
và phân quyền ngời sử dụng
Bớc 8: Lập trình thực hiện chức năng sao lu và phục hồi dữ liệu.Bớc 9: Thiết kế và xây dựng tài liệu trợ giúp sử dụng phần mềm.Bớc 10: Đóng gói và tạo bộ cài đặt cho phần mềm
Trang 24Chơng II Tổng quan về cơ quan thực tập và lý
do chọn đề tài.
A Tổng quan về cơ quan.
1.Giới thiệu chung:
Cơ quan thực tập Ngân hàng nông nghiệp và phát triển nông thôn cấp 3 Ngọc Tảo, Phúc Thọ , Tỉnh Hà Tây
Số điện thoại liên hệ : 034.649607
Mã số thuế : 0301471228-001-1
Lịch sử hình thành và phát triển của doanh nghiệp:
- Cơ quan đợc thành lập năm 1988, là phòng giao dịch Ngọc Tảo trực thuộc Ngân hàng Huyện Phúc Thọ Theo quyết định 499/TDNN ký ngày 12/7/1991 về việc thành lập chi nhánh cho vay hộ sản xuất kinh doanh đã đổi thành ngân hàng cấp 3 Ngọc Tảo với địa bàn 6 xã phía Đông của huyện
- Ngân hàng đợc thành lập đứng trớc tình hình kinh tế chung của xã hội là thời kỳ kinh tế xã hội đang trong giai đoạn khủng hoảng lạm phát cao kinh tế
đời sống nhân dân kém phát triển, tình trạng cờ bạc gia tăng, nhận thức ngời dân
và một bộ phận cán bộ công nhân viên chức nhà nớc về ngân hàng còn yếu kém Phòng giao dịch Ngọc Tảo cũng nằm trong số đó
- Do mới đầu thực hiện cho vay hộ sản xuất kinh doanh nên giai đoạn
1992 – 2000 về chất lợng tín dụng còn yếu kém tỷ lệ nợ quá hạn quá cao nhiều lần NHNNo & PTNT và NHNN nằm vùng để tháo gỡ là giải quyết hậu quả
- Đợc sự giúp đỡ và chỉ đạo trực tiếp của ban giám đốc NHNNo & PTNT huyện và chuyển biến nhận thức kinh doanh của cán bộ ngân hàng cấp 3 Ngọc Tảo đạt kết quả tốt từ năm 2000 đến nay và làm ăn có hiệu quả, đạt kết quả tốt
2 Đặc điểm tổ chức hoạt động kinh doanh của ngân hàng thực tập:
a) Chức năng nhiệm vụ của cơ quan
Trang 25Là một chi nhánh của ngân hàng nông nghiệp và phát triển nông thônvì vậy chức năng của cơ quan là những chức năng sau:
- Nhiệm vụ phòng tín dụng là:
+ Lập hồ sơ, giấy tờ cho nông dân vay vốn hỗ trợ nông dân làm giàu cải thiện đời sống nhân dân
+ Kiểm tra tình hình sử dụng vốn vay, đánh giá các phơng án, các dự án
đã đợc cho vay
+ Thu hồi vốn đối với các hộ nông dân vi phạm hợp đồng
- Nhiệm vụ phòng kế toán - ngân quỹ:
+ Kiểm tra hồ sơ cho vay
+ Giải ngân đối với các hồ sơ đạt yêu cầu
+ Thu lãi hàng tháng và vốn gốc đối với các hộ nông dân đã vay
+ Tiến hành việc chuyển tiền trong nớc và ra nớc ngoài
+ Nhận tiền gửi tiết kiệm với nội tệ và ngoại tệ (Đô la Mỹ - USD)
+ Thủ quỹ có nhiệm vụ nhận tiền, kiểm tra tiền của khách hàng đến trả nợ hoặc gửi tiết kiệm
+ Nhận và bảo quản sổ đỏ đối với các hợp đồng đợc bảo đảm trong hợp
đồng
b) Đặc điểm tổ chức kinh doanh của Công ty
Đợc thành lập từ phòng giao dịch ngân hàng đến nay ngân hàng cấp 3 Ngọc Tảo đã trở thành một đơn vị kinh doanh trực thuộc ngân hàng Huyện Phúc
Trang 26Thọ, Tỉnh Hà Tây Do vậy đặc điểm tổ chức kinh doanh của cơ quan bao gồm 3 phòng:
- Phòng giám đốc.
- Phòng tín dụng.
- Phòng kế toán và ngân quỹ.
3 Cơ cấu tổ chức quản lý của cơ quan
Trong quá trình hình thành phát triển tổ chức bộ máy quản lý của Cơ quan ngày càng đợc hoàn thiện và phù hợp với tình hình sản xuất kinh doanh của cơ quan Mô hình cụ thể nh sau:
Phó giám đốc
Giám đốc
Phòng kế toán ngân quỹ Phòng tín dụng
Trang 27- Phó giám đốc: Có nhiệm vụ chỉ đạo trực tiếp phòng tín dụng thay mặt giám đốc chỉ đạo công tác kinh doanh phòng kế toán – ngân quỹ, khai thác mở rộng kinh doanh những hoạt động ngân hàng, tín dụng.
- Hỗ trợ cho ban giám đốc các phòng ban giúp việc đợc tổ chức theo yêu cầu quản lý kinh doanh chịu sự lãnh đạo trực tiếp của ban giám đốc
- Phòng kế toán - ngân quỹ: Có chức năng thu tiền lãi, thu gốc cho vay Nhận tiền gửi tiết kiệm
- Phòng tín dụng: Lập hợp đồng cho vay Kiểm tra tình hình thực hiện các dự án
- Nhiệm vụ của các phòng ban chức năng:
+ Chấp hành và kiểm tra việc chấp hành các chế độ chính sách của Nhà
n-ớc, nội quy của Công ty các chỉ thị mệnh lệnh của Giám đốc
+ Phục vụ đắc lực cho hoạt động kinh doanh của cơ quan
+ Đề xuất nhiệm vụ trình Giám đốc, những chủ trơng, biện pháp giải quyết khó khăn gặp phải trong kinh doanh và tăng cờng công tác quản lý cơ quan
4 Tình hình tin học hoá:
- Cơ quan đợc tin học hoá trong công đoạn quản lý hồ sơ vay, thu tiền lãi
và tiền vốn khi cho vay và khi khác hàng trả nợ Hiện tại cơ quan đợc cung cấp 3 máy tính, 4 máy in, và 1 máy FAX & Scan Và máy tính đợc lắp đặt tại phòng
Kế toán- Ngân quỹ Sắp tới cơ quan đang có kế hoạch lắp đặt hệ thống máy tính cho phòng Tín dụng để công việc quản lý cũng nh lập các dự án vay tiện lợi hơn
- Nhng hiện nay cơ quan vẫn trực thuộc sự quản lý của ngân hàng trung tâm Huyện Do đó đặt ra bài toán quản lý nhân viên do trong hệ thống ngân
Trang 28hàng huyện có sự điều chuyển nhân viên do đó em nhận thấy việc quản lý nhân viên trong cơ quan là một nhu cầu cần thiết
B Tổng quan đề tài nghiên cứu.
1 Tên đề tài và lý do chọn đề tài :
Với bài toán này em chọn đề tài là “Xây dựng chơng trình quản lý nhân
sự cho Ngân hàng Ngọc Tảo” Do cơ quan cha có chơng trình quản lý nhân sự cũng nh chơng trình tính lơng cho nhân viên đó là vấn đề gây nhiều khó khăn khi quản lý nhân viên tuy số lợng ít nhng lại có nhiều thay đổi nhân sự Nhất là với các nhân viên hợp đồng đợc điều chuyển cũng nh học tập tại cơ quan
2 Mục tiêu của đề tài:
Với đề tài này em mong muốn đợc thực hiện việc xây dựng chơng trình theo đúng trình tự xây dựng chơng trình và đợc thử sức với bài toán thực tế đề ra Kết quả của đề tài đạt đợc sẽ là kinh nghiệm cho tơng lai và cho công việc bản thân sau này
Trang 29Chơng III Phân tích thiết kế hệ thống
Phân tích và thiết kế là quá trình nghiên cứu và lựa chọn một cách hiệu quả các giải pháp phù hợp tức là xác định một cách chi tiết những gì mà hệ thống có thể thực hiện đợc đối với một đối tợng cụ thể
I Phân tích thu thập dữ liệu
1 Tìm hiểu yêu cầu thực tế và yêu cầu quản lý tại cơ quan
Ngân hàng nông nghiệp cấp 3 Ngọc Tảo, trực thuộc ngân hàng nông nghiệp và phát triển nông thôn Việt Nam Hiện nay trong cơ quan có các phòng ban nh Phòng kế toán - ngân quỹ, Phòng tín dụng Tổng số cán bộ trong toàn cơ quan là 12 ngời hiện tại công việc quản lý Hồ sơ cán bộ đợc giao trực tiếp cho phòng kế toán thực hiện thông qua phơng pháp thủ công bằng tay Khi có nhân viên mới vào cơ quan thì phải cập nhật hồ sơ vào tủ hồ sơ sau đó từ tủ hồ sơ ta có thể lấy ra để xem xét các thông tin của nhân viên đó nếu có thiếu sót gì thì đa ra
để sửa chữa và điều chỉnh cho phù hợp chính xác
Trong quá trình công tác nếu có biến động thông tin của nhân viên nh chuyển đổi phòng ban, chuyển công tác thì dữ liệu phải đợc cập nhật
Định kỳ hàng tháng, hàng quý, năm phải thống kê, in báo cáo phục vụ cho công tác điều hành của lãnh đạo cơ quan
Thống kê in ấn dữ liệu tại thời điểm bất kỳ nào về bất kỳ nhân viên nào theo yêu cầu đột xuất của ban lãnh đạo
Trong thời điểm hiện tại cơ quan còn quản lý theo công tác thủ công dẫn
đến tốn nhiều thời gian và công sức cho việc cập nhật, sao chép, sửa chữa, xoá, tim kiếm thông tin do đó không đáp ứng đợc yêu cầu về thời gian và độ chính xác của các bảng báo cáo điều này làm ảnh hởng và gây khó khăn cho cán bộ
Trang 30lu trữ hồ sơ do vậy để khắc phục nhợc điểm trên đòi hỏi phải có hệ thống quản
lý mới
Yêu cầu của hệ thống mới là phải thiết kế một hệ thống quản lý hồ sơ cán
bộ mới cho cơ quan và hệ thống đó phải đợc ứng dụng thực tế và ứng dụng tin học một cách khả thi, đáp ứng đợc nhu cầu đặt ra trong thời kỳ mới, phải thuận tiện an toàn hiệu qủa cao Vì thế, để thực hiện đợc các mục tiêu trên thì hệ thống cần phải làm đợc những công việc sau:
+/ Cập nhật thông tin hồ sơ phải nhanh chóng thuận tiện và chính xác cao.+/ Xem, Sửa, Xoá một cách rõ ràng
+/ Tìm kiếm thông tin một cách nhanh chóng chính xác
+/ Chơng trình sử dụng đơn giản nhiều ngời có thể sử dụng đợc
2 Các thông tin đầu vào
- Gồm các thông tin phục vụ cho việc cập nhật hồ sơ ban đầu có các
+ Nguyên quán
Trang 31
+ Địa chỉ thờng trú + Dân tộc
+ Thời gian giữ bậc
* Hệ thống các bảng Dữ liệu liên quan
+/ Bảng chức vụ cung cấp các thông tin về chức vụ đảm nhiệm của CB +/ Bảng chuyên môn chứa thông tin về trình độ chuyên môn
+/ Bảng Hợp đồng Lao động gồm các thông tin liên quan đến qúa trình
Trang 32lao động của cá nhân
- Thông tin phục vụ cho việc cập nhật Dữ liệu
+/ Bảng Danh mục phòng ban
+/ Bảng Danh mục chức vụ
+/ Bảng Quá trình công tác và Quá trình đào tạo
Hớng kết xuất thông tin ra có các loại báo cáo nh sau:
Các báo cáo nhanh phục vụ nhu cầu xem thông tin nhanh chóng của lãnh
đạo
Trang 33NHNN & PTNT Phóc Thä Céng hoµ x· héi chñ nghÜa ViÖt Nam Ng©n hµng C3 Ngäc T¶o §éc lËp -Tù do -H¹nh phóc.
Trang 34Số CMND Ngày cấp Nơi cấp Quê quán
Địa chỉ thờng trú Dân tộc Tôn giáo Thành phần gia đình Thành phần bản thân Trình độ văn hoá Trình độ chuyên môn Trình độ ngoại ngữ Trình độ học vấn Ngày vào Đảng Nơi kết nạp Ngày vào cơ quan Phòng/ ban Chức vụ Công việc đảm nhận
Số Hợp đồng LĐ Loại hợp đồng
Hệ số Lơng Mức lơng
ảnh