软件工程 福州大学.docx
《软件工程 福州大学.docx》由会员分享,可在线阅读,更多相关《软件工程 福州大学.docx(13页珍藏版)》请在冰豆网上搜索。
软件工程福州大学
•PuppyPalace向电视台、电影公司提供一种小狗,这种小狗可以玩各种戏法。
PuppyPalace大约有16只狗和50种可供选择的戏法。
每一只狗可以表演一种或多种戏法,有些戏法可以多条狗表演。
当某条狗学会一种新的戏法时,训练师会给它分配一个技能等级,最高有10级,等级与租金相关。
TopText出版社是一家教材出版公司,有一个总部、一个仓库和三个销售营业所,每个营业所都有一个销售经理和多个销售员。
TopText的销售对象主要是大、中小学生和个体用户。
有些作者给TopText写了多本书,有些书是多个作者写的。
TopText维持着一个100本书的排行动态列表,每一本书都通过唯一的ISBN编码标识。
•考虑建立一个学生宿舍管理系统,实现:
–学生宿舍床位的分配、调整和记录;
–学生宿舍卫生评比、水电费缴纳;
–学生财物进出宿舍楼管理、外来人员进出宿舍楼管理;
–宿舍楼、宿舍的管理。
FastflightAirlines是一家小型航空公司,经营分为主要是西部的3个州。
该公司正在对乘客订票系统实行计算机化管理,系统的数据项包括订单号、航班号、航班日期、出发点、目的地、起飞时间、到达时间、乘客姓名和座位号
1、你是如何理解UP和UML的?
答:
统一建模语言UML,是一种面向对象软件开发的工业标准,包含了大量用于OO系统建模和开发的符号。
UML是为了解决不同的的面向对象设计和面向对象分析采用不同的表达方式和方法这一问题,它结合了各自方法中优点,并吸纳其他面向对象领域专家提出的其他特点而提出的。
统一过程UP,是一种过程模型,是一种用UML进行面向对象软件过程的框架。
UP认识到与客户沟通以及从用户的角度描述系统并保持描述的一致性的重要性,从而建立一种“用例驱动,以架构为核心,迭代并且增量”的软件过程。
区分两者,首先应该了解的是UML它只是一个通用的可视化建模语言,并不提供给我们任何的建模方法;UP才是方法论,它告诉我们应该如何来构造软件系统。
UP使用UML作为它的可视化建模语法。
2、随着螺旋模型不断向外推进,你认为在建的软件发生了怎样的变化?
答:
在建的软件在随着螺旋模型不断向外推进的过程中,每次迭代逐步完善,开发的软件越来越具体:
从一个操作概念-软件的需求说明-软件产品设计-详细设计—最终产品。
在每一个演进层次上,开发者和客户都要更好的理解和应对风险。
同时项目经理调整项目计划,并根据每次交付后用户的反馈调整预算和进度。
同时还需要调整完成软件开发需要迭代的次数。
3、当客户提出一个不现实的开发期限是,你作为项目经理应该采用什么过程模型来进行软件开发?
答:
我认为应该采用增量过程模型。
因为客户提供的是一个不切实际的开发期限,因此我们迫切需要为用户提供一套功能有限但满足基本需求的软件产品,即第一增量,核心增量。
之后,在针对这个产品增加其他已知的或未知的附加特性,逐步完善产品。
在不改变客户需求的前提下,我认为应该采取敏捷过程进行软件开发。
这是由敏捷过程的特点决定的,软件工程的敏捷理念强调四个关键问题:
具有控制力的自我组织团队对所开展工作的重要性;团队成员之间、开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;以及强调快速软件交付以让客户满意。
在本题中描述情况下,运用敏捷过程进行软件开发,可以快速向客户提供适应产品类型和运行环境的可运行软件,并强调以增量交付策略,能够有效地响应客户需求的变化,最大限度的使客户满意。
数据字典判定表与状态图
1、学生证
学生证=姓名+学号+性别+学院+专业+有效期+条形码+照片+学校
姓名=2{字母}12
学号=学院编号+入学年份+专业编号+班级编号+流水号
学院编号=“01”..“99”
入学年份=“00”..“99”
专业编号=“01”..“99”
班级编号=“1”..“9”
流水号=“01”..“99”
性别=[“男”|“女”]
学院=2{字母}100
专业=2{字母}100
有效期=起始日期+“至”+截止日期
起始日期=年+月
截止日期=年+月
年=“2000”..“9999”
月=“1”..“12”
2、订单
订单=订单编号+顾客编号+订单生成时间+订单状态+送货地址+付款方式+联系方式+1{订单项目}100
订单编号=“000000000”..“999999999”
顾客编号=“000000000”..“999999999”
订单生成时间=年+月+日+小时+分钟+秒
年=“1900”..“9999”
月=“1”..“12”
日=“1”..“31”
小时=“00”..“23”
分钟=“00”..“59”
秒=“00”..“59”
订单状态=“1”..“6”其中,“1”表示新建订单;“2”表示订单已付款,尚未发货;“3”表示订单已付款,已发货;“4”表示订单未付款,已发货;“5”表示完成;“6”表示该订单有商品退货。
送货地址=1{字母}400
付款方式=“1”..“3”其中,“1”表示网上银行;“2”表示邮局汇款;“3”表示货到付款。
联系方式=[固定电话|手机]
固定电话=1{数字}4+8{数字}8
手机=11{数字}11
订单项目=商品编号+商品名称+商品单价+订购数量
商品编号=1{字母}2+编号
编号=“00000”..“99999”
商品名称=1{字母}40
商品单价=0.01..99999.99
订购数量=1..9999
3、某个学校临近暑假就会收到许多入学申请,该校对入学申请的结论主要有:
同意和拒绝。
如果该生的成绩为优秀并且导师推荐级别为“良”以上,社会活动积极,则同意该生入学;如果该生的成绩为优秀,导师推荐级别为“良”以上,社会活动不积极,则同意该生入学;如果该生的成绩为优秀,导师推荐级别为“良”以下,社会活动不积极,则拒绝该生入学;如果该生的成绩为优秀,导师推荐级别为“良”以下,社会活动积极,则同意该生入学;如果该生的成绩不优秀,导师推荐级别为“良”以上,社会活动积极,则同意该生入学;如果该生的成绩不优秀,导师推荐级别为“良”以上,社会活动不积极,则拒绝该生入学;如果该生的成绩不优秀,导师推荐级别为“良”以下,社会活动不积极,则拒绝该生入学;如果该生的成绩不优秀,导师推荐级别为“良”以下,社会活动积极,则拒绝该生入学;
根据以上描述,给出能否入学的判定表。
Rule1
Rule2
Rule3
Rule4
Rule5
Rule6
Rule7
Rule8
成绩优秀
T
T
T
F
F
F
F
T
导师推荐为“良”
T
T
F
T
F
F
T
F
社会活动积极
T
F
F
F
T
F
F
T
同意入学
√
√
√
拒绝入学
√
√
√
√
原状态
新状态
迁移条件
迁移时的动作
S0
S1
无
无
S1
S2
插入银行卡有效
无
S2
S2
密码错误and次数<3次
无
S2
S3
密码错误and次数>=3次
吞卡
S2
S4
密码正确
激活功能选择界面
S4
S5
选择查询余额
激活显示余额界面
S4
S6
选择修改密码
激活改密码界面
S4
S7
选择取款
激活显示取款界面
S4
S8
选择转账
激活显示转账界面
S7
S7
取款额>余额or取款额>2000orATM余额<取款额
重新输入取款额
S7
S9
取款额<=余额and取款额<2000andATM余额>=取款额
余额=原余额-取款额
S8
S10
无
激活输入转账账户和转账额界面
S10
S10
输入转账账户错误or转账额>余额
重新输入转账账户和转账额
S10
S11
输入转账账户正确and账额<=余额
余额=原余额-转账额
转账账户余额=原转账账户余额+转账额
S5、S6、S7、S8、S9、S11
S4
选择继续操作
激活功能选择界面
S5、S6、S7、S8、S9、S11
S12
选择结束操作
退卡and激活结束界面
图书借阅用例:
用例:
图书借阅
主要参与者:
图书管理员
目标:
管理员对读者要借阅的图书进行借阅登记。
前提条件:
读者已经选中图书或已经通过系统预定的图书。
触发器:
读者决定借书或系统通知已办理预定图书的读者前来借书。
后置条件:
图书被借出,状态被置为“借出”
基本事件流:
1.管理员:
进入借书系统。
2.管理员:
验证读者的身份和权限。
3.管理员:
将图书的状态设为“借出”,并填写“借阅记录”,增加该读者的“已借阅图书”数量,将图书递交读者。
4.管理员:
结束借书。
扩展点:
该图书已被借出,并且读者希望预定,读者可以选择“预定图书”,阅读用例:
“预定图书”
异常:
1.借书系统连接失败:
再次点击“借阅”进入借书系统。
2.目标图书阅读权限高于读者权限:
系统提示“由于权限不够,无法借阅”。
//3.用户名和密码不正确:
读者重新输入正确的用户名和密码。
4.读者有逾期未还的记录,不允许借书。
5.读者所借图书的数量已经超过允许的数量,不允许借书。
6.验证读者身份失败:
返回重新操作。
7.设置图书状态出错:
返回重新操作。
优先级:
必须的。
何时可用:
首次增量。
使用频率:
每天多次。
使用方式:
通过图书馆系统客户端。
次要参与者:
读者,图书馆系统客户端。
次要参与者使用方式:
读者:
通过语言交流。
图书馆系统客户端:
电脑。
未解决的问题:
用例:
ATM机取款
主要参与者:
储户
目标:
储户从ATM机取到现金
前提条件:
ATM机正常工作,储户拥有正常的储蓄卡
触发器:
储户决定从ATM机中取款
后置条件:
相应现金从ATM机中吐出,储户储蓄卡中余额被相应扣除
基本事件流:
1.储户:
将储蓄卡插入ATM机
2.ATM:
验证储蓄卡的状态。
3.储户:
输入密码
4.储户:
选择“取款”功能
5.储户:
输入金额
6.ATM:
将储蓄卡余额扣除相应金额,并吐出相应金额的现金
7.储户:
选择“结束”并选择“打印回单”
8.ATM:
打印回单并退出储蓄卡
异常:
1.ATM验证储蓄卡状态失败:
换卡。
2.储户输入密码出错:
如果输入错误密码的次数<3次,则继续回到输入密码状态;否则ATM将储蓄卡吞掉。
3.储户输入的取款金额>储蓄卡余额,或储户输入的取款金额>2000:
重新输入取款金额。
4.储户输入的取款金额>ATM机内现金余额:
重新输入取款金额。
优先级:
必须的。
何时可用:
首次增量。
使用频率:
每天多次。
使用方式:
通过ATM机。
次要参与者:
ATM机
未解决的问题:
用例:
ATM机取款
主要参与者:
储户
目标:
储户从ATM机取到现金
前提条件:
ATM机正常工作,储户拥有正常的储蓄卡并且储户已登录系统进入功能选择主菜单
触发器:
储户决定从ATM机中取款
后置条件:
相应现金从ATM机中吐出,储户储蓄卡中余额被相应扣除
基本事件流:
1.储户:
选择“取款”功能
2.储户:
输入金额
3.ATM:
将储蓄卡余额扣除相应金额,并吐出相应金额的现金
4.储户:
选择“结束”并选择“打印回单”
5.ATM:
打印回单并回到功能选择主菜单
异常:
1.储户输入的取款金额>储蓄卡余额,或储户输入的取款金额>2000:
重新输入取款金额。
2.储户输入的取款金额>ATM机内现金余额:
重新输入取款金额。
优先级:
必须的。
何时可用:
首次增量。
使用频率:
每天多次。
使用方式:
通过ATM机。
次要参与者:
ATM机
未解决的问题: