软件工程第一次作业

一、整理《现代软件工程—构建之法》第一章中出现的计算机专业术语

 

计算理论(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)
数据挖掘(Data Mining)
十算机图形学(Computer Graphics)

计算机视觉(Computer Vision)

用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率

可靠性:某个软降经常崩溃,某个操作系统会时不时司机,某个网站往往在最需要的时候登不上去。

软件流程的质量:软件团队和开发流程的问题太多,导致团队成员无法互相协作,按时交付软件。这也可以说是软件团队的BUG

生命周期

专门领域

理论基础

二、快速看完《现代软件工程—构建之法》,并列举5个问题

 

通过一周的翻阅,我对《现代软件工程—构建之法》有了初步的了解,通过阅读使得我对其中一些观点有些疑问:

1、通过阅读《现代软件工程—构建之法》第一章概述的时候书中提到了“软件+程序+软件工程”。在1.2节做出了详细的解释(p8,软件工程是把系统的,有序的,可量化的方法应用到软件开发,运营和维护的过程上。软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。我从中了解到软件工程是分阶段进行的, 但是我还是不太懂软件工程的定义,有点儿模糊。软件工程的发展对我们的未来有什么具体的影响?

2、在阅读了P15的软件工程的目标—创造“足够好的软件”后我有一个疑问,什么样的软件才是足够好的软件?是符合用户需求的软件,还是符合用户预算功能效果最好的软件,亦或是未必满足客户需求,但是更符合客户所需要的软件?

3、虽然没有进入社会,但在深圳做过一年销售,和一些业界人士也有过一些交流,软件开发最重要的就是需求分析,了解到客户需要的软件,感觉这和销售是一样的,如果客户要买房,当他开出的条件你全部满足时,带他现场交接,最后仍会有很大几率出现跳票的现象,所以我认为一款好的软件不仅仅是要符合用户的所有要求,更要对用户的喜好、习惯以及环境和价格等进行综合分析,制作一款令用户满意的软件只能通过不断磨合、重做来实现吗,有没有更好的解决方式,应该注意哪些方面,又如何去获得用户对一款软件的需求使用喜好呢?如何才能开发出一款令用户满意的软件呢?

4、对于用户来说,他们都想要出100元而获得500元的效果,但由于资金预算不够,那么对于程序开发者来说,功能以及界面性能可以比为鱼和熊掌,既然不可兼得,那么又要做如何抉择呢?

5、在本书P16读到这么一段话:有实际用处的同时又是完美的软件,在世界上是不存在的。没有实际用处的完美软件也几乎没有,有人会说“Hello World!”是的程序似乎可以称为“完美”,但是根据前文对“软件”的定义,我们不知道这个程序能不能算作一个软件。那市面上有那么多不完美的产品,软件团队为什么还要把这些不完美的软件发布出来呢?为什么不能等到它们完美之后再发布?软件工程的一个重要任务,就是要决定一个软件在什么时候能够“足够好”,可以发布。

三、关于一个软件是否“足够好”应该有什么样的判断标准?即使再好的软件在发布后用户使用过程中也会提出各种各样的问题,那么既然有那么多的问题,软件又如何称得上足够好呢?但如果不发布软件又发现不了这么多问题,所以如何才能判读一款软件“足够好”呢?

四、三、对Web App、Game、Tools进行分析

 

Web APP是指基于Web系统应用,其作用是向广大的最终用户发布一组复杂的内容和功能。

特点:

第一、使用W3C标准的HTML标准通用标记语言下的一个应用)语言开发,能够轻松实现跨平台,移动应用开发者不再需要考虑复杂的底层适配和跨平台开发语言的问题。与此同时,使用HTML来开发的Web App在投入上会大大的低于传统的Native App

第二、基于当下开始普及流行的HTML5Web App可以实现很多原本Native App才可以实现的功能,比如LBS的功能、本地数据存储、音视频播放的功能,甚至还有调用照相机和结合GPU的硬件加速功能

第三、移动应用的迭代周期平均不到1个月,用户需要频繁的重新下载与升级。而Web App则无需用户下载,并且和传统网站一样可以动态升级。

第四、Web AppApp的特性,更有Web的特性。每一个Native App在当前的用户使用场景下是相对孤立的,而Web App则可以像传统互联网网页那样相互链接,从一个Web App直接跳转到另外一个Web App。这无论是从用户的使用体验层面还是从应用之间的数据传输来看都是非常不错的选择。 

Game游戏软件通常是指用各种程序和动画效果相结合起来的软件产品,我们称之为"游戏软件"该种应用软件对于用户具有一定的吸引力,通过可玩性吸引用户进行下载。

Tools工具软件具有必须性,很多系统里需要工具对系统进行维护,是系统及应用里必须配备的。

(1)web app最经常使用的就是在线Photoshop,这种软件具有简单方便易操作的特性,免去了繁琐的安装过程,因为简单方便所以使用;Game这类软件具有娱乐性,利用娱乐性吸引用户下载;tools这类工具软件又必须性,拥有很多的功能,帮助用户解决各种难题。综合来看这些软件的目的都是盈利,赚取电子现金及人气。

(2)这些软件大部分是因为自己需要,主动到相应网站下载,接触这些时自己大概在四年级左右吧,接触最多的是游戏软件,自我感觉良好......

(3)这些软件都是进行封测时以及公测用户反馈后找到相应BUG并进行处理,在线发布新版本。

(4)同一类型的软件竞争主要是进行自我改进,做出更符合用户需求,用户体验更好的软件来进行竞争用户。

原文地址:https://www.cnblogs.com/anemone0919/p/11508081.html