软件工程大题分析
1.某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下:(1)开户。根据客户服务助理提交的开户信息,进行开户,并将客户信息存入客户记录中,账户信息(余额等)存入账户记录中;(2)存款。客户可以向其账户中存款,根据存款金额修改账户余额;(3)取款。客户可以从其账户中取款,根据取款金额修改账户余额;(4)证券交易。客户和经纪人均可以进行证券交易(客户通过在线方式,经纪人通过电话),将交易信息存入交易记录中;(5)检查交易。平台从交易记录中读取交易信息,将交易明细返回给客户。现采用结构化方法对该证券交易平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
(1)E1:客户服务助理,E2:客户,E3:经纪人,D1:客户记录, D2:账户记录,D3:交易记录。
(2)数据流名称:账户余额,起点:存款,终点:D2。
数据流名称:账户余额,起点:取款,终点:D2。
数据流名称:交易信息/交易记录,起点:证券交易,终点:D3。
(3)名称:交易明细
描述:客户具体交易的信息
来源:检查交易
去向:客户
组成:证券代码+证券名称+操作+成交数量+成交价+金额+合同编号+ 盈亏金额
2.一个图书馆借阅管理数据库要求提供下述服务: 1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。 2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。 我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。 3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。 根据以上情况和假设,试作如下设计: (1)构造满足需求的E-R图。 (2)转换为等价的关系模式结构。
3:某火车售票系统的数据流程图如下所示
5.某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。 请分别用判定表和判定树来表示课酬计算方案。
6.以下代码是判断输入的年份是否为闰年,设计判定覆盖和条件覆盖的测试用例。
if (year<0)
return -1;
if ((year%4==0&&year%100!=0)||(year%400==0))
return 1;
else
return 0;
判定覆盖的测试用例:
测试用例1:year=-2,满足T1(T1表示编号为1的判定节点取真值)
测试用例2:year=2008,满足F1T2(判定节点1取假值,判定节点2取真值)
测试用例3:year=2013,满足F1F2(判定节点1取假值,判定节点2取假值)
条件覆盖的测试用例:
测试用例1:year=-2,满足T1
测试用例2:year=2008,满足F1T2T3
测试用例3:year=2013,满足F1F2F4
测试用例4:year=2000,满足F1T2F3T4
7.用户登录框测试,我们要从两个方面去考虑:(1)账号:长度为610位数字字符;(2)密码:长度为616位数字、符号、英文字符。请用等价类划分法来为用户登录框测试设计测试用例。
某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档;数学分数不低于70分,则进入三级备选库,否则进入四级备选库;在三级备选库的基础上,如果专业课分数高于100分,则进入一级备选库,否则进入二级备选库,回答下列问题:(1)写出结构化语言。(2)画出对应的判定表。(3)画出对应的判定树。
- (其它)假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你是项目负责人,你打算采用哪种软件过程模型?为什么?请说明理由。
正确答案:
对这个项目的一个重要要求是,严格按照已对外公布的日期完成产品开发工作,因此,选择生命周期模型时应该考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。
这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要专门再建立一个原型系统来分析用户的需求;第二,该公司软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有增量模型开发新版字处理软件所需要的技术水平;第三,该软件收到广大用户的喜爱,今后很可能还要开发更新的版本,因此应该把软件的体系结构设计成开放式的,有利于今后的改进和扩充。
综上所述,采用增量模型来完成该项目的比较恰当。