构建之法第一章
---恢复内容开始---
计算机专业术语及部分解读
1.1 软件=程序+软件工程
扩展推论 软件企业=软件+商业模式
软件架构
软件设计与实现
源代码管理或叫配置管理
质量保障(一系列工具,流程和文档保证程序的正确性和开发出来的软件质量)
软件测试(验证质量的过程)
需求分析(分析顾客需求)
程序理解(新成员读懂已有程序)
软件维护或服务运营(团队一起修复问题)
软件的生命周期
软件项目的管理
用户体验(用户主观对于软件的感官)
国际化和本地化(处理不同语言和地区的需求)
API(应用程序接口)
软件开发的不同阶段
1.玩具阶段(写程序练习数据结构)
2.业余爱好阶段(用JavaScript等其他软件写网站)
3.探索阶段(钻研新技术)
4.成熟的产业阶段(互联网搜索行业等系统)
1.2软件工程
软件工程(把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程)
软件工程包括的领域(软件需求分析、软件设计、软件构建、软件测试和软件维护)
软件分类方法:
系统软件(操作系统、设备驱动程序、工具软件等)
应用软件(通信、游戏、网页浏览等)
恶意软件(软件病毒等)
软件开发过程的难题:
1.复杂性
2.不可见性
3.易变性
4.服从性
5.非连续性
软件工程与计算机科学的关系:
计算机软件的机构(计算机科学与技术系或学院、软件学院、软件工程系或学院)
Build To Learn(开发软件、构建系统)
Build To Show(演示为目的的软件)
Build To Serve(服务一定范围内的目标用户)
Build To Win(为赢得市场用户而构建的软件)
软件工程的三大基础知识领域(计算基础、数学基础、工程基础)
创造足够好的软件:
用户满意度
可靠性
软件流程的质量
可维护性
Bug(软件的行为和用户的期望值不一样)
*****************************************************************************************************************************************************************************************************************
P18.2
1.P17 关于Bug的问题,设计一个去提前解决客户需求的软件是好是坏?是否会被客户不接受当成累赘或者被认为Bug?
2.p49 软件过早优化问题,怎样避免提前优化软件所带来的弊端或者怎么判定是否应该提前优化?
3.p58 精通软件真的好吗?相当于一个软件工程师每天在做重复的工作,是否是一种所谓的熟能生巧反而导致失去了创新?
4.p79 结对编程的问题,作者文中用两人坐在一台电脑前进行编程分析设计,我觉得这样的方法不妥,很容易出现影响编程思路的情况,也会导致一人的思路完全跟着另一人的思路去走,缺少了任何一人的思维,两人合作的意义又在哪里?我认为还是分开编程最后再进行汇总改良,融合两人的优点摈弃缺点,希望老师给出此处的意见。
5.p169 计划和估计真的有必要吗?一个团队没人能力各异,进行一个软件的开发时最开始的决心也和中途的改变不一致,计划永远赶不上变化,尤其是软件开发这种永远会面临想象不到的难题的项目。
6.P317 测试人员真的还有必要吗?一个团队优秀的软件人员,每个人再分别分出一部分时间测试即可,还需要专程分出软件测试人员吗?
*********************************************************************************************************************************************************************************************************************
p18.3
学习软件:作业帮
在网上查询题目时查看详细答案需要下载app
目标为盈利,盈利方式为广告和名师课程讲解
到手里方式为下载,当时上高中,软件使用非常便利。
通过更新处理bug,在应用商店中进行更新
同一类型的软件之间通过抢注册之类进行竞争
工具软件:毒
买鞋需要此类软件
目标为盈利,盈利方式为赚取用户买卖鞋子时的手续费到手里方式为下载,当时上高中,感觉软件使用也很方便
软件通过更新处理bug,在应用商店进行更新
同一类型软件通过调低手续费赠送顾客优惠券进行竞争
音乐软件:网易云音乐
听歌需要此类软件
目标为盈利,盈利方式为赚取用户每月会员费和广告费
到手里方式为下载,当时上高中,软件音乐版权不够,还需加强
通过更新处理bug,在应用商店进行更新
同一类软件之间通过歌曲版权数目多少进行竞争。
上述各种软件在使用时都极其便利,而且与硬件相比能够快速获得用户体验的反馈从而更快的进行完善,说明软件的基本特征为使用便利快捷。
---恢复内容结束---