软件开发环境第一讲前言.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件开发环境第一讲前言

同学们存在的普遍问题 各方的反馈意见:一些基础性的,或者核心的知识点没有吃透 语言方面 this指针、虚表、成员函数和一般函数异同 局部对象如何影响性能 在基类析构函数中调用虚函数有什么效果 操作系统方面 什么是进程上下文 编译方面 什么是编译单元、为什么会有重定义 算法方面 为什么时间复杂度一样的两个算法,实际执行时间会有数量级差异 数据库方面 怎样写sql语句,才会高效 缺乏一种适合于计算机软件系统的学习方法 总体的学习方法——系统观 总体思想 “少”量的知识 + “猜测、实证、构建”=系统观 总体的学习方法——系统观 两层映射的重要性 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 学习路线建议 Linux内核学习 一定要先学Linux设备驱动编程 学习内核源代码 《Linux内核完全剖析--基于0.12内核》 学习内核源代码,要有方向性。 文件系统 网络系统 * 学习路线建议 在linux内核学习到一定程度后,可深入学习操作系统 80X86汇编语言程序设计教程 自己动手写操作系统(第二版:orange’s 一个操作系统的实现) 此时,可根据需要选择性的学习.NET、Java等平台 第一讲 前言 教学目的 课程主要内容 学习资料推荐 课程安排 * 课程安排 学时:32学时+16学时实验,每周3学时,实验学时另行安排 成绩构成: 笔试:50% 平时:10% 半期:10% 实验:30% * 课程安排 教材及参考资料 老“码”识途---从机器码到框架的软件探索者之路 汇编学习类: 汇编语言,王爽著——8088/8086 Intel汇编语言程序设计——IA-32 80X86汇编语言程序设计教程——保护模式(IA-32) C++反汇编与逆向分析技术揭秘 WindowsPE权威指南 深入理解计算机系统 深度探索C++对象模型 敏捷软件开发:原则、模式与实践 * 课程安排 开发环境: Windows:Visual Studio 2008 Linux:vi、g++、gdb、make等等 本课程将要涉及大量的编程作业和实验,尽量保证每个同学的作业和实验的题目不同,以杜绝抄袭雷同 实验分比重较大,为了体现公平性,打分时除了依据实验报告外,尽量保证让每个同学讲述自己的程序实现思路,并回答问题 期末的笔试尽量争取上机考试——上机写程序 本课程内容较难,但比较实用,希望同学们多努力,勤做编程练习 第一讲 前言 教学目的 课程主要内容 学习资料推荐 课程安排 * * * * * * * * * * * * * * * * * * * * 说明要改动使用函数func * * * 加法器例子 版本1:结构化的思想 需要实现一个加法器:在这个加法器中,已经保存了被加数;现在需要传递加数给这个加法器,以让其返回加法计算结果。 结构化的基本思路:用一个结构体来保存被加数,然后再外带一个加法函数 代码1.1 加法器例子 版本1:结构化的思想 变化来了:现在需要给被加数添加一个权重值;但是以前的加法器仍需保留,因为还有一部分代码会使用它。 思路: 既然还有一部分代码要用老的加法器,那么老加法器我们还是要保留的 按照原有思路开发新的加法器 代码1.2 加法器例子 版本1:结构化的思想 为什么会有如此长的变量名? 反对写注释!!! 不少人的注释写得很无聊,如“定义了一个整型变量”。这种情况主要为了应付检查 很多时候代码和注释不一致——赶进度 不写注释能看懂代码吗? 按照职责单一的原则,这将导致每个类都很小 通常至多200到300行,再加上每个类对应.h和.cpp文件,因此不会出现一个文件上千行而不知从何处下手 加法器例子 版本1:结构化的思想 反对写注释!!! 不写注释能看懂代码吗? 按照职责单一的原则,这将导致每个类都很小 变量、函数、类的名称通常都较长,能起到顾名思义的作用——代码自注释 WeightingAdd、SLWeightingAugend、 pSLWeightingAugend 文档还是要写的 重要的类需要总体性的说明 复杂的算法需要说明 类之间的关系需要说明 加法器例子 版本1的缺陷 加法器没有把被加数、权重,以及操纵它们的加法运算封装在一起 当引入带权重的加法器时,需要对部分老代码进行修改,没有做到代码的封闭性 没有实现变化点的封装 加法器例子 版本2:基于对象的思想 需要实现一个加法器:在这个加法器中,已经保存了被加数;现在需要传递加数给这个加法器,以让其返回加法计算结果。 思路:编写一个加法器的类,用一个数据成员保存被加数,然后再写一个public的加法方法 代码1.3 加法器例子 版本2:基于对象的思想 变化来了:现在需要给被加数添加一个权

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档