当前位置:文档之家› 软件工程导论第四章

软件工程导论第四章

1:软件工程思想决定了软件工程的策略和方法
2:管理学的佐证: 管理中心从物本管理到人本管理,经济人(物质) 社会人(人有社会
需求,需要和睦相处,需要完全)
3:由智力活动所决定: 尊重软件团队的每一个人,调动每一个人的工作激情和创造能力,
发挥每个人的潜力
4:软件工程是知识工程:知识工程的管理就是一种人性化的管理和全员参与的管理,组织
的价值需要每个人的价值体现出来
5:软件危机:软件是高科技的智力产品,需要很高的创造性,但还是不能抹去其工业性软件质量问题直接危害到人们的生命财产、会造成国家经济的严重损失,企
业会为此付出很大的代价
艺术可以定义为“人类以创造美为主要目的的技术及其产品”
6:向传统工业学习: 客户为导向需求分析是基础过程决定结果持续改进过程
缺陷预防围绕项目开展工作验证和确认缺一不可以架构设计
为中心
7:客户为导向:客户为导向就是以客户为中心,将客户的需求、期望和关心作为组织管理
的活动原则和价值准则,充分体现了“以客户为关注焦点”的原则客户为导向是一种文化,也是一种策略和方针。

(1)满足客户的期望
(2)超越客户的期望
(3)一切从客户出发:站在客户角度思考
(4)体现在具体过程中:分析,设计,编程
(5)让客户参与到公司的质量管理中:参与到评审;测试中;一起设计;反馈不管反面
还是正面,开发公司一定要认真考虑;听取客户业务流程
8:需求分析是基础:在传统的制造业,产品的每个新特性都是经过仔细推敲后才确定下来
表现如下:以客户为导向,最直接体现在客户需求工作之上
对需求不重视,导致软件开发的返工率很高、成本高、质量低等一系列
问题
在项目的最后阶段修正需求错误比在需求阶段修正它要多花费200倍的
代价
9:过程决定结果:质量不是检验出来的,而是构建出来的
(1)有什么流程,就有什么结果,流程决定了结果
(2)产品是构建于过程之中
(3)自动化生产线就是一个很好的例子:各个环节注重质量多年来的工业经验总结;。

10:
11:持续改进过程:PDCA IDEAL QIP
12:缺陷预防: 1软件的劣质成本占开发的总成本在40%以上
2如果第一次就把事情做对了,就消除了劣质成本
3相比软件测试/质量检验,更有效的方法是开展预防缺陷的活动(一旦发现
缺陷,就不能降低太多成本)
4在开发的每个阶段实施根本原因分析,为有效开展缺陷预防活动提供依据13:围绕项目开展工作:(1)项目管理已经很成熟,形成比较完整的体系
(2)不管大大小小的事情,都可以看作一个项目
(3)把一个个项目做好了,就把整个工程做好了
(4)围绕项目开展各项工作
14:验证和确认缺一不可:
15:以架构设计为中心:(1)软件架构设计决定了软件系统的性能、可靠性、扩充性和维护
性等
(2)良好的架构设计能适应用户不同的需求、支持用户需求的改变
(3)RUP也提倡“以架构设计为中心”的理念
16:为什么选择迭代:(1)市场的压力和竞争策略的需要(较早占有市场)
(2)产品开发的资金、周期和资源是有限的
(3)软件的复杂程度不断提高,增加了项目失败的可能性,将一个产
品进行分阶段处理,可以尽早发现产品的市场问题或方向错误,
降低风险。

(4)对于越来越复杂、庞大的系统,多数情况下不容易一次性整体实
现,而是通过分解逐步实现。

(5)软件比较容易修改或扩充,在技术上可以保证软件迭代的可行性。

17:XP-eXtreme Programming极限编程:最简单的可能就是最有效的
18:极限编程适合:小团队(2-10 programmers)
“高风险”
快速变化或不稳定的需求
强调可测试性
19:XP Lifecycle -生命周期:。

20:持续构建和测试: (1)系统的集成从写代码的第一天就开始,而且持续集成
(2)借助于持续集成,绝大多数缺陷在其引入的同一天就可以被发现
(3)每日验证,包含了持续的集成验证,可以配合每日构建和持续集成的工作
(5)良好的开发环境和自动化测试可以保证持续构建和测试的实现
21:永远的Beta:“永远的Beta”正在成为互联网软件开发的主流思想之一,创造一个更
为灵活、发展更为迅速的软件工程环境
22:面向对象是一种思想:(1)封装、继承性和多态性(知道语言,操作系统)
(2)从具体到抽象,再从抽象到具体(对象)
(3)需求定义更彻底
(4)改善软件的稳定性和可维护性
❖23:软件工程是一种智力活动,应归为知识工作和管理,是因为其符合知识工作的特点:需要同化和集成的概念:同化就是把用户需求转换为软件本身的需求。


成:就是把用松散的用户需求集成一个可以操作的软件系统。

❖工作是和人打交道
❖能产生无形的智力产品
24:知识管理的原则:(1)工作人员了解自己的工作(开发人员更了解如何做开发),或者
说比其他人员(如管理人员)更理解自己的工作
(2)对于开发人员不能完全靠工作成果的量化来完成绩效考核,不
能实施计件工资等,所以必须让知识工作人员管理自己,这样
才能真正发挥他们的潜力
(3)需要不断激励他们,不断指导和帮助他们,培养他们的领导力25:知识管理体系: (1)个体知识组织化
(2)隐性知识显性化(个人别人不善于表达,肚里有东西,表达不出。


(3)零散知识系统化(一个人知识是片面的,所有人的这些经验合起来,
再进行分析与总结,零散知识就能系统化)
26: 软件工厂思想:模块化思想
面向构件思想
软件复用
中间件
自动化无处不在
27:模块化思想:“化繁为简”朴素思想的一种表现
将复杂的系统分解为相对简单的模块,对单一模块容易各个击破新产品(系统)= 通用模块(不变的部分)+ 专用模块(变动的部分)
模块能标准化和通用化
28:面向构件思想: (1)面向构件的思想体现在需求和设计的层次上
(2)构件是可独立配置的单元
(3)构件的实现是严格封装的
(4)构件可以在适当的环境中被复合使用
(5)面向构件思想还强调程序在动态运行时构件的自动装载,和“软
件工厂”的概念已非常接近
29:软件复用:软件复用就是设法使用已有的软件组成元素来构成新的系统,以减少软件开发所需的费用和时间,提高软件的可维护性和可靠性
基于软件函数库的软件复用(软件本身会提供很多函数库直接使用)
生成方式,即对模式的复用(工具能帮助我们生成软件成份)
组装方式(子程序技术,共享接口)
30:中间件:中间件(middleware)可以看作是面向构件的开发思想的一个实例,或者说是软件复用思想的延伸
中间件可以为不同领域内的应用提供系统结构上的支持和标准的服务组件等
中间件已成为许多标准化工作的主要部分
31:自动化无处不在:
❖软件开发的自动化思想可以说是来源于现代工业的自动化生产线,也可以说来源于计算机本身
❖软件开发的自动化思想应该无处不在,从自动构建软件包开始,到自动传递软件包、自动部署、自动验证和测试、自动生成报告、自动发出邮件通知等,形成一个自动化的开发环境。

相关主题