Quá trình phát triển phần mềm. Thiết kế phần mềm

Các giai đoạn phát triển chính được tô sáng và đặc trưng. phần mềm. Đối với mỗi giai đoạn, phương tiện có thể được áp dụng để đạt được mục tiêu của giai đoạn được mô tả.

1. Thuật ngữ.

Trước khi tiến hành xem xét các công cụ phát triển có thể được áp dụng để tạo chương trình, cần xác định các khái niệm cơ bản, các thuật ngữ sẽ được sử dụng trong bài viết. Phù hợp với chủ đề của bài viết thời hạn cơ bản Đối với chúng tôi, tất nhiên, là "Công cụ phát triển chương trình". Với tham chiếu đến khu vực phát triển phần mềm, định nghĩa này có thể phát ra như sau:

Công cụ phát triển phần mềm - một tập hợp các kỹ thuật, phương pháp, kỹ thuật, cũng như một tập hợp các chương trình công cụ (trình biên dịch, thư viện ứng dụng / hệ thống, v.v.) được nhà phát triển sử dụng để tạo mã phần mềm Các chương trình đáp ứng các yêu cầu quy định.

Với việc xem xét Định nghĩa này Thuật ngữ "phát triển chương trình" sẽ phát ra âm thanh như sau:

Phát triển phần mềm.phức tạp Quá trình, mục đích chính là tạo, hỗ trợ mã chương trình, đảm bảo mức độ tin cậy và chất lượng cần thiết. Để đạt được mục đích chính của việc phát triển các chương trình, các công cụ phát triển phần mềm được sử dụng.

2. Tài sản cố định được sử dụng ở các giai đoạn phát triển chương trình khác nhau.

Tùy thuộc vào khu vực chủ đề và các nhiệm vụ được đặt trước các nhà phát triển, sự phát triển của các chương trình có thể khá phức tạp, quy trình theo giai đoạn được liên quan một số lượng lớn người tham gia và các công cụ đa dạng. Để xác định thời điểm và trong những trường hợp nào, các khoản tiền được sử dụng, hãy chọn các giai đoạn chính của phát triển phần mềm. Các giai đoạn phát triển sau đây là mối quan tâm lớn nhất trong các vấn đề của câu hỏi đang được xem xét:

  1. Thiết kế một ứng dụng.
  2. Thực hiện ứng dụng mã chương trình.
  3. Kiểm tra một ứng dụng.

Dưới đây là các giai đoạn bị bỏ qua có ý thức liên quan đến viết nhiệm vụ kỹ thuật, Lịch trình thời gian, ngân sách, v.v. Lý do cho điều này là trong các giai đoạn này, với một ngoại lệ hiếm hoi, các công cụ phát triển cụ thể thực tế không được sử dụng.

2.1 Thiết kế ứng dụng có nghĩa là

Tại giai đoạn thiết kế của ứng dụng, tùy thuộc vào sự phức tạp của phát triển sản phẩm phần mềmPhụ thuộc trực tiếp vào các yêu cầu, các nhiệm vụ thiết kế sau đây được thực hiện:

  1. Phân tích yêu cầu.
  2. Phát triển kiến \u200b\u200btrúc phần mềm trong tương lai.
  3. Phát triển các thiết bị của thành phần chính của phần mềm.
  4. Phát triển bố trí giao diện người dùng.

Thiết kế kết quả thường là "Dự án phác thảo" hoặc "Tài liệu kiến \u200b\u200btrúc phần mềm" (Tài liệu kiến \u200b\u200btrúc phần mềm). Nhiệm vụ "Phân tích" các yêu cầu "thường được thực hiện bằng cách sử dụng các phương thức hệ thống (phân tích và tổng hợp), có tính đến kinh nghiệm chuyên gia của nhà thiết kế. Kết quả của phân tích thường là một mô hình có ý nghĩa hoặc chính thức của chương trình hoạt động của chương trình. Tùy thuộc vào sự phức tạp của quá trình xây dựng mô hình dữ liệu có thể được áp dụng các phương pháp khác nhau và phương tiện phụ trợ. Trong trường hợp chung, các ký hiệu sau đây thường được áp dụng để mô tả các mô hình (trong ngoặc được đưa ra phần mềmcó thể được sử dụng để có được mô hình):

  • BPMN (Vision 2003 + BPMN, Acualogic BPMN, Eclipse, Sybase Power Designer).
  • Sơ đồ khối (Vision 2003 và nhiều người khác).
  • Sơ đồ er (Visio 2003, Erwin, Sybase Power Designer và nhiều người khác).
  • Sơ đồ UML (Nhà thiết kế năng lượng Sybase, Rose Rose. và nhiều người khác).
  • nam châm, Mat-Model, v.v.

Đôi khi, khi sản phẩm được lập trình được phát triển được thiết kế để tự động hóa bất kỳ hoạt động phức tạp nào, nhiệm vụ phân tích (mô hình hóa) được thực hiện trước khi vẽ lên yêu cầu kỹ thuật Đến sản phẩm trong tương lai. Kết quả phân tích cho phép hình thành các yêu cầu thực chất đối với một hoặc chức năng khác của chương trình đang được phát triển và tính toán lợi ích thực sự của việc triển khai sản phẩm đang được phát triển. Hơn nữa, hóa ra, theo kết quả của phân tích, các mục tiêu ban đầu và nhiệm vụ tự động hóa về cơ bản đã thay đổi về cơ bản hoặc, theo kết quả đánh giá hiệu quả phát triển và thực hiện, sản phẩm sẽ không phát triển.

Mục đích của nhiệm vụ thứ hai và thứ ba từ danh sách nhiệm vụ trên là sự phát triển của một mô hình (mô tả) của hệ thống trong tương lai, có thể hiểu được cho Coder - một người viết mã chương trình. Tại đây, loại mô hình lập trình (mô hình lập trình cũng nên được coi là một phương tiện phát triển) phải được sử dụng khi viết một chương trình. Ví dụ, các mô hình chính phải được lấy như sau:

  • Lập trình chức năng;
  • Lập trình cấu trúc;
  • Lập trình bắt buộc;
  • Lập trình logic;
  • Lập trình hướng đối tượng (tạo mẫu; các lớp học; lập trình định hướng chủ quan).

Lựa chọn phần lớn phụ thuộc vào thói quen, kinh nghiệm, truyền thống, công cụmà có một nhóm nhà phát triển. Đôi khi sản phẩm phần mềm phát triển rất phức tạp rằng để giải quyết một số nhiệm vụ trong các thành phần khác nhau Hệ thống sử dụng các mô hình khác nhau. Cần lưu ý rằng sự lựa chọn của một hoặc một cách tiếp cận khác áp đặt các hạn chế trên các phương tiện để được áp dụng tại giai đoạn thực hiện của mã chương trình. Kết quả giải quyết nhiệm vụ này, tùy thuộc vào cách tiếp cận, có thể (trong ngoặc cung cấp các công cụ phần mềm có thể được sử dụng để nhận chúng):

  • biểu đồ các lớp học, v.v. (Race Rose, Sybase PowerDisigner và nhiều người khác).
  • mô tả các mô-đun của cấu trúc và của chúng giao diện phần mềm (Ví dụ: Sybase PowerDisigner và nhiều người khác).

Sự phát triển của bố cục giao diện người dùng ngụ ý việc tạo ra một biểu diễn trực quan về cách mà các điện thoại video khác sẽ trông như thế nào, Windows trong ứng dụng đang được phát triển. Giải pháp của nhiệm vụ này dựa trên việc sử dụng các quỹ của nhà thiết kế sẽ không được xem xét trong bài viết này.

2.2 Phương tiện triển khai mã

Tại triển khai mã chương trình, mã hóa được thực hiện linh kiện cá nhân Các chương trình theo dự án kỹ thuật phát triển. Các công cụ có thể được áp dụng phần lớn phụ thuộc vào phương pháp tiếp cận nào được sử dụng trong quá trình thiết kế và ngoài ra, về mức độ lo lắng dự án kỹ thuật. Tuy nhiên, trong số các phương tiện để phát triển mã chương trình, các loại tiền chính sau đây nên được phân biệt (ví dụ về tiền được đưa ra trong ngoặc): phương thức và phương thức thuật toán.

  • ngôn ngữ lập trình (C ++, C, Java, C #, PHP và nhiều loại khác);
  • công cụ tạo giao diện người dùng (MFC, WPF, QT, GTK +, v.v.)
  • Điều khiển mã chương trình (CVS, SVN, VSS).
  • công cụ cho mã thực thi (MS Visual Studio., GCC và nhiều người khác).
  • công cụ quản lý cơ sở dữ liệu (Oracle, MS SQL, Firebird, MySQL và nhiều người khác).
  • trình gỡ lỗi (MS Visual Studio, GDB, v.v.).

2.3 Kiểm tra chương trình có nghĩa là

Các nhiệm vụ chính của thử nghiệm là kiểm tra sự phù hợp của chức năng của chương trình được phát triển bởi các yêu cầu ban đầu, cũng như xác định các lỗi rõ ràng hoặc ngầm biểu hiện trong chương trình. Trong số các công việc chính về thử nghiệm, những điều sau đây có thể được phân biệt:

  • Kiểm tra thất bại và phục hồi.
  • Thử nghiệm chức năng.
  • Kiểm tra an ninh.
  • Thử nghiệm tương tác.
  • Kiểm tra quá trình cài đặt.
  • Kiểm tra khả năng sử dụng.
  • Kiểm tra cấu hình.
  • Bài kiểm tra về áp lực.

Trong số các loại tiền chính có thể được áp dụng để thực hiện công việc đã hoàn thành có thể được đưa ra như sau:

  • công cụ phân tích mã, hồ sơ (trình hướng dẫn mã - Parasoft, Purify - Rational Softwre. Bảo hiểm kiểm tra - ngữ nghĩa, v.v.);
  • các cơ sở kiểm tra chức năng (thử nghiệm - Parasoft, Qacenter - Compuware, Borland Silktest, v.v.);
  • phương tiện để kiểm tra hiệu suất (hiệu suất Qacenter - CompuuWare, v.v.).

3. Kết luận

Quá trình phát triển chương trình là một quá trình phức tạp và có nghĩa là cần thiết phải áp dụng phần lớn phụ thuộc vào các nhiệm vụ được đặt trước các nhà phát triển. Độc lập, các nhiệm vụ của các tác vụ phát triển không thể bị giới hạn bởi một bộ một số công cụ, cũng cần phải bao gồm các phương thức, kỹ thuật, cách tiếp cận và tất cả những gì được sử dụng để tạo một chương trình đáp ứng các yêu cầu được chỉ định.

Cũng thế xem :

Chú thích: Khái niệm về quá trình phát triển phần mềm. Quá trình phổ quát. Quá trình hiện tại. Quá trình cụ thể. Quy trình tiêu chuẩn. Cải thiện quy trình. Chiến lược kéo / đẩy. Mô hình cổ điển Quá trình: mô hình thác nước, mô hình xoắn ốc. Giai đoạn và hoạt động.

Lợi thế của mô hình này là hạn chế khả năng quay trở lại một bước tùy ý, ví dụ, từ thử nghiệm - để phân tích, từ sự phát triển - để làm việc theo yêu cầu, v.v. Cần lưu ý rằng lợi nhuận như vậy có thể làm tăng tính thảm khốc tăng chi phí của dự án và thời gian thực hiện. Ví dụ: nếu các lỗi thiết kế hoặc phân tích được phát hiện khi thử nghiệm, hiệu chỉnh của chúng thường dẫn đến một sự làm lại hoàn toàn của hệ thống. Mô hình này chỉ được phép quay lại bước trước, ví dụ, từ thử nghiệm đến mã hóa, từ mô hình này đã bị chỉ trích tích cực, thực tế, bởi mỗi tác giả của các bài viết và sách giáo khoa tương ứng. Nó đã trở thành một ý kiến \u200b\u200bchung được chấp nhận rằng nó không phản ánh các tính năng phát triển phần mềm. Nhược điểm của mô hình thác nước là:

  • xác định các giai đoạn và hoạt động đòi hỏi sự mất mát của sự linh hoạt của sự phát triển, đặc biệt, những khó khăn trong việc hỗ trợ quá trình phát triển lặp;
  • yêu cầu của kết thúc đầy đủ của hoạt động pha, hợp nhất các kết quả dưới dạng tài liệu nguồn chi tiết (nhiệm vụ kỹ thuật, đặc điểm kỹ thuật của dự án); Tuy nhiên, trải nghiệm phát triển phần mềm cho thấy rằng không thể hoàn toàn hoàn tất sự phát triển của các yêu cầu, thiết kế của hệ thống, v.v. - Tất cả điều này có thể thay đổi; Và những lý do ở đây không chỉ trong thực tế là môi trường lăn là một dự án, mà còn trong thực tế là không thể xác định chính xác và xây dựng nhiều quyết định, họ làm rõ và làm rõ chỉ;
  • tích hợp tất cả các kết quả phát triển xảy ra ở cuối, do kết quả của những vấn đề tích hợp khiến mình biết quá muộn;
  • người dùng và khách hàng không thể tự làm quen với các tùy chọn hệ thống trong quá trình phát triển và xem kết quả chỉ ở cuối; Do đó, chúng không thể ảnh hưởng đến quá trình tạo hệ thống, và do đó làm tăng những rủi ro hiểu lầm giữa các nhà phát triển và người dùng / khách hàng;
  • mô hình không ổn định với thất bại trong tài chính dự án hoặc phân phối lại tiền bạcBắt đầu phát triển, trên thực tế, không có sự thay thế "dọc theo quá trình của vụ án."

nhưng mô hình này Nó tiếp tục được sử dụng trong thực tế - cho các dự án nhỏ hoặc khi phát triển các hệ thống tiêu biểu, trong đó sự khó chịu không phải là nhu cầu. Với nó, thuận tiện để theo dõi sự phát triển và thực hiện kiểm soát theo giai đoạn đối với dự án. Mô hình này cũng thường được sử dụng trong các dự án ngoài khơi 1 Từ tiếng Anh ngoài khơi - bên ngoài bờ, trong một cách giải thích mở rộng - bên ngoài đất nước. Với lương hàng giờ. Mô hình thủy sản đã nhập thành phần vào các mô hình và phương pháp khác, ví dụ, trong MSF.

Mô hình xoắn ốc. Barie đã được đề xuất vào năm 1988 để vượt qua những thiếu sót của mô hình Waterfad, trước hết, đối với kiểm soát tốt hơn rủi ro. Theo mô hình này, sự phát triển của sản phẩm được thực hiện trên Helix, mỗi cuộn dây là một giai đoạn phát triển nhất định. Không giống như một mô hình thác nước trong một vòng xoắn ốc, không có tập hợp được xác định trước và bắt buộc, mỗi vòng có thể là lần cuối cùng trong sự phát triển của hệ thống, khi nó được hoàn thành, các kế hoạch của lượt tiếp theo được rút ra. Cuối cùng, vòng là một giai đoạn, và không phải là một loại hoạt động, như trong một mô hình thác nước, trong khuôn khổ của nó có thể có nhiều loài khác nhau Hoạt động, đó là, mô hình là hai chiều.

Trình tự lượt của lượt có thể là như thế này: Trong vòng xoắn đầu tiên, một quyết định được đưa ra về tính khả thi của việc tạo phần mềm, theo sau được xác định yêu cầu hệ thống , sau đó thiết kế của hệ thống được thực hiện, vv Các lượt có thể có các giá trị khác.

Mỗi vòng có cấu trúc sau (ngành):

  • Định nghĩa về mục tiêu, hạn chế và lựa chọn thay thế của dự án;
  • Đánh giá các lựa chọn thay thế, đánh giá rủi ro và giải quyết; Có thể sử dụng nguyên mẫu (bao gồm cả việc tạo một loạt các nguyên mẫu), mô phỏng hệ thống, mô hình hóa trực quan và phân tích các thông số kỹ thuật; tập trung vào các phần risisar của dự án;
  • phát triển và thử nghiệm - mô hình thác nước hoặc việc sử dụng các mô hình và phương pháp phát triển phần mềm khác là có thể ở đây;
  • lập kế hoạch các lần lặp sau đây - kết quả, kế hoạch và tài nguyên để phát triển tiếp theo được phân tích (hoặc không được chấp nhận) một quyết định về một bước ngoặt mới; phân tích xem nó có ý nghĩa để tiếp tục phát triển một hệ thống hay không; Việc phát triển có thể bị đình chỉ, ví dụ, do thất bại trong tài chính; mô hình xoắn ốc. Cho phép bạn làm điều đó một cách chính xác.

Một helix riêng có thể tương ứng với sự phát triển của một số thành phần phần mềm hoặc thực hiện các thay đổi tiếp theo cho sản phẩm. Do đó, mô hình có thể có một chiều thứ ba.

Mô hình xoắn ốc không phù hợp để áp dụng trong các dự án với một mức độ rủi ro nhỏ, với ngân sách hạn chế, đối với các dự án nhỏ. Ngoài ra, thiếu công cụ tốt Tạo mẫu cũng có thể tạo ra một cách sử dụng không thoải mái của một mô hình xoắn ốc.

Mô hình xoắn ốc. Nó không được sử dụng rộng rãi trong ngành công nghiệp và rất quan trọng, thay vào đó là trong kế hoạch lịch sử và phương pháp: Đây là mô hình lặp đi lặp lại, có một phép ẩn dụ đẹp - một vòng xoắn ốc, - và, giống như một mô hình thác nước, đã được sử dụng trong tương lai khi tạo Các mô hình khác của quy trình và phương pháp để phát triển phần mềm.

Sự phát triển của một sản phẩm phần mềm biết nhiều phương pháp xứng đáng - nói cách khác, thiết lập các thực tiễn tốt nhất. Sự lựa chọn phụ thuộc vào các chi tiết cụ thể của dự án, hệ thống ngân sách, sở thích chủ quan và thậm chí là tính khí của người đứng đầu. Bài viết mô tả các phương pháp mà chúng ta thường xuyên gặp phải Edisone.

1. "Mô hình thác nước" (mô hình xếp tầng hoặc "thác nước")



Một trong những người lâu đời nhất, ngụ ý sự thông qua nhất quán của các giai đoạn, mỗi giai đoạn nên được hoàn thành hoàn toàn trước khi tiếp theo. Trong mô hình thác nước, thật dễ dàng để quản lý dự án. Nhờ sự cứng nhắc của nó, sự phát triển nhanh chóng, chi phí và thời gian được xác định trước. Nhưng đây là một cây gậy về hai đầu. Mô hình Cascade sẽ chỉ mang lại một kết quả tuyệt vời trong các dự án với các yêu cầu và phương pháp thực hiện rõ ràng và xác định trước. Không có khả năng lùi lại một bước, thử nghiệm chỉ bắt đầu sau khi quá trình phát triển được hoàn thành hoặc gần như hoàn thành. Các sản phẩm được phát triển bởi mô hình này mà không có sự lựa chọn hợp lý có thể có những thiếu sót (danh sách các yêu cầu không thể được điều chỉnh bất cứ lúc nào), chỉ được biết đến ở cuối do trình tự hành động nghiêm ngặt. Chi phí thực hiện thay đổi cao, vì việc khởi tạo, cần phải chờ hoàn thành toàn bộ dự án. Tuy nhiên, chi phí cố định thường vượt xa nhược điểm về cách tiếp cận. Sửa chữa những thiếu sót có ý thức trong quá trình tạo ra sự thiếu hụt là có thể, và trên kinh nghiệm của chúng tôi, yêu cầu một đến ba thỏa thuận bổ sung đến một hợp đồng với một tk nhỏ.

Với sự trợ giúp của một mô hình Cascade, chúng tôi đã tạo ra nhiều dự án "từ đầu", bao gồm cả sự phát triển của chỉ tk. Các dự án được viết bằng Habré: Trung -, Nhỏ -.

Khi nào nên sử dụng phương pháp cascade?

  • Chỉ khi các yêu cầu được biết, dễ hiểu và cố định. Không có yêu cầu mâu thuẫn.
  • Không có vấn đề gì với sự sẵn có của các lập trình viên của trình độ mong muốn.
  • Trong các dự án tương đối nhỏ.

2. "V-MODEL"



Kế thừa cấu trúc "Từng bước" từ mô hình Cascade. Mô hình hình chữ V được áp dụng cho các hệ thống đặc biệt quan trọng hoạt động không bị gián đoạn. Ví dụ, chương trình ứng dụng Trong các phòng khám để giám sát bệnh nhân, phần mềm tích hợp cho các cơ chế quản lý túi khí khẩn cấp trong xe Vân vân. Đặc thù của mô hình có thể được xem xét rằng nó nhằm mục đích kiểm tra kỹ lưỡng và kiểm tra sản phẩm đã ở giai đoạn ban đầu của thiết kế. Bước thử nghiệm được thực hiện đồng thời với giai đoạn phát triển tương ứng, ví dụ, các thử nghiệm mô-đun được viết trong quá trình mã hóa.

Một ví dụ về công việc của chúng tôi trên cơ sở phương pháp V - ứng dụng di động Cho châu Âu nhà điều hành di động.mà tiết kiệm chi phí chuyển vùng trong khi đi du lịch. Dự án được thực hiện trên một TK rõ ràng, nhưng nó bao gồm một giai đoạn thử nghiệm đáng kể: sự tiện lợi của giao diện, chức năng, tải và bao gồm tích hợp, phải xác nhận rằng một số thành phần từ các nhà sản xuất khác nhau Họ cùng nhau làm việc ổn định, không thể mất thủ tiêu và cho vay.

Khi nào nên sử dụng mô hình V?

  • Nếu cần kiểm tra sản phẩm kỹ lưỡng, mô hình V đáp ứng ý tưởng về: xác nhận và xác minh.
  • Đối với các dự án vừa và nhỏ, trong đó các yêu cầu được xác định rõ ràng và cố định.
  • Trong sự sẵn có của các kỹ sư của trình độ cần thiết, đặc biệt là người kiểm tra.

3. "Mô hình gia tăng" (mô hình gia tăng)

Trong mô hình gia tăng, các yêu cầu đầy đủ đối với hệ thống được chia thành các cụm khác nhau. Thuật ngữ thường được sử dụng để mô tả lắp ráp giai đoạn Bởi. Có một số chu kỳ phát triển, và họ cùng nhau tạo thành một vòng đời nhiều thác nước. Chu kỳ được chia thành các mô-đun dễ dàng tạo nhỏ hơn. Mỗi mô-đun đi qua các giai đoạn xác định các yêu cầu, thiết kế, mã hóa, thực hiện và thử nghiệm. Quy trình phát triển trên mô hình gia tăng liên quan đến việc phát hành ở giai đoạn lớn đầu tiên của sản phẩm trong chức năng cơ bản, sau đó bổ sung tuần tự của các tính năng mới, cái gọi là "gia tăng". Quá trình tiếp tục cho đến khi hệ thống đầy đủ được tạo.


Các mô hình gia tăng được sử dụng trong đó các yêu cầu nhất định để thay đổi rõ ràng, có thể dễ dàng chính thức hóa và thực hiện. Trong các dự án của chúng tôi, chúng tôi đã sử dụng nó để tạo một trình đọc defView và Next và Network thư viện điện tử. Vivaldi.

Ví dụ, chúng tôi mô tả một gia tăng duy nhất. Đã đến để thay đổi defview. Defiew Đã kết nối với một máy chủ tài liệu, và bây giờ nó có thể kết nối với nhiều người. Tại trang web của tổ chức muốn phát nội dung của họ đến một đối tượng cụ thể, một máy chủ lưu trữ được thiết lập, nơi trực tiếp đề cập đến các tài liệu và chuyển đổi chúng thành Định dạng mong muốn. Yếu tố gốc của kiến \u200b\u200btrúc xuất hiện - máy chủ trung tâm Vivaldi, đóng vai trò của một máy tìm kiếm Đối với tất cả các máy chủ lưu trữ được cài đặt trong các tổ chức khác nhau.

Khi nào nên sử dụng mô hình gia tăng?

  • Khi các yêu cầu cơ bản cho hệ thống được xác định rõ ràng và dễ hiểu. Đồng thời, một số chi tiết có thể được tinh chỉnh theo thời gian.
  • Rút sớm sản phẩm ra thị trường.
  • Có một số tính năng hoặc mục đích rủi ro.

4. "Mô hình RAD" (mô hình phát triển ứng dụng nhanh hoặc phát triển ứng dụng nhanh)

Mô hình RAD là một loại mô hình gia tăng. Trong các mô hình RAD, các thành phần hoặc chức năng được phát triển bởi một số lệnh có trình độ cao, như thể một số dự án nhỏ. Khung thời gian của một chu kỳ bị hạn chế cứng nhắc. Các mô-đun được tạo sau đó được tích hợp vào một nguyên mẫu hoạt động. Synergy cho phép bạn nhanh chóng cung cấp cho khách hàng xem xét một cái gì đó làm việc cho mục đích nhận phản hồi và thực hiện thay đổi.


Mô hình phát triển nhanh chóng Các ứng dụng bao gồm các giai đoạn sau:

  • Mô hình kinh doanh: Xác định danh sách các luồng thông tin giữa các bộ phận khác nhau.
  • Mô hình hóa dữ liệu: Thông tin được thu thập trong bước trước được sử dụng để xác định các đối tượng và các thực thể khác cần thiết để lưu thông thông tin.
  • Mô hình hóa quy trình: thông tin dòng đối tượng liên kết để đạt được các mục tiêu phát triển.
  • Một hội nghị ứng dụng: Tự động xây dựng phương tiện để chuyển đổi các mô hình hệ thống thiết kế tự động thành mã.
  • Kiểm tra: Các thành phần và giao diện mới được kiểm tra.
Khi nào mô hình rad?

Nó chỉ có thể được sử dụng với sự hiện diện của các kiến \u200b\u200btrúc sư có trình độ cao và chuyên môn cao. Ngân sách dự án là lớn để trả các chuyên gia này cùng với chi phí của các công cụ lắp ráp tự động sẵn sàng. Mô hình RAD có thể được chọn với kiến \u200b\u200bthức tự tin mục tiêu kinh doanh Và nhu cầu về hệ thống sản xuất khẩn cấp trong 2-3 tháng.

5. "Mô hình Agile" (Phương pháp phát triển linh hoạt)



Trong phương pháp phát triển "linh hoạt" sau mỗi lần lặp, khách hàng có thể quan sát kết quả và hiểu, anh ta đáp ứng hay không. Đây là một trong những lợi thế của một mô hình linh hoạt. Rất khó để đánh giá chi phí lao động và chi phí cần thiết cho sự phát triển do thiếu các công thức cụ thể của kết quả. Lập trình cực đoan (XP) là một trong những ứng dụng nổi tiếng nhất của mô hình linh hoạt trong thực tế.

Tại trung tâm của loại này - các cuộc họp hàng ngày ngắn hạn - "Scrum" và các cuộc họp được lặp lại thường xuyên (mỗi tuần một lần, cứ sau hai tuần hoặc mỗi tháng một lần), được gọi là "Sprint". Tại các cuộc họp hàng ngày, các thành viên trong nhóm được thảo luận:

  • báo cáo về công việc được thực hiện kể từ Scrum'a cuối cùng;
  • danh sách các nhiệm vụ mà nhân viên phải thực hiện cho đến cuộc họp tiếp theo;
  • khó khăn phát sinh trong quá trình làm việc.
Phương pháp học phù hợp với lớn hoặc nhằm vào một vòng đời dài hạn của các dự án liên tục thích nghi với các điều kiện thị trường. Theo đó, trong quá trình thực hiện các yêu cầu thay đổi. Thật đáng để nhớ rằng lớp những người sáng tạo có xu hướng tạo ra, vấn đề và kiểm tra ý tưởng mới hàng tuần hoặc thậm chí hàng ngày. Phát triển linh hoạt phù hợp nhất cho các nhà lãnh đạo tâm thần này. Khởi nghiệp nội bộ của công ty chúng tôi đang phát triển bởi Agile. Một ví dụ về các dự án khách hàng là một hệ thống kiểm tra y tế điện tử, được tạo để kiểm tra hàng loạt trong vài phút. Trong đoạn thứ hai của đánh giá này, các đối tác tại Hoa Kỳ của chúng tôi đã mô tả một điều rất quan trọng, nguyên tắc thành công về Agile.

Khi nào nên sử dụng Agile?

  • Khi nhu cầu của người dùng không ngừng đổi trong một doanh nghiệp năng động.
  • Những thay đổi nhanh nhẹn được thực hiện với mức giá nhỏ hơn do gia tăng thường xuyên.
  • Không giống như mô hình thác nước, chỉ có kế hoạch nhỏ là đủ để bắt đầu dự án.

6. Mô hình lặp đi lặp lại (mô hình lặp hoặc lặp lại)

Mô hình lặp đi lặp lại vòng đời Không yêu cầu một đặc điểm kỹ thuật đầy đủ các yêu cầu. Thay vào đó, việc tạo bắt đầu với việc thực hiện một phần của chức năng, trở thành một cơ sở để xác định các yêu cầu tiếp theo. Quá trình này được lặp lại. Phiên bản có thể không hoàn hảo, điều chính là nó hoạt động. Hiểu về mục tiêu cuối cùng, chúng tôi cố gắng cho nó để mỗi bước có hiệu quả và mỗi phiên bản hiệu quả.


Sơ đồ cho thấy sự phát triển của Mona Lisa lặp đi lặp lại. Như có thể thấy, trong lần lặp đầu tiên, chỉ có trình phác họa độc lập, trong màu thứ hai xuất hiện và lần lặp thứ ba thêm chi tiết, bão hòa và hoàn tất quy trình. Trong mô hình gia tăng, chức năng của sản phẩm đang tăng theo miếng, sản phẩm được tạo thành từ các bộ phận. Trái ngược với mô hình lặp, mỗi mảnh là một yếu tố toàn diện.

Một ví dụ về sự phát triển lặp lại có thể phục vụ nhận dạng giọng nói. Các nghiên cứu đầu tiên và chuẩn bị của bộ máy khoa học bắt đầu từ lâu, ngay từ đầu - trong những suy nghĩ, sau đó trên giấy. Với mỗi lần lặp mới, chất lượng nhận dạng đã được cải thiện. Tuy nhiên, việc nhận dạng hoàn hảo chưa đạt được, do đó, nhiệm vụ vẫn chưa được giải quyết hoàn toàn.

Khi nào nó tối ưu để sử dụng một mô hình lặp?

  • Yêu cầu đối với hệ thống cuối cùng Nó được xác định rõ ràng và hiểu.
  • Dự án là lớn hoặc rất lớn.
  • Nhiệm vụ chính phải được xác định, nhưng chi tiết về việc thực hiện có thể phát triển theo thời gian.

7. "Mô hình xoắn ốc" (mô hình xoắn ốc)



"Mô hình xoắn ốc" tương tự như sự gia tăng, nhưng với sự nhấn mạnh vào phân tích rủi ro. Nó hoạt động tốt để giải quyết các nhiệm vụ kinh doanh quan trọng, khi sự thất bại không tương thích với các hoạt động của công ty, dưới sản xuất các dòng sản phẩm mới, nếu cần thiết nghiên cứu khoa học và thử nghiệm thực tế.

Mô hình xoắn ốc liên quan đến 4 giai đoạn cho mỗi lượt:

  1. lập kế hoạch;
  2. phân tích rủi ro;
  3. xây dựng;
  4. Đánh giá kết quả và với chất lượng đạt yêu cầu, sự chuyển đổi sang một bước ngoặt mới.
Mô hình này không phù hợp với các dự án nhỏ, nó hợp lý đối với phức tạp và đắt tiền, chẳng hạn như phát triển hệ thống quản lý tài liệu cho một ngân hàng khi mỗi bước tiếp theo yêu cầu phân tích lớn hơn. Để đánh giá hậu quả hơn là lập trình. Trong dự án về sự phát triển của Edus cho ODE Siberia với UES, hai cuộc họp về việc thay đổi phần mã hóa lưu trữ điện tử. Phải mất gấp 10 lần thời gian so với kết hợp hai thư mục với một lập trình viên. Các dự án nhà nước mà chúng tôi tham gia bắt đầu với việc chuẩn bị cộng đồng chuyên gia về một khái niệm đắt tiền, không phải lúc nào cũng vô dụng, bởi vì trả tiền ngoài cả nước.

Thích hợp



Slide thể hiện sự khác biệt trong hai phương pháp phổ biến nhất.

Trong thực hành hiện đại của mô hình phát triển phần mềm đa phát triển. Không có sự thật chỉ dành cho tất cả các dự án, điều kiện bắt đầu và mô hình thanh toán. Ngay cả Agile cũng được tất cả chúng ta yêu mến bởi tất cả chúng ta đều không thể được sử dụng ở khắp mọi nơi do một số khách hàng không phải là một số khách hàng hoặc sự bất khả thi của tài chính linh hoạt. Phương pháp luận được giao nhau một phần trong các phương tiện và một phần giống nhau. Một số khái niệm khác chỉ được sử dụng cho tuyên truyền của trình biên dịch của riêng họ và không mang lại bất cứ điều gì mới để thực hành.

Về các công nghệ phát triển:
.
.
.
.

Những phương pháp nào bạn sử dụng?

Ngày nay quá trình tạo phức tạp Ứng dụng phần mềm Không thể tưởng tượng mà không chia tay với các giai đoạn của vòng đời. Trong vòng đời của chương trình, chúng ta sẽ hiểu tập hợp các giai đoạn:

  • Phân tích khu vực chủ đề và việc tạo TK (tương tác với khách hàng)
  • Thiết kế cấu trúc của chương trình
  • Mã hóa (một bộ mã chương trình theo tài liệu dự án)
  • Thử nghiệm và gỡ lỗi
  • Thực hiện chương trình
  • Chương trình hỗ trợ
  • Xử lý
Hãy để chúng tôi sống trong quá trình thiết kế. Trong quá trình thiết kế của kiến \u200b\u200btrúc sư hoặc lập trình viên có kinh nghiệm, tài liệu dự án được tạo ra bao gồm mô tả văn bản., sơ đồ, mô hình của chương trình trong tương lai. Trong trường hợp khó khăn này, ngôn ngữ UML sẽ giúp chúng tôi.

UML - IS. ngôn ngữ đồ họa Để trực quan hóa, mô tả các tham số, thiết kế và tài liệu nhiều hệ thống khác nhau (đặc biệt chương trình). Các biểu đồ được tạo bằng các công cụ trường hợp đặc biệt, chẳng hạn như Rational Rose (http://www-01.ibm.com/software/rational/) và Kiến trúc sư doanh nghiệp (http://www.sparxsystems.com.au/). Dựa trên công nghệ UML được xây dựng một mô hình thông tin. Ở trên Trường hợp quỹ có thể tạo mã trên các ngôn ngữ hướng đối tượng khác nhau, cũng như sở hữu rất nhiều tính năng hữu ích Kỹ thuật đảo ngược. (Kỹ thuật đảo ngược cho phép bạn tạo mô hình đồ họa Từ mã chương trình có sẵn và nhận xét cho nó.)

Hãy xem xét các loại sơ đồ để hình dung mô hình (điều này phải có, mặc dù các loại này nhiều hơn nữa):

Sơ đồ trường hợp sử dụng (Sơ đồ trường hợp sử dụng)

Hệ thống dự kiến \u200b\u200bđược trình bày dưới dạng một loạt các thực thể hoặc diễn viên tương tác với hệ thống với sự trợ giúp của cái gọi là tiền lệ. Đồng thời, một diễn viên (diễn viên) hoặc một người đang hoạt động được gọi là bất kỳ thực thể nào tương tác với hệ thống từ bên ngoài. Nói cách khác, mỗi tùy chọn sử dụng xác định một số tập hợp các hành động được thực hiện bởi hệ thống khi đối thoại với diễn viên. Đồng thời, không có gì nói nói về sự tương tác của các diễn viên với hệ thống sẽ được thực hiện như thế nào.

Biểu đồ sơ đồ lớp

Sơ đồ lớp được sử dụng để thể hiện cấu trúc tĩnh của mô hình hệ thống trong thuật ngữ của các lớp lập trình hướng đối tượng. Sơ đồ lớp có thể phản ánh, đặc biệt, các mối quan hệ khác nhau giữa các thực thể riêng lẻ của khu vực chủ đề, như các đối tượng và hệ thống con và cũng mô tả cấu trúc bên trong của chúng (các trường, phương thức) và các loại mối quan hệ (thừa kế, giao diện thực hiện ...). Sơ đồ này không cho biết thông tin về các khía cạnh tạm thời của hoạt động của hệ thống. Từ quan điểm này, sơ đồ lớp là phát triển hơn nữa mô hình khái niệm Thiết kế hệ thống. Ở giai đoạn này, một kiến \u200b\u200bthức cơ bản về cách tiếp cận OOP và các mẫu thiết kế.


Biểu đồ nhà nước (Sơ đồ Statechart)

Mục đích chính của sơ đồ này là để mô tả các chuỗi có thể có của các trạng thái và sự chuyển đổi, cùng nhau mô tả hành vi của nguyên tố mô hình trong vòng đời của nó. Sơ đồ trạng thái đại diện cho hành vi năng động của các thực thể, dựa trên đặc điểm kỹ thuật của phản ứng của họ với nhận thức về một số sự kiện cụ thể.


Sơ đồ trình tự (Sơ đồ trình tự)

Để mô phỏng sự tương tác của các đối tượng trong ngôn ngữ UML Sơ đồ tương tác thích hợp được sử dụng. Tương tác đối tượng có thể được xem xét theo thời gian, và sau đó để thể hiện các tính năng tạm thời của việc truyền và nhận tin nhắn giữa các đối tượng, sơ đồ trình tự được sử dụng. Các đối tượng tương tác trao đổi một số thông tin giữa họ. Đồng thời, thông tin có hình thức hoàn thành tin nhắn. Nói cách khác, mặc dù thông báo có nội dung thông tin, nó có được một tài sản bổ sung để nhắm đến tác động đến người nhận của nó.

Coopram hợp tác (Sơ đồ cộng tác)

Trên sơ đồ hợp tác dưới dạng hình chữ nhật, những người liên quan đến các đối tượng tương tác chứa tên đối tượng, lớp của nó và, có thể, các giá trị thuộc tính được mô tả. Như trong sơ đồ lớp, các liên kết giữa các đối tượng dưới dạng các dòng kết nối khác nhau được chỉ định. Đồng thời, có thể chỉ định rõ ràng tên của hiệp hội và vai trò mà các đối tượng chơi trong hiệp hội này.
Ngược lại với biểu đồ trình tự, chỉ có mối quan hệ giữa các đối tượng chơi một số vai trò nhất định trong tương tác được mô tả trên sơ đồ hợp tác.

Sơ đồ thành phần (Sơ đồ thành phần)

Sơ đồ thành phần, trái ngược với các sơ đồ được xem xét trước đây, mô tả các tính năng của biểu diễn vật lý của hệ thống. Sơ đồ thành phần cho phép bạn xác định kiến \u200b\u200btrúc của hệ thống đang được phát triển bằng cách đặt mối quan hệ giữa các thành phần phần mềm, có thể hoạt động mã ban đầu, nhị phân và mã thực thi. Trong nhiều môi trường phát triển, mô-đun hoặc thành phần tương ứng với tệp. Các mũi tên chấm kết nối các mô-đun hiển thị các mối quan hệ mối quan hệ tương tự như các mệnh đề xảy ra khi biên dịch các văn bản nguồn của chương trình. Căn bản yếu tố đồ họa Sơ đồ thành phần là các thành phần, giao diện và mối quan hệ giữa chúng.


Sơ đồ triển khai (Sơ đồ triển khai)

Sơ đồ triển khai được thiết kế để hình dung các yếu tố và các thành phần của chương trình chỉ tồn tại ở giai đoạn thực hiện (thời gian chạy). Đồng thời, chỉ các thể hiện thành phần của các chương trình là tệp thực thi hoặc thư viện động. Những thành phần không được sử dụng ở giai đoạn thực thi không được hiển thị trên sơ đồ triển khai.
Sơ đồ triển khai chứa hình ảnh đồ hoạ Bộ xử lý, thiết bị, quy trình và kết nối giữa chúng. Không giống như biểu đồ đại diện logic, sơ đồ triển khai là một cho toàn bộ hệ thống, vì nó sẽ phản ánh đầy đủ các tính năng của việc thực hiện. Sơ đồ này về cơ bản là hoàn thành quá trình oooap cho một cụ thể hệ thống phần mềm Và sự phát triển của nó, như một quy luật, là giai đoạn cuối cùng của đặc điểm kỹ thuật mô hình.

Về điều này, chúng tôi sẽ hoàn thành một chuyến tham quan đánh giá trong sơ đồ nói riêng và thiết kế nói chung. Điều đáng chú ý là quá trình thiết kế từ lâu đã là tiêu chuẩn phát triển phần mềm, nhưng thường là cần thiết phải đối phó với một chương trình viết tuyệt vời, do thiếu tài liệu thông thường, đang trở nên không cần thiết bởi chức năng trên tàu, nạng, trở nên cồng kềnh và mất chất lượng trước đây. \u003d (

Tôi tin rằng lập trình viên đầu tiên là bộ mã hóa - nó không nên liên lạc với khách hàng, không nên nghĩ về kiến \u200b\u200btrúc hệ thống, nó không nên phát minh ra giao diện cho chương trình, nó chỉ nên mã hóa - thực hiện các thuật toán, chức năng, xuất hiện, Khả năng sử dụng, nhưng không nhiều hơn .... Nhà thiết kế phải bắt đầu từ sơ đồ trừu tượng (mô tả môn học) Đối với các sơ đồ đại diện cho cấu trúc dữ liệu, các lớp và quy trình tương tác của chúng, chi tiết từng bước trong một bước. Đó là, sự phức tạp của công việc và mức lương của nhà thiết kế phải là một thứ tự cường độ cao hơn so với trình lập trình viên \u003d\u003d bộ mã hóa. Xin lỗi vì Kramol ....