Trả lời câu hỏi Quiz1 - Nhập môn công nghệ phần mềm | Trường Đại học CNTT Thành Phố Hồ Chí Minh
Trả lời câu hỏi Quiz1 - Nhập môn công nghệ phần mềm | Trường Đại học CNTT Thành Phố Hồ Chí Minh được được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!
Môn: Nhập môn công nghệ phần mềm(SE104)
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Thông tin:
Tác giả:
Preview text:
lOMoAR cPSD| 40659592
Chapter 1: Introduction
1. What are the essential attributes of good software?
Phần mềm phải đáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có khả năng bảo trì, đáng
tin cậy, và dễ sử dụng.
Khả năng bảo trì: phần mềm phải được điều chỉnh và mở rộng để thoả mãn những yêu cầu thay
đổi (sửa lỗi, nâng cấp)
Mức độ tin cậy: phần mềm phải được tin cậy, bảo mật, chính xác, đáp ứng nhu cầu người sử dụng
Hiệu quả: phần mềm có tốc độ xử lý nhanh, không nên sử dụng lãng phí tài nguyên của hệ thống.
Tính dễ sử dụng: Phần mềm phải được người dùng chấp nhận với một số tiêu chí như dễ hiểu, dễ
sử dụng, tương thích với các thiết bị, hệ thống khác. Có tài liệu, tiện ích trợ giúp.
2. What are the two fundamental types of software product?
Phần mềm máy tính được chia làm 2 loại cơ bản: Phần mềm đặt hàng và sản phẩm chung
- Phần mềm đặt hàng: Sản xuất theo đơn hàng, đơn chiếc, yêu cầu đặc thù
Vd: Phần mềm quản lí hệ thống
- Sản phẩm chung: Được bán rộng rãi, thõa mãn yêu cầu chung của số lớn người...
Vd: Phần mềm văn phòng (Office), phần mềm diệt virus...
3. What is software engineering?
Công nghệ phần mềm là ngành kĩ thuật liên quan đến tất cả các khía cạnh của sản xuất phần mềm.
4. What are the four fundamental activities in software processes?
Bốn hoạt động cơ bản trong quá trình sản xuất phần mềm là:
• Software specification (Đặc tả phần mềm) - xác định những gì hệ thống cần thực hiện;
• Software design and implementation (Thiết kế và triển khai phần mềm) - xác định tổ chức
của hệ thống và triển khai hệ thống;
• Software validation (Xác thực phần mềm) - kiểm tra xem phần mềm có thực hiện đúng
yêu cầu khách hàng không;
• Software evolution (Cải tiến phần mềm) - Thay đổi hệ thống để đáp ứng những thay đổi
trong nhu cầu của khách hàng
5. What is the distinction between computer science and software engineering?
Ngành khoa học máy tính tập trung vào các lý thuyết và nguyên tắc cơ bản; còn ngành Kỹ thuật
phần mềm liên quan đến tính thực tế của việc phát triển và cung cấp các phần mềm hữu ích. lOMoAR cPSD| 40659592
6. What are the 3 general issues that affect many different types of software? -
Tính không đồng nhất: Các hệ thống ngày càng được yêu cầu hoạt động như các hệ thống
phân tán trên các mạng bao gồm các loại máy tính và thiết bị di động khác nhau. Các phần mềm
ngày nay cũng phải có thể chạy trên các hệ thống phân tán như vậy. Chúng ta thường phải tích
hợp phần mềm mới với các hệ thống cũ hơn được viết bằng các ngôn ngữ lập trình khác nhau. Vì
vậy, chúng ta cần phát triển các kỹ thuật xây dựng phần mềm đáng tin cậy, đủ linh hoạt để ứng
phó với sự không đồng nhất này. -
Sự thay đổi trong kinh doanh và xã hội: Kinh doanh và xã hội đang thay đổi cực kỳ nhanh
chóng khi các nền kinh tế đang ngày càng phát triển và đòi hỏi các công nghệ mới hơn để theo kịp
sự phát triển. Vì vậy, chúng ta cần có khả năng thích nghi, thay đổi phần mềm hiện có và nhanh
chóng phát triển phần mềm mới để đáp ứng được nhu cầu và xu hướng trong kinh doanh và xã hội. -
Bảo mật và tin cậy: Vì phần mềm gắn liền với tất cả các thông tin trong cuộc sống của
chúng ta nên chúng ta có thể tin tưởng vào phần mềm. Điều này đặc biệt đúng đối với các hệ
thống phần mềm từ xa được truy cập thông qua trang web hoặc giao diện dịch vụ web. Bên cạnh
đó, chúng ta cần phải đảm bảo rằng những phần mềm độc hại khác không thể tấn công phần mềm
của chúng ta và duy trì thông tin luôn được bảo mật.
7. List 5 different types of software application. -
Phần mềm hệ thống: là tập hợp các chương trình tương tác trực tiếp với phần cứng máy
tính và có thể phục vụ nhiều người dùng khác nhau. Ví dụ: Hệ điều hành Window 9x, Unix, … -
Phần mềm thời gian thực: là phần mềm thu thập và xử lý dữ liệu theo thời gian thực. Ví
dụ: Phần mềm nghe nhạc, … -
Phần mềm nghiệp vụ: là phần mềm chuyên xử lý các thông tin nghiệp vụ, thường đi liên
với cơ sở dữ liệu. Ví dụ: phần mềm kế toán, kiểm toán, … -
Phần mềm khoa học kỹ thuật: là phần mềm có khả năng tính toán, mô phỏng. Ví dụ: Phần
mềm hỗ trợ dự báo thời tiết, … -
Phần mềm nhúng: là phần mềm có sự kết hợp giữa hệ thống và thời gian thực, có khả
năng thực hiện một vài chức năng nhất định. Ví dụ: Phần mềm nghe nhạc được nhúng trong đầu
máy DVD, phần mềm được nhúng trong hệ thống đen giao thông, …
8. What software engineering fundamentals apply to all types of software systems? -
Software process: Các hệ thống nên được phát triển bằng cách sử dụng một quy trình
phát triển được quản lý và hiểu rõ. Tổ chức phát triển phần mềm nên lập kế hoạch cho quá trình
phát triển và có những ý tưởng rõ ràng về những gì sẽ được phát triển và khi nào nó sẽ được hoàn
thành. Các quy trình khác nhau được sử dụng cho các loại phần mềm khác nhau. lOMoAR cPSD| 40659592 -
Focus on reliability: Độ tin cậy và hiệu suất rất quan trọng đối với tất cả các loại hệ thống.
Phần mềm phải hoạt động như mong đợi, không có lỗi và phải sẵn sàng để sử dụng khi được yêu
cầu. Nó phải an toàn trong quá trình vận hành và phải an toàn trước sự tấn công từ bên ngoài.
Phần mềm nên hoạt động hiệu quả và tránh lãng phí tài nguyên. -
Importance of requirements/specifications: Hiểu và quản lý đặc tả phần mềm và các yêu
cầu (phần mềm nên làm gì) là rất quan trọng. Chúng ta phải biết những khách hàng và người dùng
khác nhau của hệ thống mong đợi điều gì từ nó và chúng ta phải nắm được những mong đợi của
họ để có thể phát triển phần mềm/hệ thống hữu dụng và đúng tiến độ. -
Leverage software reuse: Chúng ta nên sử dụng hiệu quả nhất có thể các nguồn lực hiện
có. Điều này có nghĩa là, chúng ta nên tái sử dụng lại phần mềm đã được phát triển và nâng cấp
chúng hơn là viết phần mềm mới.
9. What are three key characteristics of the engineering of web-based software engineering? -
Công nghệ phần mềm có thể được sử dụng để kiểm soát chi phí trong hệ thống máy tính.
Chi phí ddeer duy trì phần mềm nhiều hơn so với việc phát triển nó. -
Tái sử dụng phần mềm là cách tiếp cận chính để phát triển hệ thống dựa trên web, các yêu
cầu đối với các quy trình đó không thể được phát triển đầy đủ và đề cập trước, Giao diện người
dùng bị hạn chế thông qua khả năng duyệt web. -
Các hệ thống phải được phát triển thông qua việc sử dụng một quy trình dễ hiểu và có thể
quản lý được. Hiệu suất và độ tin cậy là những khía cạnh chính. Các nguồn lực sẵn có phải được
sử dụng hiệu quả để tiết kiệm chi phí và thời gian.
10. What is a software engineering code of ethics?
According to the Association for Computer Machinery, the Software Engineering Code of Ethics is as follows:
1. PUBLIC - Software engineers shall act consistently with the public interest.
2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests
of their client and employer consistent with the public interest.
3. PRODUCT - Software engineers shall ensure that their products and related modifications meet
the highest professional standards possible.
4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote
an ethical approach to the management of software development and maintenance.
6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession
consistent with the public interest. lOMoAR cPSD| 40659592
7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their
profession and shall promote an ethical approach to the practice of the profession. Reference:
https://ethics.acm.org/code-of-ethics/software-engineering-code/