计算机专业术语
1.1 软件=程序+软件工程
软件=程序+软件工程 ;
程序=数据结构+算法;
二叉树、指针、遍历、软件、程序;
软件服务、源程序、数据操作
软件架构(Softwere Architecture)、软件设计与实现(Software Design,Impleementation and Debug).
各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、连接参数。
源代码管理(Source Code Control) 配置管理(Software Configuration Management) 质量保障(Quality Assurance) 软件测试(Test)
需求分析(Reqwuirement Analysis) 程序理解 (Program Comprehension)软件维护(Software Mantenance) 服务运营 (Service Operation) 软件的生命周期 软件项目的管理 用户的体验 国际化和本地化。
商业模式 职业道德规范
软件企业=程序+软件工程
1.2软件工程是什么
1.2.1软件的特殊性
- 复杂性
- 不可见性
- 易变性
- 服从性
- 非连续性
1.2.2软件工程与计算机科学的关系
偏理论的领域
- 计算理论(Theoretical Computing)
- 信息和编码理论(Information and Coding Theory)
- 算法和数据结构(Algorithm and Data Structure)
- 形式化方法(Formal Methods)
- 程序设计语言(Programming Language)
偏实践的领域
- 计算机体系结构(Computer Architecture)
- 并行计算和分布式系统(Concurrent,Parallel and Distributed System)
- 实时系统和嵌入式系统(Real Time and Embedded System)
- 操作系统(Operating System)
- 计算机网络(Networking)
- 科学计算(Scientific Computing)
- 安全和密码学(Security and Cryptography)
- 人工智能(Artificial Intelligence)
- 万维网(World Wide Web)
- 软件工程(Software Engineering)
1.2.3软件工程的知识领域
软件工程的三大类基础知识领域:
- 生命周期
- 专门领域
- 理论基础
1.2.4软件工程的目标——创造“足够好”的软件
软件工程就是把软件中的Bug消灭掉的过程,Bug的多少可以直接衡量一个软件的开发效率,用户满意度,可靠性和可维护性,例如:
- 用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率。
- 可靠性:某个软件经常会崩溃,某个操作系统时会时不时死机,某个网站往往在最需要的时候登不上去。
- 可维护性:某个软件太难维护了,维护人员表示需要更多的资金和时间来维护这个软件,甚至建议推倒重写。
******************************************************************************************************************************************************
教材P18-2
1.教材p21用VSTS单元测试为什么创建了三个类,我查阅资料以后发现,但是还是不太明白。
它支持:
1. 生成测试代码框架;
2. 在IDE中运行测试;
3. 支持从数据库中加载数据的测试;
4. 测试运行完成后,进行代码分析覆盖。
使用VSTS写单元测试的步骤如下:
1. 创建测试;
2. 编写测试;
3. 运行测试;
4. 代码覆盖。
2.教材p65作者说明确提出{ }要层次清晰,但是,我觉得那是在C语言中用作者方式比较好,在java中我觉得用这种格式比较好,作者没有明确提出。 例如下:
if(){
}else{
}
3.p71 书中写的在基类中的析构函数应该是虚函数为什么基类的析构函数是虚函数呢?在查阅资料中我还是不太明白。
4.p217 “盲目地套用最全面的模板,对项目有很大的副作用”,这句话我有意或,一般来说,最全面的模板应该和项目无限贴近才对,而且对项目有更大的帮助,为什么会说是有副作用?
5.课本p249用户体验和用户界面设计的目的是什么?他们又有哪些步骤?其次对于一个好的软件的标准是什么?必须要全部人适用还是大部分人适用?我查阅资料发现:
广泛来讲,用户界面是人与机器交流的媒介。用户向机器发出指令,机器随即开始一段进程,回复信息,并给出反馈。用户可以根据用户反馈进行下一步操作的决策。
人机交互(HCI, Human Computer Interaciton)所关注的主要是数字界面,即过去的打孔机、命令行,直至今天的图形界面(GUI, Graphic Design)。
用户界面设计对于数码产品来说主要关注的是布局、信息结构,以及界面元素在显示屏和各种终端平台上的展示 出自:https://zhuanlan.zhihu.com/p/36813805
**************************************************************************************************************************************
教材P18-3
基于网页的软件: 小米浏览器、QQ浏览器;
学校软件:完美校园、运动世界校园、沪江网校、外研随身学;
游戏:王者荣耀;
手机应用:日历、计算机、便签……;
工具软件:腾讯视频,QQ,微信;
以QQ为例介绍:
1)自己申请qq号,成为他们的用户;充q币,充会员……;他们的目标希望是服务广大群众为目的,但是我觉得他们的正真目的还是赚取消费者现金。
2)QQ直接从应用里下载;九年级;很好,我觉得很方便。
3)每次更新就是在处理bug,下载安装包
4)我觉得QQ跟微信是当下最热门的聊天软件,但都为腾讯旗下软件,没看出多少竞争。在购物软件上淘宝跟拼多多在价格上比上下。
特殊现象:有时闪退,我觉得是跟某些软件不兼容,也可能跟硬件不兼容。