language in which the software product will be implemented. This process is described in detail in Chapter 13. Another decision is how much of existing software products to reuse in the new software product to be developed. Reuse is described in Chapter 8. Portability is another important design decision; this topic, too, is described in Chapter 8. Also, large software products are often implemented on a network of computers; yet another design decision is the allocation of each software component to the hardware component on which it is to run.
The major motivation behind the development of the Unified Process was to present a methodology that could be used to develop large-scale software products, typically, 500,000 lines of code or more. On the other hand, the implementations of the MSG Foundation case study in Appendices G and H are less than 5000 lines of C++ and Java, respectively. In other words, the Unified Process is intended primarily for software products at least 100 times larger than the MSG Foundation case study presented in this book. Accordingly, many aspects of the Unified Process are inapplicable to this case study. For instance, an important part of the analysis workflow is to partition the software product into analysis packages . Each package consists of a set of related classes, usually of relevance to a small subset of the actors, that can be implemented as a single unit. For example, accounts payable, accounts receivable, and general ledger are typical analysis packages. The concept underlying analysis packages is that it is much easier to develop smaller software products than larger software products. Accordingly, a large software product is easier to develop if it can be decomposed into relatively independent packages.
This idea of decomposing a large workflow into relatively independent smaller workflows is carried forward to the design workflow. Here, the objective is to break up the upcoming implementation workflow into manageable pieces, termed subsystems . Again, it does not make sense to break up the MSG Foundation case study into subsystems; the case study is just too small.
There are two reasons why larger workflows are broken into subsystems:
1. As previously explained, it is easier to implement a number of smaller subsystems than one large system.
2. If the subsystems to be implemented are indeed relatively independent, then they can be implemented by programming teams working in parallel. This results in the software product as a whole being delivered sooner.
Recall from Section 8.5.4 that the architecture of a software product includes the various components and how they fi t together. The allocation of components to subsystems is a major part of the architectural task. Deciding on the architecture of a software product is by no means easy and, in all but the smallest software products, is performed by a specialist, the software architect .
In addition to being a technical expert, an architect needs to know how to make trade offs . A software product has to satisfy the functional requirements , that is, the use cases. It also needs to satisfy the nonfunctional requirements , including portability (Chapter 8), reliability (Section 6.4.2), robustness (Section 6.4.3), maintainability, and security. But it needs to do all these things within budget and time constraints. It is almost never possible to develop a software product that satisfies all its requirements, both functional and nonfunctional, and finish the project within the cost and time constraints; compromises almost always have to be made. The client has to relax some of the requirements, increase the budget, or move the delivery deadline, or do more than one of these. The architect must assist the client’s decision making by clearly mapping out the trade-offs.
In some cases the trade-offs are obvious. For example, the architect may point out that a set of security requirements that conform to a new high-security standard are going to take a further 3 months and $350,000 to incorporate in the software product. If the product is an international banking network, the issue is moot—there is no way that the client could possibly agree to compromise on security in any way. However, in other instances, the client needs to make critical determinations regarding trade-offs and has to rely on the technical expertise of the architect to assist in coming to the right business decision. For example, the architect might point out that deferring a particular requirement until the software product has been delivered and is being maintained may save $150,000 now but will cost $300,000 to incorporate later (see Hình 1.5). The decision as to whether or not to defer a requirement can be made by only the client, but he or she needs the technical expertise of the architect to assist in coming to the correct decision.
The architecture of a software product is a vital factor as to whether the delivered product is a success or a failure. And, the critical decisions regarding the architecture have to be made while performing the design workflow. If the requirements workflow is badly performed, it is still possible to have a successful project, provided additional time and money are spent on the analysis workflow. Similarly, if the analysis workflow is inadequate, it is possible to recover by making an extra effort as part of the design workflow. But, if the architecture is suboptimal, there is no way to recover; the architecture must immediately be redesigned. It is therefore essential that the development team include an architect with the necessary technical expertise and people skills.
Results (
Vietnamese) 1:
[Copy]Copied!
ngôn ngữ trong đó các sản phẩm phần mềm sẽ được thực hiện. Quá trình này được mô tả chi tiết trong chương 13. Một quyết định là bao nhiêu của sản phẩm phần mềm hiện có để tái sử dụng trong các sản phẩm phần mềm mới được phát triển. Tái sử dụng được mô tả trong chương 8. Tính di động là một thiết kế quan trọng quyết định; chủ đề này, quá, được mô tả trong chương 8. Ngoài ra, sản phẩm phần mềm lớn thường được thực hiện trên một mạng máy tính; Tuy nhiên, một thiết kế quyết định là phân bổ của mỗi thành phần phần mềm để các thành phần phần cứng mà nó là để chạy. Động lực chính đằng sau sự phát triển của quá trình hợp nhất là để trình bày một phương pháp có thể được sử dụng để phát triển sản phẩm phần mềm quy mô lớn, thường, 500.000 các dòng mã hoặc nhiều hơn. Mặt khác, việc triển khai của nghiên cứu trường hợp MSG Foundation trong phụ lục G và H là ít hơn 5.000 dòng C ++ và Java, tương ứng. Nói cách khác, quá trình thống nhất được thiết kế chủ yếu cho các sản phẩm phần mềm ít 100 lần lớn hơn so với nghiên cứu trường hợp MSG Foundation trình bày trong cuốn sách này. Vì vậy, nhiều khía cạnh của quá trình hợp nhất được không thể dùng được để nghiên cứu trường hợp này. Ví dụ, một phần quan trọng của công việc phân tích là phân vùng sản phẩm phần mềm vào phân tích gói. Mỗi gói bao gồm một tập hợp các lớp học có liên quan, thường của sự liên quan đến một tập hợp con nhỏ của các diễn viên, mà có thể được thực hiện như một đơn vị duy nhất. Ví dụ, tài khoản phải nộp, tài khoản phải thu, và general ledger rất điển hình phân tích gói. Khái niệm cơ bản phân tích gói là nó dễ dàng hơn để phát triển sản phẩm phần mềm nhỏ hơn so với sản phẩm phần mềm lớn hơn. Theo đó, một sản phẩm phần mềm lớn là dễ dàng hơn để phát triển nếu nó có thể được bị phân hủy thành các gói tương đối độc lập. Ý tưởng này của phân hủy một công việc lớn thành độc lập tương đối nhỏ hơn quy trình công việc được thực hiện về phía trước để các công việc thiết kế. Ở đây, mục tiêu là để phá vỡ các công việc sắp tới thực hiện thành miếng dễ quản lý, gọi là hệ thống con. Một lần nữa, nó không làm cho tinh thần để phá vỡ MSG Quỹ nghiên cứu vào hệ thống con; trường hợp nghiên cứu là chỉ là quá nhỏ. Có hai lý do tại sao quy trình công việc lớn hơn được chia thành các hệ thống phụ:1. là đã giải thích trước đó, nó là dễ dàng hơn để thực hiện một số hệ thống con nhỏ hơn so với một hệ thống lớn. 2. nếu hệ thống con được thực hiện là thực sự tương đối độc lập, sau đó họ có thể được thực hiện bởi lập trình đội làm việc tại song song. Điều này kết quả trong các sản phẩm phần mềm như một toàn thể được giao sớm hơn. Thu hồi từ phần 8.5.4 kiến trúc của một sản phẩm phần mềm bao gồm các thành phần khác nhau và làm thế nào họ fi t với nhau. Việc phân bổ các thành phần hệ thống con là một phần lớn của nhiệm vụ kiến trúc. Quyết định kiến trúc của một sản phẩm phần mềm là do không có nghĩa là dễ dàng, và trong tất cả, nhưng các sản phẩm phần mềm nhỏ nhất, được thực hiện bởi một chuyên gia, kiến trúc sư phần mềm. Ngoài việc là một chuyên gia kỹ thuật, một kiến trúc sư cần phải biết làm thế nào để làm cho thương mại off. Một sản phẩm phần mềm có để đáp ứng các yêu cầu chức năng, có nghĩa là, các trường hợp sử dụng. Nó cũng cần phải đáp ứng các yêu cầu nonfunctional, bao gồm cả di (chương 8), độ tin cậy (phần 6.4.2), mạnh mẽ (phần 6.4.3), bảo trì và an ninh. Nhưng nó cần phải làm tất cả những điều này trong vòng ràng buộc ngân sách và thời gian. Nó là gần như không bao giờ có thể phát triển một sản phẩm phần mềm đáp ứng tất cả yêu cầu của mình, cả hai chức năng và nonfunctional, và hoàn thành dự án trong chi phí và thời gian khó khăn; thỏa hiệp hầu như luôn luôn phải được thực hiện. Khách hàng có để thư giãn một số các yêu cầu, tăng ngân sách, hoặc di chuyển thời hạn giao hàng, hoặc thực hiện nhiều hơn một trong những. Các kiến trúc sư phải hỗ trợ các khách hàng quyết định bằng cách rõ ràng ánh xạ ra thương mại-offs. Trong một số trường hợp thương mại-offs được rõ ràng. Ví dụ, các kiến trúc sư có thể chỉ ra rằng một tập hợp các yêu cầu bảo mật phù hợp với tiêu chuẩn bảo mật cao mới sẽ đưa thêm 3 tháng và $350.000 để kết hợp trong các sản phẩm phần mềm. Nếu sản phẩm là một mạng lưới ngân hàng quốc tế, vấn đề là tranh luận-không còn cách mà khách hàng có thể có thể đồng ý với thỏa hiệp về an ninh trong bất kỳ cách nào. Tuy nhiên, trong trường hợp khác, khách hàng cần phải thực hiện các quyết định quan trọng liên quan đến thương mại-offs và phải dựa vào chuyên môn kỹ thuật của kiến trúc sư để hỗ trợ trong đến quyết định kinh doanh đúng. Ví dụ, các kiến trúc sư có thể chỉ ra rằng bôùt một yêu cầu cụ thể cho đến khi sản phẩm phần mềm đã được vận chuyển và được được duy trì có thể tiết kiệm $150,000 bây giờ nhưng sẽ chi phí $300.000 để kết hợp sau này (xem chuyển 1.5). Quyết định như hoãn một yêu cầu hay không có thể được thực hiện bởi chỉ có khách hàng, nhưng họ nhu cầu chuyên môn kỹ thuật của kiến trúc sư để hỗ trợ trong đến quyết định đúng. Kiến trúc của một sản phẩm phần mềm này là một yếu tố quan trọng là để cho dù giao sản phẩm là một thành công hay thất bại một. Và, những quyết định quan trọng liên quan đến kiến trúc đã được thực hiện trong khi thực hiện các công việc thiết kế. Nếu công việc yêu cầu được thực hiện nặng, ta vẫn có thể có một dự án thành công, cung cấp thêm thời gian và tiền được chi cho công việc phân tích. Tương tự, nếu công việc phân tích là không đủ, nó có thể phục hồi bằng cách làm cho một nỗ lực phụ như là một phần của công việc thiết kế. Tuy nhiên, nếu các kiến trúc được suboptimal, có là không có cách nào để khôi phục lại; kiến trúc phải ngay lập tức được thiết kế lại. Do đó là cần thiết rằng các nhóm phát triển bao gồm một kiến trúc sư với các kỹ thuật chuyên môn và những kỹ năng cần thiết.
Being translated, please wait..

Results (
Vietnamese) 2:
[Copy]Copied!
ngôn ngữ trong đó các sản phẩm phần mềm sẽ được thực hiện. Quá trình này được mô tả chi tiết trong Chương 13. Một quyết định là có bao nhiêu sản phẩm phần mềm hiện có để tái sử dụng trong các sản phẩm phần mềm mới được phát triển. Tái sử dụng được mô tả trong Chương 8. Khả năng di chuyển là một quyết định thiết kế quan trọng; chủ đề này, quá, được mô tả trong Chương 8. Ngoài ra, các sản phẩm phần mềm lớn thường được thực hiện trên một mạng máy tính; thêm một quyết định thiết kế là việc phân bổ của từng thành phần phần mềm để các thành phần phần cứng mà nó đang chạy.
Các động lực chính đằng sau sự phát triển của quá trình hợp nhất là để trình bày một phương pháp có thể được sử dụng để phát triển các sản phẩm phần mềm có quy mô lớn, thường , 500.000 dòng mã hoặc nhiều hơn. Mặt khác, việc triển khai các nghiên cứu trường hợp MSG Foundation tại Phụ lục G và H là ít hơn 5.000 dòng của C ++ và Java, tương ứng. Nói cách khác, quá trình thống nhất chủ yếu dành cho các sản phẩm phần mềm lớn hơn so với các nghiên cứu trường hợp MSG Foundation trình bày trong cuốn sách này ít nhất là 100 lần. Theo đó, nhiều khía cạnh của quá trình hợp nhất là không áp dụng cho trường hợp nghiên cứu này. Ví dụ, một phần quan trọng của công việc phân tích là phân chia sản phẩm phần mềm thành các gói phân tích. Mỗi gói bao gồm một tập các lớp học có liên quan, thường liên quan đến một tập hợp nhỏ của các diễn viên, mà có thể được thực hiện như một đơn vị duy nhất. Ví dụ, khoản phải trả, các khoản phải thu, và sổ cái chung là những gói phân tích điển hình. Các khái niệm cơ bản các gói phân tích là nó là dễ dàng hơn nhiều để phát triển các sản phẩm phần mềm nhỏ hơn so với các sản phẩm phần mềm lớn hơn. Theo đó, một sản phẩm phần mềm lớn là dễ dàng hơn để phát triển nếu nó có thể được chia thành các gói tương đối độc lập.
Ý tưởng này phân hủy một công việc lớn thành những quy trình nhỏ hơn tương đối độc lập được chuyển sang các công việc thiết kế. Ở đây, mục tiêu là để phá vỡ các quy trình làm việc thực hiện sắp tới vào phần quản lý, gọi là hệ thống con. Một lần nữa, nó không có ý nghĩa để phá vỡ các trường hợp nghiên cứu MSG Foundation vào hệ thống con; nghiên cứu trường hợp chỉ là quá nhỏ.
Có hai lý do tại sao công việc lớn được chia thành các hệ thống con:
1. Như đã giải thích trước đây, nó là dễ dàng hơn để thực hiện một số hệ thống con nhỏ hơn so với một hệ thống lớn.
2. Nếu các hệ thống con được thực hiện thực sự là tương đối độc lập, sau đó họ có thể được thực hiện bởi đội ngũ lập trình làm việc song song. Điều này dẫn đến các sản phẩm phần mềm như toàn bộ một con giao sớm hơn.
Nhớ lại từ mục 8.5.4 mà kiến trúc của một sản phẩm phần mềm bao gồm các thành phần khác nhau và cách họ fi t nhau. Việc phân bổ các thành phần để hệ thống con là một phần quan trọng của nhiệm vụ kiến trúc. Quyết định về kiến trúc của một sản phẩm phần mềm là do không có nghĩa là dễ dàng, và trong tất cả các sản phẩm phần mềm nhỏ, được thực hiện bởi một chuyên gia, kiến trúc sư phần mềm.
Ngoài việc là một chuyên gia kỹ thuật, một kiến trúc sư cần phải biết làm thế nào để làm cho thương mại offs. Một sản phẩm phần mềm phải đáp ứng các yêu cầu chức năng, có nghĩa là, các trường hợp sử dụng. Nó cũng cần phải đáp ứng các yêu cầu phi chức năng, bao gồm cả tính di động (Chương 8), độ tin cậy (mục 6.4.2), vững mạnh (Mục 6.4.3), bảo trì và bảo mật. Nhưng nó cần phải làm tất cả những điều này trong vòng ràng buộc ngân sách và thời gian. Nó gần như không bao giờ có thể phát triển một sản phẩm phần mềm đáp ứng tất cả các yêu cầu của nó, cả hai chức năng và phi chức năng, và hoàn thành dự án trong chi phí và thời gian hạn chế; thỏa hiệp hầu như luôn luôn phải được thực hiện. Các khách hàng có để thư giãn một số yêu cầu, làm tăng ngân sách, hoặc di chuyển các thời hạn giao hàng, hoặc làm nhiều hơn là một trong những. Các kiến trúc sư phải hỗ trợ ra quyết định của khách hàng làm bằng cách ánh xạ rõ các trade-offs.
Trong một số trường hợp thương mại-off là hiển nhiên. Ví dụ, các kiến trúc sư có thể chỉ ra rằng một tập hợp các yêu cầu an ninh cho phù hợp với một tiêu chuẩn bảo mật cao mới sẽ mất thêm 3 tháng và $ 350,000 để kết hợp trong các sản phẩm phần mềm. Nếu sản phẩm là một mạng lưới ngân hàng quốc tế, vấn đề này là tranh luận, không có cách nào mà khách hàng có thể có thể đồng ý thỏa hiệp về bảo mật trong bất kỳ cách nào. Tuy nhiên, trong những trường hợp khác, khách hàng cần phải đưa ra quyết định quan trọng liên quan đến sự thỏa hiệp và phải dựa trên chuyên môn kỹ thuật của kiến trúc sư để hỗ trợ đến các quyết định kinh doanh đúng đắn. Ví dụ, các kiến trúc sư có thể chỉ ra rằng trì hoãn một yêu cầu cụ thể cho đến khi các sản phẩm phần mềm đã được phát và đang được duy trì có thể tiết kiệm được 150.000 $, nhưng bây giờ sẽ có giá 300.000 $ để kết hợp sau đó (xem Hình 1.5). Các quyết định về việc có hay không để trì hoãn một yêu cầu có thể được thực hiện bằng cách chỉ cho khách hàng, nhưng anh ta hoặc cô ấy cần chuyên môn kỹ thuật của kiến trúc sư để hỗ trợ đến các quyết định chính xác.
Kiến trúc của một sản phẩm phần mềm là một yếu tố quan trọng như để xem các sản phẩm chuyển giao là một sự thành công hay thất bại. Và, các quyết định quan trọng liên quan đến kiến trúc phải được thực hiện trong khi thực hiện các công việc thiết kế. Nếu các yêu cầu công việc được thực hiện tồi tệ, nó vẫn có thể có một dự án thành công, cung cấp thêm thời gian và tiền bạc được chi cho các công việc phân tích. Tương tự như vậy, nếu các công việc phân tích là không đầy đủ, nó có thể phục hồi bằng cách làm cho một nỗ lực nhiều như là một phần của công việc thiết kế. Nhưng, nếu kiến trúc là không tối ưu, không có cách nào để phục hồi; kiến trúc ngay lập tức phải được thiết kế lại. Do đó điều cần thiết mà nhóm phát triển bao gồm một kiến trúc sư có kỹ năng chuyên môn và người dân kỹ thuật cần thiết.
Being translated, please wait..
