- 1、本文档共129页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1软件工程概述剖析
软件工程;1 概述;问题提出;从何开始?
采用什么技术?
需要多少时间?
需要多少人?哪些角色?能否并行、协作地开发?人力应该如何高效率的投入?
开发计划?
直接编码?
需求?
设计方案和模型?
人机交互的界面?
功能优先级? ;开发风险?
可扩展性?
复用?
设计模式?
编码规范?
需求变更?
测试?
开发过程?
软件度量?
最后期限?
;软件是计算机的灵魂
软件是广大使用者与计算机之间的桥梁
软件是人类在各个领域中积累的知识的结晶
软件是人类文明与知识得以延续的新的载体
软件是人类进一步成为一个整体,得以进一步相互联系的纽带
;计算机发展的初期,硬件的设计和生产是主要问题,那时所谓软件就是程序,甚至是机器指令程序,它们处于从属的地位。
现在对软件的正确理解:软件是计算机系统中与硬件相互依存的部分,它包括程序及其相关文档;程序是计算机任务的处理对象,和处理规则的描述;文档是为了理解程序所需的阐述性资料。
软件:程序以及开发、使用和维护程序需要的所有文档。(软件=程序+文档);软件:是程序、数据及相关文档的完整集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:开发、使用和维护程序所需要的图文资料。
;1983年,IEEE为软件下的定义:
计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。方法、规则通常是在文档中说明,在程序中实现的。
;与硬件相比:
a: 表现形式:无形无色,看不见摸不着
b: 生产方式:人的智力的高度发挥,无明显
的制造过程,对软件的质量控
制必须立足于软件开发过程
c: 维护:不存在磨损、老化问题,存在需要
更新的问题
;?No silver bullet: essence and accidents of software engineering
–Fred Brooks,IBM OS360 项目经理
–1999 年图灵奖获得者
“没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量上的进???。”
?
软件的本质特性
–复杂性(Complexity )
–一致性(Conformity )
–可变性(Changeability )
–不可见性(Invisibility )
;–软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软件的本质特性。
–软件的复杂性是必要属性
?大量的组合状态
?丰富的结构和相互依赖性
?良好的接口用以封装内部的复杂性
–开发问题也会增加复杂性
?重用通用化的组件意味着复杂的状态连接
;–软件必须遵从人为的惯例并适应已有的技术和系统
软件必须遵循各种接口、协议和标准
有些情况下,兼容性是软件开发的目标
–软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。
–许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。
;–软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。
–所有成功的软件都会发生变更!
?当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;
?功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。
–人们总是认为软件是容易修改的,但忽视了修改所带来的副作用,不断的修改最终导致软件的退化。
;–软件是不可见的和无法可视化的
?软件的客观存在不具有空间的形体特征
?定义“需要做什么”成为软件开发的根本问题
–人们一直试图使用不同的技术进行软件可视化
?控制流程、数据流、依赖关系、UML、……
?这些技术仍然无法给出准确的、完整的描述
–软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。
;按软件的功能分类:
a: 系统软件:能与计算机硬件紧密配合,使计算机系统的各个部件、相关的软件和数据协调高效的工作的软件。
如:OS DBMS 设备驱动程序 通信处理程序
b: 支撑软件:协助用户开发应用软件的工具性软件。
c: 应用软件:在特定领域内开发,为特定目的服务的软件。
;按软件的规模分类
;按软件的工作方式分类
a: 实时处理软件:在数据产生时立即对其处理,并及
您可能关注的文档
最近下载
- 2024年中国人工智能行业白皮书.docx
- 大学生国家安全教育读本.docx VIP
- 欧洲规范-NF P94-011-中文.pdf
- 0823S11026-《IP形象设计》-2023版人才培养方案课程教学大纲.docx VIP
- 专题16 【培优小题狂练】阅读理解“标题概括2”题(考情+技法+真题+模拟)-2024年新高考英语二轮复习 原卷版.docx
- 【精心整理】人教初中数知识点总结+公式(完整版).docx
- 三年级上册脱式计算题100道.docx
- 专题15 【培优小题狂练】阅读理解“标题概括1”题(考情+技法+真题+模拟)-2024年新高考英语二轮复习 原卷版.docx
- 2024年河南林业职业学院单招职业技能测试题库(历年真题).docx VIP
- 雅佳电吹管说明书.pdf VIP
文档评论(0)