软件工程文档规范(11个doc)2
- 格式:doc
- 大小:8.19 MB
- 文档页数:17
软件工程专业规章制度第一章总则第一条为规范软件工程专业人员的行为,保障软件工程项目的顺利进行,制定本规章制度。
第二条本规章制度适用于软件工程专业人员,在软件工程项目中的职责和行为。
第三条软件工程专业人员应遵守国家有关法律法规、规章制度,遵循职业道德准则,承担责任,尊重他人。
第四条软件工程专业人员应具备专业素养和技术能力,不断提升自身能力,保持学习状态。
第五条软件工程专业人员应遵循软件开发流程,严格按照规定的标准和规范进行工作。
第六条软件工程专业人员在项目中应主动沟通、合作,保持团队协作精神,解决问题,共同完成项目目标。
第七条软件工程专业人员应保守项目信息的机密性,不得泄露项目相关信息。
第八条软件工程专业人员应遵守公司规章制度,服从领导安排,完成上级交付的任务。
第二章软件开发流程规定第九条软件工程项目的开发流程包括需求分析、系统设计、编码、测试、发布等环节,软件工程专业人员应依次进行工作。
第十条软件需求分析阶段,软件工程专业人员应深入理解客户需求,分析需求,撰写需求文档,并与客户充分沟通确认需求。
第十一条系统设计阶段,软件工程专业人员应根据需求文档设计系统架构,撰写系统设计文档,进行系统设计评审,并与客户确认设计。
第十二条编码阶段,软件工程专业人员应根据系统设计文档进行编码工作,编写高质量代码,遵循编码规范,进行代码评审。
第十三条测试阶段,软件工程专业人员应编写测试计划,进行系统测试,发现并修复问题,保证软件质量。
第十四条发布阶段,软件工程专业人员应编写发布计划,将软件部署到目标环境中,并对软件进行运行监控,保证软件正常运行。
第三章软件开发标准规范第十五条软件开发应遵循公司制定的开发标准和规范,统一开发工具和流程,保证软件质量。
第十六条编码应遵循编码规范,变量和函数命名清晰有意义,注释完整准确,避免冗余代码,保证代码易读性和可维护性。
第十七条数据库设计应符合数据库规范,保证数据完整性和一致性,避免数据冗余和数据泄露。
软件开发行为规范第一版版权所有不得复制软件开发行为规范(第一版)为了把公司已经发布的软件开发过程规范有效地运作于产品开发活动中,把各种规范“逐步形成工程师的作业规范”,特制定本软件开发行为规范,以达到过程控制的目的。
与软件开发相关的所有人员都必须遵守本软件开发行为规范。
本软件开发行为规范的内容包括:软件需求分析、软件项目计划、概要设计、详细设计、编码、需求管理、配置管理、软件质量保证、数据度量和分析等。
本软件开发行为规范,采用以下的术语描述:★规则:在软件开发过程中强制必须遵守的行为规范。
★建议:软件开发过程中必须加以考虑的行为规范。
★说明:对此规则或建议进行必要的解释。
★示例:对此规则或建议从正或反两个方面给出例子。
本软件开发过程行为规范由信息技术管理部负责解释和维护。
信息技术管理部目录1 软件需求分析 52 软件项目计划93 概要设计114 详细设计145 编码186 需求管理197 软件配置管理218 软件质量保证231 软件需求分析1-1:软件需求分析必须在产品需求规格的基础上进行,并保证完全实现产品需求规格的定义。
1-2:当产品的需求规格发生变更时,必须修订软件需求规格文档。
软件需求规格的变更必须经过评审,并保存评审记录。
1-3:必须对软件需求规格文档进行正规检视。
1-4:软件需求分析过程活动结束前,必须经过评审,并保存评审记录。
1-5:在对软件需求规格文档的正规检视或评审时,必须检查软件需求规格文档中需求的清晰性、完备性、兼容性、一致性、正确性、可行性、易修改性、健壮性、易追溯性、易理解性、易测试性和可验证性、性能、功能、接口、数据、可维护性等内容。
说明:参考建议1-1到1-16。
1-1:采用以下检查表检查软件需求规格文档中需求的清晰性。
1-2:采用以下检查表检查软件需求规格文档中需求的完备性。
1-3:采用以下检查表检查软件需求规格文档中需求的兼容性。
1-4:采用以下检查表检查软件需求规格文档中需求的一致性。
软件文档写作课程设计课程简介本课程旨在培养学生具备编写软件文档的能力,使其能够编写高质量的软件文档,包括需求文档、设计文档、用户手册等,提高软件开发过程中文档编写的效率和质量。
课程目标1.了解软件文档的基本概念和作用;2.掌握软件文档的编写规范;3.能够编写需求文档、设计文档、用户手册等软件文档;4.提高文档编写的效率和质量。
课程安排第一周课程内容1.软件文档的基础知识;2.软件文档的分类;3.软件文档的编写规范。
学习任务1.阅读软件文档编写相关的书籍或文章;2.制定个人学习计划,并在课堂上和同学分享。
课程内容1.需求文档的编写;2.需求文档的评审。
学习任务1.阅读需求文档编写相关的书籍或文章;2.编写一份需求文档,并在课堂上进行评审。
第三周课程内容1.设计文档的编写;2.设计文档的评审。
学习任务1.阅读设计文档编写相关的书籍或文章;2.编写一份设计文档,并在课堂上进行评审。
第四周课程内容1.用户手册的编写;2.用户手册的评审。
学习任务1.阅读用户手册编写相关的书籍或文章;2.编写一份用户手册,并在课堂上进行评审。
课程内容1.文档编写工具的介绍;2.文档编写工具的实践。
学习任务1.下载并安装一款文档编写工具;2.编写一份文档,并使用文档编写工具进行排版和格式设置。
第六周课程内容1.软件文档的维护和更新;2.软件文档的管理。
学习任务1.阅读软件文档维护和更新相关的书籍或文章;2.撰写一份软件文档的维护和更新方案。
课程评估1.课堂出勤情况(占总分20%);2.学习任务完成情况(占总分60%);3.课程论文(占总分20%)。
参考文献1.《软件文档编写规范》;2.《软件工程》;3.《软件文档写作方法与技巧》。
软件工程(双语)(最全)word资料软件工程(双语)Software Engineering课程编号:B0301101S学分: 3开课学院:计算机学院课内学时:48课程类别:专业基础课课程性质:必修一、课程的性质和目的Curriculum nature:The course is professional required course of Software Engineering Major.Object:The Software Engineering is the basis course of computer and related sciences. It is an engineering discipline where software engineers use methods and theory from computer science and apply it cost-effectively to solve difficult problems. This course presents a broad perspective on software engineering, such as software lifecycle, qualities of software, design, specification and verification of software, programming environments and tools, structural oriented programming and object oriented programming. Furthermore, the quality management, process improvement, software change, configuration management are also discussed.二、课程教学内容及基本要求(一)课程教学内容及知识模块顺序KNOWLEDGE UNIT 1: INTRO TO SOFTWARE ENGINEERING (2h)(1)Knowledge point 1 The Evolving Role of Software(2)Knowledge point 2 The Nature of Software(3)Knowledge point 3 Legacy SoftwareBasic requirement: Understand the basic conception of software engineering, master the Nature of software, master the definition of software engineering.KNOWLEDGE UNIT 2: A GENERIC VIEW OF PROCESS (4h)(1)Knowledge point 1 A Layered Technology(2)Knowledge point 2 A Process Framework(3)Knowledge point 3 The Capability Maturity Model IntegrationBasic requirement: Understand the conception of software processes, master the basic processes of software analyze,design, implement and test, understand the definition of CMMI.KNOWLEDGE UNIT 3: PROCESS MODELS (2h)(1)Knowledge point 1 Prescriptive Models(2)Knowledge point 2 Waterfall Model(3)Knowledge point 3 Incremental Process, Evolutionary Process(4)Knowledge point 4 Unified Process, Agile ProcessBasic requirement: Understand the various process models, such as waterfall model, Unified Process and Agile Process.KNOWLEDGE UNIT 4: REQUIREMENTS ENGINEERING (4h)(1)Knowledge point 1 Bridge to Design and Construction(2)Knowledge point 2 Requirements Engineering Tasks(3)Knowledge point 3 Initiating the Requirements Engineering Process(4)Knowledge point 4 Eliciting RequirementsBasic requirement: Master the steps of requirements engineering process, understand the role of abridge to design.KNOWLEDGE UNIT 5: THE ANAL YSIS MODEL (6h)(1)Knowledge point 1 Requirements Analysis Modeling(2)Knowledge point 2 Data, functional and Behavioral(3)Knowledge point 3 Flow-Oriented Modeling(4)Knowledge point 4 Object-Oriented ModelingBasic requirement: Master the conception and method of requirement analyze, understand the user requirement and system requirement, master the main content of Flow-Oriented and Object-Oriented Modeling.KNOWLEDGE UNIT 6: DESIGN ENGINEERING (4h)(1)Knowledge point 1 Design Process and Design Quality(2)Knowledge point 2 Design Concepts(3)Knowledge point 3 Design Model(4)Knowledge point 4 Design PatternBasic requirement: Master the steps of design engineering process, understand the role of a bridge to construction, understand the conception of design pattern.KNOWLEDGE UNIT 7: ARCHITECTURAL DESIGN (4h)(1)Knowledge point 1 Software Architecture(2)Knowledge point 2 Data Design(3)Knowledge point 3 Architectural Design(4)Knowledge point 4 Mapping Data Flow into a Software ArchitectureBasic requirement: Master the Structural Design method, including data flow diagram, data dictionary, and control models, understand the software design specification.KNOWLEDGE UNIT 8: COMPONENT-LEVEL DESIGN (6h)(1)Knowledge point 1 Designing Class-Based Components(2)Knowledge point 2 Conducting Component-Level Design(3)Knowledge point 3 Designing Conventional ComponentsBasic requirement: Understand the conception of components, Master the modular decomposition KNOWLEDGE UNIT 9: TESTING STRA TEGIES (4h)(1)Knowledge point 1 Software Testing Strategic(2)Knowledge point 2 Test Strategies for Conventional Software(3)Knowledge point 3 Test Strategies for Object-Oriented Software(4)Knowledge point 4 Validation Testing(5)Knowledge point 5 System TestingBasic requirement: Understand the basic definition of verification and validation, Master the steps of software testing process, Master the conventional software test strategies, understand the Object-Oriented Software test strategies.KNOWLEDGE UNIT 10: TESTING TACTICS (6h)(1)Knowledge point 1 Software Testing Fundamentals(2)Knowledge point 2 Black-Box and White-Box Testing(3)Knowledge point 3 Object-Oriented Testing MethodsBasic requirement: Understand the basis of software testing fundamentals, master the main contents of unit testing and integration testing, master the design of black-box and white-box testing. KNOWLEDGE UNIT 11: QUALITY MANAGEMENT (2h)(1)Knowledge point 1 Software Quality(2)Knowledge point 2 Software Quality Assurance(3)Knowledge point 3Software ReliabilityBasic requirement: Understand the definition of software Quality Management, master the basic method of software quality control.KNOWLEDGE UNIT 12: CHANGE MANAGEMENT (4h)(1)Knowledge point 1 Software Configuration Management(2)Knowledge point 2 SCM Process(3)Knowledge point 3 Version ControlBasic requirement: Understand the basic requirements of software change, understand the definition of software configuration management, master the version control.(二)课程的重点、难点及解决办法Curriculum focuses on the establishment of the basis theory of software engineering,and it is difficulty to design a suitable practical activity for the most students in software development process, making it better able to establish the basic theory and methods of software engineering. Therefore, students are organized in small groups as a unit. Teachers and students jointly build a development issue, gradually expand the development of practice activities, and use classroom-style assessment. The teach model can initiative to mobilize the students as possible.三、实验实践环节及基本要求1.实验实践教学环节在本课程中的作用及要求(实验教学大纲单独编写)The experimental practices of this course need to complete the software development process the main part of the three major activities and a supporting framework, including requirements analysis, software design, unit test and software configuration management. These experiments content is all software development activities have to be resolved, can be well reflected in software engineering theory, software development process needs of the technology practice.2.实验项目(具体要求见实验教学大纲)Experiment 1: Designing and Writing Software Requirements Specification (2h)Experiment 2: Designing and Writing Software Design Specification (2h)Experiment 3: Software Unit Testing (2h)Experiment 4: Software Configuration management (2h)四、本课程与其它课程的联系与分工The prep course of this course is data structure. This course is a follow-up to other professional courses on the basis of software engineering major.五、对学生能力培养的要求Through the course of study, students can establish the basic theories and methods of software engineering, master a certain requirement analysis, software design, development and testing capabilities, and master the basic theory of teamwork developed.六、课程学时分配Total 48 hours, including lectures 40 hours, experiments 8 hours. The main contents and distribution of course see the course hour’s allocation table.七、建议教材和教学参考书目1.教材《Software Engineering: A Practitioner’s Approach(英文精编版,第6版)》, Roger S. Pressman, 机械工业出版社,20202.主要参考书[1]《Software Engineering (8th Edition)》,Ian Sommerville,机械工业出版社,2020.[2]《软件工程(第8版)》,程成,陈霞,机械工业出版社,2020.[3]《软件工程:实践者的研究方法(本科教学版)》Roger S. Pressman,机械工业出版社,2020八、课程考核The course use close examination pattern. The academic performance mainly results from the final examination and the usual performance, which accounted for 70% of the final examination, usually performance accounted for 30%. Usually performance is mainly decided by working projects of the courses, supplemented by after-school work and attendance.九、说明In the teaching process, it is need to the divided students into a group of 3-6 people. They need to complete a software development project collaboratively with courses progress.执笔人:宗平审核人:陈志教学院长:孙力娟编写完成时间:2009年10月20日软件工程专业介绍培养目标:本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。
引言:
概述:
正文内容:
1.背景信息:
项目目标:明确项目的目标和需求,包括功能需求和非功能需求。
项目范围:定义项目的边界和范围,并概述项目的规模和复杂性。
项目约束:说明项目的限制条件和约束,如时间、人力、资源等。
2.需求分析:
功能需求:详细描述软件系统的功能需求,包括用户需求和系统需求。
非功能需求:列出软件系统的非功能需求,如性能、安全性、可靠性等。
3.设计和实现:
架构设计:定义软件系统的整体结构和组件之间的关系,包括高层次的系统架构和分层架构。
数据模型:描述软件系统中涉及的数据模型,包括实体关系模型和关系数据库设计。
界面设计:设计软件系统的用户界面,包括屏幕布局和交互设计。
4.测试和验证:
测试计划:制定软件系统的测试计划,包括测试目标、测试策略和测试资源分配等。
单元测试:描述软件系统的单元测试策略和方法,并提供测试用例和测试结果。
集成测试:介绍软件系统的集成测试计划和方法,包括系统集成测试和接口测试。
5.部署和维护:
部署计划:定义软件系统的部署计划,包括软件安装和配置的步骤和要求。
维护策略:制定软件系统的维护策略,包括问题追踪、bug修复和版本升级等。
总结:。
计算机软件工程师规章制度第一章总则第一条为规范计算机软件工程师的行为,保障软件工程师的合法权益,促进软件工程师事业的发展,根据国家法律法规和相关规章制度,制定本规章制度。
第二条本规章制度适用于所有从事计算机软件开发、设计、测试、运维等工作的软件工程师群体,无论其在企事业单位、政府机关还是自由职业领域从事相关工作。
第三条计算机软件工程师应当遵守国家法律法规和职业道德准则,坚持创新、务实、合作、奉献的工作态度,提高专业素养,不断提升自身技术水平。
第四条计算机软件工程师应当尊重他人的劳动成果,遵守职业操守,秉持诚信为本的原则,不得从事违法违规的行为。
第二章职责规定第五条计算机软件工程师应当全情投入工作,按时按质完成主管安排的任务,保密公司机密和客户信息,不得泄露相关信息。
第六条计算机软件工程师应当积极学习和研究最新的技术和发展动态,提高自身的技能水平,增强自我修养。
第七条计算机软件工程师应当根据项目需求合理分配工作时间和资源,不得私自调动团队成员或改变项目计划。
第八条计算机软件工程师应当尊重团队成员,积极沟通合作,处理工作中的矛盾和问题,共同推动项目顺利完成。
第九条计算机软件工程师应当严格遵守工作纪律,按时上下班,不得迟到早退,不得利用工作时间进行私人事务。
第十条计算机软件工程师应当保护环境,节约资源,不得在工作场所浪费纸张、电力等资源。
第十一条计算机软件工程师应当尊重知识产权,禁止非法复制、传播他人的软件产品或作品,不得侵犯他人的知识产权。
第十二条计算机软件工程师应当遵守公司的规章制度,服从公司管理,服从领导的工作安排,不得擅自制定和执行相关工作。
第十三条计算机软件工程师应当保护公司和客户的利益,妥善处理公司和客户之间的关系,提升公司的声誉和品牌。
第三章惩戒措施第十四条计算机软件工程师如有违反本规章制度的行为,将受到公司的严肃处理,情节严重者将受到相应的惩戒措施。
第十五条对于违反公司保密规定的软件工程师,公司有权立即解除其劳动合同,并追究法律责任。
《软件工程》教学大纲一、课程概述本课程向学生介绍与大型软件相关的规划. 分析. 设计. 实现. 测试. 维护等概念. 原理. 技术与工具,同时向学生讲述传统的结构化开发方法与当前流行的面向对象开发方法。
要求学生牢固掌握软件生命周期. 软件质量. 软件成本等基本概念以及传统的结构化分析. 设计与实现方法;掌握面向对象软件工程的基本概念与表示技术,基本掌握软件开发中的管理技术。
通过本课程的学习,让学生对软件工程学有一个全貌的了解,对其所涉及的基本概念. 原理. 方法和有关技术逐步领会并进行运用。
要求学生能够在已有的程序设计. 数据结构. 数据库等理论基础上,为今后进行实际的软件开发奠定一个良好的基础。
本课程应强调实际运用,最好在教学中安排学生参予系统开发的策划. 分析. 设计. 编码. 测试等阶段工作的环节,积极引导学生从个人的单纯编程活动转移到进行系统分析与设计方面上来。
如果受条件所限,可让学生在毕业设计中将这一环节补上。
本课程的先修课程为“面向对象程序设计”. “数据结构与算法”与“数据库”。
本课程的后续课程可以为“程序设计方法学”与“算法分析与设计”。
二、课程目标1.知道《软件工程》这门学科的性质. 地位. 独立价值. 研究范围. 基本框架. 研究方法. 学科进展和未来方向等。
2.理解该门学科的主要概念. 基本原理和策略等。
3.学会运用一些具体的策略或技术等,如软件测试过程中所用到的黑盒测试法和白盒测试法。
4.能够把所学的原理应用到具体的实践中去,如对于具体系统开发过程中所遇到的问题能够自行进行处理,培养学生发现. 分析和解决问题的能力等。
三、课程内容和教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
列出用户认为的关键问题或需要。
为每个问题澄清以下内容:
1)这个问题的原因是什么?
2)现在是怎么解决的?
3)用户预期的解决方案是什么?
重要的是理解用户对解决每个问题所放的相对重要性。
分级和累积投票技术可以说明
必须解决的问题以及每个问题强调的事物。
2.5 替代品和竞争对手
确定用户认为目前可得到的替代品。
可包括购买对手的产品、构建一个全部是自己的解决方案或者维持现状。
列出所知的已有的以及即将得到的竞争对手的产品。
包括最终用户所理解的每位对手的强项和弱项。
2.5.1 竞争对手1
3. 产品综述
这一部分对产品能力、到其他应用系统的接口以及系统配置等等提供一个高层视图,通常由以下三个部分组成。
3.1 产品前景
这部分应该合理地把该产品与其他相关产品及用户的需求放在一起。
如果产品是独立的而且是完全独立的,就在这里说明它;如果产品是一个大型系统的组件之一,那么这一部分应该说明系统之间如何交互而且应该确定相关的接口。
一种展示大型系统主要组件、互连及外部接口的简单方法就是利用框图。
3.2 产品定位陈述
提供一个整体陈述,从最高层次总结产品在市场上的独特定位。
Moore(1991)称此为产品定位陈述,并推荐以下格式:
产品定位陈述向所有相关人员说明了应用系统的意图以及项目的重要性。
3.3 能力总结
总结产品将提供的主要优点和特征。
例如,客户支持系统的前景文档可能会使用这一部分强调问题建档、路电和状态报告—不提及各个功能需求的细节。
组织特征,以便清单能够被客户或所有第一次阅读文档的人理解。
一个简单的表列出主要的优点及其所支持的特征。
客户支持系统
3.4 假定和相关条件
列出所有一旦变更将影响整个产品前景的假设条件。
例如,某个假定条件可能指出,指定用于软件产品的硬件可得到某个特定的操作系统,如果该操作系统得不到,则前景必须变更。
3.5 成本和定价
对于将销售给外部客户的产品以及许多机构内使用的应用系统,成本和定价将直接影响应用系统的定义和实现。
在这一部分,把所有成本和相关的定价约束记录下来。
例如,分销成本(磁盘、CD-ROM、CD母盘的编号)或者其他货品销售成本(手册、打包)根据应用的性质对于项目的成功可能无关也可能有实质性影响。
4. 特征属性
与需求一样,特征也有属性,提供附加的项目信息,用于评估、跟踪、划分优先级、管理为实现提出的项。
这一部分陈述所有建议在前景文档中使用的属性,描述所选择的属性及其意义,使各方都能更好地理解每个特征的背景。
4.1 状态
在项目管理团队协商和评审之后确定。
状态信息在项目基线定义过程中跟踪进程。
1)建议的(proposed):描述正在对该特征进行讨论,但还没有得到“正式渠道”的审核
与采纳,“正式渠道”可以是一个由项目团队、产品管理、用户或客户团队的代表组织的工作小组;
2)批准的(approved):它的能力被断定是有用和可行的,得到正式渠道的认可并加以实现;
3)收编的(incorporated):已经在某个特定时间收编入产品基线的特征;
4.2 优先级
产品优先级是由营销人员、产品经理或商业分析人员设置的。
根据特征对最终用户的相对优先级把它们划分等级打开了一个与客户、分析人员以及开发团队成员之间的对话。
优先级用于管理广度和确定开发优先级。
一种优先级划分模式如下:
1)关键的(critical):本质特征。
实现的失败意味着系统将不能满足客户的需要。
所有关键的特征必须在发布中实现,否则进度将推迟。
2)重要的(important):对于大多数应用的系统效率和效力都重要的特征。
该功能无法容易地用其他方式实现。
如果缺少重要的特征,可能影响客户或用户的满意程度,甚至影响收益,但发布不会因此而推迟;
3)有用的(useful):在不太典型的应用中有用的特征,但不经常使用或者有其他合理的有效变通。
如果发布中没有这类特征也不会对客户满意程度或收益造成重大的影响
4.3 工作量
由开发团队设置,用于管理广度和确定开发优先级。
由于有些特征比其他特征要求更多的时间和资源,因此对各特征采用团队数量或人周、代码行、功能点等等进行评估将是预测复杂度的最好办法,从而可对在给定时间范围内能完成什么不能完成什么有一个预期。
4.4 风险
由开发团队设置,设置的依据是项目经历意外事件的可能性,如成本过高、进度延迟甚至项目被撤消等。
许多项目经理发现,把风险分为高、
中、低就已经足够了,尽管还可以再细一些。
风险通常可以通过度量项目团队进度预测的不确定性(范围)进行间接地评估。
4.5 稳定性
由分析人员和开发团队设置,设置的依据是特征变更的可能性或团对变更特征的理解。
这个信息有助于建立开发优先级或确定下一步中哪些附加启发是适当的。
4.6 目标当布
记录特征将首先出现在哪一个产品版本中。
这个域可用于把特征分配到特定的基线版本中。
当把目标版本与状态域结合起来时,团队可以建议、记录和讨论该版本的各个特征,而不必把它们提交给开发。
只有一些状态被设置为“收编的”特征并且其目标版本被定义的特征才能实现。
在发生广度管理时,目标版本的版本号会不断增加,于是该项仍然存在于前景文档中,但被安排到以后的版本中去。
4.7 分配给
在许多项目中,把特征分配给“特征团队”,负责进一步启发、书写软件需求和实现。
这个简单清单将帮助所有项目团队成员更好地了解自己的职责。
4.8 原因
这一文本域用来跟踪所要求特征的来源。
特征的存在有很多特定的理由。
这个域记录了特征的解释或对解释的引用。
例如,引用可以是产品需求规格说明的页号和行号,或是重要客户面谈录像带上的一个分钟标志。
5. 产品特征
这一部分记录产品特征。
特征提供了给用户带来利益所需要的系统能力,每个特征都提供了一个满足用户需要的服务。
例如,问题跟踪系统的一个特征可能是“提供走势报告”的能力,趋势报告可能继续支持一个“更好理解项目状态”的需要。
因为前景文档是由许多涉及人员审核的而且是达成共识的基础。
所以特征应该用用肪的自
然语言描述。
特征描述应该简短、精练,通常是1-2个句子。
为了有效管理应用的复杂度,我们建议:对于任何新系统或在原有系统上加强的系统,把能力抽象到较高层次产生大约25-99个特征。
这些特征是产品定义、广度管理和项目管理的基本基础。
每个特征都可以在后面的规格说明中被更详细地说明。
在整个这一部分中,每一个特征都应该是用户、操作者或其他外部系统可以感知的。
5.1 特征#1
5.2 特征#2
6. 关键用例
描述一些关键用例,可以是对体系结构有意义或最方便帮助读者理解系统如何使用的用例。
7. 其他产品需求
7.1 可应用标准
列出产品必须符合的标准,如法律和规章(FDA、FCC)、通信标准(TCP/IP、ISDN)、平台兼容标准(Windows、UNIX)以及质量和安全标准(UL、ISO、CMM)。
7.2 系统需求
定义支持应用所必须的所有系统需求。
包括支持的主机操作系统、网络平台、配置、内存、外设以及软件。
7.3 许可和安装
许可和安装问题对于开发工作有直接影响。
例如,支持序列号、口令安全或网络许可证的需要必须创建其他开发过程中必须考虑的附加的系统需注。
安装需求也会影响编码或者产生开发独立安装软件的需求。
7.4 性能需求
性能问题包括用户负载因素、带宽或通信能力、吞吐量、准确度、可靠性或在某些负载条件下的响应时间等。
8. 建档需求
这一部分描述所有支持成功地部署系统必
须开发的文档
8.1 用户手册
描述用户手册的目的和内容。
讨论其需要的长度、详尽程序、索引和词汇表的需要、指南及参考手册策略,等等。
还要指定格式和打印约束。
8.2 在线帮助
许多应用系统都提供一个在线的帮助系统
来辅助用户。
这些系统的本质是应用系统开发所特有的,因为它们把编程(如超链接)和技术书写(如组织和表示)结合起来。
许多人发现在在线帮助系统是项目中的项目,它从广度管理和计划活动中直接受益。
8.3 安装指南、配置和自述文件
对于一个全面的解决方案来说,有一个包括安装指令和配置指南的文档非常重要,而一个自述(Read Me)文件也通常作为标准组件而存在。
自述文件中可能包括一个“本版本的新增内
容”部分以及一个与以前版本的兼容问题的讨
论。
许多用户还希望在自述文件中说明所有已知的错误和变通方法。
8.4 标记和打包
当今最新的艺术化的应用系统提供了一个从安装菜单提示的产品打包和装载清单、炫耀的屏幕、帮助系统、GUI对话等开始的一致的外观和感觉。
这一部分定义要集成到代码中的标记的类型和需要。
包括版本和专利说明、公司商标、标准化图标及其他图形无素等。
9. 词汇表
词汇表定义所有项目特有的术语。
包括所有阅读文档的用户或其他人无法理解的缩写和简写。