C HÀ P T E R 1 0Ghi lại các yêu cầuTại buổi ra mắt của một dự án lớn để xây dựng sản phẩm thế hệ mới của công ty phần mềm thương mại, một người quản lý cao cấp triệu tập khoảng 60 nhân viên trong một ngày dài off-"tiếng nói khách hàng hội thảo." Các nhân viên làm việc với facilitators để tạo ra các ý tưởng cho các sản phẩm mới. Người quản lý biên soạn các kết quả của các phiên họp động não vào một tài liệu 100-trang. Ông gọi điều này là một đặc tả yêu cầu, nhưng trong thực tế nó là gì khác hơn là một đống thông tin.Thông tin từ các bãi chứa não bởi tất cả những người thông minh đã không được phân loại thành nhiều loại khác nhau, tổ chức một cách hợp lý, phân tích, hoặc nếu không chế biến thành bất cứ điều gì đó mô tả một giải pháp phần mềm được đề xuất. Nhà phát triển không có thể đã lượm lặt những gì họ cần phải biết về các sản phẩm mới từ bộ sưu tập lớn của ý tưởng. Chắc chắn đã có nuggets của có giá trịyêu cầu chôn cất trong số tất cả pháo sáng. Nhưng chỉ đơn giản là thu thập các ý tưởng nguyên và nhu cầu vào một danh sách dài không phải là một cách hiệu quả để tài liệu và giao tiếp yêu cầu phần mềm.Giao tiếp rõ ràng và hiệu quả là nguyên tắc cốt lõi của yêu cầu phát triển — giao tiếp từ những người có nhu cầu cho những người có thể thụ thai giải pháp, sau đó cho những người có thể thực hiện và xác minh những giải pháp. Một nhà phân tích kinh doanh lành nghề sẽ chọn cách hiệu quả nhất để giao tiếp mỗi loại thông tin yêu cầu cho mỗi đối tượng.Kết quả của yêu cầu phát triển là một thỏa thuận tài liệu giữa các bên liên quanvề các sản phẩm được xây dựng. Như bạn thấy trong chương trước đó, tầm nhìn và phạm vi tài liệu chứa các yêu cầu kinh doanh, và yêu cầu người sử dụng có thể được chụp trong các hình thức sử dụng trường hợp hoặc người sử dụng câu chuyện. Các sản phẩm chức năng và nonfunctional yêu cầu thường được lưu trữ trong một phần mềm yêu cầu đặc điểm kỹ thuật, hoặc SRS, mà sẽ được gửi đến những người phải thiết kế, xây dựng, và xác minh các giải pháp. Ghi lại các yêu cầu trong một thời trang tổ chức bên liên quan chính dự án có thể xem lại giúp đảm bảo rằng họ biết những gì họ đang đồng ý.Chương này chỉ mục đích, cấu trúc và nội dung của các SRS. Chúng tôi sẽ mô tả SRS là một tài liệu, nhưng nó không phải là trong các hình thức của một tài liệu giữ truyền thống. Trong thực tế, tài liệu gây nhiều hạn chế:■ Nó rất khó để lưu trữ các thuộc tính mô tả cùng với các yêu cầu.■ thay đổi quản lý là vụng về.■ Nó rất khó để giữ lại các phiên bản lịch sử của các yêu cầu.■ Nó không phải là dễ dàng để tập hợp con trong một phần của yêu cầu được phân bổ cho một lặp cụ thểhoặc theo dõi của những người đã được một lần được chấp thuận nhưng sau đó bị hoãn hoặc hủy bỏ.181 ■ Nó rất khó để theo dõi yêu cầu để phát triển các hiện vật khác.■ nhân đôi một yêu cầu một cách hợp lý phù hợp ở những nơi nhiều gây ra vấn đề bảo trì.As alternatives, you might store information in a spreadsheet (which has many of the same limitations as a document), a Wiki, a database, or a requirements management (RM) tool (see Chapter 30, “Tools for requirements engineering”). Think of these as different possible repositories or containers for requirements information. No matter what form of requirements repository you use, you still need the same kinds of information. The SRS template described here is a helpful reminder of information to collect and how you might organize it.Not everyone agrees that it’s worth the time to document requirements. And on exploratory or highly volatile projects where you’re not sure what solution you’ll end up with, trying to keep upwith changes in the requirements details adds little value. However, the cost of recording knowledge is small compared to the cost of acquiring that knowledge or regenerating it at some point in the future. The acts of specification and modeling help project participants think through and precisely state important things that a verbal discussion can leave ambiguous. If you are 100 percent certain that no stakeholders will ever need a specific piece of information beyond the duration of their own short-term memories, then you don’t need to record it. Otherwise, store it in some kind of a group memory.You will never get perfect requirements. Remember that you are writing requirements for certain audiences. The amount of detail, the kinds of information you provide, and the way you organizeit should all be intended to meet the needs of your audiences. Analysts quite naturally write requirements from their own point of view, but really they should write them to be most meaningful to those who have to understand the requirements and do work based on them. This is why it’s important to have representatives of those audiences review the requirements to make sure they’ll meet their needs.Progressive refinement of detail is a key principle for effective requirements development. On most projects it’s neither realistic nor necessary to pin down every requirement detail early in the project. Instead, think in terms of layers. You need to learn just enough about the requirements to be able to roughly prioritize them and allocate them to forthcoming releases or iterations. Then you candetail groups of requirements in a just-in-time fashion to give developers enough information so they can avoid excessive and unnecessary rework.Don’t expect even the finest requirements documentation to replace ongoing discussions throughout the project. Keep the communication lines open among the BA, development team, customer representatives, and other stakeholders so that they can quickly address the myriad issues that will arise. You can represent software requirements in several ways, including:■ Well-structured and carefully written natural language.■ Visual models that illustrate transfornational processes, system states and changes betweenthem, data relationships, logic flows, and the like.
■ Formal specifications that define requirements by using mathematically precise specification languages.
Formal specifications provide the greatest rigor and precision, but few software developers—and even fewer customers—are familiar with them. Most projects don’t demand this level of formality, but I’d certainly hope that the designers of high-risk systems like nuclear power plant control systems
use formal specification methods. Structured natural language, augmented with visual models
and other representation techniques (such as tables, mock-ups, photographs, and mathematical expressions), remains the most practical way for most software projects to document their requirements. The rest of this chapter addresses how you might organize the information in a software requirements specification. Chapter 11, “Writing excellent requirements,” describes characteristics of high-quality requirements and offers many suggestions for how to write them.
1. [Other requirements]
Define any other requirements that are not covered elsewhere in the SRS. Examples are legal, regulatory, or financial compliance and standards requirements; requirements for product installation, configuration, startup, and shutdown; and logging, monitoring, and audit trail requirements. Instead of just combining these all under “Other,” add any new sections to the template that are pertinent
to your project. Omit this section if all your requirements are accommodated in other sections. Transition requirements that are necessary for migrating from a previous system to a new one could be included here if they involve software being written (as for data conversion programs), or in the project management plan if they do not (as for training development or delivery).
Appendix A: Glossary
Define any specialized terms that a reader needs to know to understand the SRS, including acronyms and abbreviations. Spell out each acronym and provide its definition. Consider building a reusable enterprise-level glossary that spans multiple projects and incorporating by reference any terms that pertain to this project. Each SRS would then define only those terms specific to an individual project that do not appear in the enterprise-level glossary. Note that data definitions belong in the data dictionary, not the glossary.
Appendix B: Analysis models
This optional section includes or points to pertinent analysis models such as data flow diagrams, feature trees, state-transition diagrams, or entity-relationship diagrams. (See Chapter 12, “A picture is worth 1024 words.”) Often it’s more helpful for the reader if you incorporate certain models into the relevant sections of the specification instead of collecting them at the end.
đang được dịch, vui lòng đợi..
