第一章1﹑软件产品的特性是什么?产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。⑶软件产品不会用坏,不存在磨损,消耗。⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是定做的⑸开发软件的费用不断增加,致使生产成本相当昂贵。2﹑软件生产有几个阶段?各有何特征?⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。3﹑什么是软件危机?产生原因是什么?软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。产生原因:⑴软件规模越来越大,结构越来越复杂。⑵软件开发管理困难而复杂。⑶软件包开发费用不断增加。⑷软件开发技术落后。⑸生产方式落后,仍采用手工方式。⑹开发工具落后,生产率提高缓慢。4﹑什么是软件工程?它目标和内容是什么?软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。软件工程内容:研究内容包括开发技术和开发管理两个方面。开发技术主要研究:软件开发方法,开发过程,开发工具和环境。开发管理主要研究:软件管理学,软件经济学,软件心理学。5﹑软件工程面临的问题是什么?软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。6﹑什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。7﹑什么是软件生存周期模型?有哪些主要模型?生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型化技术的基础,也是建立软件开发环境的核心。主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。8﹑什么是软件开发方法?有哪些主要方法?使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。通过使用成功的软件开发方法,在规定的投资和时间内,开发出符合用户需求的高质量的软件。软件开发方法是克服软件危机的重要方面之一,对软件工程及软件包产业的发展起了不可估量的作用。主要有:结构化方法,JACKSON方法,维也纳开发方法﹙VDM﹚,面向对象开发方法。第二章1.可行性研究的任务是什么?可行研究的任务:首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它的可行性。主要从三个方面考虑:⑴.技术可行性:一般要考虑的情况包括开发的风险即设计出的系统能否达到要求的功能和性能;资源的有效性;相关技术的发展是否支持;⑵.经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资。⑶.社会可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度﹑人员素质﹑操作方式是否可行。2.可行性研究有哪些步骤?⑴.确定项目规模和目标;⑵.研究正在运行的系统;收集﹑研究﹑分析现有系统的文档资料,实地考察系统访问有关人员,然后描绘现有系统的高层系统流程图。⑶.建立新系统的高层逻辑模型;使用数据流图和数据字典描述数据在系统中的流动和处理情况。⑷.导出和评价各种方案;导出若干较高层次的物理解决方法,根据技术可行性﹑经济可行性﹑社会可行性进行评估,得到可行的解决方法。⑸.推荐可行方案;进行成本~效益分析,决定该项目是否值得开发,若值得开发那么解决方案是什么,并且说明该方案可行的原因和理由。⑹.编写可行性研究报告;将上述可行性过程的结果写成相应文档,即可行性研究报告。3.可行性研究报告有哪些主要内容?⑴.引言:编写本文档的目的;项目名称﹑背景;本文档用到的专门术语和参考资料。⑵.可行性研究前提:说明开发项目的功能﹑性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。⑶.对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需各类专业技术人吧和数量;所需各种设备;向有系统存在什么问题。⑷.所建议的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有系统比较的优越性;采用所建议系统对用户的影响;对各种设备﹑现有软件﹑开发环境﹑运行环境的影响;对经费支出的影响;对技术可行性的评价。⑸.所建议系统的经济可行性分析:说明建议系统的确良各种支出,各种效益;收益投资比;投资顺收周期。⑹.社会因素可行性分析:说明法律因素,对合同责任﹑侵犯专利权﹑侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理﹑工作制度﹑人吧素质的要求。⑺.其它可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。⑻.结论意见:说明项目是否能开发;还需什么条件才能开发;对项目目标有何变动等。4.成本--效益分析可用哪些指标进行度量?⑴.投资回收率:通常把建立系统若干年后能取得的收益折算成现在的价值和开发系统所需的费用进行比较得出投资回收率。⑵.投资回收期:就是使累计的经济效益等于最初的投资费用所需的时间。⑶.纯收入:整个生存周期之内的累计经济效益(折成现在值)与投资之差。5.项目开发计划有哪些内容?⑴.项目概述:说明项目的各项主要工作;说明软件的功能﹑性能;为完成项目应具有的条件;用户及合同承包者承担的工作完成的期限及其他条件限制;应交付的程序名称;所使用的语言及程储形式;应交付的文档。⑵.实施计划:说明任务的划分,各任务责任人,项目开发进度,项目的预算,各阶段的费用支出,各阶段应完成的任务,用图表说明每项任务的开始和完成时间。⑶.人员组织及分工:所需人员类型﹑数量﹑组成结构。⑷.交付期限:最后完工日期。第三章⒈什么是需求分析?需求分析阶段的基本任务是什么?需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。基本任务:⑴问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。⑵分析与综合,导出软件的逻辑模型⑶编写文档:包括编写需求规格说明书,初步用户使用手册,确认测试计划,修改完善软件开发计划⒉什么是结构分析方法?该方法使用什么描述工具?结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。⒊结构化分析方法通过哪些步骤来实现?⑴了解当前系统的工作流程,获得当前系统的物理模型。⑵抽象出当前系统的逻辑模型。⑶建立目标系统的逻辑模型。⑷作进一步补充和优化。⒋什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图(DFD):以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。⒌画数据流图应注意什么事项?命名:不能使用缺乏具体含义的名字,加工名应能反映出处理的功能。画数据流而不是控制流。数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。一般不画物质流。每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。编号:某个加工分解成加一张数据流图时,上层图为父图,下层图为子图。子图应编号子图上的所有加工也应编号,子图的编号应与父图的编号相对应。父图与子图的平衡:子图的输入输出数据流同父图相应加工的输入输出数据流必须一致局部数据存储:当某慨数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。注意数据流图的易理解性。⒍什么是数据字典?其作用是什么?共有哪些条目?数据字典(DD)用来定义数据流图中的各个成分的具体含义。有以下四类条目:数据流,数据项,数据存储,基本加工。具体条目内容及举例如下:数据流条目数据流名称:订单别名:无简述:顾客订货时填写的项目来源:顾客去向:加工1检验订单数据流量:1000份/每周(单位时间内的传输次数)组成:编号+订货日期+顾客编号+地址+电话+银行帐号+货物名称+规格+数量数据存储条目数据存储名称:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称+编号+生产厂家+单价+库存量组织方式:索引文件,以货物编号为关键字查询要求:要求能立即查询数据条目数据项名称:货物编号别名:G-No,G-num,Goods-No简述:本公司所有货物的编号类型:字符串长度:10取值范围及含义:第一位:进口/国产第2-4位:类别第5-7位:规格第8-10位:品名编号加工条目加工名:查阅库存编号:1﹒2激发条件:接收到合格订单时优先级:普通输入:合格合格订单输出:可供货订单,缺货订单加工逻辑:根据库存记录IF订单项目数量该项目库存量临界值THEN可供货处理ELSE此订单缺货,登录,待进货后再处理ENDIF⒎描述加工逻辑有哪些工具?加工逻辑的描述:一般用结构化语言,判定表,判定树结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它的结构可分里层和内层⑴外层:用来描述控制结构,采用顺序,选择,重复三种基本结构。①顺序结构:是一组祈使语句,选择语句,重复语句的顺序排列②选择结构:一般用IF-THEN-ELASE-ENDIF,CASE-OF-ENDCASE等关键词。③重复结构:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等关键词。⑵内层:一般采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其动词含义要具体,尽量不使用形容词和副词来修饰。例:加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。附此之外的其他申请者都适用于A类保险。⒏什么是IDEF方法?IDEF0方法有哪些特点?IDEF方法是美国空军针对计算机辅助制造工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析方法基础上提出来的。包括:IDEF0描述系统的功能活动及联系,建立系统的功能模型。即反映系统做什么折功能。IDEF1描述系统的信息及联系,建立系统的信息模型。IDEF2进行系统模拟,建立系统的动态模型。IDEF0特点:⑴采用方框和箭头等简单图形符号描述系统的活动和数据流,描述活动所受的约束条件及实现机制。如下图描述,其中输入为完成某活动时所需的数据,输出指执行活动产生时的数据,控制活动指所受到的约束条件,机制是指活动由谁来完成。⑵采用严格的自顶向下﹑逐层分解的方式建立系统功能模型。⒐简述SA方法的优缺点。SA方法是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种结构化分析方法。较适用于开发数据处理类型软件的需求分析。利用图形等半形式化工具表达需求,简明,易读,也易于使用。但也存在一些弱点,表现如下:⑴SA方法仅是一个静态模型,没有反映处理的顺序,即控制流程。⑵SA方法使用DFD在分析与描述数据要求方面是有局限的,只有与数据库技术中的实体联系图(ER图)结合起来