WORD格式.可编辑技术资料分享软件工程第一章作业...........................................................11.1什么是计算机软件?软件的特点是什么?.................................11.2简述软件的分类,并举例说明。.........................................11.4什么是软件工程?.....................................................11.5简述软件工程的基本原则。.............................................11.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。...................11.9简述各类软件过程模型的特点。.........................................21.10敏捷软件开发的特点是什么?..........................................21.12简述敏捷软件开发的原则。............................................2第2、3章....................................................................32.1简述系统工程的任务。.................................................32.2基于计算机的系统由哪些元素组成?.....................................32.3简述可行性分析的任务。...............................................33.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。.....................................................................33.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?.................33.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。...........43.4列出在制定需求获取策略时的3种主要考虑因素。.........................53.6举例说明一个系统的3个不同类型的非功能需求...........................53.8软件需求分析的操作性原则和需求工程的指导性原则是什么?...............53.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。.53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。5第4章......................................................................54.1简述软件设计阶段的基本任务...........................................54.2软件设计与质量的关系是怎么样的?.....................................64.4简述模块、模块化及模块化设计的概念。.................................64.6耦合和软件可移植性的概念有何关系?举例说明自己的结论。..............64.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点?...............................................................64.9软件设计规约主要包括哪些内容?.......................................7第5章结构化分析与设计......................................................75.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。.........75.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。.....................................................................75.7......................................................................8第6\8章....................................................................126.1简述面向数据结构方法的特点..........................................126.2采用Jackson图表示下面的文件结构:..................................138.1什么是构件?........................................................138.2简述基于构件的软件开发过程。........................................13第11、13章.................................................................1413.1请讨论使软件维护成本居高不下的因素。如何尽可能降低这些因素的影响?.1413.3软件维护的过程是如何进行的?为什么要进行软件可维护性分析?.........15WORD格式.可编辑技术资料分享软件工程第一章作业1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。软件的特点是:A软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;B软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;C软件的使用没有硬件那样的机械磨损和老化问题。1.2简述软件的分类,并举例说明。答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。A系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。系统软件与具体的应用领域无关。例如:编译程序、操作系统等。B支撑软件:支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境等。C应用软件:应用软件是特定应用领域专用的软件。例如:工程/科学计算软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。1.4什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。1.5简述软件工程的基本原则。答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;第二条:采用合适的设计方法;第三条:提供高质量的工程支撑;第四条:重视软件工程的管理。1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。A计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。B需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。C软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。D编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即WORD格式.可编辑技术资料分享可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。1.9简述各类软件过程模型的特点。答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:接受上一阶段活动的结果作为本阶段活动的输入;依据上一阶段活动的结果实施本阶段应完成的活动;对本阶段的活动进行评审;将本阶段活动的结果作为输出。B增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。C原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一轮迭代中对原型进行改进。在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。D螺旋模型将原型模型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点而且还增加了风险分析。E喷泉模型是一种支持面向对象开发的过程模型。类及对象是面向对象方法中的基本成分。在分析阶段,标识类及对象,定义类之间的关系,建立对象-关系模型和对象-行为模型。在设计阶段,从实现的角度对分析模型进行调整和扩充。在编码阶段,用面向对象语言实现类及对象,通过消息机制实现对象之间的通信,完成软件的功能。在面向对象方法中,分析模型和设计模型采用相同的符号表示体系,开发的各个活动没有明显的边界,各个活动经常重复,迭代地交替进行。F基于构件的开发模型,基于构件的开发是指利用预先包装的构建来构造应用系统。构件可以是组织内部开发的构建,也可以是商业化的、现存的软件构件。G形式化方法是建立在严格数学基础上的一种软件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。形式化方法用严格的数学语言和语义描述功能和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。通过数学的演算,使得从形式化功能规约到形式化设计规约,以及从形式化设计规约到程序代码转换成为可能。1.10敏捷软件开发的特点是什么?答:敏捷软件开发的特点有4个:A个人和交互高于过程和工具;B可运行软件高于详尽的文档;C与客户协作高于合同谈判;D对变更及时做出反应高于遵循计划。1.12简述敏捷软件开发的原则。答:敏捷软件开发必须遵循的12条原则如下;A最优先的是通过尽早地和不断地提交有价值的软件来使客户满意;B欢迎变化的需求,即使该变化出现在开发的后期,为了提升对客户的竞争优势,Agile过WORD格式.可编辑技术资料分享程利用变化作为动力;C以几周到几个月为周期,尽快、不断地发布可运行软件;D在整个项目过程中,业务人员和开发人员必须天天一起工作;E以积极向上的员工