软件工程相关问题与解答
软件工程试题及答案

1. 软件生命期各阶段的任务是什么?答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费.3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚.②自底而上渐增测试优点与缺点和自顶而下渐增测试相反.4 、提高可维护性的方法有哪些?答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明.在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审.为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关.【解答】测试过程按4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
软件工程习题及解答

软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。
软工常见易错题

软工常见易错题软件工程作为一门研究和应用人类构建和维护复杂软件系统的学科,其中也存在一些常见易错题。
本文将针对软工常见易错题进行介绍和讨论。
通过深入分析和解答这些易错题,希望能够帮助读者更好地理解软件工程的概念和原则,并能在学习和实践中避免犯同样的错误。
一、软件生命周期模型中的常见易错题1.1 瀑布模型和迭代模型的区别瀑布模型和迭代模型是软件开发中常见的两种生命周期模型。
瀑布模型是一种线性的开发过程,各个阶段按序进行,上一阶段完成后才能进入下一阶段。
而迭代模型则是将软件开发过程划分为若干个迭代周期,每个迭代周期包含需求分析、设计、编码和测试等阶段。
易错点:有些人容易认为瀑布模型和迭代模型在开发过程中的顺序不同,其实仅仅是表象上的差异。
瀑布模型是按照阶段进行线性开发,而迭代模型则是按照迭代周期进行循环开发。
1.2 敏捷开发中的Scrum和XP方法的比较Scrum和XP(极限编程)都属于敏捷开发方法。
Scrum注重项目管理和团队合作,通过短期迭代的方式实现软件开发;而XP则强调编码和测试,提倡通过频繁的反馈和交付来保证软件质量。
易错点:有些人容易认为Scrum和XP是两种完全不同的方法,实际上它们可以结合使用。
Scrum可以作为项目管理的框架,XP方法可以用于具体的编码和测试实践。
二、软件需求工程中的常见易错题2.1 需求开发和需求管理的区别需求开发和需求管理是软件需求工程中的两个重要阶段。
需求开发阶段负责收集、分析和定义软件系统的需求;而需求管理阶段则负责跟踪、评审和变更软件需求。
易错点:有些人容易将需求开发和需求管理混淆,在实践中只注重了需求开发或者需求管理的某一方面。
实际上,需求开发和需求管理是相辅相成、不可分割的两个阶段,都需要充分考虑。
2.2 功能需求和非功能需求的区别功能需求指的是软件系统需要实现的具体功能和行为,是用户能够直接感受到的软件特性;而非功能需求则是对软件系统性能、可靠性、安全性等方面的要求。
软件工程测试题及答案

一、单项选择题(5*9)●UML中关联的多重度是指__(1)__。
A.一个类有多少个方法被另一个类调用B.一个类的实例能够与另一个类的多少个实例相关联C.一个类的某个方法被另一个类调用的次数D.两个类所具有的相同的方法和属性●已知3个类A、B和C,其中类A由类B的一个实例和类C的1个或多个实例构成。
能够正确表示类A、B和C之间关系的UML类图是_(2)A_。
●采用UML进行软件建模过程中,类图是系统的一种静态视图,用(3)可明确表示两类事物之间存在的整体/部分形式的关联关系。
A. 依赖关系B. 聚合关系C. 泛化关系D. 实现关系●内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求(4)。
A. 高内聚,高耦合B.高内聚,低耦合C. 低内聚,高耦合D. 低内聚,低耦合●在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(5)。
a b cA. 边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象●在下面的用例图中,X1、X2和X3表示(6),已知UC3是抽象用例,那么X1可通过(7)用例与系统进行交互。
并且,用例(8)是UC4的可选部分,用例(9)是UC4的必须部分。
(6)A. 人 B. 系统C. 参与者 D. 外部软件(7)A. UC4、UC1 B. UC5、UC1 C. UC5、UC2 D. UC1、UC2 (8)A. UC1 B. UC2 C. UC3 D. UC5(9)A. UC1 B. UC2 C. UC3 D. UC544 A45C 46D 47B32C35B对于右侧的程序流程,当采用语句覆盖法设计测试案例时,至少需要设计个测试案例。
A. 1B. 2C. 3D. 4输入X和Y否是X > 0Y = Y + X Y = Y - X否是37B下面有关测试的说法正确的是___。
A.测试人员应该在软件开发结束后开始介入B.测试主要是软件开发人员的工作C.要根据软件详细设计中设计的各种合理数据设计测试用例D.严格按照测试计划进行,避免测试的随意性为验证程序模块A是否正确实现了规定的功能,需要进行(1);为验证模块A能否与其他模块按照规定方式正确工作,需要进行(2)。
软件工程(第四版)习题及解答1-7

软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
软件工程习题附答案2

(试题一)1、根据说明回答问题1~3(共16分)【说明】某高校开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:1.每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。
课程结束后进行期末考试,其成绩作为这门课程的考试成绩。
2.学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。
3.在记录学生成绩之前,系统需要验证这些成绩是否有效。
首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,否则无效。
4.对于有效成绩,系统将其保存在课程成绩文件中。
对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。
在教务处没有给出具体处理意见之前,系统不会处理这些成绩。
5.若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。
教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。
6.在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。
主讲教师须将核对之后的成绩报告返还系统。
7.根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。
考试委员会在审查之后,上交一份成绩审查结果给系统。
对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。
现采用结构化方法对这个系统进行分析与设计,得到如图1所示的顶层数据流图和图2所示的0层数据流图。
图1. 顶层数据流图图2. 0层数据流图【问题1】(6分)根据顶层数据流图,使用说明中的词语,填些表中元素所代表的数据流、源和宿。
【问题3】(6分)0层数据流图缺少了三条数据流,根据说明及数据流图提供的信息,分别2、根据说明回答问题1和问题2(共10分)【说明】某招聘管理信息系统的主要功能如下:(1)验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。
软件工程第1章习题

软件工程第1章例题分析与解答一、填空题1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。
2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。
3.概要设计主要是把各项功能需求转换成系统的__体系结构______。
4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。
5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。
二、选择题1.同一软件的大量软件产品的生产主要是通过( B )而得到。
A.研究B.复制C.开发D.研制2.作坊式小团体合作生产方式的时代是( C )时代。
A.程序设计B.软件生产自动化C.程序系统D.软件工程3.软件工程与计算机科学性质不同,软件工程着重于( C )。
A.理论研究B.原理探讨C.建造软件系统D.原理的理论4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。
A.编码B.需求分析C.详细设计D.测试5.软件生存周期中时间最长的是( D )阶段。
A.需求分析B.概要设计C.测试D.维护一、填空题答案1.逻辑2.建造一个软件系统3.体系结构4.瀑布模型5.结构化方法二、选择题答案1.B2.C3.C4.A5.D第1章自测题及参考答案一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与_____软件___。
2.程序设计时代的生产方式是___个体手工劳动_____。
3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。
6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。
软件工程简答题及答案

软件工程简答题及答案
本文档将回答一些关于软件工程的简单问题。
包括软件开发模型、软件需求等方面。
软件开发模型
1. 软件开发模型有哪些?
常见的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、敏捷开发模型等。
2. 瀑布模型和原型模型的区别是什么?
瀑布模型是一种顺序开发模型,开发流程是依次完成需求分析、设计、编码、测试和维护;原型模型则是一种迭代开发模型,先制作出可用的原型,然后根据反馈不断改进,逐渐得到最终的产品。
3. 增量模型和螺旋模型的特点有哪些?
增量模型是一种迭代开发模型,每个阶段都制作可用的部分产品,直到全部完成;螺旋模型则是一种风险导向的开发模型,通过逐步分析和评估风险来制定开发计划。
4. 敏捷开发模型的优点是什么?
敏捷开发模型是一种迭代开发模型,强调开发过程中的人与人之间的交流和合作,可以更快地适应需求变化和快速反馈,有利于降低开发成本和风险。
软件需求
1. 软件需求是什么?
软件需求是指用户对软件系统的功能、性能和质量等方面的要求和期望,是软件开发过程中最重要的一部分。
2. 软件需求如何进行收集和分析?
软件需求的收集和分析是一个迭代的过程,包括与用户的沟通、需求规格化、需求验证等步骤,一般会使用到一些工具,如用户故事、用例规约等。
3. 软件需求如何进行管理和维护?
软件需求的管理和维护包括需求跟踪、版本控制等方面,一般会使用到一些工具,如需求管理工具、版本控制工具等。
通过本文的介绍,不难看出软件工程是一个相对复杂的领域,对于开发人员而言,要善于运用各种开发模型和需求管理工具,以便能够更好地完成软件开发和维护工作。
软件工程师常见问题解答与解决办法

软件工程师常见问题解答与解决办法软件工程师是一个高度专业化的职业,他们需要掌握各种编程语言、软件开发工具和技术,以满足日益增长的软件需求。
然而,在工作中,软件工程师经常会遇到各种问题和挑战。
本文将围绕软件工程师常见问题展开讨论,并提供相应的解决办法。
一、代码错误和调试1. 问题:我写的代码出现了错误,但我不知道具体出错的原因是什么?解决办法:排查代码中的语法错误、逻辑错误和数据类型错误。
使用调试工具逐行检查代码,查看变量的值和进程的执行流程,以找到错误的源头。
2. 问题:代码编译错误,提示找不到某些库或依赖项?解决办法:确认代码中是否引入了正确的库和依赖项,并且这些库和依赖项已经正确安装。
检查代码中的路径是否正确,并确保库文件与代码文件在同一目录下。
二、性能优化与测试1. 问题:我的程序运行速度太慢,如何进行性能优化?解决办法:使用性能分析工具来确定代码中的瓶颈所在。
优化算法和数据结构,减少资源占用,避免重复计算,尽量减少IO操作,利用并行计算等技术手段提升程序的运行效率。
2. 问题:如何进行软件测试以确保程序的质量?解决办法:采用不同的测试方法,包括单元测试、集成测试、系统测试和验收测试等。
使用测试工具和框架编写测试代码,并进行自动化测试。
根据需求文档和设计文档编写测试用例,覆盖各种可能的场景,确保软件的正确性和稳定性。
三、项目管理与协作1. 问题:如何有效管理和组织软件开发项目?解决办法:采用敏捷开发方法,将项目划分为多个迭代周期,并明确每个迭代的目标和交付物。
使用项目管理工具进行任务分配和进度跟踪,确保每个成员都清楚自己的工作和责任。
定期召开会议,及时沟通和解决问题,保持团队的协作和合作。
2. 问题:与项目组成员的沟通不畅,造成任务延误和冲突?解决办法:建立良好的沟通机制,包括定期开会、使用沟通工具和平台,确保项目信息的及时传递和共享。
倾听团队成员的意见和建议,尊重不同观点,协商解决冲突。
软件工程简答题

软件工程简答题1. 什么是软件工程?软件工程是一门通过系统化、规范化和量化的方法,来开发和维护软件系统的学科。
它关注软件开发全过程中的需求分析、设计、编码、测试和维护等环节,以提高软件质量、降低开发成本和缩短开发周期。
2. 软件工程有哪些基本原则?软件工程遵循以下基本原则:- 按照客户需求导向:软件工程过程应始终以满足客户需求为目标,并持续与客户进行合作和沟通。
- 适应性和灵活性:软件工程方法应当具备适应不同项目需求和灵活变化的能力。
- 风险管理:对项目风险进行有效的识别、评估和管理,以减少项目失败的可能性。
- 团队合作:软件开发需要各个角色之间的密切合作和协同努力。
- 不断改进和学习:软件工程过程应不断反思和改进,学习新的技术和方法,以提高开发效率和质量。
3. 解释软件生命周期模型。
软件生命周期模型是指软件从开始开发到退役的全过程,包括需求分析、设计、编码、测试、发布和维护等阶段。
常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。
- 瀑布模型:按照线性顺序依次进行需求分析、设计、编码、测试和维护等阶段,每个阶段产生的文档和成果是下一个阶段的输入。
- 迭代模型:迭代模型强调快速迭代开发,将软件开发过程划分为多个迭代周期,每个迭代周期内包含需求分析、设计、编码、测试等阶段。
每个迭代周期都会产生可工作的部分软件。
- 螺旋模型:螺旋模型采用风险驱动的迭代方式,每个迭代周期都会评估和处理风险,根据评估结果确定下一步的开发方向。
4. 请解释软件需求工程的概念和目标。
软件需求工程是软件工程中的一个重要领域,旨在确保软件开发过程中对需求进行全面、一致和可验证的规格说明。
其目标包括:- 理解和明确用户和利益相关者的需求。
- 确定需求的优先级和约束条件。
- 分析和定义需求的功能和非功能特性。
- 确保需求的一致性和完整性。
- 验证和验证需求的正确性和满足性。
- 管理和追踪需求变更。
5. 什么是软件验证和确认?软件验证是指通过评审、检查、演练和测试等手段,确认软件是否符合规定的需求和规格要求。
软件工程习题及解答2

第二章习题一、选择题1、可行性分析研究的目的是()A.争取项目B.项目值得开发否C.开发项目D.规划项2. 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。
A.确定 B.行或不行 C.正确 D.无二义3、 DFD中的每个加工至少需要( )A. 一个输入流B. 一个输出流C. 一个输入或输出流D. 一个输入流和一个输出流4 .数据流图( DFD )是 _________ 方法中用于表示系统的逻辑模型的一种图形工具。
()A . SAB . SDC . SPD . SC5. 在软件开发中,()是指对将要开发的系统的开发成本进行估算,然后与可能取得的效益进行比较和权衡。
A. 成本—效益分析B. 可行性分析C. 结构化分析D. 软件需求分析6.软件可行性研究一般不考虑()A.是否有足够的人员和相关的技术来支持系统开发B.是否有足够的工具和相关的技术来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发的软件是否会有质量问题7、下列模型属于成本估算方法的有( )A、COCOMO模型B、McCall模型C、McCabe度量法D、时间估算法8、从心理学角度看,对数据流程图的数据处理泡进行分解,一次分解为多少个泡为宜。
()A、3±1B、7±2C、15±1D、18±29、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 法律可行性10. 软件可行性研究实质上是要进行一次( )需求分析、设计过程。
A. 简化、压缩的B. 详细的C. 彻底的D. 深入的11. 一个项目是否开发,从经济上来说是否可行,归根结底是取决于( )。
A. 成本估算B. 项目计划C. 工程管理D. 工程网络图二.简答题1.情景与描述了所有可能的动作序列的状态图之间有什么关系?2.在程序流程图中的每个结点都必须有一条从开始结点到该结点本身的路径,以及一条从该结点到结束结点的路径。
软件工程-名词解释应用题汇总带答案

三、简答题(每题5分,共25分)1.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加1 个要点1分,只要答上5个要点得5分!2.说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。
(3分)3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元测试,测试对象对单元模块(2分)(2)集成测试,测试对象为组装后的程序模块(2分)(3)确认测试,测试对象为可运行的目标软件系统(1分)4.需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软件的用户需求,即定义待开发软件能做什么(2.5分)软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
(2.5分)5、简述文档在软件工程中的作用。
(5分)(1)提高软件开发过程的能见度(1分)(2)提高开发效率、便于用户了解软件功能、性能(1分)(3)作为开发人员阶段工作成果和结束标志(1分)(4)记录开发过程的有关信息便于使用与维护(1分);(5)提供软件运行、维护和培训有关资料;(1分)四、某培训中心要研制一个计算机管理系统。
它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。
1.对以上问题画出数据流程图。
2.画出该培训管理的软件结构图的主图。
软件工程师面试题及参考答案

软件工程师面试题及参考答案面试题的完成情况会间接影响软件工程师的面试成功几率。
店铺整理了一些软件工程师面试题及参考答案,有兴趣的亲可以来阅读一下!软件工程师面试题及参考答案(一)1, Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念。
解答:DVM指dalivk的虚拟机。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。
2, sim卡的EF 文件有何作用解答:sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统cos,EF(Eiementary File)基本文件就是作存储并和手机通讯用的3,嵌入式操作系统内存管理有哪几种,各有何特性解答:页式,段式,段页,用到了MMU(内存管理单元),虚拟空间等技术4,什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗? 解答:嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。
又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。
5,一条最长的短信息约占多少byte(字节)?解答:中文70(包括标点),英文160,160个字节。
6,android中的动画有哪几类,它们的特点和区别是什么?解答:两种,Tween动画、这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;Frame动画。
传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
7、handler机制的原理andriod提供了Handler 和Looper 来满足线程间的通信。
软工常见问题

软工常见问题软件工程是一门涉及软件开发、维护和管理的学科,涵盖了许多不同领域和技术。
在软件工程实践过程中,人们经常遇到一些常见问题。
本文将列举并解答一些软工常见问题,希望能为读者提供一些有用的指导。
问题1:什么是软件工程?软件工程是一种工程学科,关注软件开发、维护和管理的过程。
它采用系统化的方法,结合工程学原理和计算机科学技术,以提高软件质量和效率。
软件工程包括需求分析、设计、编码、测试和维护等阶段。
问题2:软件生命周期有哪些阶段?软件生命周期包括需求阶段、设计阶段、编码阶段、测试阶段和维护阶段。
在需求阶段,软件需求被定义和分析;在设计阶段,软件体系结构和详细设计方案被制定;在编码阶段,根据设计方案实现代码;在测试阶段,对软件进行功能和性能测试;在维护阶段,修复错误并提供软件升级和改进。
问题3:什么是需求分析?需求分析是软件开发过程中最重要的阶段之一。
在这个阶段,开发团队与客户合作,以确保正确理解和记录软件的功能需求和性能要求。
需求分析的目标是定义软件的行为、功能和约束,为设计和开发提供指导。
问题4:什么是敏捷开发?敏捷开发是一种迭代和增量的软件开发方法。
与传统的瀑布模型相比,敏捷开发更加灵活和适应变化。
敏捷开发强调团队合作、持续交付和快速反馈。
它采用用户故事、迭代计划和短期交付的方式,以更好地满足客户需求。
问题5:如何确保软件质量?确保软件质量是软件工程的重要目标之一。
有几种方法可以提高软件质量,例如质量审查、单元测试、集成测试和系统测试。
质量审查是通过检查和评估代码和文档来发现问题。
单元测试、集成测试和系统测试是通过一系列测试用例验证软件是否满足规格和需求。
问题6:软件维护的目的是什么?软件维护是在软件发布后对其进行修改和改进的过程。
软件维护的目的是确保软件持续运行并提供所需的功能。
维护包括错误修复、性能优化、安全更新和功能增强等任务。
问题7:为什么软件项目经常超时和超预算?软件项目经常超时和超预算的原因很多。
软件工程导论课后习题解答

软件工程导论课后习题解答第一章1-1什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
1-3什么是软件工程?答:这是一门指导计算机软件开发和维护的工程学科。
1-4简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
答:目前使用得最广泛的软件工程方法学有2种:传统方法学:也称为生命周期方法学或结构化范型。
优点:软件生命周期分为几个阶段。
各阶段任务相对独立、简单,便于不同人员分工协作,降低了整个软件开发过程的难度。
缺点:当软件规模庞大时,或者对软件的需求是模糊的或会随着时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
1-5. 根据历史数据,可以做出以下假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:m=4080e0.28(y-1960)内存价格根据以下公式逐年下降:P1=0.3×0.72y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:p2=0.048×0.72y-1974(美元/字)在上面的公式中,Y代表年份,M代表存储容量(字数),P1和P2代表价格。
基于上述假设,可以比较计算机硬件和软件成本的变化趋势。
所需计算:(1)在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2)假设在1985年,一个程序员每天可以开发10条指令,而一个程序员的平均工资是每月4000美元。
如果一条指令只有一个字长,则需要进行计算,以便用程序填充内存的成本。
(3)假设1995年内存字长为32位,程序员每天可以开发30条指令。
程序员的平均月薪是6000美元。
重复问题(1)和(2)。
(1)在1985年对计算机存储容量的需求,估计是m=4080e0.28(1985-1960)=4080e7=4474263(字)如果字长为16位,则这个存储器的价格是p=0.048×0.721995-1974×73577679=5789(美元)(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
软件工程习题解答

第一章软件工程概论一、填空题⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。
其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。
①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。
软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。
其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。
A:① 程序开发环境② 操作系统的资源管理功能③ 开发程序人员数量④ 计算机的并行处理能力B:① 需求分析②需求调查③可行性分析④问题定义C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。
这时既没有(A),也没有(B),程序员只能用机器指令编写程序。
第二阶段(20世纪60年代),称为“基本软件期”。
出现了(A),并逐渐普及。
随着(B)的发展,编译技术也有较大的发展。
第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。
这一时期,与硬件价格下降相反,软件开发费用急剧上升。
人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。
第四阶段(20世纪70年代中期至今),称为“软件工程”时期。
软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。
如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。
A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图像处理二、简答题⑴ 软件工程过程有哪几种基本活动,试加以说明。
软件工程习题及其答案

目录第1章习题 (2)第2章习题 (4)第3章习题 (5)第4章习题 (8)第5章习题 (13)第6章习题 (18)第7章习题 (25)第8章习题 (25)第9章习题 (33)第10章习题 (35)第1章1.对于硬件是有形的而软件是无形的观点,有人提出了不同的看法。
他认为软件也是有形的,例如,软件需要安装才能工作,软件安装之后会占据一定的磁盘空间。
对此,你是什么看法?解答:软件是抽象的、无形的。
软件之所以需要安装并占据一定的磁盘空间,正说明了软件对硬件的依赖,它不能独立存在。
2.软件按服务对象的不同可分为通用软件和定制软件。
试举例说明这两类软件的区别。
解答:通用软件一般由软件开发机构自主开发并通过市场推广、销售,如Microsoft Word,它是完全由Microsoft自主开发并通过市场推广、销售的文字处理软件。
定制软件则通常受特定客户委托并在合同的约束下开发。
例如,某专门设备的控制系统、某特定企业的业务管理系统、某智能大厦的监控与管理系统、某城市的交通监管系统等。
定制类软件通常由客户进行软件描述,并以此为基本依据确定软件规格。
3.程序系统时代出现的“软件作坊”有什么特点?解答:软件作坊虽然也生产具有工业化特征的软件产品,但软件作坊是一种比较松散的组织机构,缺少工业化企业应具有的标准、规范和制度,因此不能使软件生产过程工业化。
4.某软件公司抢时间为某单位开发了一个人事管理软件,但软件交付用户使用一段时间之后,用户有了抱怨,原因是单位里某个职工改了名字,但人事管理软件却不允许修改姓名,而只能删除整条记录以后重新输入。
试从软件危机角度对这个问题做一些评论。
解答:由于软件开发过程中软件开发人员和用户之间缺乏信息交流,以至用户的需求没有在软件规格定义中充分体现,从而导致开发出来的软件不能安全满足用户的实际应用需要。
5.什么是软件工程?解答:软件工程是一门关于软件开发与维护的工程学科,其涉及软件生产的各个方面,包括工程过程、工程原则、技术方法与工具以及工程项目管理等,能够为经济、高效地开发高质量的软件产品提供有效的支持。
软件工程(第四版)习题及解答9-8

第1章
一、判断题
1× 2 √ 3× 4√ 5× 6√ 7√ 8× 9√10×
二、选择题
1-5CADDD6-10ADAAD11-15AAADA
三、简答题
1、软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。
1、
“学生管理系统”的顶层图案={学号+姓名+性别+年龄+专业+班级}
成绩库=学号+课程号+分数
课程库=课程号+课程名+学分
学生信息=学号+姓名+性别+年龄+专业+班级
考试成绩=学号+课程号+分数
学号=”00001”...”99999”
姓名=2{汉字}4
系统目标和范围说明书
1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
(3)系统流程图
第3章
一、判断题
1√ 2 × 3√ 4 × 5√ 6× 7× 8√
二、选择题
1-5 BACDB 6-10 ABDAA 11-15 BABDB 16-20 ADCDB
三、简答题
1、需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程简答题1、什么是软件工程?它目标和内容是什么?2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?3、什么是结构分析方法?该方法使用什么描述工具?4、什么是软件概要设计?该阶段的基本任务是什么?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
5、软件维护有哪些内容?6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?7、什么是软件生存周期?它有哪几个活动?8、衡量模块独立性的两个标准是什么?各表示什么含义?9、什么是结构分析方法?结构化分析方法通过哪些步骤来实现?10、什么是需求分析?需求分析阶段的基本任务是什么?11、什么样是"事物流"?什么是"变换流"?12、单元测试有哪些内容?13、什么是软件生存周期模型?有哪些主要模型?14、软件设计的基本原理包括哪些内容?15、结构化程序设计的基本要点是什么?16、详细设计有哪几种描述方法?17、单元测试中采用什么方法?18、什么是软件配置管理?什么是基线?19、简述文档在软件工程中的作用?20、软件工程三要素之间的关系?21、说明面向对象的特征?22、简述"变换分析"设计步骤。
23、请简述可行性研究有哪些步骤?24、请简述黑盒测试和白盒测试有何区别,黑盒测试有哪些常用方法?25、什么是软件可维护性?常见的软件维护活动有哪几类?26、CMM全称是什么?分为哪几个级别?27、什么是数据字典?简述数据字典与数据流图的关系。
28、软件生命周期划分为哪几个阶段?29、简述三种面向对象模型的主要功能30、详细设计的基本任务是什么?31、黑盒测试和白盒测试有什么区别?32、什么是软件工程?软件工程面临的问题是什么?33、软件工程三要素之间的关系?34、简述结构化程序设计方法的基本要点。
36、简述提高可维护性的方法。
37、简述文档在软件工程中的作用。
38、什么是软件危机?产生原因是什么?39、调试的目的是什么?调试有哪些技术手段?40、在传统软件工程方法指导下,数据流图和数据字典的关系如何?1、什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。
软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程内容:包括开发技术和开发管理两个方面。
2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发?软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。
其中喷泉模型、统一软件过程适用于面向对象的软件开发。
3、什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
4、什么是软件概要设计?该阶段的基本任务是什么?把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审5、软件维护有哪些内容?(1)校正性维护。
在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
(2)适应性维护。
为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。
(3)完善性维护。
为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
(4)预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
该阶段涉及编码和详细设计文档。
集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。
确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。
系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。
以确定软件是否可以支付使用。
\7、什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
8、衡量模块独立性的两个标准是什么?各表示什么含义?内聚和耦合。
内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。
耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。
9、什么是结构分析方法?结构化分析方法通过哪些步骤来实现?结构化分析:简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
实现的步骤:⑴了解当前系统的工作流程,获得当前系统的物理模型。
⑵抽象出当前系统的逻辑模型。
⑶建立目标系统的逻辑模型。
⑷作进一步补充和优化。
10、什么是需求分析?需求分析阶段的基本任务是什么?需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。
基本任务:⑴问题识别⑵分析与综合,导出软件的逻辑模型⑶编写文档11、什么样是"事物流"?什么是"变换流"?数据流图(DFD)一般可分为"变换流","事物流"两种。
"变换流":由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。
"事物流":它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。
(这人加工称为事务处理中心)12、单元测试有哪些内容?单元测试主要针对模块的以下五个基本特征进行测试:(1)模块接口(2)局部数据结构(3)重要的执行路径(4)错误处理(5)边界条件13、什么是软件生存周期模型?有哪些主要模型?生存周期模型:描述软件开发过程中各种活动如何执行的模型。
对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。
主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。
14、软件设计的基本原理包括哪些内容?⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。
⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。
通过抽象确定组成软件的过程实体。
⑶信息隐蔽:将模块实现自身功能的细节与数据"隐蔽"起来。
模块间仅交换为完成系统功能所必须的信息。
⑷模块独立性:每个模块只完成系统要求的独立的子功能。
15、结构化程序设计的基本要点是什么?主要有三个:1、采用自顶向下、逐步求精的程序设计方法2、使用三种基本控制结构构造程序。
任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。
3、主程序员组的组织形式。
16、详细设计有哪几种描述方法?详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。
17、单元测试中采用什么方法?测试的方法是为被测试模块编写驱动模块和桩模块来实现被测试单元的可运行。
通过驱动模块来模拟被测试模块的上级调用模块,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结构并输出。
桩模块则用来代替被测试模块所调用的模块。
它的作用是返回被测模块所需的信息。
18、什么是软件配置管理?什么是基线?软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。
软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。
基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。
19、(37)简述文档在软件工程中的作用?文档在软件工程中的作用如下:(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。
20、(33)软件工程三要素之间的关系?软件质量是软件工程的生命线,软件工程以质量保证为基础。
质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。
软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。
方法支撑过程和工具,过程和工具又促进方法学的研究。
21、说明面向对象的特征?面向对象的特征是:(1)对象唯一性。
每个对象都有自身唯一的标识,在对象生存期中,其标识不变,不同的对象不能有不同的标识。
(2)分类性。
是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类(3)继承性。
是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性。
是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。
22、简述"变换分析"设计步骤。
⑴确定变换中心,逻辑输入和输出。
⑵设计软件结构的顶层和第一层--变换结构。
⑶设计中﹑下层模块,对第一层的模块自顶向下分解。
⑷设计的优化:输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。
其它输入模块与转换数据模块都很简单时,可将它们合并。
23、请简述可行性研究有哪些步骤?复查系统规模和目标;研究当前的系统;导出新系统的高层逻辑模型;重新定义问题;导出和评价可供选择的解决方案;推荐可行的行动方案;草拟开发计划;书写文档并提交审查。