概述
软件工程的概述
1. 在所有的发达国家中,贸易全部依赖于软件
2. 越来越多的系统由软件来控制
3. 软件工程参在专业软件开发的过程中参与的主要是理论,方法和工具上的内容
4. 在发达国家中,软件上的消耗占了它GNP的很大一部分
软件的消耗
1. 软件上的消耗占了一个电脑系统的主要部分,并且在软件上的消耗要远远大于硬件
2. 软件在维护上的开支要远大于开发的开支,在一个系统的生命中,维护的支出可能是开发的好几倍
3. 软件工程则是涉及到了一个软件开发是否划算
软件产品
1. 普通产品:
· 作为独立的系统卖给客户
·例如:PC端的软件像图片软件,工程管理软件,CAD软件等等
2. 定制产品
· 为了某个特别的客户的需求而做出来的软件
· 例如:交通管理软件,交通监视软件等等
产品详述
1. 普通产品:
产品的说明书是由软件开发者所有的,并且产品的修改权也在产品开发者身上
2. 定制产品:
产品的说明书是由顾客来定的,并且要按照顾客的意愿来修改软件
关于产品应该有的四大特征
· 可维护性:在商业环境中,根据客户要求来修改软件是很重要的元素,软件内容不断的更新或改变是一个不可避免的事情
· 独立性和安全性:具有独立性的软件应满足的条件是,在软件出现错误时不会造成大的物理或经济上的损失,黑客(之类
的)不会对整个系统造成伤害
· 高效性:高效的软件不应当浪费系统资源
· 可接受性:设计出来的软件必须得被它所被使用的用户所理解
软件工程
软件工程就是从产品开发到维护中各个环节上的一个规范(原话: Software engineering is an engineering discipline
that is concerned with all aspects of software production from the early stages of system
specification through to maintaining the system after it has gone into use.)
工程规范
以恰当的理论和方法来给人们的心中规范一个有组织的、有经济效益的限制
软件产品
不仅仅只是包含软件的开发过程,还有软件的维护,更新,管理,方法等方面
软件工程的重要性
· 现在个体和社会都越来越依赖先进的软件系统,所以我们应该效率并节省的去制作更让人值得信赖和依赖的系统。
· 用一定的方法和技术去开发软件往往比把一个软件当做个人的软件来开发要节省很多,因为后面的维护更消耗人力物力
· 软件的说明书就是来定义开发者和顾客共同创造的用来限制软件在操作方面上的限制
· 软件开发意思就是在哪里设计和编写软件
· 软件的有效性就是保证软件符合顾客的要求
· 软件的更新就是为了保证满足客人不断变化的需求和市场条件
软件一般面临的问题
· 不一致性: 现在越来越多的软件需要在分散的系统上操作,因为分散式的网络和不同的电脑或者移动设备
· 商业或者社会需求的改变: 社会和经济的发展是十分迅速的,而软件的更新同样也要跟上他们的脚步
· 安全和信任问题: 因为软件和我们的生活息息相关,所以能让客户相信软件是很重要的
软件工程的多样性
· 世上有很多不同的软件系统,但是却没有一个通用的软件技术可以适应所有的系统
· 一个软件的软件技术和工具往往依赖于不同的需要被开发的软件,不同的客户需求和不同的开发团队
应用的种类
· 独立应用: 类似于PC端是可以单独运作在一个本地电脑上的,他们包含了所必要的功能并且不用去和别的网络做连接
· 基于应用的交互式交易: 用户之间通过远程的交流来完成交易
· 嵌入式控制系统: 用来控制硬件设施的软件控制系统,从数字上来说,嵌入式控制系统相对于其它的系统是使用最多的
· 批处理系统: 用来在商业中处理大批次的数据,通过处理大数量个体的输入内容来制造相应的输出内容
· 娱乐系统: 就,娱乐用的。。。(还真是没牌面呢。。)
· 系统的模拟和建模: 这类主要是给科学家和工程师去模拟物理的过程和环境用的
· 数据收集系统: 用一系列的传感器来收集数据并交由其它系统处理
· systems of systems(统中统?):由一系列系统组成的系统(哥中哥)
软件工程的基础
在不考虑开发技术使用的情况下,有一些基础的原理是适用于所有的软件系统的:
1. 系统应该以一个受管理的、能理解的步骤来开发,当然,不同的步骤被适用于不同的软件。
2. 系统的可靠性和表现对于一个系统来说是很重要的
3. 理解和管理软件的说明书是很重要的甚至是必要的
4. 合适的话,可以用现成的软件而不是自己新去开发一个新的软件
软件工程和网页
1. 网页现在是应用运行的平台并且基于网站基础的系统的速度要高于本地系统
2. 网页服务应当满足其中所有的功能都能被访问
3. 云计算功能是电脑服务的一种供应品,可以让应用在云端进行操作
网络软件工程
1. 软件的再次使用是构建基于网络的系统的一种主要方法
· 当你在编写这些系统时,就应当考虑到如何把这些已存在的软件部分或者系统组合起来
2. 基于网络的系统应该的开发和传递应该是个递进的工程
· 要在软件开发完成之前把所有需求全部提前写进一个系统是不切实际的
3. 用户界面被网页的功能所限制(。。。?)
· 虽然像ajax这样的技术允许大量的界面在网页之中创造(睡迷糊了。。大概这个意思)但是(这些技术)仍然是十
分难以使用的。所以一些脚本语言会被更广泛的使用
4. 基于网络的系统是复杂的分布式的系统,但是关于之前软件工程的原理对于其它的系统是同样适用的。
5. 前面讲到的软件工程的东西对于web-based software同样适用
关于本章,划重点啦!!
最后
以上就是长情羊为你收集整理的Software Engineering(一)的全部内容,希望文章能够帮你解决Software Engineering(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复