Kĩ nghệ phần mềm Kĩ nghệ phần mềm Bởi: Ngô Trung Việt Kĩ nghệ phần mềm môn mà kĩ sư tuân theo qui trình xác định rõ để làm công việc họ Họ thiết lập mục đích chất lượng, xác định phương pháp họ dùng, cách đo công việc họ, phân tích kết quả, điều chỉnh phương pháp họ để đáp ứng tốt yêu cầu khách hàng Ý tưởng chỗ bạn muốn sản phẩm có chất lượng, bạn phải có qui trình có chất lượng tạo sản phẩm Bộ môn Kĩ nghệ phần mềm không dạy nhiều đại học đòi hỏi người dạy phải có tri thức qui trình từ công nghiệp Vì phần lớn giáo sư không làm việc công nghiệp, hay không huấn luyện qui trình nghiệp vụ, họ không muốn dạy Ngày phần lớn đại học dạy cho người làm người lập trình ngôn ngữ khác xem công cụ họ Sinh viên dành ba tới bốn năm vào việc học ngôn ngữ tính toán họ làm, họ thấy việc phát triển sản phẩm phần mềm trình mà lập trình chiếm quãng 20% nỗ lực, có nghĩa họ làm phần nhỏ toàn việc phát triển phần mềm Điều giải thích phần lớn công ti lớn Mĩ châu Âu không thuê người có Khoa học máy tính thêm Chương trình Kĩ nghệ phần mềm cung cấp cho sinh viên việc huấn luyện cần thiết để bố trí qui trình phần mềm qua việc dùng kĩ thuật, thiết lập phương pháp tốt để xác định yêu cầu, thu thập liệu, ngăn ngừa lỗi, đo đạc, ước lượng dòng lệnh, tổng chi phí chất lượng kĩ thuật khác, điều trợ giúp cho người kĩ sư việc phát triển sản phẩm phần mềm chất lượng Các thuật ngữ qui trình quản lí qui trình thiết lập vững nghiệp vụ nhiều người không hiểu nghĩa thực tầm quan trọng thuật ngữ Xét toàn cảnh qui trình nghiệp vụ nhóm có tổ chức hoạt động có liên quan gắn với tạo sản phẩm hay dịch vụ đem lại giá trị nghiệp vụ Qui trình phần mềm tập hoạt động mà tích hợp có hiệu tạo sản phẩm hay dịch vụ phần mềm có chất lượng đáp ứng cho trông đợi khách hàng Các qui trình đại diện cho toàn cảnh công việc tổ chức Chúng tạo hội tụ thấy hướng tới việc đáp ứng cho kết nghiệp vụ đáp ứng điều khách hàng muốn Bằng cách tuân theo qui trình, người kĩ sư phần mềm hiểu tác động hoạt động riêng lên người khác lên khách hàng Họ làm việc 1/4 Kĩ nghệ phần mềm với hiểu biết rõ ràng qui trình mà họ phần, hiểu rõ kết họ giúp tạo ra, hiểu rõ khách hàng mà họ phục vụ Họ nhận trách nhiệm kết quả; họ làm điều mà tình yêu cầu thay điều mà ông chủ bảo họ làm Để quản lí người kĩ sư phần mềm có hiệu quả, người quản lí giỏi cần hiểu khái niệm Quản lí Qui trình: • Xác định qui trình trước, xác định cấu trúc dự án sau • Động viên việc thảo luận qui trình động viên gợi ý thay đổi qui trình từ người tuân theo qui trình họ biết có tác dụng tác dụng • Khi việc sai, tập trung vào việc sửa qui trình, móc người họ tuân theo qui trình • Thiết lập đích cho chất lượng sản phẩm hiệu dự án quản lí qui trình để đạt kết mong muốn • Hội tụ vào việc ngăn ngừa lỗi phân tích nhân cải tiến qui trình • Tiến hành họp kiểm điểm quản lí dự án hàng tuần cách đo dự án Người quản lí cấp cao phải kiểm điểm hiệu dự án việc dùng cách đo chuẩn dựa sở đặn (hàng tuần hàng tháng) Tất nhà quản lí phải hiểu cách trông đợi thấy chúng Các vấn đề nằm điểm yếu qui trình, đừng đổ hiệu cá nhân Việc không tuân thủ (Không tuân theo qui trình) “đáng bị trừng phạt”, hiệu — hiệu coi vấn đề kĩ năng, đòi hỏi có huấn luyện thêm Tất cá nhân trông đợi gợi ý việc cải tiến qui trình đóng góp cho cải tiến qui trình tiêu chí quan trọng cho đề bạt Thay sửa lỗi, phải tập trung vào việc phòng ngừa lỗi Các kĩ thuật phòng ngừa lỗi hội tụ vào việc khử bỏ đường “thoát” lỗi qua pha qui trình —-English version—Software Engineering Software Engineering is a discipline where engineers follow a well-defined process to their works They establish quality goals, define methods they will use, measure their work, analyze the results, and adjust their methods to better meet customer requirements The basic idea is that if you want a quality product, you must have a quality process that creates the product Software Engineering discipline is not new but it is not taught in many universities because it requires that people who teach it must have process knowledge from industry Since most professors not work in industry, or receive training in business process, they not want to teach it 2/4 Kĩ nghệ phần mềm Today most universities only teach people to be programmers with different languages as their tools Students spent three to four years learning computing languages but when they go to work, they find that the development of software products is a process where programming is only about 20% of the efforts that means they can only a small part of the total product development This explains why most large companies in the U.S and Europe not hire people with Computer Science major anymore Software Engineering program provide students with the training necessary to engineer the software process through use of techniques, establishing the best methods for defining requirements, data collection, defect prevention, metrics, estimating lines of code, total cost of quality and other techniques that would assist the engineer in developing quality software product The terms process and process management are now firmly established in every major business but many people still not understand about the real meaning and important of these terms To put it in perspective, a business process is an organized group of related activities that together create a product or a service that bring business value A software process is a set of activities that when effectively integrated will resulting in a quality software product or services that meet customer’s expectation Processes represent a new perspective on organization’s work They create an outward focus because it directed toward meeting a business outcomes such as meeting what customer want By following a process, software engineers understand the effects of their own activities on others and on the customer They work with an appreciation of the process of which they are a part, for the result they are helping to produce, and for the customer for whom they are producing it They take responsibility for the outcomes; they what the situation requires rather than what the boss has told them To manage software engineer effectively, a good manager need to understand the basic concept of Process Management: • Defining the process first, then the project structure later • Encouraging discussion on processes and encourage suggestion for process change from the people who follow the process, because they know what works and what does not work • When thing go wrong, focusing on fixing the process, not blaming the people because they only follow the process • Set goals for product quality and project performance then managing the process to get the desired results • Focusing on defect prevention by causal analysis and process revision • Conduct weekly project management review of project metrics Senior managers must review project performance using standard metrics on a periodic basis (Weekly and Monthly) All managers must understand the metrics and expect 3/4 Kĩ nghệ phần mềm to see them Problems are always attributed to weaknesses in the process, not blamed on individual performance Nonconformance (Not follow the process) is “punishable”, but not poor performance — poor performance is seen as a skill problem, requiring additional training All individuals are expected to suggest process improvements and contribution to process improvement is an important criterion for promotion Instead of fixing defect, we must focus on defect prevention Defect prevention techniques focus on eliminating defect “escape” paths through the process phases 4/4 .. .Kĩ nghệ phần mềm với hiểu biết rõ ràng qui trình mà họ phần, hiểu rõ kết họ giúp tạo ra, hiểu rõ khách hàng mà họ phục vụ Họ... work in industry, or receive training in business process, they not want to teach it 2/4 Kĩ nghệ phần mềm Today most universities only teach people to be programmers with different languages... periodic basis (Weekly and Monthly) All managers must understand the metrics and expect 3/4 Kĩ nghệ phần mềm to see them Problems are always attributed to weaknesses in the process, not blamed on