Nghiên cứu và ứng dụng phương pháp đặc tả phần mềm bằng ví dụ trong phát triển phần mềm

108 509 0
Nghiên cứu và ứng dụng phương pháp đặc tả phần mềm bằng ví dụ trong phát triển phần mềm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C NG NG HƯ NG NG HƯ NG H Đ CT TR NG H T TRI N H N L ẬN ĂN THẠC SĨ HÀ NỘI, 2015 H N ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C H N NG HƯ NG NG NG HƯ NG H Đ CT TR NG H T TRI N H N Ngành: C Chuyên ngành: Mã số: 60480103 L ẬN ĂN THẠC SĨ NGƯỜI HƯỚNG ẪN KH A HỌC TS H HÀ NỘI, 2015 TƯỜNG INH i LỜI CA Đ AN T x ca đoa l vă ày ững nghiên cứu thân Những kiến thức lu vă ày thể hi n dựa vi c tổng hợp kiến thức từ nhi u nguồn, từ kinh nghi m thực tế ể c c ự c y đa vi c Mọ trích dẫn lu vă đ u tuân theo lu t sở hữu trí tu lu t quy n tác giả, li t kê mộ c c đ y đủ xác Tơi xin hồn tồn chịu trách nhi m với nội dung viết lu vă Học viên thực hi n T ày ii LỜI C N Tơi xin bày tỏ lịng biế sâ sắc đến tất mọ ườ ú đỡ, hỗ trợ thực hi n lu vă ày, x oa a Đ Học, T ườ Đ Học C N , Đ Học Q ốc G a Hà Nộ c o o đ u ki để thực hi n lu vă ày Tôi xin chân thành ú đỡ bảo t n tình Th y o, T ế s Hồ Tườ , ả v ướng dẫn Th y c ỉ bảo, đị ướng nghiên cứu thực hi n, hỗ trợ, t o nhữ đ u ki n tốt cho tơi suốt q trình thực hi đ tài Tơi xin bày tỏ lịng biế sâ sắc đế ữ ườ â o ađ đ c ố, M , Chồ o đ u ki , động viên, ủng hộ lúc khó k ă để tơi hồn thành lu vă ày Xin chân thành ất quý Th y, C bảo, rèn luy n, truy đ t tri thức, k ă , k ữ ă ọc vừa qua o oa, T ườ n tình m quý báu cho suố Học viên thực hi n T iii CL C MỞ ĐẦU 1 C ươ 1: Tổ q a v A le 1.1 Gớ v A le 1.2 Tuyên ngôn Agile 1.3 N 1.4 Đ c y 1.4.1 Tí lý A le A le l (I e a ve) 1.4.2 Tí ế (I c e e al) ế 1.4.3 Tí íc ứ ( ay 1.4.4 N ó ự ổ c ức l 1.4.5 Q ả lý ế íc ực óa (Evol o a y) – Adaptive) c ức ă (E cal ocess Co ol) 1.4.6 G ao ế ực (Face-to-face communication) ể ựa ị ( al e-based development) 1.4.7 1.5 TDD 10 1.5.1 Lịc sử 10 1.5.2 Ý ưở 11 1.5.3 Nguyên lý 11 1.5.4 Quy trình 14 1.5.5 C cụ ỗ ợ 15 í ụ 1.5.6 1.5.7 Đ 1.6 ọa 15 20 ATDD 21 1.6.1 Lịc sử 21 1.6.2 Ý ưở 21 1.6.3 Nguyên lý 22 1.6.4 Quy trình 24 1.6.5 C cụ ỗ ợ 26 í ụ 1.6.6 1.6.7 Đ ọa 27 28 iv 1.7 BDD 29 1.7.1 Lịc sử 29 1.7.2 Ý ưở 29 1.7.3 Nguyên lý 30 1.7.4 Quy trình 31 1.7.5 C cụ ỗ ợ 32 í ụ 1.7.6 ọa 32 1.7.7 Đ 1.8 38 Tổ C ươ ợ TDD, ATDD, DD 39 2: ươ đ c ả ằ ví ụ 41 2.1 Lịc sử 41 2.2 Ý ưở 2.3 Nguyên lý 42 41 2.3.1 X c đị v 2.3.2 Đ c ả y c ục 43 ộ c c cộ c o ó ực ự 46 2.3.3 M ọa sử ụ 2.3.4 Là ị đ c ả 50 2.3.5 Tự độ ẩ 2.3.6 T ẩ đị 2.3.7 L ục ế ví ụ 48 đị ườ àk x y c ay đổ đ c ả 51 55 óa l ố 57 2.4 Quy trình 58 2.5 C cụ ỗ ợ 63 2.6 í ụ 2.7 os 2.8 Đ 2.8.1 C c ọa 64 Đ c ả ằ ví ụ UML 64 65 c ức v c ày ay 65 2.8.2 N ữ lợ íc ươ đ c ả q a ví ụ a l để vượ q a c c c ức 66 2.8.3 Đ ể 2.8.4 Đ yế 67 độ ự 67 C ươ 3: T đ v c đưa ec f ca o y Exa le vào ực ế 69 v 3.1 Mục đíc 69 3.2 Q y ể c c ự 3.2.1 Đ c đ ể ự 69 3.2.2 M ể 3.2.3 M 3.2.4 3.3 70 ế ụ đ c ả q a ví ụ 74 ươ ụ vào o c c độ ự o c ty 77 T ực q ể eo ec f ca o y Exa le 78 3.3.1 Đố vớ 3.3.2 Đố vớ 3.3.3 Dự 3.4 II 69 Đ ữ ự ự đa " o q ể we s e ướ ể 78 ẫ lịc " 80 94 94 3.4.1 Đ ả 3.4.2 Đ độ â 94 ự 95 KẾT LUẬN 96 vi DANH M C TỪ VIẾT TẮT, THUẬT NGỮ ATDD Acceptance Test Driven Development BDD Behaviour Driven Development TDD Test Driven Development ODC Offshore Development Center UML Unified Modeling Language VSII Vietsoftware international vii NG TH ẬT NGỮ ANH IỆT Tế A Specification by example Tế Đ c ả ằ ví ụ ể ướ kể Behaviour Driven Development ể ướ Test Driven Development ể ướ kể Acceptance Test Driven Development User story Câ c y Iterative Tí Incremental T Evolutionary Tế Adaptive T íc Empirical Process Control Q ả lý ế Face to face communication G ao ế ực ể ựa l ế óa Value based development Team Độ Developer L ực v Bussiness analyst N Goal Mục ửv â íc v Scope Validation T ẩ Living document Tà l đị số í ụ k óa Key Example ị ể ể Tester ườ sử ụ Test case Ca k ể Cross functionality L Self organizing Tự ổ c ức c ức ă vụ ửc ấ v viii ANH C NG I H NH H NH H 1.1 Mộ số ươ A le H 1.2 C c â đo n l đ l p l i Agile H 1.3 Mức độ phổ biến c c ươ 2009 – 2010 [9] 10 H 1.4 TFD Cycle [13] 12 H 1.5 TDD cycle and Traditional Cycle [10] 13 H 1.6 TDD step [15] 14 H T o o ec k ể 15 H T lớ ss ess 16 H 1.9 Lớp nghi p vụ 18 H 1.10 Lớ đố ượng li u trung gian 19 H 1.11 Thêm tham chiếu 19 H 1.12 Acceptance - Test Driven Development (ATDD) Cycle [6] 23 H 1.13 Chu kỳ ản ATDD [12] 25 H 1.14 ATDD TDD [12] 26 H nh 1.15 ATDD mơ hình l p [12] 26 H 1.16 Mối liên h BDD, ATDD, TDD 40 H 2.1 Mơ hình specification by example [3] 42 H 2.2 M x c đị v ục 44 H 2.3 T o câ c y ườ sử ụ [3] 45 H M ọa sử ụ ví ụ 49 H 2.5 Mộ đ c tả tự động thực hi n với Concordion[3] 52 H 2.6 Mộ đ c tả thực với FitNesse[3] 52 H 3.1 M ể 70 H 3.2 T o o ec k ể 86 H 3.3 Cà đ s ec flow 86 H Cà đ s ec 87 H 3.5 T o f le fea e 87 H T o kịc ả 88 H T o s e c o kịc ả – ước 88 H T o s e c o kịc ả – ước 89 H 3.9 T o s e c o kịc ả – ước 89 H 3.10 C y kịc ả 91 83 and supporting rate 12 Để có Là ểl ộ T ố có ộ kế o c v lịc đă ể xe ợ lý ký lịc l c ữ v k c In order to make a reasonable traveling plan As a registered user I want to view a published schedule by other members 13 Để có ể c ọ lịc Là se ỗ ợ ộ Tộ ố có ợ ý ợ lý ểc ấ ộ lịc ấ ỗ ợ In order to choose the most suitable suggested schedule As a registered user I want to be able to accept a supported schedule 14 Để có Là ể lo ộ ỏ ữ lịc ườ T ố có (lịc ể ) ợ ýk ợ lý ợ ý ể lo ỏ ộ lịc ỗ ợ In order to eliminate unreasonably suggested schedules As a registered user I want to be able to eliminate a supported schedule ả 3.2 ả ớc Ước lượ c cy c c câ c y lượ a đ ớc L v c ườ ườ kế o c T q a v c ọ vớ k c chia làm s , ỗ s ớc L kế o c v sả ự ể we s e ướ ẩ đ a ựa ẫ lịc acklo , đưa a co số ước lượ v â lực c (Tươ đươ vớ ườ o g tháng) ể c cv l s độ ự ể o ể c c ế Ước v kế o c vụ sprint ể , ự s 84 Dựa vào o k ể sau: ố k c , ữ ỗ s N ữ câ c y 1: Câ c y 1,2 2: Câ c y 3, ớc T o a k a ắ xế c ỗ C ẩ ớc C c Họ vớ ví ụ c ị ả ắ v ắ ay ay ực ký vào ườ c ọ ọ v k vực ự s s c ọ o 2s đ ước ườ o ự c , kế q ả c c kịc đă y c c o ấ a c oc c , ú vế ảo l v y ọa cụ ể í ụ vớ c ức ă v c cộ câ c ườ ố ả c o c c câ c vớ c c ườ y y ườ c sau:     Email Address: Là ườ ắ ộc Max length=100 ký ự M le = ký ự Password: Là ườ ắ ộc Max length=32 characters, Min length=8 ý ự Password (Confirm): Validate the same as password Where you live: o Country: Da s c c c q ốc a ế o City: Da s c c c ố ựa q ốc a c ọ Ta có hai kịc ả sa : Scenario Outline: Register with invalid email Given I am on the registration page And I have completed the form with:< email >,< password >,< passwordConfirm >,< country >,< city > When I have clicked on the register button Then I will get an error message "Your email is invalid." Examples: | email | password | passwordConfirm | country| city | abc | 12345678 | 12345678 |Viet Nam| Ha Noi | 12345678 (101 ký ự) | 12345678 | 12345678 |Viet Nam| Ha Noi Scenario Outline: Register with valid email Given I am on the registration page And I have completed the form with:< email >,< password >,< passwordConfirm >,< country >,< city > 85 When I have clicked on the register button Then I will get an error message "Your email is invalid." Examples: | email | password | passwordConfirm | country| city | phuong@gmail.com | 12345678 | 12345678 |Viet Nam| Ha Noi | abcd | 12345678 | 12345678 |Viet Nam| Ha Noi | abcde | 12345678 | 12345678 |Viet Nam| Ha Noi | 12345678 (100 ký ự) | 12345678 | 12345678 |Viet Nam| Ha Noi ọ ảo ể ó ữ v T o ví ụ ợ ư: số ký í Dướ ă o lịc l để có ể có kịc ả vớ ữ ví ụ, k ể ửv có ví ụ ựa kế ức c c xe x vấ đ ộ k ể ,kể ửv có ể đưa a ữ ví ụ v k ể c c ườ ự ký ự, ký ự, 100 ký ự, 101 ký ự s ể vớ ọa v c ộ l ộ sce a o sa : v ụ kể ự độ vớ ộ Feature: CreateSchedule In order to create details schedule for traveller As as registered user I want create master schedule Scenario: Create with valid schedule Given Iam a registered user with user id is "050c16da-47b0-4311-9d7e40385d8ab6a4" And I have not any master schedule And I have completed the form create schedule with: | ThemOfTraveler | HandleName | CountryId | CityId | DepartingDate | ReturningDate | | Du lich Chau Au | PhuongBT | | 283 | 01/06/2015 | 01/06/2015 | When I have clicked on the Create button Then I see this master schedule in list my schedule a status of it is open M ườ ể :  Visual studio 2013  Microsoft SQL server 2008 R2 í T o ă ộ o lịc o ec để k ể ể c , c c ước àl v ày s sa : 86 H 3.2 T o o ec k ể Cà đ s ec flow: H 3.3 Cà đ s ec flow 87 Cà đ s ec : H T o ộ f le fea 3.4 Cà đ s ec e c o c ức ă H o lịc ể c ung: 3.5 T o f le fea e 88 ế c c kịc Tự độ ả c o í ă ày, c ỉ lấy ví ụ H 3.6 T o kịc ả o c c s e vớ c c kịc H ả : 3.7 T o s e c o kịc ả – ước ộ kịc ả : 89 F le s e s sa k H 3.8 T o s e c o kịc ả – ước H 3.9 T o s e c o kịc ả – ước o a sa : 90 using using using using using System; TechTalk.SpecFlow; BusinessLogicLayer; DataTranferObject; Microsoft.VisualStudio.TestTools.UnitTesting; namespace Travelling.Spec.Steps { [Binding] public class CreateScheduleSteps { private static String ownerId; private static CreateSchedule tmpSchedule; [Given(@"Iam a registered user with user id is ""(.*)""")] public void GivenIamARegisteredUserWithUserIdIs(string p0) { ScenarioContext.Current.Pending(); } [Given(@"I have not any master schedule")] public void GivenIHaveNotAnyMasterSchedule() { ScenarioContext.Current.Pending(); } [Given(@"I have completed the form create schedule with:")] public void GivenIHaveCompletedTheFormCreateScheduleWith(Table table) { ScenarioContext.Current.Pending(); } [When(@"I have clicked on the Create button")] public void WhenIHaveClickedOnTheCreateButton() { ScenarioContext.Current.Pending(); } [Then(@"I see this master schedule in list my schedule a status of it is open")] public void ThenISeeThisMasterScheduleInListMyScheduleAStatusOfItIsOpen() { ScenarioContext.Current.Pending(); } } } C y kịc ả ày: 91 H T để ày, v c ưa v ế 3.10 C y kịc ã c o kịc ả ả kế q ả s sa : SpecRun: running tests in D:\O E\Cao hoc\Luan van\Source Code example\TravellingApp\Travelling.Spec\bin\Debug\Travelling.Spec.dll Profile: Default Evaluation mode: test execution starts in seconds (this delay is removed in the registered version) Scenario: Create with valid schedule in CreateSchedule -> Pending on thread #0 Result: pending tests Total: Succeeded: Ignored: Pending: Skipped: Failed: kể Gờvế ãkể ửc o ày c y đú using using using using using ữ v ày, sa s v ế mã l p trình để System; TechTalk.SpecFlow; BusinessLogicLayer; DataTranferObject; Microsoft.VisualStudio.TestTools.UnitTesting; namespace Travelling.Spec.Steps { [Binding] public class CreateScheduleSteps { ữ 92 private static String ownerId; private static CreateSchedule tmpSchedule; [Given(@"Iam a registered user with user id is ""(.*)""")] public void GivenIamARegisteredUserWithUserIdIs(string p0) { //ScenarioContext.Current.Add("OwnerId", p0); ownerId = p0; } [Given(@"I have not any master schedule")] public void GivenIHaveNotAnyMasterSchedule() { try { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //string userId = ScenarioContext.Current["OwnerId"].ToString(); bll.DeleteAllByUser(ownerId); } catch (Exception) { string msg = "Loi"; throw; } } [Given(@"I have completed the form create schedule with:")] public void GivenIHaveCompletedTheFormCreateScheduleWith(Table table) { CreateSchedule model = new CreateSchedule(); foreach (var row in table.Rows) { if (row["ThemOfTraveler"] != null) model.ThemOfTraveler = row["ThemOfTraveler"]; if (row["HandleName"] != null) model.HandleName = row["HandleName"]; if (row["CountryId"] != null) model.CountryId = row["CountryId"]; if (row["CityId"] != null) model.CityId = row["CityId"]; if (row["DepartingDate"] != null) model.DepartingDate = row["DepartingDate"]; if (row["ReturningDate"] != null) model.ReturningDate = row["ReturningDate"]; model.OwnerId = ownerId; model.Status = Status.Open.ToString(); //ScenarioContext.Current.Add("newSchedule", model); tmpSchedule = model; break; } } [When(@"I have clicked on the Create button")] public void WhenIHaveClickedOnTheCreateButton() { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //CreateSchedule model =(CreateSchedule) 93 ScenarioContext.Current["newSchedule"]; ModelResults result = bll.Create(tmpSchedule); if (result.Result == Result.Fail) Assert.Fail(); } [Then(@"I see this master schedule in list my schedule a status of it is open")] public void ThenISeeThisMasterScheduleInListMyScheduleAStatusOfItIsOpen() { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //Select by name //var listSchedule = bll.GetByUser(ScenarioContext.Current["OwnerId"].ToString()); var listSchedule = bll.GetByUser(ownerId); //Check status if (listSchedule == null || listSchedule.Count > 1) Assert.Fail(); Assert.AreEqual(Status.Open, listSchedule[0].Status); } } } ế ãl để k ể có ể c y ass, kế q ả sa : Run test started -SpecRun Evaluation Mode: Please purchase at http://specrun.com to remove test execution delay SpecRun: running tests in D:\O E\Cao hoc\Luan van\Source Code example\TravellingApp\Travelling.Spec\bin\Debug\Travelling.Spec.dll Profile: Default Evaluation mode: test execution starts in seconds (this delay is removed in the registered version) Scenario: Create with valid schedule in CreateSchedule -> Succeeded on thread #0 Result: all tests passed Total: Succeeded: Ignored: Pending: Skipped: Failed: Execution Time: 00:00:00.8825697 Report file: file:///D:\O%20E\Cao%20hoc\Luan%20van\Source%20Code%20example\TravellingApp\TestResults\Travell ing.Spec_Default_2015-05-27T205933.html Log file: file:///D:\O%20E\Cao%20hoc\Luan%20van\Source%20Code%20example\TravellingApp\TestResults\Travell ing.Spec_Default_2015-05-27T205933.log ========== Run test finished: run (0:00:10.0001053) ========== ớc 7: Mọ ườ Đị kỳ ỗ v c C c o c o s oà ữ v c o c o kế q ả để ế ục ày ọ l đ ờs vào c c vấ đ : Đ o l ao đổ ế v c k oả 15 ữ eo; có ữ ú để o c o kế q ả c so vớ l ao đổ ước; o q 94 ớc Tổ ợ kế q ả Đây ức a a ước lượ c ớc Xe ổ q v ữ v c l có ể đ c ỉ l x để oà c c v c ố , o c đẩy l c o v ớc 10 Đ , ựá t 3.3.3 ể đồ được, ữ v c c ưa được, ấ ó c v c oà l sa ả l có a ọ ay đổ s ị l ệm Hi n t i công ty VSII đa ực hi n thử nghi m dự án ch y từ đ u theo quy đưa a, dự án mức nội nên khách hàng thành viên nghiên cứu phát triển công ty, ườ đưa a ý ưởng v sản phẩm Đội dự án gồm thành viên: quản lý dự án, kiểm thử viên, nhà phân tích nghi p vụ, l p trình viên M ường công cụ áp dụng:  Visual tudio 2013, Microsoft SQL 2008 R2  Specflow, Spec run, WaitN, NUnit sa : Tuy nhiên nội dung áp dụng g p số h n chế - Vi c họp dự để đưa a scenario ví dụ khơng u c khách hàng tham gia trực tiếp - Đội dự án họp, đưa a ống kịch ví dụ a íc vụ xem xét l , ế c bổ sung ho c yêu c u chỉnh sửa c độ ự để â íc q yế đị 3.4 Đá 3.4.1 Đá ả t â c c ẫ Đ c ả ằ ví ụ để ổ s c oc c đ kể v c ấ lượ sả ẩ , ả c í ảo , l , k ể v c ụ vẫ c ưa để o ữ vấ đ : - ụ có T â ọ c l độ a để ể a a ườ ế v c cc ể , đào o x y cụ k ể k c c c đe T y v c ấ ,c có 95 C k ắc ục - T yế ục k c - Đ o ov kể 3.4.2 Đá ược đ ể ụ : c c ự độ để có c oc c v o a a c c ự ườ x y độ dự c ụ v , ữa c ã l Để ữ ụ Đ c ả ằ ví ụ â a ịc o ọ ữ kế c có ướ ố - Đào o v c c c - Nâ c - Có c : cụ k ể cao ă lực c c ưk ă a a cao c ấ lượ ã c c l ức v k ể để ự đả ảo c ấ lượ ể đú đắ , k ả ườ x y ườ x y v o k c ự ằ v c đào ov k ấ 96 KẾT L ẬN Q aq c c ươ ọa c o ằ ví ụ vào ực c ụ C ỉ số v - Để l ữ leaka e C ấ lượ vă ắ õ ý ưở TDD, ATDD, DD, Đ ,đ c Đ c ả ằ ví ể c y , y lý, q y c ả ằ ví ụ Có ví ụ ụ T ụ Đ c ả đa c c c độ sả ả íc cực c ấ lượ đ ã c c v (Customer Satisfaction) ă o ự Gả c íkể ử, o k ể ửv k í kể ửv , có a c o v c k ể lượ sả ẩ c có ụ - C ưa có a - C ưa độ ao sâ v c c c …) ục vụ c o - C c - C ưa côn cụ ỗ ợ q ả lý y ợ q ả lý l , ể đồ câ c y ườ v ốc độ ườ ă ả kể ă ,v c a ữ ẩ : kể v l k c v ức độ ể y c ục đ ọ T y ươ đ - ể đe - - l ,k có ữ ằ ay , ă ,đ c lỗ sa ,c c ấ c ế: x y k c cụ k ể ự độ ( í ụ ụ Đ c ả ằ ví ụ o độ ự c ưa ể c c ov c cc cụ k ể kể ự ự độ c ( í ụ eclo : c cụ ỗ , ữ vớ c c ví ) Do v c ụ c ưa ế để Để ụ để đe l lợ íc lớ ấ, ế eo s sâ v c c c cụ kể ự độ , c cụ q ả lý y c , xây ự l l để có ể ướ ẫ , đào oc c v k c o c y để â ộ v c ụ , o đ c o c c c ự T q aq , đúc ú k , ực c ỉ v c l ụ Đ c ả ằ ví ụ vào c c ự ụ để đ q ả cao ấ 97 T I LIỆ THA KH Tiếng anh Robert C.Martin and Mical Martin(2006), Agile Principles, Patterns, and Practices in C# , pp 27-36 Kent Beck (2002), Test - Driven Development By Example , pp Gojko Adzic (2011), SPECIFICATION BY EXAMPLE How successful team deliver e sof wa e , pp 3-197 Mario E.Moreira, Michael Lester, Steve Holzner (2010), A le Fo D Ma k s Ga e (2012), ATDD D ve Develo e y Exa Elisabeth Hendrickso (200 ), D v pp le: A Develo ac cal G e w es , pp e o Acce a ce Tes Tes : ATDD a TDD , e (2011), Lea -Agile Acceptance Test-Driven Development: Better of wa e T o Colla o a o , pp 2-6 John Ferguson Smart (2014), BDD in Action: Behaviour Driven Development for the whole software lifecycle , pp 12-30 Website http://www.hanoiscrum.net/hnscrum/learning/106-tongquanAgile 10 http://derekbarber.ca/blog/2012/03/27/why-test-driven-development 11 http://blog.codeship.com/behavior-driven-development/ 12 http://www.methodsandtools.com/archive/archive.php?id=72p10 ( Part – Part 10) 13 http://agiledata.org/essays/tdd.html 14 http://en.wikipedia.org/wiki/Behavior-driven_development 15 http://www.softwaresprint.com/2012/11/missing-step-in-test-driven-development.html ... Ph n m m Vi t Quốc Tế, lựa chọ đ tài "Nghiên cứu ứng dụ p p áp đặc tả phần mềm ví dụ phát triển phần mềm" Mục tiêu đề tài  Nghiên cứu tìm hiểu nhằm hiể õ c c ươ : ể ướ k ể (TDD – Test Driven Development),... phát triển ph n m m linh ho t Agile Trình bày nguyên lý, quy trình c c ươ phát triển linh ho t: TDD, ATDD, BDD  C Đặc tả ví dụ: Trình bày khái ni ả , ý ưởng, nguyên lý, quy trình ươ Đ c tả ví. .. "Đ c tả ví dụ" , mộ ươ t vời giải vấ đ ả k ể ự Với mục đíc cứu, thử nghi đ xuất cách thức để triể k a ươ pháp thực tiễn công ty Cổ ph n Ph n m m Vi t Quốc Tế, lựa chọ đ tài "Nghiên cứu ứng dụ p

Ngày đăng: 03/11/2015, 17:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan