一、项目两个基本属性:临时性;独特性(唯一性)
二、项目的生命周期:项目启动、项目规划、项目执行、项目监控和项目收尾
任何项目的目标都是力求:时间最短、费用最少、质量最高
三、项目立项一般需要经过如下5个步骤:1)识别发起项目 2)论证项目 3)申请项目 4)审核项目5)确定项目/立项
四、可行性分析一般从一下8个方面进行展开:1)战略评估 2)操作性评估 3)计划评估 4)技术评估 5)社会评估 6)市场评估7)经济评估8)风险评估
五、5种经济性评估指标:1)净利润 2)净现值 3)内部收益率 4)投资回收率 5)投资回报率
六、招投标过程:招标、投标、开标、评标、中标
七、软件合同管理流程分为4个阶段:
1)合同前准备 2)签署合同 3)合同履行 4)合同收尾
五、范围管理的5个主要过程:1)收集需求 2)定义范围 3)创建工作分解结构 4)核实范围5)控制范围
六、收集需求的方法一般有8种访谈、焦点小组会议、引导式研讨会、群体创新技术、群体决策技术、问卷调查、观察、原型法
七、软件需求分为功能性需求和非功能需求两大类;细分又可以分为三个层次; 1)业务需求 2)用户需求 3)功能需求 4)系统需求 5)业务规则 6)质量属性 7)性能需求 8)对外接口 9)约束条件
八、成功需求的标准:明确性;完整性;一致性;可测试性
九、三种基本的项目组织结构:职能式项目组织结构;项目式组织结构;矩阵式项目组织结构
十、软件项目估算主要包括:规模估算、工作量估算、成本估算
十一、风险的两个属性:可能性;损失
十二、风险暴露量=风险概率 X 损失
十三、风险应对策略主要包括一下几种:1)风险规避2)风险转移3)购买关于风险的信息4)消除产生风险的根源5)减轻风险6)接受风险7)控制风险8)发布风险 9)以上策略可以同时采取几种策略。
十四、软件质量管理的主要内容包括:1)编制软件项目的质量计划2)软件质量保证3)软件质量控制
十五、软件质量控制的主要活动包括:1)技术评审 2)代码走查 3)代码评审 4)单元测试 5)集成测试 6)系统测试 7)缺陷追踪
十六、配置管理过程中的主要活动:1)配置项的标识2)配置管理环境的建立3)版本控制4)变更控制5)配置审核6)配置状态报告
十七、进度编制的基本方法:1)关键路径法2)正推法3)逆推法4)时间压缩法5)赶工(Crash)6)快速跟进(Fast tracking:搭接)
十八、软件项目收尾流程:1)判断项目收尾状态2)申请结束项目3)项目收尾4)项目评估
十九、软件危机的表现 :1)软件成本日益增长 2)开发进度难以控制3)软件质量差4)软件维护困难
二十、软件危机的原因 :1)用户需求不明确 2)缺乏正确的理论指导3)软件规模越来越大4)软件复杂度越来越高
二十一、如何克服软件危机 :1)人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败 。2)要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。3)在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。
二十二、软件体系结构建模的种类 :1)结构模型2)框架模型3)动态模型4)过程模型5)功能模型
二十三、“4+1”模型概述 :
最终用户:功能需求 编程人员:软件管理
系统集成人员:性能 系统工程人员:系统
可扩充性、吞吐量等 拓扑、安装、通信等
二十四、软件体系结构描述方法的种类 :1)图形表达工具2)模块内连接语言 3)基于软构件的系统描述语言4)软件体系结构描述语言
二十五、软件设计的具体任务:1)制定规范(制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。)2)结构设计(基于功能层次结构建立系统。)3)处理方式设计(确定算法,评估算法的性能,确定模块间的控制方式:周转时间;响应时间;吞吐量;精度,确定外部信号的接收发送形式)4)数据结构及数据库设计( 1数据结构的设计:目的:保证数据完整性和安全性2数据库设计:目的:确定数据库的模式、子模式。3数据的保护性设计)5)可靠性设计(质量设计)6)编写软件设计文档7)设计审查和复审(可追溯性:需求复盖确认 ; 接口:内部接口与外部接口定义的确认; 风险:确认技术条件、预算范围。 实用性:确认对于需求的实用性。技术清晰度:确认代码的可实现性; 可维护性:确认可维护性; 质量:确认质量特征; 各种选择方案:选择方案的标准; 限制:评估限制的现实性,与需求的一致性)8)其它具体问题:对文档、可测试性、设计过程等进行评估 9)详细设计
二十六、软件设计的目标
软件设计的最终目标:取得最佳方案
1)节省开发费用、2)降低资源消耗、3)缩短开发时间、4)能够赢得较高的生产效率、5)较高的可靠性、6)可维护性的方案。
二十七、开发的软件满足以下特点:1)功能、性能都符合指定的要求;2)软件是可维护的,可方便地进行修改 ;3)除了代码,还有一套配置齐全的文档。
二十八、用例图:用于显示若干角色以及这些角色与系统提供的用例之间的连接关系。用例是系统提供的功能的描述
类图:表示系统中的类和类与类之间的关系,它是对系统静态结构的描述
序列图:用来反映若干个对象之间的动态协作关系,也就是随着时间的推移,对象之间是如何交互的
协作图:描述对象间的协作关系,协作图跟序列图相似,显示对象间的动态合作关系。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。这两种图合称为交互图。
状态图:描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充
活动图:描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动
构件图:描述代码构件的物理结构及各构件之间的依赖关系
部署图:部署图定义系统中软硬件的物理体系结构
二十八、管道和过滤器风格的优点:1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;5)允许对一些如吞吐量、死锁等属性的分析;6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
二十九、管道和过滤器的缺点:1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重;3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
三十、软件体系结构的意义:1)体系结构是风险承担者进行交流手段2)体系结构是早期设计决策的体现3)软件体系结构是可传递和重用模型
三十一、软件过程:需求分析->建立体系结构->设计->实现->测试