Python初步认识软件工程
2018-07-24 16:45 更新
1.软件工程无处不在
2.软件开发介绍
软件已经深入到我们生活的方方面面,了解软件工程,了解软件工程的属性。
- 软件=程序+数据+文档
- 程序;计算机接受我们给出的指令,运行时候能提供所要求的功能与性能。
- 数据:程序能够适当的操作信息的数据结构
- 文档:描述程序的研制过程、方法和使用的图文资料。
3.软件开发本质特征
软件开发具有复杂性、一致性、可变性、不可见性。
- 软件开发是一种人类高度抽象的活动,软件是复杂的,像那些高级云计算,Google、Amazon、阿里云 所需要的服务器超过100万台,里面的数据调用非常复杂。
- 软件不可能独立的存在,它需要依附一定的硬件、网络、操作系统,一个软件的应用的调用很有可能会同时用到几个服务器共同执行,这几个服务器的地址甚至都不在一起。软件与不同服务器之间的接口是需要统一的。
- 软件是需要不断快速更新换代的,因为用户的需求不断的再变。
- 软件是一种看不到摸不到的逻辑实体,没有形体,在开发过程程序员只能看到程序代码,并不能直接看到软件开发后的效果,所以给开发管理增加了很大的困难。
4.软件开发产生与发展
- 1956-1967 史前时代 软件开发没有方法可循,软件的设计实在开发人员头脑中的隐藏过程,60世纪中期发生过软件危机。
- 1968-1982 瀑布过程模型 1968提出“软件工程”概念,使用结构化开发方法,瀑布式软件生命周期模型成为典型。
- 1983-1995 质量标准体系 提出了面向对象开发方法,软件过程改进运动,CMM/ISO9000/SPICE等质量标准体系。
- 20世纪90年代至今 敏捷开发方法流行起来,快速迭代、增量开发,配以更紧密的团队协作,能有效应对需求变化。
5.软件工程
为了增加软件的质量、提高开发速度,人们开始采用搞工程的方法来搞软件开发。 这里面包含三方面,开发过程、开发方法策略、开发工具。
5.1 开发过程
- 首先开发商拿到用户需求,然后根据用户需求写软件需求规格说明,看看用户具体需要哪些功能,谈好每个功能具体价格,签字画押,然后开工。
- 开发商做好软件 设计模型、体系结构、详细设计文档,把设计图给软件工程师。
- 软件工程师按照设计图写代码,不同的程序员写不同的模块,最后将模块进行汇总为一个统一的软件。
- 软件做好后,交给测试工程师进行测试,最后出报告。(单元测试、集成测试、用户测试)
5.2 开发方法
从下到上有四步,面向过程,面向对象,面向服务。所谓的面向,就是为了解决系统在从简单到复杂过程中,大家采用的解决方法。
- 小企业-大企业-集团-跨国集团
- 小企业(简单的面向对象编程,数据库+服务端+浏览器)
- 大企业(面向组件,把一个个比较独立的业务模块约定好接口,开发成组件。以后再有类似的功能模块,直接调用这个组件,即节省开发成本,又容易维护。)
- 集团(SOA,单点登陆,有了portal,有了搜索服务,有了知识库)
- 跨国集团(双机,热备,负载均衡,以前用的IBM的主机+Oracle数据库+EMC的存储,再后来买更贵的性能更好的。慢慢的你发现,企业挣的钱都他妈的给了IOE。你开始考虑分布式,开始考虑使用开源产品。)去ioe01 去ioe02
5.3 开发策略
- 不重复造轮子(库函数、类库、文档模板、网页模板、设计模式、组件、框架)
- 将一个复杂大问题,拆分为若干简单小问题,最后在组装。
- 将软件看做生命,功能从简单到复杂,小步快跑,快速迭代。
- 各个软件质量特征看总体性价比。
5.4 开发工具
5.5 开发人员素质要求
- 良好读写代码的能力
- 较强责任感,自我提升,自我反省总结,要对自己写的代码负责任,要对自己的代码所造成的用户体验* 负责任。
- 职业道德:对代码品质的保证,对公司秘密的保护等等 容易与人交流
以上内容是否对您有帮助:
← Python模块
更多建议: