Tuesday, February 18, 2014

Cải tiến trò chơi đếm số

Ta đã biết một số thuộc tính mới của HTML 5 trong phiên bản game trước, trong phiên bản này, chúng ta học thêm một số hàm javascript sau:
 - Để tạo một số random 1 to 100: Math.floor(Math.random() * 100);
 - Để bắt sự kiện bấm phím trên cửa sổ web: window.addEventListener("keydown", keydownHandler, false);
- Để xóa một sự kiện trên một thành phần (ví dụ: button): button.removeEventListener("click", clickHandler, false);

Ngoài ra trong phiên bản này, ta giới hạn số lần bấm, chỉ cho phép người chơi đoán 10 lần, và số bí mật là một số ngẫu nhiên.
  Ví dụ:
Đoán số
Đây là một số trong khoảng từ 1 đến 99


Monday, February 17, 2014

Trò chơi đoán số

HTML 5 có một số thuộc tính mới so với HTML trước đây. Trong trò chơi này, chúng ta sẽ làm quen với placeholder và một số hàm javascript như querySelector và addEventListener

Saturday, February 15, 2014

Mô hình phát triển tăng trưởng

Phát triển tăng trưởng thì dựa vào ý tưởng phát triển bản cài đặt gốc, chuyển giao và lấy phản hồi từ khách hàng và tiến hóa nó qua các phiên bản cho đến khi là một hệ thống đầy đủ. Các hoạt động đặc tả, phát triển và kiểm định được xen kẽ chứ không tách biệt, với các phản hồi nhanh chóng thông qua các hoạt động này.

Thursday, February 13, 2014

Mô hình thác nước

Đây là mô hình quy trình phát triển phần mềm xuất bản đầu tiên xuất phát từ các quy trình công nghệ trước đó. Bởi vì tính đi xuống từ pha này sang pha khác, nên mô hình này được gọi là mô hình thác nước hay vòng đời phần mềm. Mô hình thác nước là một ví dụ của quy trình hướng kế hoạch, chúng ta cần phải đặt kế hoạch và xếp lịch tất các hoạt động của quy trình trước khi bắt đầu làm việc trên đó.

Wednesday, February 12, 2014

Các mô hình quy trình phát triển phần mềm


Như đã giải thích ở chương 1, mô hình phát triển phần mềm chỉ đơn giản thể hiện quy trình phần mềm. Mỗi một mô quy trình  thể hiện quy trình từ một quản điểm cụ thể, vì vậy chỉ chung cấp một phần thông tin của quy trình đó. Ví dụ, một mô hình quy trình hoạt động thể hiện các hoạt động theo thứ tự của nhưng không thể vai trò con người liên quan đến các hoạt động này. Trong phần này,có rất nhiều mô hình quy trình chung được nhìn theo góc độ kiến trúc. Đó là các khung của quy trình nhưng không xem chi tiết các hoạt động.

Những mô hình chung này cũng không hoàn toàn mô tả quy trình phần mềm. Hơn nữa, chúng là sự trừu tượng của quy trình mà có thể dùng để diễn tả phương thức tiếp cận phát triển phần mềm khác nhau. Chúng là những quy trình khung mà có thể mở rộng, thay đổi thích nghi để tạo những quy trình công nghệ phần mềm.

Các mô hình quy trình phần mềm được đề cập là:

1.      Mô hình thác nước: Mô hình này lấy các hoạt động nền tảng quy trình về đặc tả, phát triển, kiểm thử và tiến hóa, thể hiện chúng là những pha của quy trình tách biệt như là đặc tả yêu cầu, thiết kế phần mềm, cài đặt, kiểm thử …
 2.    Mô hình tăng trưởng: Cách tiếp cận này xen kẻ các hoạt động đặc tả, phát triển và kiểm thử. Hệ thống được phát triển như những dãy các phiên bản với mỗi phiên bản thêm các hoạt động từ phiên bản trước.
3. Công nghệ phần mềm hướng tái sử dụng: Cách tiếp cận này dựa trên số lượng lớn các thành phần mềm cần thiết. Quy trình phát triển phần mềm chú trọng vào việc tích hợp các thành phần này vào hệ thống hơn là phát triển từ đầu.
Những mô hình này không loại trừ lẫn nhau mà thường dùng chung vơi nhau, đặc biệt là phát triển hệ thống lớn. Đối với hệ thống lớn, kết hợp các đặc điểm tốt nhất của mô hình quy trình thác nước và quy trình thác nước rất ý nghĩa. Chúng ta cần phải có các thông tin về những yêu cầu hệ thống cần thiết để thiết kế kiến trúc phần mềm hỗ trợ những yêu cầu này. Chúng ta không thể phát triển hệ thống này tăng dần. Các hệ thống nhỏ trong một hệ thống lớn của thể sử dụng cách tiếp cận khác. Các phần của hệ thống mà đã hiểu sâu sắc có thể đặc tả và và phát triển và dùng quy trình thác nước. Các phần của hệ thống khó có thể đặc tả kỹ, ví dụ như giao diện người dùng,nên phát triển sử dụng cách thức tăng trưởng.

Tuesday, February 11, 2014

Giới thiệu về quy trình phát triển phần mềm

Một quy trình phần mềm là tập hợp các hoạt động dẫn đến sản xuất một sản phẩm phần mềm. Các hoạt động này có thể liên quan đến việc phát triển phần mềm từ đầu băng ngôn ngữ lập trình cơ bản như C hoặc Java. Tuy nhiên, đối với ứng dụng doanh nghiệp thì không cần thiết phát triển theo cách này.. Các phần mềm này thường được phát triển bằng cách mở rộng, thay đổi hệ thống đã có hoặc cấu hình, tich hợp với các thành phần hệ thống, các phần mềm sẵn có khác.

Monday, February 10, 2014

Câu hỏi ôn tập



1.1. Explain why professional software is not just the programs that are developed for a customer.
Giải thích tại sao phần mềm chuyên nghiệp không chỉ là chương trình viết cho một người

Case study 3:A wilderness weather station

Để giúp giám sát thay đổi thời tiết và tăng tính chính xác dự báo thời tiết những nơi xa, chính phủ của những đất nước vùng hoang dã rộng lớn quyết định đặt hàng trăm các trạm đo thời tiết nơi xa. Những tram này thu thập thông tin từ một tập các thiết bị để đo lượng nhiệt độ, áp suất, độ sáng mặt trời, lượng mưa, tốc độ gió, hướng gió.
Tram dự báo thời tiết hoang dã là một phần của hệ thống lớn, với hệ thống thông tin thời tiết mà thu thập dữ liệu thời tiết và sẵn sàng cung cấp cho hệ thống xử lý khác.

Case Study 2:A patient information system for mental health care

Một hệ thống thông tin bệnh nhân hỗ trợ chăm sóc sức khỏa tâm thần là một hệ thống duy trì thông tin về bệnh nhân có vấn đề về sức khỏe tâm thần và các phương pháp họ đã điều trị. Hầu hết các bệnh nhân tâm thần không cần sự điều trị đặt tại bệnh viện mà chỉ cần gặp chuyên gia ở phòng khám thường xuyên. Những người có kiến thức về vấn đề của họ. Để tạo điều kiện, những phòng khám này không chỉ ở trong bệnh viện, mà còn được xây dựng trong trung tâm ý tế đựa phương hoặc trung tâm cộng đồng.

Case study 1: Hệ thống nhúng: hệ thống kiểm soát bơm insulin



Một máy bơm insulin là một hệ thống y tế nhằm giả lặp hoạt động của tuyến tụy (một cơ quan nội tạng). Phần mềm điều khiển hệ thống này là một hệ thống nhúng, có nhiệm vụ thu thập thông tin từ các cảm biến và điều khiển máy bơm cung cấp lượng insulin đúng cho người dùng.

Sunday, February 9, 2014

Công nghệ phần mềm và web

Sự phát triển của World Wide Web đã có ảnh hưởng sâu rộng của chugns ta. Nguyên thủy, Web chỉ là nơi lưu trữ thông tin truy xuất rộng và nó rất ít ảnh hưởng đế hệ thống phần mềm. Những hệ thống phần mềm này chạy trên máy cá nhân và chỉ được truy xuất từ bên trong tổ chức. Khoảng năm 2000, web bắt đầu tiến hóa, ngày càng nhiều chức năng được đưa thêm vào trình duyệt web. Điều này dẫ đến nhiều hệ thống dựa trên nền web được xây dựng. Thay vì chỉ một giao diện người dùng, người dùng có thể truy xuất bằng cách sử dụng trình duyệt web. Từ đó một phạm vi rộng các hệ thống được phát triển cung cấp các dịch vụ sáng tạo thông qua web. Những dịch vụ này thường được tài trợ bởi các quảng cáo và người dung không phải trả phí.

Saturday, February 8, 2014

Sự đa dạng của công nghệ phần mềm

      Công nghệ phần mềm là cách tiếp cận hệ thống để sản xuất phần mềm có tích đến các chi phí, lịch trình và độ tin cậy cũng như nhu cầu của khách hàng và nhà sản xuất.Làm thế nào mà cách tiếp cận này thực thi trong thực tế thì phụ thuộc vào các tổ chức phát triển phần mềm, loại phần mềm và con người tham gia tiến trình sản xuất phần mềm. Không có phương pháp nào chung cho mọi loại hệ thống, vì vậy đã có rất nhiều phương pháp và kỹ thuật công nghệ phần mềm trong hơn 50 năm qua.

Ba vấn đề chung ảnh hương đến mọi loại phần mềm


Như đã đề cập ở trên, có rất nhiều loại phần mềm khác nhau. Không có một phương thức công nghệ phần mềm tổng thể hoặc kỷ thuật có thể áp dụng cho tất cả. Tuy nhiên cũng có 3 vấn đề chung ảnh hưởng tất các loại phần mềm:

1. Sự không đồng nhất tăng dần: Hệ thống đòi hỏi được vận hành và phân phói qua mạng bao gồm nhiều loại máy tính và thiết bị di động. Cũng vì như vậy mà phần mềm cần phải thực thi được trên điện thoại di động. Phần mềm còn phải tích hợp được với các phần mềm cũ được viết bởi nhiều ngôn ngữ khác. Thác thức ở đây là phát triển kỹ thuật để xây dựng phần mềm đáng tin cậy, linh hoạt đủ để đương đầu với sự không đồng nhất về nền tảng này.

Khái niệm công nghệ phần mềm (software engineering)

Định nghĩa phần mềm: Phần mềm là chương trình máy tính và các tài liệu liên quan. Các sản phẩm phần mềm có thể được thiết kế cho một khách hàng cụ thể nào đó hoặc cho thị trường nói chung. 
Một phần mềm tốt là phần mềm cung cấp các chức năng, hiệu năng yêu cầu cho người sử dụng. Nó có thể sử dụng được, đáng tin cậy và có thể bảo trì.

Giới thiệu về công nghệ phần mềm



Rất nhiều người viết chương trình. Doanh nhận viết các ứng dụng bảng tính để đơn giản hóa công việc của họ, các kỹ sư, người nghiên cứu viết chương trình để xử lý các số liệu thí nghiệm, hoặc cũng có người viết chương trình theo sở thích. Dù sao thì phần lớn việc phát triển phần mềm là các hoạt động chuyên môn mà nó được phát triển vì các mục đích công việc cụ thể, để đưa vào các thiết bị hoặc một hệ thống thông tin, hệ thống CAD … Một phần mềm chuyên nghiệp, được sử dụng bởi một một người nhưng thường được phát triển bởi một nhóm người. Nó luôn được bảo trì và thay đổi trong suột thời gian sống của nó.

Nhập môn công nghệ phần mềm

Công nghệ phần mềm là một học phần mà các sinh viên IT nào cũng học qua, có nhiều sách rất hay, nhưng mình tâm đắc cái cuốn Software Engineering của Ian Sommerville. Cuốn sách gồm 4 phần và 26 chương, trong đó 9 chương đầu phần 1 là nội dung của môn học chúng ta. Vì vậy, để cùng học tốt mình sẽ cùng các bạn đọc 9 chương này nhé.
Chapter 1 Introduction
1.1 Professional software development
1.2 Software engineering ethics
1.3 Case studies
Chapter 2 Software processes
2.1 Software process models
2.2 Process activities
2.3 Coping with change
2.4 The rational unified process
Chapter 3 Agile software development
3.1 Agile methods
3.2 Plan-driven and agile development
3.3 Extreme programming
3.4 Agile project management
3.5 Scaling agile methods
Chapter 4 Requirements engineering
4.1 Functional and non-functional requirements
4.2 The software requirements document
4.3 Requirements specification
4.4 Requirements engineering processes
4.5 Requirements elicitation and analysis
4.6 Requirements validation
4.7 Requirements management
Chapter 5 System modeling
5.1 Context models
5.2 Interaction models
5.3 Structural models
5.4 Behavioral models
5.5 Model-driven engineering
Chapter 6 Architectural design
6.1 Architectural design decisions
6.2 Architectural views
6.3 Architectural patterns
6.4 Application architectures
Chapter 7 Design and implementation
7.1 Object-oriented design using the UML
7.2 Design patterns
7.3 Implementation issues
7.4 Open source development
Chapter 8 Software testing
8.1 Development testing
8.2 Test-driven development
8.3 Release testing
8.4 User testing
Chapter 9 Software evolution
9.1 Evolution processes
9.2 Program evolution dynamics
9.3 Software maintenance
9.4 Legacy system management