软件工程学习笔记习题汇总

  • Post author:
  • Post category:其他




1.总结自己在之前进行的软件开发过程中所欠缺的软件开发策略?(四大软件开发策略)

之前的软件开发过程中欠缺逐步演进和优化折中的策略,有时候也缺乏软件复用策略,有的是在之前已有的软件框架模型下进行组装使用和改进,有时只能从零开始一步一步慢慢写;

软件开发过程我都是采用分而治之的策略,先将软件分为不同的模块,然后搭建起大的框架,在框架的基础上一步步实现软件不同模块的开发;

逐步演进和优化折中策略之前并没有考虑到,因为之前的软件开发主要是大作业或者课设,只要达到了老师要求的功能就算结束,并没有考虑到后期对其进行优化和调整演进,使其更加完整。



2.分析你所见过的软件失败案例,你觉得问题出在哪里?

失败案例:windows vista系统

失败原因:开发人员野心太大,想要实现的功能太多,没有按部就班一步一步进行优化改进,参与人数太多,导致代码程序太过冗余复杂,代码规模超过了5000万行,逻辑太过复杂,导致bug太多,往往改一处又会多出三处,另外由于整个系统过于庞杂,开发相当混乱,以至于很多时间用在互相沟通和重新决定上。



3.分析这四个系统,应该采用什么过程模型开发,并说明原因。



实例一• 某公司计划开发二维 CAD 软件

–  软件功能需求
	•  基本功能与国外 AutoCAD 产品一致
	•  新增加功能三个功能:智能画线、智能标注、读取 .dwg 文件
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200313154200858.png)

• 问题:该软件开发适于采用什么过程?

实例一适合瀑布模型开发,因为功能需求在开发初期是完整确定的,新增的三个功能不能同时进行,需要按线性方式逐个进行开发,先开发设计智能画线功能,然后将智能画线功能作为下一项功能的输入进行功能开发,即智能标注,接下来进行读取文件功能的开发,也可以反回上一步进行修改



实例二• 北京市交通设施设计与漫游系统

–  用户的要求
(1)完成交通设施的二维图纸设计
(2)在二维设计的基础上模拟显示设计的效果
–  现实情况
(1)二维设计部分已有工作基础,新功能开发量不大
(2)设计仿真与漫游显示部分需求不确定
(3)用户要求开发方提出可行的方案

• 问题:采用什么方法开发仿真与漫游子系统?

实例二适合原型化模型的开发,因为原型化模型可以解决需求不确定性的问题,在这个例子中,我们已经实现了产品的一部分,作为原型化模型进行开发,建造一个可以运行的软件模型,由用户来确定设计仿真和漫游显示部分的需求,减少开发风险和需求不确定性



实例三 • 空中交通控制系统

– 在系统运行之前需要进行安全性和可靠性的检验

在这里插入图片描述

• 问题:该软件开发适于采用什么过程?

实例三适合形式化模型的开发,因为空中交通控制需要非常严密的控制,对安全性、可靠性和保密性要求极高,需要在投入运行前进行验证,而形式化模型符合这一条件



实例四 • 开发学生选课系统

–  某大学计划开发一个新的学生选课系统,以替换原有的选课系统
–  原有的课程信息数据库将继续使用
–  新的选课系统允许学生在网上选课和查询课程成绩,教师可以在网上确认所教课程、查询选课学生并登记成绩

• 问题:该软件开发适于采用什么过程?

.实例四适合迭代式迭代模型开发,因为是以新的系统替换旧的选课系统,而原有的课程信息数据库还将继续使用,因此可采用迭代式开发,先将每个模块设计出来,然后在后续的开发过程中再逐步完善即可



4.增量模型和迭代模型的区别

增量模型是首先定义一个小的工程系统,然后再逐步完善最后变成一个完整的系统,而迭代模型一开始就是一个完整的系统,但是它每一个功能并不完善,然后在开发过程中再逐步的完善每一个功能。



5.描述敏捷开发的优势,它和瀑布模型,增量模型,迭代模型的区别和关系。

敏捷式开发的优点有

1.个体和交互胜过过程和工具

2.可以工作的软件胜过面面俱到的文档

3.客户合作胜过合同谈判

4.响应变化胜过遵循计划,

瀑布模型假设需求都固定不变的这个需求来估算时间,制定计划,整个开发过程,按照计划来驱动,而敏捷开发他的需求是不确定的呢,是在一次一次的迭代功能不断地完成发展的,每次迭代都是一个小的瀑布模型,会生成一个稳定的软件,迭代中的需求一般是不发生变化的。

也就是说,敏捷式开发既包含了瀑布模型也包含了迭代式开发,在迭代式开发中有增量模型和迭代模型两种形式,增量模型,是先定义一个小的功能系统,然后在后续的开发过程中逐步的增加功能,直到变成一个完整的系统,而迭代模型是在一开始就定义一个完整的系统,但是这个系统并不并不完善,在后续的过程中不断完善,知道变成一个完整的系统。



6.根据本次课程内容,列出一个“大学生选课系统”应具有的各类需求。

1.业务需求:大学生选课系统的业务需求是学校能够更好的管理教务信息,降低学生对选课手续的复杂性

2.系统需求:新的软件将使老师排课的负担大大降低,学生可以更方便的进行选课查课,将使服务效率加倍提升

3.功能需求: 大学生选课系统需要满足学生和老师可以正常登录, 满足学生可以进行选课查课以及修改信息等的需求, 满足老师对学生选课信息和个人信息的管理需求, 学生不能选择以前选过的课程,不能选择专业课以外的课程,

应分为专业选修课和通识选修课,学生修够足够的学分后不能再次选课 学生可申请退课,数据应当备份避免丢失等等的需求

4.软件需求:大学生选课系统需要提供可选用的数据库进行数据管理、需要提供学生和老师登录的接口等

5.用户需求:学生希望开发设计者使用更大的服务器,避免选课时出现卡顿掉线无法登录的情况

6.非功能性需求:避免学生和老师信息被盗用,系统便于维护,便于更新

7.质量需求:选课系统应尽可能的方便简洁,学生可在五分钟内完成选课操作,不能出现不断冗余无用的信息

8.设计开发需求:大学生选课系统的开发成本不能高于50000元



7.四种模型开发的区别


瀑布模型

将软件开发的基本活动,看成是一系列相互独立的阶段,这些活动以线性的方式顺序执行

原型化模型 主要是解决需求不确定的问题,原型是一个部分开发的产品,通过原型实现对系统的理解,有助于明确需求和选择可行的设计策略


迭代式开发

是把描述开发和验证等不同的活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分的逐步交付和演化,从而实现软件的快速交付


可转换模型

利用自动化的手段,通过一系列转换将需求规格说明转换为一个可交付使用的系统

可转换模型利用自动化的手段,通过一系列转换将需求规格说明转化为一个可交付的系统

在这里插入图片描述



8.使用自己熟悉的工具对“大学生选课系统”中的功能性需求进行用例建模,注意本次课程内容讲解中对用例建模的约束。



版权声明:本文为weixin_44244154原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。