Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
650,59 KB
Nội dung
Chapter – Software Processes Chapter Software Processes Topics covered Software process models Process activities Coping with (đương đầu với) change Process improvement Chapter Software Processes Quy trình phần mềm Một tập hợp hoạt động cần thiết để phát triển hệ thống phần mềm? Nhiều quy trình phần mềm khác tất liên quan đến: • Specification(Đặc tả) - xác định hệ thống nên làm gì; • Design and implementation(Thiết kế thực hiện) - xác định việc tổ chức hệ thống thực hệ thống; • Validation( Xác nhận) - kiểm tra xem có làm khách hàng muốn; • Evolution(sự tiến hóa) - thay đổi hệ thống để đáp ứng nhu cầu thay đổi khách hàng Một mô hình qui trình phần mềm biểu diễn trừu tượng tiến trình Nó trình bày mơ tả Software Processes trình từ mộtChapter số quan điểm cụ thể Mơ tả quy trình phần mềm Khi mô tả thảo luận quy trình, thường nói hoạt động quy trình định mơ hình liệu, thiết kế giao diện người dùng, v.v thứ tự hoạt động Mô tả quy trình bao gồm: • Sản phẩm, kết quy trình hoạt động ; • Vai trị, phản ánh trách nhiệm người liên quan đến q trình; • điều kiện trước sau, tuyên bố trước sau hoạt động quy trình ban hành sản phẩm sản xuất Chapter Software Processes Quy trình Plan-driven agile Quy trình Plan-driven trình mà tất hoạt động quy trình lên kế hoạch trước tiến độ đo lường theo kế hoạch Trong quy trình agile, lập kế hoạch gia tăng dễ dàng thay đổi quy trình để phản ánh yêu cầu thay đổi khách hàng Trong thực tế, hầu hết quy trình thực tế bao gồm yếu tố hai phương pháp Plan-driven agile Khơng có quy trình phần mềm hay sai Chapter Software Processes Mơ hình quy trình phần mềm Chapter Software Processes Mơ hình quy trình phần mềm Mơ hình waterfall Mơ hình theo kế hoạch giai đoạn riêng biệt khác biệt đặc điểm kỹ thuật phát triển Incremental development Đặc điểm kỹ thuật, phát triển xác nhận xen kẽ Có thể lập kế hoạch theo định hướng nhanh nhẹn Integration and configuration Hệ thống lắp ráp từ thành phần cấu hình có Có thể lập kế hoạch theo định hướng nhanh nhẹn Trong thực tế, hầu hết hệ thống lớn phát triển cách sử dụng trình kết hợp yếu tố từ tất mơ hình Chapter Software Processes The waterfall model Chapter Software Processes Mơ hình Waterfall Có giai đoạn xác định riêng biệt mơ hình waterfall: • Phân tích yêu cầu định nghĩa • Thiết kế hệ thống phần mềm • Thực thử nghiệm đơn vị • Tích hợp kiểm tra hệ thống • Vận hành bảo trì Hạn chế mơ hình thác khó khăn việc thay đổi (dễ tính) sau q trình tiến hành Về nguyên tắc, giai đoạn phải hoàn thành trước chuyển sang giai đoạn Chapter Software Processes Vấn đề mô hình Waterfall Inflexible (cứng rắn) chia dự án thành giai đoạn riêng biệt làm cho việc xử lý yêu cầu khách hàng thay đổi trở nên khó khăn Do đó, mơ hình phù hợp yêu cầu hiểu rõ thay đổi bị hạn chế trình thiết kế Rất hệ thống kinh doanh có u cầu ổn định Mơ hình thác nước chủ yếu sử dụng cho dự án kỹ thuật hệ thống lớn, nơi hệ thống phát triển số địa điểm Trong trường hợp đó, chất định hướng mơ hình thác nước giúp điều phối công việc Chapter Software Processes 10 Incremental delivery Chapter Software Processes 44 Incremental delivery advantages Customer value can be delivered with each increment so system functionality is available earlier Early increments act as a prototype to help elicit requirements for later increments Lower risk of overall project failure The highest priority system services tend to receive the most testing Chapter Software Processes 45 Incremental delivery problems Most systems require a set of basic facilities that are used by different parts of the system As requirements are not defined in detail until an increment is to be implemented, it can be hard to identify common facilities that are needed by all increments The essence of iterative processes is that the specification is developed in conjunction with the software However, this conflicts with the procurement model of many organizations, where the complete system specification is part of the system development contract Chapter Software Processes 46 Process improvement Chapter Software Processes 47 Process improvement Many software companies have turned to software process improvement as a way of enhancing the quality of their software, reducing costs or accelerating their development processes Process improvement means understanding existing processes and changing these processes to increase product quality and/or reduce costs and development time Chapter Software Processes 48 Approaches to improvement The process maturity approach, which focuses on improving process and project management and introducing good software engineering practice The level of process maturity reflects the extent to which good technical and management practice has been adopted in organizational software development processes The agile approach, which focuses on iterative development and the reduction of overheads in the software process The primary characteristics of agile methods are rapid delivery of functionality and responsiveness to changing customer requirements Chapter Software Processes 49 The process improvement cycle Chapter Software Processes 50 Process improvement activities Process measurement You measure one or more attributes of the software process or product These measurements forms a baseline that helps you decide if process improvements have been effective Process analysis The current process is assessed, and process weaknesses and bottlenecks are identified Process models (sometimes called process maps) that describe the process may be developed Process change Process changes are proposed to address some of the identified process weaknesses These are introduced and the cycle resumes to collect data about the effectiveness of the changes Chapter Software Processes 51 Process measurement Wherever possible, quantitative process data should be collected However, where organisations not have clearly defined process standards this is very difficult as you don’t know what to measure A process may have to be defined before any measurement is possible Process measurements should be used to assess process improvements But this does not mean that measurements should drive the improvements The improvement driver should be the organizational objectives Chapter Software Processes 52 Process metrics Time taken for process activities to be completed E.g Calendar time or effort to complete an activity or process Resources required for processes or activities E.g Total effort in person-days Number of occurrences of a particular event E.g Number of defects discovered Chapter Software Processes 53 Capability maturity levels Chapter Software Processes 54 The SEI capability maturity model Initial Essentially uncontrolled Repeatable Product management procedures defined and used Defined Process management procedures and strategies defined and used Managed Quality management strategies defined and used Optimising Process improvement strategies defined and used Chapter Software Processes 55 Key points Software processes are the activities involved in producing a software system Software process models are abstract representations of these processes General process models describe the organization of software processes Examples of these general models include the ‘waterfall’ model, incremental development, and reuse-oriented development Requirements engineering is the process of developing a software specification Chapter Software Processes 56 Key points Design and implementation processes are concerned with transforming a requirements specification into an executable software system Software validation is the process of checking that the system conforms to its specification and that it meets the real needs of the users of the system Software evolution takes place when you change existing software systems to meet new requirements The software must evolve to remain useful Processes should include activities such as prototyping and incremental delivery to cope with change Chapter Software Processes 57 Key points Processes may be structured for iterative development and delivery so that changes may be made without disrupting the system as a whole The principal approaches to process improvement are agile approaches, geared to reducing process overheads, and maturity-based approaches based on better process management and the use of good software engineering practice The SEI process maturity framework identifies maturity levels that essentially correspond to the use of good software engineering practice Chapter Software Processes 58 ... Plan-driven agile Khơng có quy trình phần mềm hay sai Chapter Software Processes Mơ hình quy trình phần mềm Chapter Software Processes Mơ hình quy trình phần mềm Mơ hình waterfall Mơ hình theo... đoạn phần mềm xem có phần triển khai giao hàng nhanh triển khai phần mềm hữu ích cho khách hàng Khách hàng sử dụng đạt giá trị từ phần mềm sớm với quy trình waterfall Chapter Software Processes. .. cầu khách hàng hay không Chapter Software Processes 29 Thử nghiệm giai đoạn plan-driven software (V-model) Chapter Software Processes 30 phát triển phần mềm Phần mềm vốn linh hoạt thay đổi Khi