第一章
1.1
软件=程序+软件工程
软件企业=软件+商业模式
一个复杂的软件不但要求合理的软件框架、软件设计与实现还各种文件和数据来描述各个程序之间的关系等,这些是软件构建的过程。
源代码管理的问题也叫配置管理,有一系列的工具流程来确保程序的正确性就是质量保证,具体验证过程叫软件测试。
软件维护或者服务运营这一系列的过程叫软件的生命周期,在这一期间中有人得负责软件项目的管理
软件还要处理不同语言、不同地区的用户界面和功能的不同需求、这叫做软件的国际化和本土化。
软件发展的不同阶段 :
-
- 玩具阶段
- 业余爱好阶段
- 探索阶段
- 成熟的产业阶段
软件企业的商业模式需要合情合理合法,应有职业道德规范来约束IT人的行为。
1.2
软件的特殊性:
-
- 复杂性 : 软件的各个模块之间有各种显性或隐形依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长
- 不可见性 :软件出现错误的时候,工程师无法看到程序出现错误的一些痕迹,但无法完整重现到底程序出现了生命问题
- 易变性 : 软件修改比修改硬件更容易但正确修改软件又是一件很困难的事情
- 服从性 : 软件不能独立存在,他总要运行在硬件的上面,要服从系统中其他的组成部分的要求,服从用户的要求、行业系统的要求
- 非连续性 : 有时输入很小的变化,会引起输入上极大的变化
高校中大致有三种计算机软件的机构:
-
- 计算机科学与技术系或学院
- 软件学院
- 软件工程系、软件工程学院
计算机科学的学术领域:
-
- 计算理论: 信息与编程理论 算法和数据结合 形式化方法 程序设计语言
- 实践领域: 计算机体系结构 并行计算机和分布式系统 实时系统和嵌入式系统 操作系统 计算机网络 科学计算 安全和密码学 人工智能 计算机图形学 数据库和大规模数据处理 万维网 自然语言处理和语言 人机交互 软件工程
软件工程的一个要素是把软件中的bug都消灭的过程
bug的多少直接衡量一个软件的用户满意度、可靠性、软件流程的质量、可维护性
1.3 练习与讨论
团队合作的时候交流产生分歧时是否妥协接受对方的想法
软件维护的期限大致是多久 维护软件的成本如果比重新做一个软件的成本还要高时 是否有必要维护
团队合作的时候如何合并同一个软件 每个人的编程都不一样合并程序的时候会出现无法对接
Shrink Wrap:app Store
Mobile Apps:淘宝
Tools:WPS Office
1.手机系统自带、别人推荐、作业需要 通过购买app或者物品是抽取部分技术费用
2. 下载 高中 修改编辑文件的时候并不一定需要电脑手机也可以 转换文件图片格式的时候更方便了 购物的渠道也多了一种方式
3.通过版本升级的方式Bug,在app Store中手动更新版本
4.通过邀请新人有奖、手机系统自带的方式
软件和硬件的区别
硬件是实质性的产品,成本构造中物质占了较大,售后的部分比重较少。
软件是建立硬件基础上的产品与硬件产品有本质的区别,软件的生产中人力脑力占较大的部分