第1章 软件工程学概述
1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
pascal是系统软件吗1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?
1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
1-5 根据历史数据可以做出如下的假设:
对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)
存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位)
如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字)
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?
(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。
1-6 什么是软件过程?它与软件工程方法学有何关系?
1-7 什么是软件生命周期模型? 试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
第2章 可行性研究
2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请写出问题定义并分析此系统的可行性。
2-3 为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。
请写出问题定义并分析此系统的可行性。
2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,
请写出问题定义,并且分析开发这个系统的可行性。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。
2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。
第3章 需求分析
3-1 为什么要进行需求分析?通常对软件系统有哪些需求?
3-2 怎样与用户有效地沟通以获取用户的真实需求?
3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
3-4 分析习题2第3题所述的机票预订系统。请用实体-联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。
3-5 分析习题2第4题所述的患者监护系统。请用实体-联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能,画出本系统的顶层IPO图。
3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,
准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为。
第5章 总体设计
5-1 为每种类型的模块耦合举一个具体例子。
5-2 为每种类型的模块内聚举一个具体例子。
5-3 用面向数据流的方法设计下列系统的软件结构:
(1) 储蓄系统(参见习题2第2题);
(2) 机票预订系统(参见习题2第3题);
(3) 患者监护系统(参见习题2第4题)。
5-4 美国某大学共有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资
超过$26 000(含$26 000)的教师工资将保持不变,年工资少于$26 000的教师将增加工资,所增加的工资数按下述方法计算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26 000。
教师的工资档案储存在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资。要求:
(1) 画出此系统的数据流图;
(2) 写出需求说明;
(3) 设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时请分别采用下述两种算法,并比较这两种算法的优缺点:
(a) 搜索工资档案数据,出年工资少于$26 000的人,计算新工资,校核是否超过$26 000,储存新工资,印出新旧工资对照表;
(b) 把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26 000时即停止排序,计算新工资,校核是否超过限额,储存新工资,印出结果。
(4) 你所画出的数据流图适用于哪种算法?
5-5 下面将给出两个人玩的扑克牌游戏的一种玩法,请你设计一个模拟程序,它的基本功能是: (1)发两手牌(利用随机数产生器); (2)确定赢者和赢牌的类型; (3)模拟N次游戏,计算每种类型牌赢或平局的概率。要求用HIPO图描绘设计结果并且画出高层控制流程图。
扑克牌游戏规则如下:
(1) 有两个人玩,分别称为A和B;
(2) 一副扑克牌有52张牌,4 种花(方块、梅花、红桃和黑桃),每种花的牌的点数按升序排列有2,3,4,…,10,J,Q,K,A等13种;
(3) 给每个人发3张牌,牌面向上(即,亮牌),赢者立即可以确定;
(4) 最高等级的一手牌称为同花,即3张牌均为同一种花,最大的同花牌是同一种花的Q
、K、A;
(5) 第二等级的牌称为顺子,即点数连续的3张牌,最大的顺子是花不同的Q、K、A;
(6) 第三等级的牌是同点,即点数相同的3张牌,最大的同点是A、A、A;
(7) 第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是A、A、K;
(8) 第五等级的牌是杂牌,即除去上列四等之外的任何一手牌,最大的杂牌是不同花的A、K、J;
(9) 若两人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。
第6章 详细设计
6-1 假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE操作?
6-2 假设只允许使用SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-WHILE操作?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论