栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

软件工程学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

软件工程学习笔记

系列文章目录

软件工程学习笔记


文章目录
  • 系列文章目录
  • 一、初识软件工程
    • 1.软件的本质特性
    • 2.软件工程的产生与发展
    • 3.软件工程的基本概念
        • 1)工程的特点:
        • 2)软件工程:
        • 3)好的软件的特点:
        • 4)软件工程的三个基本要素:
          • 软件开发过程:
          • 软件开发方法:
          • 软件开发工具:
        • 5)软件开发的基本策略:
        • 6)软件过程的技术:
    • 4.软件的质量实现
      • 1)软件质量的评定
      • 2)什么是好的软件
      • 3)保证软件产品质量的三个方面:
      • 4)商业环境下的软件质量
  • 二、
    • 1.引入库
    • 2.读入数据
  • 四、软件开发过程
    • 1.软件过程
    • 2.软件过程模型
  • 八、需求获取
    • 1.需求工程师
  • 总结


一、初识软件工程

软件是软件工程的研究对象,也是软件处的产品形态和客观存在。
工程是将理论和知识应用于实践的科学,其目的是经济有效地解决实际问题。
软件无处不在,在生活中予以人们巨大的生活便利,但想要高效地做出便捷好用的软件是一件复杂的事情,需要用工程的思想和理论来指导软件设计和开发的过程。
因此,软件工程这门课程的学习十分重要。


提示:以下是本篇文章正文内容,下面案例可供参考

1.软件的本质特性

知识提要:
软件 = 程序 + 数据 + 文档
软件是人类思维的凝结产物。
软件具有复杂性、一致性、可变性、不可见性等内在特性。


根据历史上的实例,微软开发一个简单的word文档需要的工期和人力成本甚至比建造一架飞机还要大。
这是为什么呢?
因为软件具有复杂性、一致性、可变性、不可见性等内在特性,这是造成软件开发困难的根本原因。

复杂性:程序结构的复杂,例如函数的调用的复杂情况。

一致性:软件需要服从于人类指定的某些规则。软件需要依赖于一定的环境。软件随接口的改变而不停变化。

可变性:软件是在不断变化、不断更新的,这种变化往往是顺应市场需求。但不断的修改也会导致一些副作用,有可能会缩短软件的寿命,提前结束软件的生命周期。

不可见性:软件在开发过程中很难看出软件的实际效果。

2.软件工程的产生与发展

知识提要:
软件开发面临的困难:

  • 客户不满意
  • 风险与成本
  • 项目过程失控
  • 无力管理团队

软件工程发展的四个阶段:

  • 史前阶段:小作坊模式,没有固定开发方法
  • 瀑布过程阶段 :线性模式,需求-开发-测试
  • 质量标准体系:面向对象开发,软件过程改进运动
  • 敏捷开发方法:迭代和增量的开发过程

软件开发的过程中,不仅受内在特性的限制,还面临着四大困难:客户不满意、风险与成本、项目过程失控、无力管理团队。
因此,软件开发的成功率(指按照预期按时完成软件开发)只有大约20%,有大约50%的软件不能完成预期功能的开发或需要逾期交付,有30%的软件开发甚至彻底失败。
这为开发团队及公司带来了巨大的人力和资金成本的浪费。
为了解决软件开发面对的各种难题,在1968年软件工程的概念首次被提出。
以“软件工程”来命名这门学科,意在说明:软件的生产,有必要建立在某些理论基础和实践指导之上。 3.软件工程的基本概念

知识提要:

工程:
应用有关的科学知识和技术手段,通过有组织的群体协作活动,建造具有预期使用价值的人造产品的过程。

1)工程的特点:
  • 大规模建造
  • 复杂问题和目标分解
  • 团队协作与过程控制
2)软件工程:

把工程化的方法应用于软件开发、运行、维护。

3)好的软件的特点:
  • 低成本
  • 按时完成任务并交付
  • 实现客户预期
  • 具有良好的性能、可靠性、可扩展性、可移植性
  • 维护成本低
4)软件工程的三个基本要素:
  • 过程:软件开发活动

  • 方法

  • 工具

    软件开发过程:
      1. 问题定义
      2. 需求开发
      3. 软件设计
      4. 软件构造
      5. 软件测试
    
    软件开发方法:
      - 面向过程
      - 面向对象
      - 面向构件
      - 面向服务
    
    软件开发工具:

5)软件开发的基本策略:
  • 分而治之
  • 逐步演进
  • 优化折中
6)软件过程的技术:
  • 抽象
  • 软件建模方法
  • 用户界面原型化
  • 软件体系结构
  • 软件工程
  • 软件复用
  • 度量
  • 工具于集成环境

4.软件的质量实现 1)软件质量的评定
  • 软件过程——过程质量
  • 软件产品
    • 内部质量:代码质量
    • 外部质量:
  • 产品效用——使用质量:by用户
2)什么是好的软件
  • 正确的软件:满足用户的需求,为用户创造价值
  • 软件运行正确:没有或很少有缺陷,性能好
3)保证软件产品质量的三个方面:
  • 高质量的设计
  • 规范的编码
  • 有效的测试
4)商业环境下的软件质量

商业环境下的软件质量需要考虑三个方面:

  • 成本
  • 效率
  • 质量

企业不可能无底线地追求效率,要求软件一定0缺陷。软件最终的质量取决于软件能带来的效益和成本的对比,当继续优化软件所带来的的效益小于优化所造成的的成本时,就不值得继续优化软件了。

二、 1.引入库

代码如下(示例):

2.读入数据

代码如下(示例):

该处使用的url网络请求的数据。


四、软件开发过程 1.软件过程

知识提要:

过程是一组将输入转化成输出的相互关联或相互作用的活动。
输入:用户需求
输出:要交付的产品。
软件开发活动:

  • 问题定义
  • 需求开发
  • 软件设计
  • 软件构造
  • 软件测试

软件设计:

软件测试:

软件维护:

软件项目管理:


2.软件过程模型

软件过程模型是对软件过程的抽象描述。

常见的软件过程模型:

  • 瀑布模型:

     	线性地执行一系列界限分明的独立阶段,但已经不适用于目前的开发环境了。
    
  • 原型化模型

     展现部分开发的产品,加强对系统的理解,明确需求。
    
  • 迭代式开发

     在开发过程中,建立一系列版本,将系统一部分一部分地逐步交付。
     迭代式开发分为增量模式和迭代模式两种。
     增量模型指分区块开发系统,迭代模型指一开始就开发完成所有功能但功能都不够完善,需要通过迭代来一层一层完善。
    
  • 可转换模型

     特别适合对安全性、可靠性、保密性要求极高的软件系统,这些系统需要在投入运行前进行验证。
    
八、需求获取 1.需求工程师 总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号