第一章概述
1、解决软件危机的措施p3(不定项)
(1)技术方法。(2)开发工具。(3)组织管理。
2、软件工程的发展过程p3(解答或不定项)
软件工程的发展经历了4个重要阶段:
(1)、传统软件工程:软件工程产生的初期,也成为第一代软件工程。20世纪60年代末到70年代,软件主要采用“生产作坊”的开发方式,这种方式因无法适应软件开发的需要导致出现“软件危机”。
(2)、对象工程:第二代软件工程。20世纪80年代到90年代,以Smalltalk 为代表的面向对象的程序设计语言相继推出,使面向对象的方法与技术得到快速发展。
(3)、过程工程:随着计算机网络等高新技术的出现及信息技术的广泛应用,软件规模复杂度增大开发时间长,管理难度增大,从而提出了对软件项目管理的计划、组织、成本估算、质量保证、软件配置管理等技术与策略,逐步形成软件过程工程。
(4)、构件工程:第四代软件工程。从20世界90年代,基于构件的开发方法取得重要进展,软件系统的开发可利用已有的可复用构件组装完成,而无需从头开始构建,从而达到了提高效率和质量、降低成本的目的。
3、软件的概念p5(填空)
软件是计算机系统运行的指令、数据、资料和服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合,即:软件=程序+数据+文档+服务
4、软件的特点p5
(1)、智能性。软件是人类智能劳动的产物、代替和延伸,其中程序、流程、算法、数据结构等需要通过人的思维进行设计、编排和组织。
(2)、抽象性。软件属于逻辑实体,而非物理实体,无形性和智能性知识软件难以认识和理解。
(3)、人工方式。软件的开发、维护及设置管理等方面目前尚未完全脱离手工方式。
(4)、复杂性和系统性。软件开发和运行经常受到计算机系统的限制,软件的开发和运行必须依赖于软件的环境。软件是由多个要素组成的有机整体,具有显著的系统特征。软件具有确定的目标、功能、性能、结构和要素。
(5)、泛域性。软件应用很广泛,在信息化中可服务于各种领域、行业和层面。
(6)、复制性。软件成本相对比较昂贵,计算机软件是人类创造性的特殊产品。而复制和推广的费用一般比较低,可以借用复用技术进行软件开发再利用。
(7)、非损及更新性。软件不存在物理磨损和老化问题,但会退化,需要跟新升级。
5、软件工程的概念及特点 p7
(1)软件工程:采用工程的概念、原理、技术和方法,在计划、开发、运行、维护与管理软件的过程中,将科学的管理与最佳的技术方法紧密结合,以比较经济的手段获得满足用户需求的可靠软件的一系列方法,即:
软件工程=工程原理+技术方法+管理技术
(2)软件工程的特点
软件工程的主要特点是实践性和发展性,软件工程的问题来源并应用于实践,最终目的是有效地生产软件产品。其特点体现为“三多”:
① 多学科,不仅包含有关课题,还涉及计算机科学、工程科学、管理科学和数学等多个学科。
② 多目标,不仅关心项目产品及其功能,还注重质量、成本、进度、性能、可靠
性、安全性、通用性、可维护性、有效性和界面等。
③ 多阶段,软件开发不仅是编程,而是由可行性研究、计划立项、需求分析、总
体设计、详细设计、编程、测试、运行、维护等阶段构成的完整过程。
6、软件工程方法 p8
通常将软件研发计划、开发、运行和维护过程中所使用的一整套技术方法称为方法学或范型。
软件工程学的主要内容包括软件开发技术和软件工程管理两个方面。软件开发技术包括软件工程方法、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
7、软件工程三要素 p9
(1)、软件工程方法:包括软件开发“如何做“的技术和管理准则及文档等技术方法。
(2)、软件工具:为方法的运用提供自动或半自动的软件支撑工具的集成环境。
(3)、软件工程过程:主要包括任务的工作阶段、工作内容、产品、验收的步骤和完成准则。
8、软件复用 p10
软件服用或软件重用是指将已由的软件构建用于构造新的软件系统系统的过程。该技术是有效提高软件生产率和质量,降低成本的好方法。软件复用方法采用的复用方式包括以下几种:
(1)、复用分析:利用原有的需求分析结果,进一步深入分析比对查找异同及特性等。
(2)、复用结构:主要复用系统模块的功能结构或数据结构等,并进行改进提高。
(3)、复用设计:由于复用受环境影响小设计结果比源程序的抽象级别高,因此可通过从现有系统中提取全部或不同粒度的设计构件,或独立于具体应用开发设计构件。
(4)、复用程序:包括目标代码和源代码的复用,可通过连接(Link )、绑定(Binding )、包含(Include )等功能,支持对象链接及嵌入(OLE )技术实现。
9、软件工程管理p12
软件工程管理主要内容包括:
(1)、人员组织。软件开发需要团队合作,应有良好的组织、周密的管理,各类人员优化组合,协同配合,共同完成工程任务,这是软件开发项目成功的重要保证。
(2)、计划管理。在软件开发前进行可行性研究立项后,还需要确定软件工程计划并进行落实。在计划实施过程中,必要时可根据需要对工程进度进行适当的调整。开发结束后完成软件开发总结报告,以总结经验并备用,为以后制定更适合的计划打好基础。
(3)、费用管理。开发项目是一种投资,往往期望获得较大的经济、社会和应用效益,并降低成本。应用软件开发成本、运行费用、经济效益等多方面预算整个软件开发的投资和效益预测情况。
(4)、软件配置管理。指在系统整个开发、运行和维护时控制配置的状态和变动,验证配置项的完整性和正确性等。在软件工程各阶段所产生的文档和软件本身构成软件配置,完成一个工程步骤应及时进行对应的软件工程配置,使其始终能够保持精确性。
10、软件工程的基本原理
(1)用分阶段的生存周期计划进行严格的管理。不成功的软件项#有大约一半是由于计划不周造成的。
(2)坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行
(3)实行严格的产品控制。在软件开发过程中不应随意改变需求,以免带来其他变更和为此付出较髙的代价。
(4)采用现代程序设计技术。采用先进的技术既可提高软件开发的效率,又可提髙软
件维护的效率。
(5)软件工程结果应能清楚地审査。根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审査。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。不仅要积极主动地采纳新的软件技术, 而且要注意断总结经验。
11、软件生存周期各阶段的任务 p17
软件生存周期各阶段的主要任务有:
(1)、开发策划。主要完成问题定义、可行性论证、制定开发计划和项目申报工作,明确“要解决的问题是什么”。
(2)、需求分析。需求分析和定义阶段的任务不是具体地解决问题,而是确定软件须具备的具体功能、性能等,即明确“必须做什么”及其他指标要求。
(3)、概要设计。主要设计软件的结构,结构的组成模块,模块的层次结构、调用关系及功能,并设计总体数据结构等。
(4)、详细设计。对模块功能、性能、可靠性等进行具体技术描述,并转化为过程描述。
(5)、编写程序。又称编码,将模块的控制结构转换成程序代码。
(6)、测试。为了保证软件需求和质量,在设计测试用例的基础上对软件进行检测。
(7)、运行维护。对交付并投入使用的软件进行各种维护,并记录保存文档。
第二章可行性分析及策划
1. 调研策略及原则 p31
(1)自顶向下逐步展开的策略
先从组织管理工作的最顶层开始,然后调研为确保上述管理的下一层相关工作,在深入调研为确保第二层管理工作的下一层(第三层)的工作,逐层深入,直至搞清全部管理业务。
(2)实事求是的原则
机构内部的管理部门和各项工作,应根据具体实际情况和需要来安排。调研工作的目的是搞清这些管理工作存在的因由、环境条件和详细过程,再通过系统分析讨论其在新应用软件支持下有无优化的可行性。
(3)工程化的工作方式
工程化的方法是将工作中的每部工作都预先计划好,对多人员的工作方法和调研所用的表格、图例进行统一规范化处理,以便于相互沟通、协调工作。
(4)全面与重点结合的方式
若近期内只开发机构内某一部分的应用软件,则需要采用全面摊开与重点调研相结合的方法,即自顶向下的全面展开,但每次都只侧重于与局部相关的问题。常用的调研方法包括问卷调研、召开调研会、业务实践、专家访谈、收集信息等。
(5)主动沟通与友善的态度
营造出一种积极主动友善的工作环境和人际关系是调研工作顺利进行的重要基础和前提,并可提高调研和系统开发效率。
2、软件目标及任务 p32
软件目标是指软件项目所要达到的最终目的指标和具体结果,具有可度量性和预测性。从不同监督,主要有以下几种方法:
(1) 按时间划分,可分为长期目标、中期目标、短期目标。
(2) 按目标的综合度,可分为总体目标、分项目标。
(3) 按性质划分,可分为效能及可靠性目标、功能目标、性能目标。
3、可行性分析的意义 p37
解释“又好又快又省”按软件开发模块解释自行解释
4、研发计算机系统的成本费用 p39
(1)购置并安装软硬件及有关网络等设备的费用
(2)软件系统开发费用
(3)软件系统安装、运行和维护费用
(4)推广及用户使用与人员培训等费用
5、可行性分析的过程 p41
(1)明确系统规模和目标
准确了解用户对项目的想法和实际需求,对系统目标的具体限制和约束,确保准确有效的解决需求问题。
(2)认真研究现行系统
认真分析研究现有系统的基本功能、业务及处理流程、文档资料等情况,同时通过现有系统情况进一步了解用户对新软件项目的确切想法和具体要求,以确保研发的新软件切实满足用户需求。
(3)确保系统逻辑模型
以“抽象”的方式先对问题进行概括后再进行分解,设计复杂系统常用抽象和概括方式建立一个概念意义上的模型。
(4)制定并推荐技术方案
从系统的逻辑模型出发,提出几个较为抽象的物理模型,然后根据技术可行性、经济可行性、社会可行性分析,对可行的几个方案进行分析比较和优化筛选,并根据推荐的初步方案和修改完善等建议。
(5)编写可行性分析报告
将可行性分析过程的结果进行分析汇总,编写一份描述计划任务的“可行性分析报告”。报告应包括以下主要内容:
a) 系统概述。
b) 可行性分析。
c) 初步开发方案及开发计划。
d) 结论意见。
(6)审查论证
审议可行性分析报告时关键环节,只有在对项目目标和可行性问题的认识与用户、领导和管理人员取得完全一致的情况下,才能进行审核论证。通常采用论证会的方式进行评审。
6、软件立项及合同 p43
软件研发项目的立项、投标、合同和任务书是软件研发前的4项重要工作,IT 企业的各层管理和技术人员在软件立项中起着重要作用。高层经理以立项为决策;中层人员负责组织立项、投标、合同和任务书的具体工作;基层人员主要负责具体的立项、合同、任务书中的起草修改和实施,并联系实际落实到以后的“需求获取、设计、编码、测试”工作中。
7、软件开发计划的主要内容 p55
(1) 项目概述。简单说明项目各项主要工作内容;概述软件的功能、性能和可靠性;
完成项目应具备的条件;用户及合同承包者承担的工作及技术水平;完成期限
及验收标准;应交付的程序名称,所使用的语言及存储形式;应依附的文档;
向用户提供的各项服务包括培训安装、维护、运行支持和服务期限等。
(2) 实施计划。包括:各阶段具体任务的划分,各项任务的责任人;项目开发进度,
按阶段应完成的任务,用图表说明每项任务的开始时间和完成时间;项目的预
算,各阶段的费用支出预算;关键问题、技术难点和风险及其影响。
(3) 人员组织及分工。包括:开发该项目所需人员的类型、组成结构和数量等。
(4) 交付期限。主要指软件项目最后完工交付的具体日期。
第三章需求分析
1、需求分析的概念 p67
研究一种无二义性的表达工具,它能为用户和软件人员双方都接受并将“需求”严格地、形式地表现出来。自行解释无二义性
2、需求分析的任务 p69
需求分析的基本任务是准确的分析理解原系统,定义新系统的目标及具体要求,在可行性分析的基础上,进一步获取新系统的综合需求,确定系统要完成的工作,为软件设计与实现奠定基础,即确定软件完整、准确、清晰、具体的指标要求,主要有9项任务。
(1) 确定总体目标及组织结构
(2) 深入领域分析,画出业务流程图
(3) 分析数据流程,画出数据流图
(4) 确定功能需求,完成功能结构图及点列表、
(5) 获取性能需求,列出性能点列表
(6) 明确处理关系,列出接口列表
(7) 确定系统运行环境及界面
(8) 修正开发计划和新系统方案
(9) 编写需求文档,验证确认需求
3、判定表 p82
由文字描述画出表3-10、3-11 自己看书
第六章软件实现技术
1、面向对象实现的准则 p172
OOM 是软件实现最常用的方法,实现的准则主要包括可重用性,高可扩充性和高可靠性及健壮性,具体体现为:
(1)高可重用性。为提高可用性,遵循的准则为:提高方法的内聚、减小方法的规模,保持方法的一致性、将策略与实现分开、全面覆盖、尽量不使用全局信息、利用继承机制。
(2)高可扩充性。提高可扩充性遵循的准则是:封装安装策略、不要以同一方法完成全部关联、避免使用多分文语句、精心确定公有方法。
(3)高可靠性及健壮性。软件的可靠性是指在规定的条件和时间内完成规定的功能的性能。健壮性,是指软件对于不符合规范要求输入的处理能力。在提高软件可靠性的同时还应预防用户的误操作、检查参数的合法性、不要预先确定限制操作的条件、先测试后优化。
2、软件版本 p195
(1)中间版本。为软件完成前且还未进行正式测试的版本。
(2)α版本。是软件未完成但可以提交进行严格测试的版本。
(3)β版本 。能够稳定运行的软件系统,可以交付给终端用户进行测试。
(4)发布版本 。正式向社会发布或向用户提交使用的软件产品。
(5)维护版本。对发布的版本进行错误纠正,以及进行功能或性能改进的软件版本。
第七章软件测试与维护
1、软件测试的原则P200
(1)认真执行测试计划
(2)“尽早和不断地进行软件测试/评审”
(3)优选测试工具,技术及方法
(4)精心设计测试用例
(5)交叉进行软件检测
(6)重点测试群集现象
(7). 全面检查并分析测试结果
(8)妥善保管测试文档
2软件测试的步骤及任务图7-4 P203
第一章概述
1、解决软件危机的措施p3(不定项)
(1)技术方法。(2)开发工具。(3)组织管理。
2、软件工程的发展过程p3(解答或不定项)
软件工程的发展经历了4个重要阶段:
(1)、传统软件工程:软件工程产生的初期,也成为第一代软件工程。20世纪60年代末到70年代,软件主要采用“生产作坊”的开发方式,这种方式因无法适应软件开发的需要导致出现“软件危机”。
(2)、对象工程:第二代软件工程。20世纪80年代到90年代,以Smalltalk 为代表的面向对象的程序设计语言相继推出,使面向对象的方法与技术得到快速发展。
(3)、过程工程:随着计算机网络等高新技术的出现及信息技术的广泛应用,软件规模复杂度增大开发时间长,管理难度增大,从而提出了对软件项目管理的计划、组织、成本估算、质量保证、软件配置管理等技术与策略,逐步形成软件过程工程。
(4)、构件工程:第四代软件工程。从20世界90年代,基于构件的开发方法取得重要进展,软件系统的开发可利用已有的可复用构件组装完成,而无需从头开始构建,从而达到了提高效率和质量、降低成本的目的。
3、软件的概念p5(填空)
软件是计算机系统运行的指令、数据、资料和服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合,即:软件=程序+数据+文档+服务
4、软件的特点p5
(1)、智能性。软件是人类智能劳动的产物、代替和延伸,其中程序、流程、算法、数据结构等需要通过人的思维进行设计、编排和组织。
(2)、抽象性。软件属于逻辑实体,而非物理实体,无形性和智能性知识软件难以认识和理解。
(3)、人工方式。软件的开发、维护及设置管理等方面目前尚未完全脱离手工方式。
(4)、复杂性和系统性。软件开发和运行经常受到计算机系统的限制,软件的开发和运行必须依赖于软件的环境。软件是由多个要素组成的有机整体,具有显著的系统特征。软件具有确定的目标、功能、性能、结构和要素。
(5)、泛域性。软件应用很广泛,在信息化中可服务于各种领域、行业和层面。
(6)、复制性。软件成本相对比较昂贵,计算机软件是人类创造性的特殊产品。而复制和推广的费用一般比较低,可以借用复用技术进行软件开发再利用。
(7)、非损及更新性。软件不存在物理磨损和老化问题,但会退化,需要跟新升级。
5、软件工程的概念及特点 p7
(1)软件工程:采用工程的概念、原理、技术和方法,在计划、开发、运行、维护与管理软件的过程中,将科学的管理与最佳的技术方法紧密结合,以比较经济的手段获得满足用户需求的可靠软件的一系列方法,即:
软件工程=工程原理+技术方法+管理技术
(2)软件工程的特点
软件工程的主要特点是实践性和发展性,软件工程的问题来源并应用于实践,最终目的是有效地生产软件产品。其特点体现为“三多”:
① 多学科,不仅包含有关课题,还涉及计算机科学、工程科学、管理科学和数学等多个学科。
② 多目标,不仅关心项目产品及其功能,还注重质量、成本、进度、性能、可靠
性、安全性、通用性、可维护性、有效性和界面等。
③ 多阶段,软件开发不仅是编程,而是由可行性研究、计划立项、需求分析、总
体设计、详细设计、编程、测试、运行、维护等阶段构成的完整过程。
6、软件工程方法 p8
通常将软件研发计划、开发、运行和维护过程中所使用的一整套技术方法称为方法学或范型。
软件工程学的主要内容包括软件开发技术和软件工程管理两个方面。软件开发技术包括软件工程方法、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
7、软件工程三要素 p9
(1)、软件工程方法:包括软件开发“如何做“的技术和管理准则及文档等技术方法。
(2)、软件工具:为方法的运用提供自动或半自动的软件支撑工具的集成环境。
(3)、软件工程过程:主要包括任务的工作阶段、工作内容、产品、验收的步骤和完成准则。
8、软件复用 p10
软件服用或软件重用是指将已由的软件构建用于构造新的软件系统系统的过程。该技术是有效提高软件生产率和质量,降低成本的好方法。软件复用方法采用的复用方式包括以下几种:
(1)、复用分析:利用原有的需求分析结果,进一步深入分析比对查找异同及特性等。
(2)、复用结构:主要复用系统模块的功能结构或数据结构等,并进行改进提高。
(3)、复用设计:由于复用受环境影响小设计结果比源程序的抽象级别高,因此可通过从现有系统中提取全部或不同粒度的设计构件,或独立于具体应用开发设计构件。
(4)、复用程序:包括目标代码和源代码的复用,可通过连接(Link )、绑定(Binding )、包含(Include )等功能,支持对象链接及嵌入(OLE )技术实现。
9、软件工程管理p12
软件工程管理主要内容包括:
(1)、人员组织。软件开发需要团队合作,应有良好的组织、周密的管理,各类人员优化组合,协同配合,共同完成工程任务,这是软件开发项目成功的重要保证。
(2)、计划管理。在软件开发前进行可行性研究立项后,还需要确定软件工程计划并进行落实。在计划实施过程中,必要时可根据需要对工程进度进行适当的调整。开发结束后完成软件开发总结报告,以总结经验并备用,为以后制定更适合的计划打好基础。
(3)、费用管理。开发项目是一种投资,往往期望获得较大的经济、社会和应用效益,并降低成本。应用软件开发成本、运行费用、经济效益等多方面预算整个软件开发的投资和效益预测情况。
(4)、软件配置管理。指在系统整个开发、运行和维护时控制配置的状态和变动,验证配置项的完整性和正确性等。在软件工程各阶段所产生的文档和软件本身构成软件配置,完成一个工程步骤应及时进行对应的软件工程配置,使其始终能够保持精确性。
10、软件工程的基本原理
(1)用分阶段的生存周期计划进行严格的管理。不成功的软件项#有大约一半是由于计划不周造成的。
(2)坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行
(3)实行严格的产品控制。在软件开发过程中不应随意改变需求,以免带来其他变更和为此付出较髙的代价。
(4)采用现代程序设计技术。采用先进的技术既可提高软件开发的效率,又可提髙软
件维护的效率。
(5)软件工程结果应能清楚地审査。根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审査。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。不仅要积极主动地采纳新的软件技术, 而且要注意断总结经验。
11、软件生存周期各阶段的任务 p17
软件生存周期各阶段的主要任务有:
(1)、开发策划。主要完成问题定义、可行性论证、制定开发计划和项目申报工作,明确“要解决的问题是什么”。
(2)、需求分析。需求分析和定义阶段的任务不是具体地解决问题,而是确定软件须具备的具体功能、性能等,即明确“必须做什么”及其他指标要求。
(3)、概要设计。主要设计软件的结构,结构的组成模块,模块的层次结构、调用关系及功能,并设计总体数据结构等。
(4)、详细设计。对模块功能、性能、可靠性等进行具体技术描述,并转化为过程描述。
(5)、编写程序。又称编码,将模块的控制结构转换成程序代码。
(6)、测试。为了保证软件需求和质量,在设计测试用例的基础上对软件进行检测。
(7)、运行维护。对交付并投入使用的软件进行各种维护,并记录保存文档。
第二章可行性分析及策划
1. 调研策略及原则 p31
(1)自顶向下逐步展开的策略
先从组织管理工作的最顶层开始,然后调研为确保上述管理的下一层相关工作,在深入调研为确保第二层管理工作的下一层(第三层)的工作,逐层深入,直至搞清全部管理业务。
(2)实事求是的原则
机构内部的管理部门和各项工作,应根据具体实际情况和需要来安排。调研工作的目的是搞清这些管理工作存在的因由、环境条件和详细过程,再通过系统分析讨论其在新应用软件支持下有无优化的可行性。
(3)工程化的工作方式
工程化的方法是将工作中的每部工作都预先计划好,对多人员的工作方法和调研所用的表格、图例进行统一规范化处理,以便于相互沟通、协调工作。
(4)全面与重点结合的方式
若近期内只开发机构内某一部分的应用软件,则需要采用全面摊开与重点调研相结合的方法,即自顶向下的全面展开,但每次都只侧重于与局部相关的问题。常用的调研方法包括问卷调研、召开调研会、业务实践、专家访谈、收集信息等。
(5)主动沟通与友善的态度
营造出一种积极主动友善的工作环境和人际关系是调研工作顺利进行的重要基础和前提,并可提高调研和系统开发效率。
2、软件目标及任务 p32
软件目标是指软件项目所要达到的最终目的指标和具体结果,具有可度量性和预测性。从不同监督,主要有以下几种方法:
(1) 按时间划分,可分为长期目标、中期目标、短期目标。
(2) 按目标的综合度,可分为总体目标、分项目标。
(3) 按性质划分,可分为效能及可靠性目标、功能目标、性能目标。
3、可行性分析的意义 p37
解释“又好又快又省”按软件开发模块解释自行解释
4、研发计算机系统的成本费用 p39
(1)购置并安装软硬件及有关网络等设备的费用
(2)软件系统开发费用
(3)软件系统安装、运行和维护费用
(4)推广及用户使用与人员培训等费用
5、可行性分析的过程 p41
(1)明确系统规模和目标
准确了解用户对项目的想法和实际需求,对系统目标的具体限制和约束,确保准确有效的解决需求问题。
(2)认真研究现行系统
认真分析研究现有系统的基本功能、业务及处理流程、文档资料等情况,同时通过现有系统情况进一步了解用户对新软件项目的确切想法和具体要求,以确保研发的新软件切实满足用户需求。
(3)确保系统逻辑模型
以“抽象”的方式先对问题进行概括后再进行分解,设计复杂系统常用抽象和概括方式建立一个概念意义上的模型。
(4)制定并推荐技术方案
从系统的逻辑模型出发,提出几个较为抽象的物理模型,然后根据技术可行性、经济可行性、社会可行性分析,对可行的几个方案进行分析比较和优化筛选,并根据推荐的初步方案和修改完善等建议。
(5)编写可行性分析报告
将可行性分析过程的结果进行分析汇总,编写一份描述计划任务的“可行性分析报告”。报告应包括以下主要内容:
a) 系统概述。
b) 可行性分析。
c) 初步开发方案及开发计划。
d) 结论意见。
(6)审查论证
审议可行性分析报告时关键环节,只有在对项目目标和可行性问题的认识与用户、领导和管理人员取得完全一致的情况下,才能进行审核论证。通常采用论证会的方式进行评审。
6、软件立项及合同 p43
软件研发项目的立项、投标、合同和任务书是软件研发前的4项重要工作,IT 企业的各层管理和技术人员在软件立项中起着重要作用。高层经理以立项为决策;中层人员负责组织立项、投标、合同和任务书的具体工作;基层人员主要负责具体的立项、合同、任务书中的起草修改和实施,并联系实际落实到以后的“需求获取、设计、编码、测试”工作中。
7、软件开发计划的主要内容 p55
(1) 项目概述。简单说明项目各项主要工作内容;概述软件的功能、性能和可靠性;
完成项目应具备的条件;用户及合同承包者承担的工作及技术水平;完成期限
及验收标准;应交付的程序名称,所使用的语言及存储形式;应依附的文档;
向用户提供的各项服务包括培训安装、维护、运行支持和服务期限等。
(2) 实施计划。包括:各阶段具体任务的划分,各项任务的责任人;项目开发进度,
按阶段应完成的任务,用图表说明每项任务的开始时间和完成时间;项目的预
算,各阶段的费用支出预算;关键问题、技术难点和风险及其影响。
(3) 人员组织及分工。包括:开发该项目所需人员的类型、组成结构和数量等。
(4) 交付期限。主要指软件项目最后完工交付的具体日期。
第三章需求分析
1、需求分析的概念 p67
研究一种无二义性的表达工具,它能为用户和软件人员双方都接受并将“需求”严格地、形式地表现出来。自行解释无二义性
2、需求分析的任务 p69
需求分析的基本任务是准确的分析理解原系统,定义新系统的目标及具体要求,在可行性分析的基础上,进一步获取新系统的综合需求,确定系统要完成的工作,为软件设计与实现奠定基础,即确定软件完整、准确、清晰、具体的指标要求,主要有9项任务。
(1) 确定总体目标及组织结构
(2) 深入领域分析,画出业务流程图
(3) 分析数据流程,画出数据流图
(4) 确定功能需求,完成功能结构图及点列表、
(5) 获取性能需求,列出性能点列表
(6) 明确处理关系,列出接口列表
(7) 确定系统运行环境及界面
(8) 修正开发计划和新系统方案
(9) 编写需求文档,验证确认需求
3、判定表 p82
由文字描述画出表3-10、3-11 自己看书
第六章软件实现技术
1、面向对象实现的准则 p172
OOM 是软件实现最常用的方法,实现的准则主要包括可重用性,高可扩充性和高可靠性及健壮性,具体体现为:
(1)高可重用性。为提高可用性,遵循的准则为:提高方法的内聚、减小方法的规模,保持方法的一致性、将策略与实现分开、全面覆盖、尽量不使用全局信息、利用继承机制。
(2)高可扩充性。提高可扩充性遵循的准则是:封装安装策略、不要以同一方法完成全部关联、避免使用多分文语句、精心确定公有方法。
(3)高可靠性及健壮性。软件的可靠性是指在规定的条件和时间内完成规定的功能的性能。健壮性,是指软件对于不符合规范要求输入的处理能力。在提高软件可靠性的同时还应预防用户的误操作、检查参数的合法性、不要预先确定限制操作的条件、先测试后优化。
2、软件版本 p195
(1)中间版本。为软件完成前且还未进行正式测试的版本。
(2)α版本。是软件未完成但可以提交进行严格测试的版本。
(3)β版本 。能够稳定运行的软件系统,可以交付给终端用户进行测试。
(4)发布版本 。正式向社会发布或向用户提交使用的软件产品。
(5)维护版本。对发布的版本进行错误纠正,以及进行功能或性能改进的软件版本。
第七章软件测试与维护
1、软件测试的原则P200
(1)认真执行测试计划
(2)“尽早和不断地进行软件测试/评审”
(3)优选测试工具,技术及方法
(4)精心设计测试用例
(5)交叉进行软件检测
(6)重点测试群集现象
(7). 全面检查并分析测试结果
(8)妥善保管测试文档
2软件测试的步骤及任务图7-4 P203