软工重点的答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1
什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么?
①将系统的、规范的、可量化的方法应用于软件开发、运行、维护的过程
②包括①中的方法的研究
五要素:人、过程、项目、方法和工具、软件制品(红色字为方法学)
硬件能力、软件技术、社会需求和科学技术水平
1.2
阐述软件的正确性、可用性、可靠性、有效性、安全性、可维护性、可移植性和可复用性的概念,并指明这些概念的重要性。
正确性,软件满足需求规约和用户目标的程度
可用性,学习和使用软件的难易程度,包括操作软件、为软件输入数据、解释软件
输出结果等。
可靠性软件完成预期功能,成功运行的概率
有效性软件系统利用计算机的时间资源和空间资源完成系统功能的能力
1.10
阐述通用软件开发过程的五项活动,分析通用软件开发过程的优点。
通用软件过程模型用“沟通、策划、建模、构建、部署” 5项活动构建软件过程模型。在软件项目管理等普适性活动的支持下进行软件开发,增强了软件的开发能力、突出了软件工程特色,具有较大的灵活性和适应性。
2.4
研究图2.1(课本60,61页)所示的面对对象的迭代式软件开发过程,描述在立项,初始,细化,构造和移交阶段分别可能使用哪些UML图形机制,为什么?
初始阶段
用例图描述软件需求
活动图表示业务处理过程
交互图表示用例内部实现过程
细化阶段
包图、构件图和部署图表示软件体系结构
构造阶段
类图交互图活动图状态图构件图
表示软件详细设计模型
移交阶段
部署图
3.1
以下陈述哪些是有效的用户需求?请说明理由。
答案:
⑴目标软件应该用java语言实现。
⑵软件系统必须在5秒内响应并处理外部事件
⑶目标软件应该由一些特定的模块构成。
⑷当目标软件与用户交互时,必须使用某些特定的菜单和对话框。
其中⑵,⑶,⑷项是用户的有效需求。⑵是用户对系统性能的需求;⑶是用户对系统功能的需求;
⑷是用户对系统使用界面的需求。而⑴是程序设计对计算机语言的需求,应该由系统设计人员提出,所以不是用户的有效需求。
3.2
下述语句哪些属于不精确的用户需求?对不精确的需求描述,给出相应的需求分析对策。答案:
⑴系统应表现出良好的响应速度。
⑵系统必须用菜单驱动。
⑶在数据录入画面,应该有25个按钮。
⑷系统运行时占用的内存不得超过128KB。
⑸电梯应平稳运行
⑹即使系统崩溃,也不能损坏用户数据。
其中⑴,⑸,⑹是不精确的用户需求。⑴应该指出:哪个功能要有速度响应要求,具体的数据是什么?⑸平稳运行的具体定义是什么?例如上升时具体要求抖动的参数不大于多少等等;⑹没有说明应该采取什么具体措施保护数据。
P74 3.1
构成需求工程过程的工作流
需求工程策划--需求获取--需求分析--需求规范化--需求验证--总结
用例驱动的需求获取过程(主要步骤)
1.定义软件问题
2.创建框架用例
3.精化用例
4.评审用例模型
需求分析的任务
需求分析的任务是在需求获取阶段的输出制品的基础上,获得对软件需求更深入、更完整的理解,并且将软件需求表示为面向软件设计人员、易于修改和维护的分析模型
用例驱动的需求分析过程的主要活动(P134)
(1)需求优先级分析
(2)用例分析
(3)分析模型评审
(4)为辅助需求分析而构建快速原型
P134
6.9软件设计应遵循哪些原则
抽象与逐步求精
强内聚及松耦合
信息隐藏及关注点分离
P172 6.4
构成软件设计过程的工作流
设计策划--体系结构设计--人机交互设计--详细设计--设计整合与验证--总结
P190 193
用户界面设计过程的主要活动P227
1.用户分析,任务分析及建模
2.概念设计
3.界面流设计
4.界面精化
详细设计过程的主要活动P239
1.用例设计
2.子系统设计
3.构件设计
4.类设计
5.数据模型设计
6.设计整合与验证
9.3 在面向对象的设计模型中,如何检查类图与顺序图之间的一致性?
首先把类图和顺序图形式化为本体,然后将规则法中定义的一致性规则转换为本体操作,通过在转换得到的本体上实施这些操作实现一致性检查。
12.3简述软件测试的任务和原则
任务
检查软件是否满足需求规约,并在软件制品交付前尽可能发现软件中潜伏的缺陷,减轻交付后软件改正性维护的开销。
原则
1.测试是一个持续进行的过程,而不是一个阶段。
2.测试一定有计划,受控制,并提供足够的时间和资源
3.测试应当分优先级
4.测试应当有重点
5.测试不是为了证明程序的正确性,而是为了证明不能工作
6.测试是不可能穷尽的,当测试充分性满足时就可以停止测试
7.测试是开发的朋友,不是开发的敌人
8.测试人员应公正地测试,如实地记录和报告缺陷
9.测试自动化能解决一部分问题,但不是全部。
10.测试不能仅仅包括功能性验证,还应包括性能、可靠性、可维护性和安全性等方面的验证
12.5何谓测试用例?一般包括哪些内容?
为测试设计的输入数据称为测试用例。
生成输入数据、程序执行条件、测试步骤和预期的输出
12.22“确认测试”应由谁完成,软件开发人员还是软件用户?说明理由。
答案:“确认测试”应由软件用户来完成,“确认测试”的目的是测试系统是否达到用户对功能的需求,性能的需求以及使用的需求,所以,“确认测试”应该主要由用户来完成。
12.24α测试与β测试有何差别?