软件工程第一次作业补充
软件工程第一次作业补充
软件工程第一次作业
花20分钟写一个能自动生成小学四则运算题目的“软件”,要求:除了整数以外,还要支持真分数的四则运算。将代码上传至coding.net,并将地址发布至自己的博客。
四则运算
在一周之内快速看完《构建之法》,列出你不懂的5-10个问题,发布在自己的博客。
1、“软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科有关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户体验设计。”软件工程到底是什么呢?它包括这么多领域,这么多学科,那么我们要做一个项目就要找到了解这些领域、学科的所有人吗?软件工程不应该是交我们怎样开发软件的吗,不是应该只要会敲代码,做出那些软件就行吗?
2、“很多公司提供了针对自己产品的职业认证项目。例如,微软公司有微软认证专家;甲骨文公司有Oracle认证项目。获得了相应公司和行业的认证,工程师就可以更容易地获得相应的工作、合同机会。”我想知道在一家公司获得了他们公司的职业认证项目,其他公司会承认吗?它可以帮助工程师更容易地获得其他公司的工作、合同机会吗?
3、“注释也要随着程序的修改而不断更新,一个误导的注释往往比没有注释更糟糕。注释应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性。”但自己写的注释自己可以理解,但如果别人要维护你的代码,怎么才能确保别人也一定能看懂呢?我查了资料找到了很多注释的规范,但大体上有一、文件头部注释;二、函数、属性、类等注释;根据的实践,我自己我现在注释总是要用中文,还不是很习惯用ASCII字符;但是我还是不太懂,自己注释的自己感觉大家都能看懂,但有人或许就是看不懂怎么办?还有就是我感觉还是习惯用中文注释能看懂,但我是不是应该向其他程序员看齐,用ASCII字符注释呢?
4、“我们写软件就是要解决用户的需求,在“需求分析”阶段,我们要搞清楚:在问题领域中的现实世界里,都有那些实体,如何抽象出我们真正关心的属性,实体之间的关系是什么,在这个基础上,用户的需求是什么,软件如何解决用户的需求。”但同时在第10章又说“光看用户的表面语言或行动还是不够的。我们还要找到用户语言或行动背后的动机!”那么我们调查到用户需求后到底只是满足用户需求呢还是要看到用户背后的深意并满足呢?要是知道深意,我们的软件必须满足那个深意吗?
5、“绝大部分软件都是由多人合作完成的,大家都工作相互有依赖关系。如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的量化的保证?单元测试就是一个很有效的解决方案。”可是在单元测试时,是在所有模块整合完了,再测试?还是在还没有整合前,单个模块单个模块的测试?如果整合完了,那代码的量不就多吗?如果没整合,但是在整合完还是要测试,那当时的测试不就没意义了吗?
软件有很多种:包装在盒子里的软件、基于网页的软件、企业或学校或某组织内部的软件、游戏、手机应用、操作系统、工具软件,选取三种软件,请分析它们各自的特点。
1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
3)这些软件是如何处理Bug的?又是如何更新新的版本的?
4) 同一类型的软件之间是如何竞争的?
游戏:倩女幽魂
1)通过《微微一笑很倾城》这部电视剧了解这个游戏;他们的目标是盈利;通过让用户购买装备之类赚取用户现金,免费玩家虽然也可以玩,但没有人民币玩家玩的爽。
2)从手机自带的软件商店下载。
3)程序员后台修复bug和更新版本并通知用户期间不能上线。
4)通过改进画面的精美度,游戏的流畅度,占用空间的大小进行竞争。
手机应用:应用商店
1)手机自带的软件,可以下载需要的应用软件;他们的目标是盈利;他们的目标是让用户多下载一些其他应用软件,从而用下载量盈利。
2)买手机自带。
3)手机提醒更新来处理bug及更新到新版本。
4)应用商店中的软件越多越有竞争力。
工具软件:WPS
1)同学推荐;他们的目标是盈利及赢取市场占有率;有一些功能需要付费才能用。
2)从电脑管家下载
3)电脑提醒更新版本,同时修复bug。
4)功能的多样性。
列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么
硬件:不仅能看到还能摸的到。像硬盘,光驱,机箱等.
软件:你只能看到但摸不到.是按装在电脑里的一些程序,像文字编辑,游戏之类的.
软件的本质特性:构造性和演化性