开发者

How RUP describes software architecture? What is the relation between RUP and software architecture?

开发者 https://www.devze.com 2022-12-19 16:19 出处:网络
I\'m looking for articles or documents which describes software architecture from RUP point of view. Do you know any docume开发者_JAVA技巧nt ?The notion of software architecture is central to RUP and

I'm looking for articles or documents which describes software architecture from RUP point of view.

Do you know any docume开发者_JAVA技巧nt ?


The notion of software architecture is central to RUP and is well supported throughout the process.

First, RUP describes several roles, one of which is software architect:

This typically includes identifying and documenting the architecturally significant aspects of the system, including requirements, design, implementation, and deployment "views" of the system.

Then, RUP has an artifact called sofware architecture document (SAD):

The Software Architecture Document provides a comprehensive architectural overview of the system, using a number of different architectural views to depict different aspects of the system.

The system is "sliced" and document using different views. Philippe Kruchten, director of process development, popularized the 4+1 architectural view model. The views are:

  • use case/scenario
  • logical view
  • development view
  • process view
  • physical/depoyment view

IMO, this is indeed a good structure. You don't need however to necessary follow this structure in the SAD. Purpose of the SAD is to describe information complementary to the code, especially how non-functional requirements will be met. Here are interesting guidelines about what such a document should contain.

You can have a look at the RUP samples: course registration system and collegiate sport paging system.


The Rational Unified Process describes "Component-based architecture" as one of its seven core "best practices". It's not entirely clear to me what this means. On the web, the best description seems to be this one, from the whitepaper "Rational Unified Process: Best Practices for Software Development Teams":

Use Component-Based Architectures--The process focuses on early development and baselining of a robust executable architecture, prior to committing resources for full-scale development. It describes how to design a resilient architecture that is flexible, accommodates change, is intuitively understandable, and promotes more effective software reuse. The Rational Unified Process supports component-based software development. Components are non-trivial modules, subsystems that fulfill a clear function. The Rational Unified Process provides a systematic approach to defining an architecture using new and existing components. These are assembled in a well-defined architecture, either ad hoc, or in a component infrastructure such as the Internet, CORBA, and COM, for which an industry of reusable components is emerging.

The original reference for this is p.140 of the book Component-Based Software Engineering: Selected Papers from the Software Engineering Institute.

The IBM developerWorks article "What is a software architecture?" looks more useful and accessible to me. Although not RUP-specific, it tries to define 'component' and the key elements that a software architecture seeks to describe. Alternatively, any book on the process should include something about the recommended software architecture. There is a further reading list at the end of the Wikipedia article which would be a good starting point.

0

精彩评论

暂无评论...
验证码 换一张
取 消