统一软件开发过程The Unified Software Development Process(英文原版进口)
[特价中]基本信息
- 作者: Ivar Jacobson Grady Booch James Rumbaugh
- 丛书名: 英文原版系列图书
- 出版社:Addison-Wesley Professional
- ISBN:0201571692
- 上架时间:2003-8-4
- 出版日期:2003 年8月
- 开本:16开
- 页码:463
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 综合
进口图书 > 原版科技
作译者回到顶部↑
目录回到顶部↑
preface xvii
part 1: the unified software development process
chapter 1: the unified process: use-case driven,architecture-centric, iterative, and incremental 3
1.1 the unified process in a nutshell 4
1.2 the unified process is use-case driven 5
1.3 the unified process is architecture-centric 6
1.4 the unified process is iterative and incremental 7
1.5 the life of the unified process 8
1.5.1 the product 9
1.5.2 phases within a cycle 11
1.6 an integrated process 13
chapter 2: the four ps: people, project, product,and process in software development 15
2.1 people are crucial 16
2.1.1 development processes affect people 16
2.1.2 roles will change 17
2.1.3 turning "resources" into "workers" 18
2,2 projects make the product 19
2,3 product is more than code 20
2.3.1 what is a software system? 20
2.3.2 artifacts 21
part 1: the unified software development process
chapter 1: the unified process: use-case driven,architecture-centric, iterative, and incremental 3
1.1 the unified process in a nutshell 4
1.2 the unified process is use-case driven 5
1.3 the unified process is architecture-centric 6
1.4 the unified process is iterative and incremental 7
1.5 the life of the unified process 8
1.5.1 the product 9
1.5.2 phases within a cycle 11
1.6 an integrated process 13
chapter 2: the four ps: people, project, product,and process in software development 15
2.1 people are crucial 16
2.1.1 development processes affect people 16
2.1.2 roles will change 17
2.1.3 turning "resources" into "workers" 18
2,2 projects make the product 19
2,3 product is more than code 20
2.3.1 what is a software system? 20
2.3.2 artifacts 21
前言回到顶部↑
There is a belief held by some that professional enterprises should be organized around the skills of highly trained individuals. They know the work to be done and just do it! They hardly need guidance in policy and procedure from the organization for which they work.
This belief is mistaken in most cases, and badly mistaken in the case of software development. Certainly, software developers are highly trained, but the profession is still young. Consequently, developers need organizational guidance, which, in this book, we refer to as the "software development process." Moreover, because the process we set forth in this book represents the bringing together of previously separate methodologies, we feel justified in calling it the "Unified Process." It not only unifies the work of the three authors but incorporates the numerous contributions of other individuals and companies that contributed to the UML, as well as a significant number of key contributors at Rational Software Corporation. It draws significantly from the on-the-spot experience of hundreds of user organizations working with early versions of the process at customer sites.
A symphony orchestra conductor, for example, does little more during a performance than tell the players when to start and help them stay together. He or she can do so little because the conductor has guided the orchestra during rehearsals and preparation of the score, and because each musician is highly skilled on his own instrument and actually plays it independently of the other orchestra members. More importantly for our purpose, each musician follows a "process" laid out long ago by the composer. It is the musical score that provides the bulk of the "policy and procedure'' that guides the performance. In contrast, software developers do not play independently. They interact with each other and the users. They have no score to follow--until they have a process.
The need for process promises to become more critical, particularly in companies or organizations in which the software systems are "mission-critical," such as financial, air traffic control, defense, and telecommunications systems. By this we mean that the successful conduct of the business or execution of the public mission depends upon the software that supports it. These software systems are becoming more complex, their time to market needs to shrink, and their development, in turn, is becoming more difficult. For reasons such as these, the oftware,industry needs a process to guide developers, just as an orchestra needs a composer s score to guide a performance.
What Is a Software Development Process?
A process defines who is doing what when and how to reach a certain goal. In software engineering the goal is to build a software product or to enhance an existing one. An effective process provides guidelines for the efficient development of quality software. It captures and presents the best practices that the current state of the art permits. In consequence, it reduces risk and increases predictability. The overall effect is to promote a common vision and culture.
We need such a process to serve as a guide for all the participants---customers, users, developers, and executive managers. Any old process will not do; we need one that will be the best process the industry is capable of putting together at this point in its history. Finally, we need a process that will be widely available so that all the stakeholders can understand its role in the development under consideration.
A software development process should also be capable of evolving over many years. During this evolution it should limit its reach at any given point in time to the realities that technologies, tools, people, and organizational patterns permit.
Technologies. Process must be built on technologies--programming languages, operating systems, computer systems, network capabilities, development environments, and so on--that are usable at the time the process is to be used. For example, twenty years ago visual modeling was not really mainstream. It was too expensive. At that time, a process builder almost had to assume that hand-drawn diagrams would be used. That assumption greatly limited the degree to which a process originator could build modeling into the process.
· Tools. Process and tools must develop in parallel. Tools are integral to process.
To put it another way, a widely used process can support the investment that creates the tools that support it.
eople. A process builder must limit the skill set needed to operate the process to the skills that current developers possess or target ones that developers can be quickly trained to use. In many areas it is now possible to embed techniques that once required extensive skill, such as checking model drawings for consistency, in computer-based tools.
Organizational patterns. While software developers may not be as independently expert as symphony musicians, they are far from the automaton workers on whom Frederick W. Taylor based "scientific management" one hundred years ago. The process builder has to adapt the process to today's realities the facts of virtual organization; working at a distance through high-speed lines; the mix of partial owners (in small start-ups), salaried employees, contract workers, and outsourcing subcontractors; and the continuing shortage of software developers.
Process engineers need to balance these four sets of circumstances. Moreover, the balance must exist not just now but into the future. The process builder must design the process so it can evolve, just as a software developer tries to develop a system that not only works this year but evolves successfully for years to come. A process needs to mature for several years before it achieves the level of stability and maturity that will enable it to stand up to the rigors of commercial product development while holding the risk of its use to a reasonable level. Developing a new product is risky enough by itself without adding to it the risk of a process insufficiently tested by actual experience. Under these circumstances, a process can be stable. Without this balance of technologies, tools, people, and organization, using the process would be quite risky.
Goals of the Book
This book presents the software process that was constantly on our minds when we developed the Unified Modeling Language. While UML gives us a standard way to visualize, specify, construct, document, and communicate the artifacts of a software- intensive system, we of course recognize that such a languag~ must be used within the context of an end-to-end software process. UML is a means, not an end. The ultimate end is a robust, resilient, scaleable software application. It takes both a process and a language to get there, and illustrating the process portion is the goal of this book. While we provide a brief appendix on the UML, it is not intended to be comprehensive or detailed. For a detailed UML tutorial refer to The Unified Modeling Language User Guide [11]. For a comprehensive UML reference refer to The Unified Modeling Language Reference Manual [12].
Audience
The Unified Software Development Process can be used by anyone involved in the development of software. It is primarily addressed to members of the development team who deal with the life-cycle activities requirements, analysis, design, implementation, and testing--that is, in work that results in UML models. Thus, for instance, this book is relevant to analysts and end users (who specify the required structure and behavior of a system), application developers (who design systems that satisfy those requirements), programmers (who turn those designs into executable code), testers (who verify and validate the system's structure and behavior), component developers (who create and catalogue components), and project and product managers.
This book assumes a basic grasp of object-oriented concepts. Experience in software development and in an object-oriented programming language is also helpful,, but not required.
Approach of the Book
This belief is mistaken in most cases, and badly mistaken in the case of software development. Certainly, software developers are highly trained, but the profession is still young. Consequently, developers need organizational guidance, which, in this book, we refer to as the "software development process." Moreover, because the process we set forth in this book represents the bringing together of previously separate methodologies, we feel justified in calling it the "Unified Process." It not only unifies the work of the three authors but incorporates the numerous contributions of other individuals and companies that contributed to the UML, as well as a significant number of key contributors at Rational Software Corporation. It draws significantly from the on-the-spot experience of hundreds of user organizations working with early versions of the process at customer sites.
A symphony orchestra conductor, for example, does little more during a performance than tell the players when to start and help them stay together. He or she can do so little because the conductor has guided the orchestra during rehearsals and preparation of the score, and because each musician is highly skilled on his own instrument and actually plays it independently of the other orchestra members. More importantly for our purpose, each musician follows a "process" laid out long ago by the composer. It is the musical score that provides the bulk of the "policy and procedure'' that guides the performance. In contrast, software developers do not play independently. They interact with each other and the users. They have no score to follow--until they have a process.
The need for process promises to become more critical, particularly in companies or organizations in which the software systems are "mission-critical," such as financial, air traffic control, defense, and telecommunications systems. By this we mean that the successful conduct of the business or execution of the public mission depends upon the software that supports it. These software systems are becoming more complex, their time to market needs to shrink, and their development, in turn, is becoming more difficult. For reasons such as these, the oftware,industry needs a process to guide developers, just as an orchestra needs a composer s score to guide a performance.
What Is a Software Development Process?
A process defines who is doing what when and how to reach a certain goal. In software engineering the goal is to build a software product or to enhance an existing one. An effective process provides guidelines for the efficient development of quality software. It captures and presents the best practices that the current state of the art permits. In consequence, it reduces risk and increases predictability. The overall effect is to promote a common vision and culture.
We need such a process to serve as a guide for all the participants---customers, users, developers, and executive managers. Any old process will not do; we need one that will be the best process the industry is capable of putting together at this point in its history. Finally, we need a process that will be widely available so that all the stakeholders can understand its role in the development under consideration.
A software development process should also be capable of evolving over many years. During this evolution it should limit its reach at any given point in time to the realities that technologies, tools, people, and organizational patterns permit.
Technologies. Process must be built on technologies--programming languages, operating systems, computer systems, network capabilities, development environments, and so on--that are usable at the time the process is to be used. For example, twenty years ago visual modeling was not really mainstream. It was too expensive. At that time, a process builder almost had to assume that hand-drawn diagrams would be used. That assumption greatly limited the degree to which a process originator could build modeling into the process.
· Tools. Process and tools must develop in parallel. Tools are integral to process.
To put it another way, a widely used process can support the investment that creates the tools that support it.
eople. A process builder must limit the skill set needed to operate the process to the skills that current developers possess or target ones that developers can be quickly trained to use. In many areas it is now possible to embed techniques that once required extensive skill, such as checking model drawings for consistency, in computer-based tools.
Organizational patterns. While software developers may not be as independently expert as symphony musicians, they are far from the automaton workers on whom Frederick W. Taylor based "scientific management" one hundred years ago. The process builder has to adapt the process to today's realities the facts of virtual organization; working at a distance through high-speed lines; the mix of partial owners (in small start-ups), salaried employees, contract workers, and outsourcing subcontractors; and the continuing shortage of software developers.
Process engineers need to balance these four sets of circumstances. Moreover, the balance must exist not just now but into the future. The process builder must design the process so it can evolve, just as a software developer tries to develop a system that not only works this year but evolves successfully for years to come. A process needs to mature for several years before it achieves the level of stability and maturity that will enable it to stand up to the rigors of commercial product development while holding the risk of its use to a reasonable level. Developing a new product is risky enough by itself without adding to it the risk of a process insufficiently tested by actual experience. Under these circumstances, a process can be stable. Without this balance of technologies, tools, people, and organization, using the process would be quite risky.
Goals of the Book
This book presents the software process that was constantly on our minds when we developed the Unified Modeling Language. While UML gives us a standard way to visualize, specify, construct, document, and communicate the artifacts of a software- intensive system, we of course recognize that such a languag~ must be used within the context of an end-to-end software process. UML is a means, not an end. The ultimate end is a robust, resilient, scaleable software application. It takes both a process and a language to get there, and illustrating the process portion is the goal of this book. While we provide a brief appendix on the UML, it is not intended to be comprehensive or detailed. For a detailed UML tutorial refer to The Unified Modeling Language User Guide [11]. For a comprehensive UML reference refer to The Unified Modeling Language Reference Manual [12].
Audience
The Unified Software Development Process can be used by anyone involved in the development of software. It is primarily addressed to members of the development team who deal with the life-cycle activities requirements, analysis, design, implementation, and testing--that is, in work that results in UML models. Thus, for instance, this book is relevant to analysts and end users (who specify the required structure and behavior of a system), application developers (who design systems that satisfy those requirements), programmers (who turn those designs into executable code), testers (who verify and validate the system's structure and behavior), component developers (who create and catalogue components), and project and product managers.
This book assumes a basic grasp of object-oriented concepts. Experience in software development and in an object-oriented programming language is also helpful,, but not required.
Approach of the Book







点击看大图






加载中...

