- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MIS信息技术基础专题之一
面向开发人员的计算机技术基础
NAU Zhu-Yihua
如何理解计算机技术基础与信息系统开发的关系?
理解计算机原理是开发高质量软件的基础
受限系统上对现实世界的模拟——数字化的世界
现代开发语言与开发工具的发展降低了软件开发的门槛
非规范的开发方式引入了软件缺陷,提高了开发成本
…
提高软件质量——工程化软件开发的基本原则
什么是软件的质量?
CMM(Capability Maturity Model能力成熟度模型):一个系统、组件或过程符合特定需求(客户/用户的要求与期望)的程度;
思考:是不是运行正确的软件就是高质量的软件?
质量的对立面:缺陷——BUG
功能性属性
? 正确性(精确性)
软件第一质量属性
? 健壮性(容错/恢复)
航空/金融/军事
? 可靠性(平均无故障时间——借自硬件领域)
往往是不可重复的错误,难以发现。
常见问题:资源与内存泄漏/数据溢出(如千年虫)
非功能性属性
? 性能
时间-空间效率 不等于 运行速度
平衡:“又要马儿跑,又要马儿不吃草”
? 易用性:用户笨还是你笨?
? 清晰性
? 安全性(Security, not safety)
平衡:入侵代价获取的利益
? 可扩展性(适应变化)
? 兼容性(适应其他系统)
? 可移植性(适应环境)
思考:从程序员的角度来看,如何提高软件质量?
郎中三兄弟(听说过这个故事么?)与提高软件质量的三个层次
1、 高质量的软件开发过程和规范的程序设计
2、 定期检查和修正错误
3、 对已出现的错误进行修补
总体观念:
有设计有实现,高处设计,低处实现
思考:
软件开发 等于 编程?
编程 等于 用编程语言表达算法逻辑?
工程思想:标准与规范(过程/方法/工具)
思考:
制造业是如何提高产品质量,提高生产效率的?
编程是艺术还是技术?软件开发人员的数量构成大致会是如何?
程序开发中的设计
高处设计:不陷于细节,从总体上考虑。
能对软件整体架构进行剖析
模块化与开放性思维(系统的思维方式)
模块规模与拆分
考虑程序流程
程序设计之前的可预测性
不要重复发明轮子——代码重用的方式与模块化思想的演进
重用的好处:质量/效率/成本
COPY PASTE
模块化
系统的思维方式:分而治之,把复杂问题分解为简单问题。
面向对象
思考:培训班的上课问题
一个讲师在上完自己的课时,通知学员如何找到参加其他课程的教室。
结构化设计 面向对象设计 获得名单
对名单中的人,循环:
查找他的下节课
查找下节课的地点
查找到该地点的路径
告知走法 1、制作一张课程-走法对照表
2、张贴表 区别:责任的转移——学生是对自己负责有行为的主体:对象
优点:如果需求发生变化,现在对参加某类培训的学员有特殊要求,两种设计方式会如何处理?
组件
实验1中的问题:界面代码与功能代码混用
实验1中的问题:模块间的接口
程序开发中的实现
用户的角度:语言是算法逻辑的表达方式?
表达式 不等于 数学公式。语言是指令的集合。
思考:不使用第三个变量交换两个整型变量a,b的值
解法1:
a=a+b;
b=a-b;
a=a-b;
很巧妙的算法吗?
问题:该方法是否适用于浮点数?(如:a=10.3,b=7.5)
计算机设计者的思考角度
思考:解法1是否存在BUG?
计算机原理:数的二进制表示:字长与溢出
解法2:
a=a^b;
b=a^b;
a=a^b;
CPU与高低位
程序的结构与缓冲区溢出
操作系统设计者的思考角度
例: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)
组件
语言编译器设计者的思考角度
思考:下面代码的输出结果是什么
1.
char str1[ ] = abc;
char str2[ ] = abc;
const char str3[ ] = abc;
const char str4[ ] = abc;
con
您可能关注的文档
最近下载
- 爱护我们的人民币.ppt VIP
- GJB9001C:2017质量保证大纲.doc VIP
- 可用性人因设计研究报告 .pdf VIP
- 设计概论讲课课件(第三版杨晓琪).pptx VIP
- 西师版六年级数学教案(上学期)全册教学案.pdf VIP
- 1.1+坚持改革开放(课件)-2025-2026学年九年级道德与法治上册(统编版).pptx VIP
- 2025-2026学年初中数学人教版2024八年级上册-人教版2024教学设计合集.docx
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- 创新创业基础(高职高专版)PPT教学完整课件.ppt
- 人教版小学六年级数学上册全册教案 -(最全).doc VIP
文档评论(0)