- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch2.1-软件技术基础.ppt
专题1:计算机软件技术基础 计算机软硬件技术基础 计算机技术基础与信息系统开发 软件质量——工程化软件开发的目标 计算机技术基础与信息系统开发 如何理解计算机技术基础与信息系统开发的关系? 理解计算机原理:开发高质量软件的基础 受限系统上对现实世界的模拟—数字化的世界 语言、开发工具的发展降低了软件开发门槛 非规范的开发方式引入了软件缺陷,提高了开发成本 质量—工程化软件开发的目标 什么是软件的质量 CMM(Capability Maturity Model能力成熟度模型):一个系统、组件或过程符合特定需求(客户/用户的要求与期望)的程度 思考:是不是运行正确的软件就是高质量的软件? 功能性属性 正确性(精确性) 软件第一质量属性 健壮性(容错/恢复) 航空/金融/军事 可靠性(平均无故障时间) 不可重复的错误难以发现。资源与内存泄漏/数据溢出(如千年虫) 非功能性属性 性能 时间-空间效率 不等于 运行速度 易用性:用户笨还是你笨? 清晰性 安全性(Security, not safety) 平衡:入侵代价获取的利益 可扩展性(适应变化) 兼容性(适应其他系统) 可移植性(适应环境) 思考:从程序员的角度来看,如何提高软件质量? 郎中三兄弟与提高软件质量的三个层次 1、高质量的软件开发过程和规范的程序设计 2、定期检查和修正错误 3、对已出现的错误进行修补 改变观念:软件开发不是编程 有设计有实现,高处设计,低处实现 工程思想:标准与规范(过程/方法/工具) 软件开发 等于 编程? 编程 等于 用编程语言表达算法逻辑? 制造业是如何提高产品质量,提高生产效率的? 编程是艺术还是技术?软件开发人员的数量构成大致会是如何? 1、软件开发中的设计 高处设计:不陷于细节,从总体上考虑 能对软件整体架构进行剖析 模块化与开放性思维(系统的思维方式) 模块规模与拆分 考虑程序流程 程序设计之前的可预测性 软件设计:不要重复发明轮子——代码重用的方式与模块化思想的演进 重用的好处:质量/效率/成本 重用的方法: COPY PASTE 模块化:系统的思维方式—分而治之,把复杂问题分解为简单问题。 面向对象 组件化 为什么面向对象? 区别:责任的转移——学生是对自己负责有行为的主体:对象 优点:如果需求发生变化,现在对参加某类培训的学员有特殊要求,两种设计方式会如何处理? 实验1中,我是怎么做的? 2、软件开发中的实现 用户的思考角度:语言是算法逻辑的表达方式? 思考:不使用第三个变量交换两个整型变量a,b的值,解法1: a=a+b; b=a-b; a=a-b; 很巧妙的算法吗?问题:该方法是否适用于浮点数?(如:a=10.3,b=7.5) 计算机设计者的思考角度 代码与数据是在有限的内存空间中的近似表示 数据有字长限制 浮点数有精度限制 地址表示与CPU的高低位 程序结构与缓冲区溢出 解法2: a=a^b; b=a^b; a=a^b; OS设计者思考角度: 例:windows的消息机制与程序运行。 .典型的原生Windows程序结构与开发过程 RAD背后——事件委托 由此想到的:编程语言的比较 语言与开发工具的关系 IDE,Framework以及RAD Visual Basic(Visual Basic) – ADO,ActiveX Visual C++(C/C++ - MFC)– ODBC,ADO C++ Builder(C/C++ - VCL)– BDE,ADO,DBExpress Delphi(OP - VCL)– BDE,ADO,DBExpress JBuilder(Java – JDK类库)– JDBC,跨平台 Power Builder(Power Script - PFC) JSP/ASP/PHP 开发工具间的选择与配合 内部接口 DLL COM(ActiveX) 组件 语言、编译器设计者的角度: C/C++:char实际上是一个整数 思考:以下代码有何问题? char a=255; …//其他代码 if(a==255) { DoSomeThing(); } 字节对齐与结构体的空间布局: 思考:求sizeof(MyStruct)的结果: typedef struct { int a; char b; char c; }MyStruct; 请在不同的编译器下检验结果。 隐式类型转换——难以发现的BUG 思考:下面的C代码有何问题? int number=100; int unit=3; float total=number*11/unit; 多线程中的高级语言单指令: 思考:在系统级多线程程序设计中,下面哪一条C语句需要考虑同步问题? A)x=1; B)x=y; C)x=x+1; x
您可能关注的文档
最近下载
- 《2023年甘肃省职业院校技能大赛职业英语技能赛项职业英语能力测试模块试题口语决赛样题》.pdf
- 建筑工程建筑面积计算规范GBT50353-2022[13].pdf
- JB/T 9628-1999 汽轮机叶片 磁粉探伤方法.pdf
- 0i-TF PLUS车床操作说明书.pdf
- 陈传明管理学笔记1.马工程——总论.pdf
- 06J925-2 压型钢板、夹芯板屋面及墙体建筑构造(二).docx VIP
- 《高速公路基础设施数字化建设数据标准》.pdf VIP
- 计算机组装与维护 知识点整理.pdf VIP
- 《员工满意度研究国内外文献综述》3900字.docx VIP
- 勤俭节约主题班会 主题班会.ppt VIP
文档评论(0)