Python初步认识软件工程

由 张泽祥 创建,Alma 最后一次修改 2017-07-15

1.软件工程无处不在

2.软件开发介绍

软件已经深入到我们生活的方方面面,了解软件工程,了解软件工程的属性。

  • 软件=程序+数据+文档
  • 程序;计算机接受我们给出的指令,运行时候能提供所要求的功能与性能。
  • 数据:程序能够适当的操作信息的数据结构
  • 文档:描述程序的研制过程、方法和使用的图文资料。

3.软件开发本质特征

软件开发具有复杂性、一致性、可变性、不可见性。

  • 软件开发是一种人类高度抽象的活动,软件是复杂的,像那些高级云计算,Google、Amazon、阿里云 所需要的服务器超过100万台,里面的数据调用非常复杂。

  • 软件不可能独立的存在,它需要依附一定的硬件、网络、操作系统,一个软件的应用的调用很有可能会同时用到几个服务器共同执行,这几个服务器的地址甚至都不在一起。软件与不同服务器之间的接口是需要统一的。

  • 软件是需要不断快速更新换代的,因为用户的需求不断的再变。

  • 软件是一种看不到摸不到的逻辑实体,没有形体,在开发过程程序员只能看到程序代码,并不能直接看到软件开发后的效果,所以给开发管理增加了很大的困难。

4.软件开发产生与发展

  • 1956-1967 史前时代 软件开发没有方法可循,软件的设计实在开发人员头脑中的隐藏过程,60世纪中期发生过软件危机。

  • 1968-1982 瀑布过程模型 1968提出“软件工程”概念,使用结构化开发方法,瀑布式软件生命周期模型成为典型。

  • 1983-1995 质量标准体系 提出了面向对象开发方法,软件过程改进运动,CMM/ISO9000/SPICE等质量标准体系。

  • 20世纪90年代至今 敏捷开发方法流行起来,快速迭代、增量开发,配以更紧密的团队协作,能有效应对需求变化。

5.软件工程

为了增加软件的质量、提高开发速度,人们开始采用搞工程的方法来搞软件开发。 这里面包含三方面,开发过程、开发方法策略、开发工具。

5.1 开发过程

  1. 首先开发商拿到用户需求,然后根据用户需求写软件需求规格说明,看看用户具体需要哪些功能,谈好每个功能具体价格,签字画押,然后开工。
  2. 开发商做好软件 设计模型、体系结构、详细设计文档,把设计图给软件工程师。
  3. 软件工程师按照设计图写代码,不同的程序员写不同的模块,最后将模块进行汇总为一个统一的软件。
  4. 软件做好后,交给测试工程师进行测试,最后出报告。(单元测试、集成测试、用户测试)

5.2 开发方法

从下到上有四步,面向过程,面向对象,面向服务。所谓的面向,就是为了解决系统在从简单到复杂过程中,大家采用的解决方法。

知乎李黄河的回答

  • 小企业-大企业-集团-跨国集团
  • 小企业(简单的面向对象编程,数据库+服务端+浏览器)
  • 大企业(面向组件,把一个个比较独立的业务模块约定好接口,开发成组件。以后再有类似的功能模块,直接调用这个组件,即节省开发成本,又容易维护。)
  • 集团(SOA,单点登陆,有了portal,有了搜索服务,有了知识库)
  • 跨国集团(双机,热备,负载均衡,以前用的IBM的主机+Oracle数据库+EMC的存储,再后来买更贵的性能更好的。慢慢的你发现,企业挣的钱都他妈的给了IOE。你开始考虑分布式,开始考虑使用开源产品。)去ioe01 去ioe02

5.3 开发策略

  • 不重复造轮子(库函数、类库、文档模板、网页模板、设计模式、组件、框架)
  • 将一个复杂大问题,拆分为若干简单小问题,最后在组装。
  • 将软件看做生命,功能从简单到复杂,小步快跑,快速迭代。
  • 各个软件质量特征看总体性价比。

5.4 开发工具

5.5 开发人员素质要求

  • 良好读写代码的能力
  • 较强责任感,自我提升,自我反省总结,要对自己写的代码负责任,要对自己的代码所造成的用户体验* 负责任。
  • 职业道德:对代码品质的保证,对公司秘密的保护等等 容易与人交流
以上内容是否对您有帮助:
二维码
建议反馈
二维码