Meeting Scheduler:Problems and Lessons Learnt,presented at Second International Symposium on Requirements Engineering,1995 (Lei97)J.Leite and al,"Enhancing a Requirements Baseline with Scenarios," presented at IEEE International Symposium on Requirements Engineering,1997 (Ler97)F.Lerch and al.,"Using Simulation-Based Experiments for Software Requirements Engineering,Annals of Software Engineering,vol.3,1997 (Lev94)N.Leveson and al,"Requirements Specification for Process-Control Systems,IEEE Transactions on Software Engineering,vol.20,iss.9,684-707, September,1994 (Lut96a)R.Lutz and R.Woodhouse,"Contributions of SFMEA to Requirements Analysis,"presented at Second IEEE International Conference on Requirements Engineering,1996 (Lut97)R.Lutz and R.Woodhouse,"Requirements Analysis Using Forward and Backward Search,Annals of Software Engineering,vol.3,1997 (Mac96)L.Macaulay,Requirements Engineering.London UK:Springer,1996. (Mai95)N.Maiden and al,"Computational Mechanisms for Distributed Requirements Engineering,"presented at Seventh International Conference on Software Engineering and Knowledge Engineering,Skokie,Illinois:Knowledge Systems Institute,1995 (Mar94)B.Mar,"Requirements for Development of Software Requirements,presented at Fourth International Symposium on Systems Engineering,Sunnyvale,California, 1994 (Mas97)P.Massonet and A.v.Lamsweerde,"Analogical Reuse of Requirements Frameworks,"presented at IEEE International Symposium on Requirements Engineering, 1997 (McF95)I.McFarland and I.Reilly,"Requirements Traceability in an Integrated Development Environment,"presented at Second International Symposium on Requirements Engineering,1995 (Mea94)N.Mead,"The Role of Software Architecture in Requirements Engineering, presented at IEEE International Conference on Requirements Engineering,1994 (Mos95)D.Mostert and S.v.Solms,"A Technique to Include Computer Security,Safety, and Resilience Requirements as Part of the Requirements Specification,"Journal of Systems and Software,vol.31,iss.1,45-53,October,1995 (My195)J.Mylopoulos and al,"Multiple Viewpoints Analysis of Software Specification Process,"IEEE Transactions on Software Engineering,1995 (Nis92)K.Nishimura and S.Honiden,"Representing and Using Non-Functional Requirements:A Process-Oriented Approach,IEEE Transactions on Software Engineering,December,1992 (Nis97)H.Nissen and al,"View-Directed Requirements Engineering:A Framework and Metamodel,"presented at Ninth IEEE International Conference on Software Engineering and Knowledge Engineering,Skokie,Illinois:Knowledge Systems Institute,1997 (0Br96)L.0'Brien,"From Use Case to Database:Implementing a Requirements Tracking System,"Software Development,vol.4,iss.2,43-47,February,1996 (UML04)Object Management Group,"Unified Modeling Language,"2004,available at
Meeting Scheduler: Problems and Lessons Learnt," presented at Second International Symposium on Requirements Engineering, 1995 (Lei97) J. Leite and al, "Enhancing a Requirements Baseline with Scenarios," presented at IEEE International Symposium on Requirements Engineering, 1997 (Ler97) F. Lerch and al., "Using Simulation-Based Experiments for Software Requirements Engineering," Annals of Software Engineering, vol. 3, 1997 (Lev94) N. Leveson and al, "Requirements Specification for Process-Control Systems," IEEE Transactions on Software Engineering, vol. 20, iss. 9, 684-707, September, 1994 (Lut96a) R. Lutz and R. Woodhouse, "Contributions of SFMEA to Requirements Analysis," presented at Second IEEE International Conference on Requirements Engineering, 1996 (Lut97) R. Lutz and R. Woodhouse, "Requirements Analysis Using Forward and Backward Search," Annals of Software Engineering, vol. 3, 1997 (Mac96) L. Macaulay, Requirements Engineering. London UK: Springer, 1996. (Mai95) N. Maiden and al, "Computational Mechanisms for Distributed Requirements Engineering," presented at Seventh International Conference on Software Engineering and Knowledge Engineering, Skokie, Illinois: Knowledge Systems Institute, 1995 (Mar94) B. Mar, "Requirements for Development of Software Requirements," presented at Fourth International Symposium on Systems Engineering, Sunnyvale, California, 1994 (Mas97) P. Massonet and A. v. Lamsweerde, "Analogical Reuse of Requirements Frameworks," presented at IEEE International Symposium on Requirements Engineering, 1997 (McF95) I. McFarland and I. Reilly, "Requirements Traceability in an Integrated Development Environment," presented at Second International Symposium on Requirements Engineering, 1995 (Mea94) N. Mead, "The Role of Software Architecture in Requirements Engineering," presented at IEEE International Conference on Requirements Engineering, 1994 (Mos95) D. Mostert and S. v. Solms, "A Technique to Include Computer Security, Safety, and Resilience Requirements as Part of the Requirements Specification," Journal of Systems and Software, vol. 31, iss. 1, 45-53, October, 1995 (Myl95) J. Mylopoulos and al, "Multiple Viewpoints Analysis of Software Specification Process," IEEE Transactions on Software Engineering, 1995 (Nis92) K. Nishimura and S. Honiden, "Representing and Using Non-Functional Requirements: A Process-Oriented Approach," IEEE Transactions on Software Engineering, December, 1992 (Nis97) H. Nissen and al, "View-Directed Requirements Engineering: A Framework and Metamodel," presented at Ninth IEEE International Conference on Software Engineering and Knowledge Engineering, Skokie, Illinois: Knowledge Systems Institute, 1997 (OBr96) L. O'Brien, "From Use Case to Database: Implementing a Requirements Tracking System," Software Development, vol. 4, iss. 2, 43-47, February, 1996 (UML04) Object Management Group, "Unified Modeling Language," 2004, available at
http://www.uml.org (Opd94)A.Opdahl,"Requirements Engineering for Software Performance,"presented at International Workshop on Requirements Engineering:Foundations of Software Quality,1994 (Pin96)F.Pinheiro and J.Goguen,"An Object-Oriented Tool for Tracing Requirements,"IEEE Software,vol.13,iss.2,52-64,March,1996 (Pla96)G.Playle and C.Schroeder,"Software Requirements Elicitation:Problems, Tools,and Techniques,Crosstalk:The Journal of Defense Software Engineering,vol. 9,iss.12,19-24,December,.1996 (Poh94)K.Pohl and al,"Applying AI Techniques to Requirements Engineering:The NATURE Prototype,presented at IEEE Workshop on Research Issues in the Intersection Between Software Engineering and Artificial Intelligence,1994 (Por95)A.Porter and al,"Comparing Detection Methods for Software Requirements Inspections:A Replicated Experiment,IEEE Transactions on Software Engineering, vol.21,iss.6,563-575,June,1995 (Pot95)C.Potts and al,"An Evaluation of Inquiry-Based Requirements Analysis for an Internet Server,"presented at Second International Symposium on Requirements Engineering,1995 (Pot97)C.Potts and I.Hsi,"Abstraction and Context in Requirements Engineering: Toward a Synthesis,Annals of Software Engineering,vol.3,1997 (Pot97a)C.Potts and W.Newstetter,"Naturalistic Inquiry and Requirements Engineering:Reconciling Their Theoretical Foundations,"presented at IEEE International Symposium on Requirements Engineering,1997 (Ram95)B.Ramesh and al,"Implementing Requirements Traceability:A Case Study," presented at Second International Symposium on Requirements Engineering,1995 (Reg95)B.Regnell and al,"Improving the Use Case Driven Approach to Requirements Engineering,"presented at Second IEEE International Symposium on Requirements Engineering,1995 (Reu94)H.Reubenstein,"The Role of Software Architecture in Software Requirements Engineering,"presented at IEEE International Conference on Requirements Engineering,1994 (Rob94)J.Robertson and S.Robertson,"Complete Systems Analysis,"vol.1 and 2. Englewood Cliffs,New Jersey:Prentice Hall,1994. (Rob94a)W.Robinson and S.Fickas,"Supporting Multi-Perspective Requirements Engineering,"presented at IEEE International Conference on Requirements Engineering,1994 (Ros98)L.Rosenberg,T.F.Hammer and L.L.Huffman,"Requirements,testing and metrics,"presented at 15th Annual Pacific Northwest Software Quality Conference, Utah,1998 (Sch94)W.Schoening,"The Next Big Step in Systems Engineering Tools:Integrating Automated Requirements Tools with Computer Simulated Synthesis and Test,presented at Fourth International Symposium on Systems Engineering,Sunnyvale,California, 1994 (She94)M.Shekaran,"The Role of Software Architecture in Requirements
http://www.uml.org (Opd94) A. Opdahl, "Requirements Engineering for Software Performance," presented at International Workshop on Requirements Engineering: Foundations of Software Quality, 1994 (Pin96) F. Pinheiro and J. Goguen, "An Object-Oriented Tool for Tracing Requirements," IEEE Software, vol. 13, iss. 2, 52-64, March, 1996 (Pla96) G. Playle and C. Schroeder, "Software Requirements Elicitation: Problems, Tools, and Techniques," Crosstalk: The Journal of Defense Software Engineering, vol. 9, iss. 12, 19-24, December, 1996 (Poh94) K. Pohl and al, "Applying AI Techniques to Requirements Engineering: The NATURE Prototype," presented at IEEE Workshop on Research Issues in the Intersection Between Software Engineering and Artificial Intelligence, 1994 (Por95) A. Porter and al, "Comparing Detection Methods for Software Requirements Inspections: A Replicated Experiment," IEEE Transactions on Software Engineering, vol. 21, iss. 6, 563-575, June, 1995 (Pot95) C. Potts and al, "An Evaluation of Inquiry-Based Requirements Analysis for an Internet Server," presented at Second International Symposium on Requirements Engineering, 1995 (Pot97) C. Potts and I. Hsi, "Abstraction and Context in Requirements Engineering: Toward a Synthesis," Annals of Software Engineering, vol. 3, 1997 (Pot97a) C. Potts and W. Newstetter, "Naturalistic Inquiry and Requirements Engineering: Reconciling Their Theoretical Foundations," presented at IEEE International Symposium on Requirements Engineering, 1997 (Ram95) B. Ramesh and al, "Implementing Requirements Traceability: A Case Study," presented at Second International Symposium on Requirements Engineering, 1995 (Reg95) B. Regnell and al, "Improving the Use Case Driven Approach to Requirements Engineering," presented at Second IEEE International Symposium on Requirements Engineering, 1995 (Reu94) H. Reubenstein, "The Role of Software Architecture in Software Requirements Engineering," presented at IEEE International Conference on Requirements Engineering, 1994 (Rob94) J. Robertson and S. Robertson, "Complete Systems Analysis," vol. 1 and 2. Englewood Cliffs, New Jersey: Prentice Hall, 1994. (Rob94a) W. Robinson and S. Fickas, "Supporting Multi-Perspective Requirements Engineering," presented at IEEE International Conference on Requirements Engineering, 1994 (Ros98) L. Rosenberg, T. F. Hammer and L. L. Huffman, "Requirements, testing and metrics," presented at 15th Annual Pacific Northwest Software Quality Conference, Utah, 1998 (Sch94) W. Schoening, "The Next Big Step in Systems Engineering Tools: Integrating Automated Requirements Tools with Computer Simulated Synthesis and Test," presented at Fourth International Symposium on Systems Engineering, Sunnyvale, California, 1994 (She94) M. Shekaran, "The Role of Software Architecture in Requirements
Engineering,"presented at IEEE International Conference on Requirements Engineering,1994 (Sid97)J.Siddiqi and al,"Towards Quality Requirements Via Animated Formal Specifications,"Annals of Software Engineering,vol.3,1997 (Span97)G.Spanoudakis and A.Finkelstein,"Reconciling Requirements:A Method for Managing Interference,Inconsistency,and Conflict,Annals of Software Engineering, vol.3,1997 (Ste94)R.Stevens,"Structured Requirements,"presented at Fourth International Symposium on Systems Engineering,Sunnyvale,California,1994 (Vin90)W.G.Vincenti,What Engineers Know and How They Know It -Analytical Studies form Aeronautical History.Baltimore and London:John Hopkins University Press, 1990. (Wei03)K.Weigers,Software Requirements,2nd ed:Microsoft Press,2003. (Whi95)S.White and M.Edwards,"A Requirements Taxonomy for Specifying Complex Systems,"presented at First IEEE International Conference on Engineering of Complex Computer Systems,1995 (Wil99)B.Wiley,Essential System Requirements:A Practical Guide to Event-Driven Methods:Addison-Wesley,1999. (Wyd96)T.Wyder,"Capturing Requirements With Use Cases,Software Development, vol.4,iss.2,36-40,February,1996 (Yen97)J.Yen and W.Tiao,"A Systematic Tradeoff Analysis for Conflicting Imprecise Requirements,"presented at IEEE International Symposium on Requirements Engineering,1997 (Yu97)E.Yu,"Towards Modeling and Reasoning Support for Early-Phase Requirements Engineering,"presented at IEEE International Symposium on Requirements Engineering, 1997 (Zav96)P.Zave and M.Jackson,"Where Do Operations Come From?A Multiparadigm Specification Technique,IEEE Transactions on Software Engineering,,vol.22,iss. 7,508-528,July,1996 附录B有关标准 (IEEE830-98)IEEE Std 830-1998,IEEE Recommended Practice for Software Requirements Specifications:IEEE,1998. (IEEE1028-97)IEEE Std 1028-1997 (R2002),IEEE Standard for Software Reviews:IEEE, 1997. (IEEE1233-98)IEEE Std 1233-1998,"IEEE Guide for Developing System Requirements Specifications,"1998 (IEEE1320.1-98)IEEE Std 1320.1-1998,IEEE Standard for Functional Modeling Language-Syntax and Semantics for IDEFO:IEEE,1998. (IEEE1320.2-98)IEEE Std 1320.2-1998,"IEEE Standard for Conceptual Modeling Language-Syntax and Semantics for IDEFIX97 (IDEF Objetct),"IEEE,1998. (IEEE1362-98)IEEE Std 1362-1998,IEEE Guide for Information Technology-System Definition-Concept of Operations (ConOps)Document:IEEE,1998. (IEEE1465-98)IEEE Std 1465-1998//IS0/IEC12119:1994,IEEE Standard Adoption of
Engineering," presented at IEEE International Conference on Requirements Engineering, 1994 (Sid97) J. Siddiqi and al, "Towards Quality Requirements Via Animated Formal Specifications," Annals of Software Engineering, vol. 3, 1997 (Span97) G. Spanoudakis and A. Finkelstein, "Reconciling Requirements: A Method for Managing Interference, Inconsistency, and Conflict," Annals of Software Engineering, vol. 3, 1997 (Ste94) R. Stevens, "Structured Requirements," presented at Fourth International Symposium on Systems Engineering, Sunnyvale, California, 1994 (Vin90) W. G. Vincenti, What Engineers Know and How They Know It - Analytical Studies form Aeronautical History. Baltimore and London: John Hopkins University Press, 1990. (Wei03) K. Weigers, Software Requirements, 2nd ed: Microsoft Press, 2003. (Whi95) S. White and M. Edwards, "A Requirements Taxonomy for Specifying Complex Systems," presented at First IEEE International Conference on Engineering of Complex Computer Systems, 1995 (Wil99) B. Wiley, Essential System Requirements: A Practical Guide to Event-Driven Methods: Addison-Wesley, 1999. (Wyd96) T. Wyder, "Capturing Requirements With Use Cases," Software Development, vol. 4, iss. 2, 36-40, February, 1996 (Yen97) J. Yen and W. Tiao, "A Systematic Tradeoff Analysis for Conflicting Imprecise Requirements," presented at IEEE International Symposium on Requirements Engineering, 1997 (Yu97) E. Yu, "Towards Modeling and Reasoning Support for Early-Phase Requirements Engineering," presented at IEEE International Symposium on Requirements Engineering, 1997 (Zav96) P. Zave and M. Jackson, "Where Do Operations Come From? A Multiparadigm Specification Technique," IEEE Transactions on Software Engineering,, vol. 22, iss. 7, 508-528, July, 1996 附录B 有关标准 (IEEE830-98) IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications: IEEE, 1998. (IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE Standard for Software Reviews: IEEE, 1997. (IEEE1233-98) IEEE Std 1233-1998, "IEEE Guide for Developing System Requirements Specifications," 1998 (IEEE1320.1-98) IEEE Std 1320.1-1998, IEEE Standard for Functional Modeling Language-Syntax and Semantics for IDEF0: IEEE, 1998. (IEEE1320.2-98) IEEE Std 1320.2-1998, "IEEE Standard for Conceptual Modeling Language-Syntax and Semantics for IDEFIX97 (IDEF Objetct)," IEEE, 1998. (IEEE1362-98) IEEE Std 1362-1998, IEEE Guide for Information Technology-System Definition-Concept of Operations (ConOps) Document: IEEE, 1998. (IEEE1465-98) IEEE Std 1465-1998//ISO/IEC12119:1994, IEEE Standard Adoption of
International Standard ISO/IEC12119:1994(E),Information Technology-Software packages-Quality requirements and testing:IEEE,1998. (IEEEP1471-00)IEEE Std 1471-2000,IEEE Recommended Practice for Architectural Description of Software Intensive Systems:Architecture Working Group of the Software Engineering Standards Committee,2000. (IEEE12207.0-96)IEEE/EIA12207.0-1996/IS0/IEC12207:1995,Industry Implementation of Int.Std.ISO/IEC 12207:95,Standard for Information Technology-Software Life Cycle Processes,IEEE,1996. (IEEE14143.1-00)IEEE Std14143.1-2000//IS0/IEC14143-1:1998,Information Technology-Software Measurement-Functional Size Measurement-Part 1:Definitions of Concepts:IEEE,2000. LLLE7LK71177777011111771177177717111177111177177717111177171711 第3章软件设计 术语和缩写 ADL:Architecture Description Languages,体系结构描述语言 CRC:Collaboration Responsibilities Card,协作责任卡 ERD:Entity-Relationship Diagrams,.实体联系图 IDL:Interface Description Languages,接口描述语言 DFD:Data Flow Diagram,数据流图 PDL:Pseudo--Code and Program Design Languages,伪码与程序描述语言 CBD:Component-based design,基于组件的设计 引言 在文献[IEEE610.12-90]中,设计被定义为“定义一个系统或组件的体系结构、组件、 接口和其它特征的过程”和“这个过程的结果”。作为过程看待时,软件设计是一种软件工 程生命周期活动,在这个活动中,要分析软件需求,以产生一个将作为软件构造的基础的软 件内部结构的描述。更精确地说,软件设计(结果)必须描述软件体系结构(即,软件如何 分解成组件并组织起来)和这些组件之间的接口,它必须在详细的层次上描述组件,以便能 构造这些组件。 软件设计在软件开发中起着重要作用:它让软件工程师产生形成要实现的方案的蓝图的 各种不同的模型,我们可以分析和评价这些模型,以确定使用它们能否实现各种不同的需求, 我们可以检查和评价各种不同的候选方案,进行权衡,最后,除了作为构造和测试的输入和 起始点外,我们可以使用作为结果的模型,来规划后续的开发活动。 在《IEEE/EIA12207软件生命周期过程》[IEEE12207.0-96]等软件生命周期过程的标准 列表中,软件设计由两个处于软件需求和软件构造之间的活动组成:(1)软件体系结构设 计(有时叫做高层设计):描述软件的搞成结构和组织,标识各种不同的组件。(2)软件 详细设计:详细地描述各个组件,使之能被构造。 对于软件设计知识域的范围,目前的知识域描述并没有讨论每一个其名字包含“设计” 一词的主题。在Tom DeMarco的术语中(DeM99),本章讨论的知识域主要处理D设计 (decomposition design:分解设计,将软件映射到组件上)。 但是,由于日益增长的软件体系结构领域的重要性,我们也将讨论FP设计(family pattern design:族模式设计,目标是在一族软件中建立可利用的公共部分)。但是,软件
International Standard ISO/IEC12119:1994(E), Information Technology-Software packages-Quality requirements and testing: IEEE, 1998. (IEEEP1471-00) IEEE Std 1471-2000, IEEE Recommended Practice for Architectural Description of Software Intensive Systems: Architecture Working Group of the Software Engineering Standards Committee, 2000. (IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology-Software Life Cycle Processes, IEEE, 1996. (IEEE14143.1-00) IEEE Std 14143.1-2000//ISO/IEC14143-1:1998, Information Technology-Software Measurement-Functional Size Measurement-Part 1: Definitions of Concepts: IEEE, 2000. ////////////////////////////////////////////////////////////////// 第3章 软件设计 术语和缩写 ADL:Architecture Description Languages,体系结构描述语言 CRC:Collaboration Responsibilities Card,协作责任卡 ERD:Entity-Relationship Diagrams,实体联系图 IDL:Interface Description Languages,接口描述语言 DFD:Data Flow Diagram,数据流图 PDL:Pseudo-Code and Program Design Languages,伪码与程序描述语言 CBD:Component-based design,基于组件的设计 引言 在文献[IEEE610.12-90]中,设计被定义为“定义一个系统或组件的体系结构、组件、 接口和其它特征的过程”和“这个过程的结果”。作为过程看待时,软件设计是一种软件工 程生命周期活动,在这个活动中,要分析软件需求,以产生一个将作为软件构造的基础的软 件内部结构的描述。更精确地说,软件设计(结果)必须描述软件体系结构(即,软件如何 分解成组件并组织起来)和这些组件之间的接口,它必须在详细的层次上描述组件,以便能 构造这些组件。 软件设计在软件开发中起着重要作用:它让软件工程师产生形成要实现的方案的蓝图的 各种不同的模型,我们可以分析和评价这些模型,以确定使用它们能否实现各种不同的需求, 我们可以检查和评价各种不同的候选方案,进行权衡,最后,除了作为构造和测试的输入和 起始点外,我们可以使用作为结果的模型,来规划后续的开发活动。 在《IEEE/EIA 12207软件生命周期过程》[IEEE12207.0-96]等软件生命周期过程的标准 列表中,软件设计由两个处于软件需求和软件构造之间的活动组成:(1)软件体系结构设 计(有时叫做高层设计):描述软件的搞成结构和组织,标识各种不同的组件。(2)软件 详细设计:详细地描述各个组件,使之能被构造。 对于软件设计知识域的范围,目前的知识域描述并没有讨论每一个其名字包含“设计” 一词的主题。在Tom DeMarco的术语中(DeM99),本章讨论的知识域主要处理D设计 (decomposition design:分解设计,将软件映射到组件上)。 但是,由于日益增长的软件体系结构领域的重要性,我们也将讨论FP设计(family pattern design:族模式设计,目标是在一族软件中建立可利用的公共部分)。但是,软件
设计知识域没有包含I设计(invention design:创造性设计,通常在软件需求过程中完成, 目标是将软件概念化,并说明软件能满足己经发现的要求和需求),因为这个主题是需求分 析和规格说明的一部分。 软件设计知识域描述与软件需求、软件构造、软件工程管理、软件指令和软件工程相关 学科特别相关。 软件设计主题分解结构 1软件设计基础 这里介绍的概念、符号和术语形成里理解软件设计的作用和范围的基础。 1.1一般设计概念 软件并不是有设计的唯一领域。一般而言,我们可以将设计看作是一种问题求解 [Bud03:c1],例如,难题(没有确定性答案的问题)对于理解设计的限制就很有趣[Bud04:c1], 一般意义上,其它许多符号和概念对于理解设计也有趣:目标、约束、候选方案、代表、答 案[Smi93]。 1.2软件设计上下文 为理解软件设计的作用,理解其所处的上下文一软件工程生命周期-一很重要,这样,理 解软件需求分析与软件设计与软件构造与软件测试,就非常重要。[IEEE12207.0-96: Lis01:c11:Mar02:Pfl01:c2;Pre04:c2]. 1.3软件设计过程 通常认为软件设计是一个两步的过程[Bas03:Dor02:v1c4s2;Fre83:I: IEEE12207.0-96]:Lis01:c13;Mar02:D]: 1.3.1体系结构设计 体系结构设计描述软件如何分解和组织成组件(软件体系结构)[IEEEP1471-00]。 1.3.2详细设计 详细设计描述这些组件的特定行为。 软件设计过程的输出是一组模型和人造物品,它们记录了采用的主要决策[Bud04:c2: IEE1016-98:Lis01:c13;Pre04:c9]。 1.4使能技术 根据牛津英语词典,“原理”是“一个基本的真理或普遍的法则,用来作为推理的基础 或行动的指南”。软件设计原理又称为使能技术[Bus96],是针对许多不同的软件设计方法 和概念的关键观念。使能技术包括[Bas98:c6:Bus96:c6;IEEE1016-98;Jal97:c5,c6: Lis01:c1,c3:Pf101:c5:Pre04:c9]: 1.4.1抽象 抽象是“遗忘一些信息,使得不同的事物可以当作同样的事物来处理”[Lis01]。在软 件设计上下文中,有两个关键的抽象机制:参数化和规范。规范抽象主要由类:过程抽象
设计知识域没有包含I设计(invention design:创造性设计,通常在软件需求过程中完成, 目标是将软件概念化,并说明软件能满足已经发现的要求和需求),因为这个主题是需求分 析和规格说明的一部分。 软件设计知识域描述与软件需求、软件构造、软件工程管理、软件指令和软件工程相关 学科特别相关。 软件设计主题分解结构 1 软件设计基础 这里介绍的概念、符号和术语形成里理解软件设计的作用和范围的基础。 1.1 一般设计概念 软件并不是有设计的唯一领域。一般而言,我们可以将设计看作是一种问题求解 [Bud03:c1],例如,难题(没有确定性答案的问题)对于理解设计的限制就很有趣[Bud04:c1], 一般意义上,其它许多符号和概念对于理解设计也有趣:目标、约束、候选方案、代表、答 案[Smi93]。 1.2 软件设计上下文 为理解软件设计的作用,理解其所处的上下文—软件工程生命周期--很重要,这样,理 解软件需求分析与软件设计与软件构造与软件测试,就非常重要。[IEEE12207.0-96; Lis01:c11; Mar02; Pfl01:c2;Pre04:c2]. 1.3 软件设计过程 通常认为软件设计是一个两步的过程[Bas03; Dor02:v1c4s2; Fre83:I; IEEE12207.0-96]; Lis01:c13; Mar02:D]: 1.3.1 体系结构设计 体系结构设计描述软件如何分解和组织成组件(软件体系结构)[IEEEP1471-00]。 1.3.2 详细设计 详细设计描述这些组件的特定行为。 软件设计过程的输出是一组模型和人造物品,它们记录了采用的主要决策[Bud04:c2; IEE1016-98; Lis01:c13; Pre04:c9]。 1.4 使能技术 根据牛津英语词典,“原理”是“一个基本的真理或普遍的法则,用来作为推理的基础 或行动的指南”。软件设计原理又称为使能技术[Bus96],是针对许多不同的软件设计方法 和概念的关键观念。使能技术包括[Bas98:c6; Bus96:c6; IEEE1016-98; Jal97:c5,c6; Lis01:c1,c3; Pfl01:c5; Pre04:c9]: 1.4.1 抽象 抽象是“遗忘一些信息,使得不同的事物可以当作同样的事物来处理”[Lis01]。在软 件设计上下文中,有两个关键的抽象机制:参数化和规范。规范抽象主要由类:过程抽象