SlideShare una empresa de Scribd logo
1 de 43
CÔNG NGHỆ PHẦN MỀM NÂNG CAO
 (Advance to Software Engineering)
Mục đích, yêu cầu môn học
• 30 tiết + 1 tiểu luận môn học
• Cần những kiến thức căn bản về CNTT
• Cung cấp các kiến thức tổng quan về
  Công nghệ phần mềm (CNPM)
• Cung cấp kiến thức chuyên sâu về chất
  lượng, đảm bảo chất lượng phần mềm,
  kỹ thuật kiểm thử...
Tài liệu tham khảo
• R. Pressman, Software Engineering: A Practioner’s
  Approach. 5th Ed., McGraw-Hill, 2001
• R. Pressman, Kỹ nghệ phần mềm. Tập 1, 2, 3. NXB
  Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung
  Việt)
• I. Sommerville, Software Engineering. 5th Ed.,
  Addison-Wesley, 1995
• Các tài liệu điện tử khác
Giới thiệu tổng quan về CNPM
     Phần mềm là gì ?
                 Nhóm các
                 Kỹ thuật,
               Phương pháp
                   luận



        Nhóm các         Nhóm các
       chương trình       tư liệu



            Kinh nghiệm kỹ sư,
                know-how
Thế nào là phần mềm tốt ?

   Yếu     Hiệu suất xử lý           Đặc
    tố                               trưng
   khái                              gần
   niệm                              đây
   phần              Tính dễ hiểu
   mềm
    tốt
          Các chỉ tiêu cơ bản


                  Thời gian
            (Phần cứng phát triển)
Các chỉ tiêu cơ bản của phần mềm

• Phản ánh đúng yêu cầu người dùng (tính
  hiệu quả - effectiveness)
• Chứa ít lỗi tiềm tàng
• Giá thành không vượt quá giá ước lượng
  ban đầu
• Dễ vận hành, sử dụng
• Tính an toàn và độ tin cậy cao
Hiệu suất xử lý cao
• Hiệu suất thời gian tốt (efficiency):
  – Độ phức tạp tính toán thấp (Time complexity)
  – Thời gian quay vòng ngắn (Turn Around Time:
    TAT)
  – Thời gian hồi đáp nhanh (Response time)
• Sử dụng tài nguyên hữu hiệu: CPU, RAM,
  HDD, Internet resources, . . .
Tính dễ hiểu
•   Kiến trúc và cấu trúc thiết kế dễ hiểu
•   Dễ kiểm tra, kiểm thử, kiểm chứng
•   Dễ bảo trì
•   Có tài liệu (mô tả yêu cầu, điều kiện kiểm
    thử, vận hành, bảo trì, FAQ, . . .) với chất
    lượng cao
Tính dễ hiểu: chỉ tiêu ngày càng quan trọng
Các ứng dụng phần mềm
•   Phần mềm hệ thống (System SW)
•   Phần mềm thời gian thực (Real-time SW)
•   Phần mềm nghiệp vụ (Business SW)
•   Phần mềm tính toán KH&KT (Eng.&Scie. SW)
•   Phần mềm nhúng (Embedded SW)
•   Phần mềm máy cá nhân (Personal computer SW)
•   Phần mềm trên Web (Web-based SW)
•   Phần mềm trí tuệ nhân tạo (AI SW)
So sánh chi phí cho
          Phần cứng và Phần mềm
 %
100

 80 -
           Phần cứng
                        Phát triển
 60
      -
                                            Phần
 40                                         mềm
      -
                         Bảo trì
 20
      -
 0+               +      +            +
 1955            1970   1985         2000
So sánh chi phí cho các pha
            8   7
        7                      Þ
                         X¸ c ® nh yª cÇ u 3%
                                     u
    5                    § Æ t¶ 3%
                            c
3
                         ThiÕ t kÕ 5%
3
                         L Ëp tr× 7%
                                 nh
                         KiÓ thö mÇ ® 8%
                            m        un
                         KiÓ thö tÝ hÓp 7%
                            m     ch
                         B¶o tr× 67%
                    67
Backlog tại Nhật Bản năm 1985
         9.4
               15.5


                             D ­ í i 6 th¸ ng 15.5%
18.4
                             6 th¸ ng ®Õ n 1 n® 24.7%
                                               m

                             Tõ 1 ®Õ n 2 n® 32.5%
                                           m
                      24.7
                             Tõ 2 ®Õ n 3 n® 18.4%
                                           m

                             Trª 3 n® 9.4%
                                n    m

       32.5
Hình thái sản xuất Phần mềm
   Đưa ra các kỹ thuật, phương pháp luận

   Ứng dụng thực tế vào từng quy trình

   Cải biên, biến đổi vào từng sản phẩm và
   công cụ phần mềm (máy tính hóa từng phần)

   Tổng hợp, hệ thống hóa cho từng loại công cụ
   (Máy tính hóa toàn bộ quy trình sản xuất phần mềm)


   Hướng tới sản xuất phần mềm tự động
Định nghĩa CNPM
• Pressman [1995]: CNPM là bộ môn tích hợp cả quy
  trình, các phương pháp, các công cụ để phát triển phần
  mềm máy tính
• Sommerville [1995]: CNPM là lĩnh vực liên quan đến lý
  thuyết, phương pháp và công cụ dùng cho phát triển
  phần mềm
• K. Kawamura [1995]: CNPM là lĩnh vực học vấn về các
  kỹ thuật, phương pháp luận công nghệ học (lý luận và
  kỹ thuật được hiện thực hóa trên những nguyên tắc,
  nguyên lý nào đó) trong toàn bộ quy trình phát triển
  phần mềm nhằm nâng cao cả chất và lượng của sản xuất
  phần mềm
Định nghĩa CNPM (tiếp)
Công nghệ phần mềm là lĩnh vực khoa học
về các phương pháp luận, kỹ thuật và công
cụ tích hợp trong quy trình sản xuất và vận
hành phần mềm nhằm tạo ra phần mềm với
những chất lượng mong muốn [Software
Engineering is a scientific field to deal with
methodologies, techniques and tools integrated in
software production-maintenance process to
obtain software with desired qualities]
Công nghệ trong CNPM ?
(1) Như các ngành công nghệ khác, CNPM cũng lấy
    các phương pháp khoa học làm cơ sở
(2) Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo
    trì phần mềm đã được hệ thống hóa hóa thành
    phương pháp luận và hình thành nên CNPM
(3) Toàn bộ quy trình quản lý phát triển phần mềm
    gắn với khái niệm vòng đời phần mềm, được mô
    hình hóa với những kỹ thuật và phương pháp
    luận trở thành các chủ đề khác nhau trong CNPM
Công nghệ trong CNPM ? (tiếp)
(4) Trong vòng đời phần mềm không chỉ có chế tạo
    mà bao gồm cả thiết kế, vận hành và bảo dưỡng
    (tính quan trọng của thiết kế và bảo dưỡng)
(5) Trong khái niệm phần mềm, không chỉ có chương
    trình mà cả tư liệu về phần mềm
(6) Cách tiếp cận công nghệ học (khái niệm công
    nghiệp hóa) thể hiện ở chỗ nhằm nâng cao năng
    suất (tính năng suất) và độ tin cậy của phần mềm,
    đồng thời giảm chi phí giá thành
Vòng đời phần mềm
        (Software life-cycle)
• Vòng đời phần mềm là giai đoạn tính từ khi
  phần mềm được sinh (tạo) ra cho đến khi chết
  đi (từ lúc hình thành đáp ứng yêu cầu, vận
  hành, bảo dưỡng cho đến khi loại bỏ không đâu
  dùng)
• Quy trình phần mềm (vòng đời phần mềm)
  được phân chia thành các pha chính: phân tích,
  thiết kế, chế tạo, kiểm thử, bảo trì. Biểu diễn
  các pha có khác nhau theo từng người
Mô hình vòng đời phần mềm của Boehm
  Xác định yêu
  cầu hệ thống
  Kiểm chứng

            Xác định yêu
            cầu phần mềm
             Kiểm chứng

                       Thiết kế
                        căn bản
                      Kiểm chứng

                                Thiết kế
                                 chi tiết
                               Kiểm chứng


                                            Lập trình

                                             Gỡ lỗi


                                                        Kiểm thử

                                                        Chạy thử

                                                                Vận hành
                                                                 Bảo trì
                                                              Kiểm chứng lại
Barry Boehm
              TRW Professor of Software Engineering, Computer Science
              Department Director, USC Center for Software Engineering
              (University of Southern California)

• His current research interests focus on value-based software
  engineering, including a method for integrating a software
  system's process models, product models, property models, and
  success models called Model-Based (System) Architecting and
  Software Engineering (MBASE). His contributions to the field
  include the Constructive Cost Model (COCOMO), the Spiral
  Model of the software process, the Theory W (win-win) approach
  to software management and requirements determination, the
  foundations for the areas of software risk management and
  software quality factor analysis, and two advanced software
  engineering environments: the TRW Software Productivity
  System and Quantum Leap Environment.
Suy nghĩ mới về vòng đời phần mềm

(1) Pha xác định yêu cầu và thiết kế có vai trò
    quyết định đến chất lượng phần mềm, chiếm
    phần lớn công sức so với lập trình, kiểm thử
    và chuyển giao phần mềm
(2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc
    nhiều vào suy nghĩ trên xuống (top-down) và
    trừu tượng hóa, cũng như chi tiết hóa
(3) Pha thiết kế, chế tạo thì theo trên xuống, pha
    kiểm thử thì dưới lên (bottom-up)
Suy nghĩ mới về vòng đời phần mềm
(4) Trước khi chuyển sang pha kế tiếp phải đảm bảo
    pha hiện nay đã được kiểm thử không còn lỗi
(5) Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa
    các pha nhằm đảm bảo không gây lỗi cho pha sau
(6) Tư liệu của mỗi pha không chỉ dùng cho pha sau,
    mà chính là đối tượng quan trọng cho kiểm tra
    và đảm bảo chất lượng của từng quy trình và của
    chính phần mềm
Suy nghĩ mới về vòng đời phần mềm
(7) Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư
    liệu cho từng pha, nhằm đảm bảo chất lượng
    phần mềm
(8) Thao tác bảo trì phần mềm là việc xử lý quay
    vòng trở lại các pha trong vòng đời phần mềm
    nhằm biến đổi, sửa chữa, nâng cấp phần mềm
Các phương pháp luận và
               kỹ thuật cho từng pha
                                                    Ph­ ¬ ph¸ p, kü
                                                         ng
 Tª pha
   n                 Néi dung nghiÖ vô
                                   p
                                                         thuËt
      Þ
X¸ c ® nh     § Æ t¶ yª cÇ u ng­ êi dï ng
                  c       u                        Ph© tÝ cÊu tróc
                                                       n ch
yª cÇ u
  u                   Þ
              X¸ c ® nh yª cÇ u phÇ n mÒ
                            u                  m   hãa
              ThiÕ t kÕ c¬ b¶ phÇ n mÒ
                               n             m
ThiÕ t kÕ                                            ThiÕ t kÕ cÊu tróc
              ThiÕ t kÕ cÊu tróc ngoµi cña phÇ n
hÖthèng                                              hãa
              mÒ   m
                                                     L Ë tr × cÊu tróc
                                                        p    nh
              L µ thiÕ t kÕ chi tiÕ t: ThiÕ t kÕ cÊu
ThiÕ t kÕ                                            Ph­ ¬ ph¸ p
                                                           ng
              tróc bª trong cña phÇ n mÒ
                       n                        m
ch­ ¬ng                                              J ackson
              ( ® n vÞch­ ¬ tr × hoÆ
                  ¬          ng      nh      c
tr ×
   nh                                                Ph­ ¬ ph¸ p
                                                           ng
              mÇ ®  un)
                                                     Warnier
                                                     M· hãa cÊu tróc
L Ë tr ×
   p   nh     M· hãa bëi ngÇ n ng÷ lË tr × p     nh
                                                     hãa
§ ¶ b¶
   m     o    K iÓ tra chÊt l­ Ó phÇ n mÒ
                   m                ng            m Ph­ ¬ ph¸ p kiÓ
                                                           ng          m
chÊt l­ Óng   ® ph¸ t triÓ
                ·           n                        thö ch­ ¬ tr ×
                                                               ng    nh
              Sö dông, vË hµnh phÇ n mÒ
                            n                    m
VË hµnh
  n
              ® ph¸ t triÓ BiÕ n ® i, ® u
                ·           n.          æ iÒ         C h­ a cô thÓ
B¶ tr×
  o
              chØ phÇ n mÒ
                   nh           m
Capability Maturity Model (CMM) by SEI
       (Software Engineering Institut Carnegie Mellon University)
        Mô hình trưởng thành khả năng
• Mức 1 : Khởi tạo: vài quá trình được định nghĩa.
  Thành công phụ thuộc vào công sức riêng lẻ
• Mức 2 : Lặp lại: Quá trình quản lý các dự án cơ
  sở. Lặp lại các thành công trước đó trên các dự
  án với những ứng dụng tương tự
• Mức 3 : Xác định. Sử dụng các phiên bản có tài
  liệu và đã ứng dụng của quá trình của tổ chức để
  phát triển và hỗ trợ phần mềm
•     Level 1: Initial (Khởi đầu). Few processes are defined. Success depends on individual effort
•     Level 2: Repeatable (Lặp lại). Basic project management processes. Repeat earlier succeses on projects with similar
      applications
•     Level 3: Defined (Xác định). Use a documented and approved version of the organization’s process for developing
      and supporting software
Capability Maturity Model CMM
• Mức 4 : Quản trị. Cả quá trình sx và sản phẩm
  phần mềm được hiểu rõ định lượng và sử dụng
  có kiểm soát một cách cân nhắc chi tiết.
• Mức 5 : Tối ưu hóa. Quá trình cải tiến liên tục
  được cho phép bởi sự phản hồi định lượng từ
  quá trình phản hồi và từ việc kiểm tra những ý
  tưởng và những công nghệ có tính chất đổi mới
•   Level 4: Managed (Quản trị). Both SW process and products are quantitatively understood and
    controlled using detailed measures
•   Level 5: Optimizing (Tối ưu). Continuous process improvement is enabled by quantitative
    feedback from the process and from testing innovative ideas and technologies
18 key process areas (KPAs) for CMM
1 . SW configuration     7. Peer reviews
    management           8. Intergroup
2. SW quality                  coordination
    assurance            9. SW product
                                                                      1 6.
3. SW subcontract                                                       Process
                               engineering
    management                                      1 4.                change
                         1 0. Integrated SW
4. SW project tracking                                 SW quality       management
                                management
    and oversight        (hoà nhập)                      Management   1 7.
(theo dõi, giam sát)                                (chất lượng)        Technology
                         1 1 . Training program
5. SW project                                       1 5.                change
                         1 2. Organization
    planning                                           Quantitative     management
                               process definition
6. Requirements          1 3. Organization             process        1 8.
    management                                         management       Defect
                               process focus
LEVEL 2: Repeatable                                 (định lượng)        prevention
                                                                      (ngăn ngừa lối)
                         LEVEL 3: Defined
                                       LEVEL 4: Managed
                                                  LEVEL 5: Optimizing
Mô hình tuyến tính


Phân tích         Thiết kế         Lập trình        Kiểm thử

    Công nghệ học
  Hệ thống / Thông tin

            Điển hình là mô hình vòng đời cổ điển
            (mô hình thác nước) Classic life cycle /
            waterfall model: là mô hình hay được dùng nhất
MÔ HÌNH THÁC NƯỚC
Xác định yêu cầu


                    Thiết kế phần
                   mềm và hệ thống


                                     Thực hiện và thử
                                      nghiệm đơn vị


                                                        Tích hợp và thử
                                                           nghiệm hệ


                                                                          Vận hành và
                                                                            bảo trì
Mô hình chế thử (Prototyping model)



       Nghe Khách                    Tạo / sửa
        trình bày                    bản mẫu




                    Khách kiểm tra
                      bản mẫu
Mô hình phát triển ứng dụng nhanh
 (Rapid Application Development: RAD)
• Là quy trình phát triển phần mềm gia tăng, tăng dần
  từng bước (Incrimental software development) với mỗi
  chu trình phát triển rất ngắn (60-90 ngày)
• Xây dựng dựa trên hướng thành phần (Component-
  based construction) với khả năng tái sử dụng (reuse)
• Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo
  các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình
  xử lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business,
  Data, Process, Appl. Generation, Test)
Team #3
                                 Business

 Mô hình
                                 Modeling
                    Team #2           Data
                                     Modeling
                     Business
phát triển          Modeling
                             Data
                                             Process
                                            Modeling
                                                  Application
             Team #1
ứng dụng      Business
                            Modeling
                                    Process
                                                  Generation
                                                         Testing &

 nhanh
                                                          Turnover
             Modeling             Modeling
                      Data             Application
                                        Generation
                     Modeling
                                               Testing &
                             Process           Turnover
                             Modeling
                                      Application
                                      Generation
                                               Testing &
                                               Turnover

                         60 - 90 days
Các mô hình tiến hóa:
 gia tăng, xoắn ốc, xoắn WINWIN, ...
• Phần lớn các hệ phần mềm phức tạp đều tiến hóa
  theo thời gian: môi trường thay đổi, yêu cầu phát
  sinh thêm, hoàn thiện thêm chức năng, tính năng
• Các mô hình tiến hóa (evolutionary models) có tính
  lặp lại. Kỹ sư phần mềm tạo ra các phiên bản
  (versions) ngày càng hoàn thiện hơn, phức tạp hơn
• Các mô hình: incremental, spiral, WINWIN spiral,
  concurrent development model
Mô hình gia tăng
    (The incremental model)
• Kết hợp mô hình tuần tự và ý tưởng lặp
  lại của chế bản mẫu
• Sản phẩm lõi với những yêu cầu cơ bản
  nhất của hệ thống được phát triển
• Các chức năng với những yêu cầu khác
  được phát triển thêm sau (gia tăng)
• Lặp lại quy trình để hoàn thiện dần
Mô hình gia tăng
                                Gia tăng 1

Ph©n tÝ ch    ThiÕt kÕ      LËp tr× nh       KiÓ thö
                                                m          Xuất xưởng 1
    System/info.
    Engineering


 Gia tăng 2        Ph©n tÝ ch   ThiÕt kÕ     LËp tr× nh      KiÓ thö
                                                                m         Xuất xưởng 2



                   Gia tăng 3     Ph©n tÝ ch    ThiÕt kÕ     LËp tr× nh   KiÓ thö Xuất xưởng 3
                                                                             m



                                Gia tăng 4      Ph©n tÝ ch     ThiÕt kÕ   LËp tr× nh   KiÓ thö
                                                                                          m
                                                                                                 XX 4


                                   Calendar time
Mô hình xoắn ốc (spiral)
                         Lập kế hoạch
                                         Phân tích rủi ro


            Giao tiếp
            khách hàng
Khái niệm                                            Kỹ nghệ


Làm mới

Nâng cấp
                   Khách hàng           Xây dựng &
                   đánh giá             Xuất xưởng
Bảo trì
Mô hình xoắn ốc WIN-WIN
                      2. Xác định điều kiện   3a. Hòa hợp điều kiện thắng
                         thắng của cổ đông    3b. Thiết lập mục tiêu mức tiếp
                                                  và các ràng buộc, dự kiến

1. Xác định mức
   tiếp của cổ đông

                                                            4. Đánh giá tiến trình và
                                                               dự kiến sản phẩm,
                                                               giải quyết rủi ro




            7. Xét duyệt và đánh giá
                6. Kiểm định sản phẩm         5. Xác định mức tiếp của
                   và quy trình                  sản phâm và quy trình,
                                                 kể cả phân chia nhỏ
Mô hình phát triển đồng thời
(The concurrent development model)
• Xác định mạng lưới những hoạt động đồng thời
  (Network of concurrent activities)
• Các sự kiện (events) xuất hiện theo điều kiện vận
  động trạng thái trong từng hoạt động
• Dùng cho mọi loại ứng dụng và cho hình ảnh khá
  chính xác về trạng thái hiện trạng của dự án
• Thường dùng trong phát triển các ứng dụng
  khách/chủ (client/server applications): system and
  componets are developed concurrently
Mô hình theo thành phần
      (Component-based model)
• Gắn với những công nghệ hướng đối tượng (Object-
  oriented technologies) qua việc tạo các lớp (classes)
  có chứa cả dữ liệu và giải thuật xử lý dữ liệu
• Có nhiều tương đồng với mô hình xoắn ốc
• Với ưu điểm tái sử dụng các thành phần qua Thư
  viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá
  thành, chỉ số sản xuất 26.2/16.9
• Với UML như chuẩn công nghiệp đang triển khai
Mô hình theo thành phần
             Lập kế hoạch
                            Phân tích rủi ro                Xác định
                                                          thành phần
                                                            ứng viên
Giao tiếp
khách hàng
                                                 Xây dựng              Tìm
                                               bước lặp thứ n     thành phần
                                                của hệ thống       từ thư viện



                                                    Đặt                Lấy
                                                thành phần         thành phần
                                                vào thư viện          nếu có
                            Kỹ nghệ
       Khách hàng           Xây dựng &                     Xây dựng
       đánh giá             Xuất xưởng                    thành phần
                                                           nếu kh.có
Mô hình hình thức
           (Formal model)
• Còn gọi là CNPM phòng sạch (Cleanroom SE)
• Tập hợp các công cụ nhằm đặc tả toán học phần
  mềm máy tính từ khâu định nghĩa, phát triển
  đến kiểm chứng
• Giúp kỹ sư phần mềm phát hiện và sửa các lỗi
  khó
• Thường dùng trong phát triển SW cần độ an
  toàn rất cao (y tế, hàng không, . . .)
Mô hình hình thức: Điểm yếu ?
• Cần nhiều thời gian và công sức để phát
  triển
• Phí đào tạo cao vì ít người có nền căn bản
  cho áp dụng mô hình hình thức
• Khó sử dụng rộng rãi vì cần kiến thức
  toán và kỹ năng của khách hàng
Các kỹ thuật thế hệ 4
  (Fourth generation techniques)
• Tập hợp các công cụ cho phép xác định đặc
  tính phần mềm ở mức cao, sau đó sinh tự
  động mã nguồn dựa theo đặc tả đó
• Các công cụ 4GT điển hình: ngôn ngữ phi
  thủ tục cho truy vấn CSDL; tạo báo cáo; xử
  lý dữ liệu; tương tác màn hình; tạo mã
  nguồn; khả năng đồ họa bậc cao; khả năng
  bảng tính; khả năng giao diện Web; vv

Más contenido relacionado

La actualidad más candente

Chuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtChuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtnghia_790a
 
Chuong7 linh
Chuong7 linhChuong7 linh
Chuong7 linhẢo Ảo
 
Cong Nghe Phan Mem Dhbk
Cong Nghe Phan Mem   DhbkCong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem Dhbkdinhphu
 
Bảo trì phần mềm
Bảo trì phần mềmBảo trì phần mềm
Bảo trì phần mềmNguyễn Anh
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Thuyet Nguyen
 
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAGiải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAPopping Khiem - Funky Dance Crew PTIT
 
Slide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmSlide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmNguyễn Anh
 
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQA
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQANgân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQA
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQAPopping Khiem - Funky Dance Crew PTIT
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4caolanphuong
 
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan memTIen Le
 
Các kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmCác kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmNguyễn Anh
 
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNguyễn Anh
 
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...Nguyễn Anh
 

La actualidad más candente (20)

Spiral model
Spiral modelSpiral model
Spiral model
 
Chuong 3. cnpm
Chuong 3. cnpmChuong 3. cnpm
Chuong 3. cnpm
 
Chuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtChuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkht
 
Chuong 1. cnpm
Chuong 1. cnpmChuong 1. cnpm
Chuong 1. cnpm
 
Mở đầu
Mở đầuMở đầu
Mở đầu
 
Chuong7 linh
Chuong7 linhChuong7 linh
Chuong7 linh
 
Cong Nghe Phan Mem Dhbk
Cong Nghe Phan Mem   DhbkCong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem Dhbk
 
Bảo trì phần mềm
Bảo trì phần mềmBảo trì phần mềm
Bảo trì phần mềm
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
 
chuong 3
chuong 3chuong 3
chuong 3
 
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQAGiải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
Giải Ngân Hàng Đảm Bảo Chất Lượng Phần Mềm PTIT - SQA
 
Slide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềmSlide Các kỹ thuật bảo trì phần mềm
Slide Các kỹ thuật bảo trì phần mềm
 
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQA
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQANgân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQA
Ngân hàng đảm bảo chất lượng phần mềm PTIT - Chuẩn SQA
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan mem
 
Lecture01
Lecture01Lecture01
Lecture01
 
Các kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmCác kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềm
 
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềmNghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
Nghiên cứu chuẩn ISO/IEC 9126 trong đánh giá chất lượng phần mềm
 
tài liệu test
tài  liệu testtài  liệu test
tài liệu test
 
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
 

Similar a Cnpm nangcao

Kĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmKĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmPhạm Trung Đức
 
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggHngPhmTh35
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuVan Pham
 
Itee Vn
Itee VnItee Vn
Itee Vnhunglt
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptxTunTrung15
 
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcaseTrần Đức Anh
 
Bai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuBai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuVan Pham
 
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web site
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web siteđề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web site
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web sitejackjohn45
 
Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Minh Tri Lam
 
Week 03-software process
Week 03-software processWeek 03-software process
Week 03-software processNguyen Tran
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMNguyễn Anh
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuVan Pham
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuJenny Nguyen
 
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế Nguyễn Anh
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdfDuongDo35
 

Similar a Cnpm nangcao (20)

Kĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềmKĩ thuật bảo trì phần mềm
Kĩ thuật bảo trì phần mềm
 
ggggggggggggggggggggggggggggggggggggggggggggggggggg
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
ggggggggggggggggggggggggggggggggggggggggggggggggggg
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
chuong 1
chuong 1chuong 1
chuong 1
 
Bai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntuBai01 k tr-pm@softtesting-nntu
Bai01 k tr-pm@softtesting-nntu
 
chuong 6
chuong 6chuong 6
chuong 6
 
Itee Vn
Itee VnItee Vn
Itee Vn
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
 
Tailieu.vncty.com t ke-testcase
Tailieu.vncty.com   t ke-testcaseTailieu.vncty.com   t ke-testcase
Tailieu.vncty.com t ke-testcase
 
1 gioi thieu httt
1 gioi thieu httt1 gioi thieu httt
1 gioi thieu httt
 
Bai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntuBai00 gioi thieu-k-trpm@softtesting-nntu
Bai00 gioi thieu-k-trpm@softtesting-nntu
 
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web site
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web siteđề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web site
đề Tài tìm hiểu phần mềm loadrunner kiểm tra hiệu năng web site
 
Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)
 
Mục tiêu
Mục tiêuMục tiêu
Mục tiêu
 
Week 03-software process
Week 03-software processWeek 03-software process
Week 03-software process
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
 
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntuBai12 too ls-kiemtra-ktrpm@softtesting-nntu
Bai12 too ls-kiemtra-ktrpm@softtesting-nntu
 
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
 
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
123doc-giai-ngan-hang-cong-nghe-phan-mem-ptit.pdf
 

Cnpm nangcao

  • 1. CÔNG NGHỆ PHẦN MỀM NÂNG CAO (Advance to Software Engineering)
  • 2. Mục đích, yêu cầu môn học • 30 tiết + 1 tiểu luận môn học • Cần những kiến thức căn bản về CNTT • Cung cấp các kiến thức tổng quan về Công nghệ phần mềm (CNPM) • Cung cấp kiến thức chuyên sâu về chất lượng, đảm bảo chất lượng phần mềm, kỹ thuật kiểm thử...
  • 3. Tài liệu tham khảo • R. Pressman, Software Engineering: A Practioner’s Approach. 5th Ed., McGraw-Hill, 2001 • R. Pressman, Kỹ nghệ phần mềm. Tập 1, 2, 3. NXB Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung Việt) • I. Sommerville, Software Engineering. 5th Ed., Addison-Wesley, 1995 • Các tài liệu điện tử khác
  • 4. Giới thiệu tổng quan về CNPM Phần mềm là gì ? Nhóm các Kỹ thuật, Phương pháp luận Nhóm các Nhóm các chương trình tư liệu Kinh nghiệm kỹ sư, know-how
  • 5. Thế nào là phần mềm tốt ? Yếu Hiệu suất xử lý Đặc tố trưng khái gần niệm đây phần Tính dễ hiểu mềm tốt Các chỉ tiêu cơ bản Thời gian (Phần cứng phát triển)
  • 6. Các chỉ tiêu cơ bản của phần mềm • Phản ánh đúng yêu cầu người dùng (tính hiệu quả - effectiveness) • Chứa ít lỗi tiềm tàng • Giá thành không vượt quá giá ước lượng ban đầu • Dễ vận hành, sử dụng • Tính an toàn và độ tin cậy cao
  • 7. Hiệu suất xử lý cao • Hiệu suất thời gian tốt (efficiency): – Độ phức tạp tính toán thấp (Time complexity) – Thời gian quay vòng ngắn (Turn Around Time: TAT) – Thời gian hồi đáp nhanh (Response time) • Sử dụng tài nguyên hữu hiệu: CPU, RAM, HDD, Internet resources, . . .
  • 8. Tính dễ hiểu • Kiến trúc và cấu trúc thiết kế dễ hiểu • Dễ kiểm tra, kiểm thử, kiểm chứng • Dễ bảo trì • Có tài liệu (mô tả yêu cầu, điều kiện kiểm thử, vận hành, bảo trì, FAQ, . . .) với chất lượng cao Tính dễ hiểu: chỉ tiêu ngày càng quan trọng
  • 9. Các ứng dụng phần mềm • Phần mềm hệ thống (System SW) • Phần mềm thời gian thực (Real-time SW) • Phần mềm nghiệp vụ (Business SW) • Phần mềm tính toán KH&KT (Eng.&Scie. SW) • Phần mềm nhúng (Embedded SW) • Phần mềm máy cá nhân (Personal computer SW) • Phần mềm trên Web (Web-based SW) • Phần mềm trí tuệ nhân tạo (AI SW)
  • 10. So sánh chi phí cho Phần cứng và Phần mềm % 100 80 - Phần cứng Phát triển 60 - Phần 40 mềm - Bảo trì 20 - 0+ + + + 1955 1970 1985 2000
  • 11. So sánh chi phí cho các pha 8 7 7 Þ X¸ c ® nh yª cÇ u 3% u 5 § Æ t¶ 3% c 3 ThiÕ t kÕ 5% 3 L Ëp tr× 7% nh KiÓ thö mÇ ® 8% m un KiÓ thö tÝ hÓp 7% m ch B¶o tr× 67% 67
  • 12. Backlog tại Nhật Bản năm 1985 9.4 15.5 D ­ í i 6 th¸ ng 15.5% 18.4 6 th¸ ng ®Õ n 1 n® 24.7% m Tõ 1 ®Õ n 2 n® 32.5% m 24.7 Tõ 2 ®Õ n 3 n® 18.4% m Trª 3 n® 9.4% n m 32.5
  • 13. Hình thái sản xuất Phần mềm Đưa ra các kỹ thuật, phương pháp luận Ứng dụng thực tế vào từng quy trình Cải biên, biến đổi vào từng sản phẩm và công cụ phần mềm (máy tính hóa từng phần) Tổng hợp, hệ thống hóa cho từng loại công cụ (Máy tính hóa toàn bộ quy trình sản xuất phần mềm) Hướng tới sản xuất phần mềm tự động
  • 14. Định nghĩa CNPM • Pressman [1995]: CNPM là bộ môn tích hợp cả quy trình, các phương pháp, các công cụ để phát triển phần mềm máy tính • Sommerville [1995]: CNPM là lĩnh vực liên quan đến lý thuyết, phương pháp và công cụ dùng cho phát triển phần mềm • K. Kawamura [1995]: CNPM là lĩnh vực học vấn về các kỹ thuật, phương pháp luận công nghệ học (lý luận và kỹ thuật được hiện thực hóa trên những nguyên tắc, nguyên lý nào đó) trong toàn bộ quy trình phát triển phần mềm nhằm nâng cao cả chất và lượng của sản xuất phần mềm
  • 15. Định nghĩa CNPM (tiếp) Công nghệ phần mềm là lĩnh vực khoa học về các phương pháp luận, kỹ thuật và công cụ tích hợp trong quy trình sản xuất và vận hành phần mềm nhằm tạo ra phần mềm với những chất lượng mong muốn [Software Engineering is a scientific field to deal with methodologies, techniques and tools integrated in software production-maintenance process to obtain software with desired qualities]
  • 16. Công nghệ trong CNPM ? (1) Như các ngành công nghệ khác, CNPM cũng lấy các phương pháp khoa học làm cơ sở (2) Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo trì phần mềm đã được hệ thống hóa hóa thành phương pháp luận và hình thành nên CNPM (3) Toàn bộ quy trình quản lý phát triển phần mềm gắn với khái niệm vòng đời phần mềm, được mô hình hóa với những kỹ thuật và phương pháp luận trở thành các chủ đề khác nhau trong CNPM
  • 17. Công nghệ trong CNPM ? (tiếp) (4) Trong vòng đời phần mềm không chỉ có chế tạo mà bao gồm cả thiết kế, vận hành và bảo dưỡng (tính quan trọng của thiết kế và bảo dưỡng) (5) Trong khái niệm phần mềm, không chỉ có chương trình mà cả tư liệu về phần mềm (6) Cách tiếp cận công nghệ học (khái niệm công nghiệp hóa) thể hiện ở chỗ nhằm nâng cao năng suất (tính năng suất) và độ tin cậy của phần mềm, đồng thời giảm chi phí giá thành
  • 18. Vòng đời phần mềm (Software life-cycle) • Vòng đời phần mềm là giai đoạn tính từ khi phần mềm được sinh (tạo) ra cho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi loại bỏ không đâu dùng) • Quy trình phần mềm (vòng đời phần mềm) được phân chia thành các pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì. Biểu diễn các pha có khác nhau theo từng người
  • 19. Mô hình vòng đời phần mềm của Boehm Xác định yêu cầu hệ thống Kiểm chứng Xác định yêu cầu phần mềm Kiểm chứng Thiết kế căn bản Kiểm chứng Thiết kế chi tiết Kiểm chứng Lập trình Gỡ lỗi Kiểm thử Chạy thử Vận hành Bảo trì Kiểm chứng lại
  • 20. Barry Boehm TRW Professor of Software Engineering, Computer Science Department Director, USC Center for Software Engineering (University of Southern California) • His current research interests focus on value-based software engineering, including a method for integrating a software system's process models, product models, property models, and success models called Model-Based (System) Architecting and Software Engineering (MBASE). His contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win-win) approach to software management and requirements determination, the foundations for the areas of software risk management and software quality factor analysis, and two advanced software engineering environments: the TRW Software Productivity System and Quantum Leap Environment.
  • 21. Suy nghĩ mới về vòng đời phần mềm (1) Pha xác định yêu cầu và thiết kế có vai trò quyết định đến chất lượng phần mềm, chiếm phần lớn công sức so với lập trình, kiểm thử và chuyển giao phần mềm (2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc nhiều vào suy nghĩ trên xuống (top-down) và trừu tượng hóa, cũng như chi tiết hóa (3) Pha thiết kế, chế tạo thì theo trên xuống, pha kiểm thử thì dưới lên (bottom-up)
  • 22. Suy nghĩ mới về vòng đời phần mềm (4) Trước khi chuyển sang pha kế tiếp phải đảm bảo pha hiện nay đã được kiểm thử không còn lỗi (5) Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa các pha nhằm đảm bảo không gây lỗi cho pha sau (6) Tư liệu của mỗi pha không chỉ dùng cho pha sau, mà chính là đối tượng quan trọng cho kiểm tra và đảm bảo chất lượng của từng quy trình và của chính phần mềm
  • 23. Suy nghĩ mới về vòng đời phần mềm (7) Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư liệu cho từng pha, nhằm đảm bảo chất lượng phần mềm (8) Thao tác bảo trì phần mềm là việc xử lý quay vòng trở lại các pha trong vòng đời phần mềm nhằm biến đổi, sửa chữa, nâng cấp phần mềm
  • 24. Các phương pháp luận và kỹ thuật cho từng pha Ph­ ¬ ph¸ p, kü ng Tª pha n Néi dung nghiÖ vô p thuËt Þ X¸ c ® nh § Æ t¶ yª cÇ u ng­ êi dï ng c u Ph© tÝ cÊu tróc n ch yª cÇ u u Þ X¸ c ® nh yª cÇ u phÇ n mÒ u m hãa ThiÕ t kÕ c¬ b¶ phÇ n mÒ n m ThiÕ t kÕ ThiÕ t kÕ cÊu tróc ThiÕ t kÕ cÊu tróc ngoµi cña phÇ n hÖthèng hãa mÒ m L Ë tr × cÊu tróc p nh L µ thiÕ t kÕ chi tiÕ t: ThiÕ t kÕ cÊu ThiÕ t kÕ Ph­ ¬ ph¸ p ng tróc bª trong cña phÇ n mÒ n m ch­ ¬ng J ackson ( ® n vÞch­ ¬ tr × hoÆ ¬ ng nh c tr × nh Ph­ ¬ ph¸ p ng mÇ ® un) Warnier M· hãa cÊu tróc L Ë tr × p nh M· hãa bëi ngÇ n ng÷ lË tr × p nh hãa § ¶ b¶ m o K iÓ tra chÊt l­ Ó phÇ n mÒ m ng m Ph­ ¬ ph¸ p kiÓ ng m chÊt l­ Óng ® ph¸ t triÓ · n thö ch­ ¬ tr × ng nh Sö dông, vË hµnh phÇ n mÒ n m VË hµnh n ® ph¸ t triÓ BiÕ n ® i, ® u · n. æ iÒ C h­ a cô thÓ B¶ tr× o chØ phÇ n mÒ nh m
  • 25. Capability Maturity Model (CMM) by SEI (Software Engineering Institut Carnegie Mellon University) Mô hình trưởng thành khả năng • Mức 1 : Khởi tạo: vài quá trình được định nghĩa. Thành công phụ thuộc vào công sức riêng lẻ • Mức 2 : Lặp lại: Quá trình quản lý các dự án cơ sở. Lặp lại các thành công trước đó trên các dự án với những ứng dụng tương tự • Mức 3 : Xác định. Sử dụng các phiên bản có tài liệu và đã ứng dụng của quá trình của tổ chức để phát triển và hỗ trợ phần mềm • Level 1: Initial (Khởi đầu). Few processes are defined. Success depends on individual effort • Level 2: Repeatable (Lặp lại). Basic project management processes. Repeat earlier succeses on projects with similar applications • Level 3: Defined (Xác định). Use a documented and approved version of the organization’s process for developing and supporting software
  • 26. Capability Maturity Model CMM • Mức 4 : Quản trị. Cả quá trình sx và sản phẩm phần mềm được hiểu rõ định lượng và sử dụng có kiểm soát một cách cân nhắc chi tiết. • Mức 5 : Tối ưu hóa. Quá trình cải tiến liên tục được cho phép bởi sự phản hồi định lượng từ quá trình phản hồi và từ việc kiểm tra những ý tưởng và những công nghệ có tính chất đổi mới • Level 4: Managed (Quản trị). Both SW process and products are quantitatively understood and controlled using detailed measures • Level 5: Optimizing (Tối ưu). Continuous process improvement is enabled by quantitative feedback from the process and from testing innovative ideas and technologies
  • 27. 18 key process areas (KPAs) for CMM 1 . SW configuration 7. Peer reviews management 8. Intergroup 2. SW quality coordination assurance 9. SW product 1 6. 3. SW subcontract Process engineering management 1 4. change 1 0. Integrated SW 4. SW project tracking SW quality management management and oversight (hoà nhập) Management 1 7. (theo dõi, giam sát) (chất lượng) Technology 1 1 . Training program 5. SW project 1 5. change 1 2. Organization planning Quantitative management process definition 6. Requirements 1 3. Organization process 1 8. management management Defect process focus LEVEL 2: Repeatable (định lượng) prevention (ngăn ngừa lối) LEVEL 3: Defined LEVEL 4: Managed LEVEL 5: Optimizing
  • 28. Mô hình tuyến tính Phân tích Thiết kế Lập trình Kiểm thử Công nghệ học Hệ thống / Thông tin Điển hình là mô hình vòng đời cổ điển (mô hình thác nước) Classic life cycle / waterfall model: là mô hình hay được dùng nhất
  • 29. MÔ HÌNH THÁC NƯỚC Xác định yêu cầu Thiết kế phần mềm và hệ thống Thực hiện và thử nghiệm đơn vị Tích hợp và thử nghiệm hệ Vận hành và bảo trì
  • 30. Mô hình chế thử (Prototyping model) Nghe Khách Tạo / sửa trình bày bản mẫu Khách kiểm tra bản mẫu
  • 31. Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD) • Là quy trình phát triển phần mềm gia tăng, tăng dần từng bước (Incrimental software development) với mỗi chu trình phát triển rất ngắn (60-90 ngày) • Xây dựng dựa trên hướng thành phần (Component- based construction) với khả năng tái sử dụng (reuse) • Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo các pha: Mô hình nghiệp vụ, Mô hình dữ liệu, Mô hình xử lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data, Process, Appl. Generation, Test)
  • 32. Team #3 Business Mô hình Modeling Team #2 Data Modeling Business phát triển Modeling Data Process Modeling Application Team #1 ứng dụng Business Modeling Process Generation Testing & nhanh Turnover Modeling Modeling Data Application Generation Modeling Testing & Process Turnover Modeling Application Generation Testing & Turnover 60 - 90 days
  • 33. Các mô hình tiến hóa: gia tăng, xoắn ốc, xoắn WINWIN, ... • Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo thời gian: môi trường thay đổi, yêu cầu phát sinh thêm, hoàn thiện thêm chức năng, tính năng • Các mô hình tiến hóa (evolutionary models) có tính lặp lại. Kỹ sư phần mềm tạo ra các phiên bản (versions) ngày càng hoàn thiện hơn, phức tạp hơn • Các mô hình: incremental, spiral, WINWIN spiral, concurrent development model
  • 34. Mô hình gia tăng (The incremental model) • Kết hợp mô hình tuần tự và ý tưởng lặp lại của chế bản mẫu • Sản phẩm lõi với những yêu cầu cơ bản nhất của hệ thống được phát triển • Các chức năng với những yêu cầu khác được phát triển thêm sau (gia tăng) • Lặp lại quy trình để hoàn thiện dần
  • 35. Mô hình gia tăng Gia tăng 1 Ph©n tÝ ch ThiÕt kÕ LËp tr× nh KiÓ thö m Xuất xưởng 1 System/info. Engineering Gia tăng 2 Ph©n tÝ ch ThiÕt kÕ LËp tr× nh KiÓ thö m Xuất xưởng 2 Gia tăng 3 Ph©n tÝ ch ThiÕt kÕ LËp tr× nh KiÓ thö Xuất xưởng 3 m Gia tăng 4 Ph©n tÝ ch ThiÕt kÕ LËp tr× nh KiÓ thö m XX 4 Calendar time
  • 36. Mô hình xoắn ốc (spiral) Lập kế hoạch Phân tích rủi ro Giao tiếp khách hàng Khái niệm Kỹ nghệ Làm mới Nâng cấp Khách hàng Xây dựng & đánh giá Xuất xưởng Bảo trì
  • 37. Mô hình xoắn ốc WIN-WIN 2. Xác định điều kiện 3a. Hòa hợp điều kiện thắng thắng của cổ đông 3b. Thiết lập mục tiêu mức tiếp và các ràng buộc, dự kiến 1. Xác định mức tiếp của cổ đông 4. Đánh giá tiến trình và dự kiến sản phẩm, giải quyết rủi ro 7. Xét duyệt và đánh giá 6. Kiểm định sản phẩm 5. Xác định mức tiếp của và quy trình sản phâm và quy trình, kể cả phân chia nhỏ
  • 38. Mô hình phát triển đồng thời (The concurrent development model) • Xác định mạng lưới những hoạt động đồng thời (Network of concurrent activities) • Các sự kiện (events) xuất hiện theo điều kiện vận động trạng thái trong từng hoạt động • Dùng cho mọi loại ứng dụng và cho hình ảnh khá chính xác về trạng thái hiện trạng của dự án • Thường dùng trong phát triển các ứng dụng khách/chủ (client/server applications): system and componets are developed concurrently
  • 39. Mô hình theo thành phần (Component-based model) • Gắn với những công nghệ hướng đối tượng (Object- oriented technologies) qua việc tạo các lớp (classes) có chứa cả dữ liệu và giải thuật xử lý dữ liệu • Có nhiều tương đồng với mô hình xoắn ốc • Với ưu điểm tái sử dụng các thành phần qua Thư viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá thành, chỉ số sản xuất 26.2/16.9 • Với UML như chuẩn công nghiệp đang triển khai
  • 40. Mô hình theo thành phần Lập kế hoạch Phân tích rủi ro Xác định thành phần ứng viên Giao tiếp khách hàng Xây dựng Tìm bước lặp thứ n thành phần của hệ thống từ thư viện Đặt Lấy thành phần thành phần vào thư viện nếu có Kỹ nghệ Khách hàng Xây dựng & Xây dựng đánh giá Xuất xưởng thành phần nếu kh.có
  • 41. Mô hình hình thức (Formal model) • Còn gọi là CNPM phòng sạch (Cleanroom SE) • Tập hợp các công cụ nhằm đặc tả toán học phần mềm máy tính từ khâu định nghĩa, phát triển đến kiểm chứng • Giúp kỹ sư phần mềm phát hiện và sửa các lỗi khó • Thường dùng trong phát triển SW cần độ an toàn rất cao (y tế, hàng không, . . .)
  • 42. Mô hình hình thức: Điểm yếu ? • Cần nhiều thời gian và công sức để phát triển • Phí đào tạo cao vì ít người có nền căn bản cho áp dụng mô hình hình thức • Khó sử dụng rộng rãi vì cần kiến thức toán và kỹ năng của khách hàng
  • 43. Các kỹ thuật thế hệ 4 (Fourth generation techniques) • Tập hợp các công cụ cho phép xác định đặc tính phần mềm ở mức cao, sau đó sinh tự động mã nguồn dựa theo đặc tả đó • Các công cụ 4GT điển hình: ngôn ngữ phi thủ tục cho truy vấn CSDL; tạo báo cáo; xử lý dữ liệu; tương tác màn hình; tạo mã nguồn; khả năng đồ họa bậc cao; khả năng bảng tính; khả năng giao diện Web; vv