软件工程相关知识

一、软件项目管理(软件工程师)

1、软件工程=软件开发过程(程序+文档)+软件项目管理(过程管理+开发管理)
2、软件工程:如何开发软件;软件项目管理:如何保证项目按照预计的流程开发。
3、互联网+:互联网与其他行业结合。
4、软件工程师(学校系统培养)、程序员(野生)、码农(代码搬运工)
5、软件 = 程序 + 数据 + 文档(即产品,即服务,即生产力)
6、软件授权(利用以加密为主技术保护软件不被破解)
7、自由软件(鸿蒙系统)
8、如何开发一个好的软件?(利用软件工程的知识)
9、软件生命周期
(问题定义、可行性分析)、需求分析阶段、软件设计阶段(概要设计+详细设计)、软件编码阶段、软件测试阶段、软件运行和维护阶段、(不满足需求抛弃)
10、软件生命周期的各个阶段的任务
(1)、了解需求
与客户沟通,明确需求
文档:用户需求报告(客户签字确认)
时间:1-3天(与项目大小有关,不是确定的)
可行性研究:在给定的时间、成本下,确定可行方案(可行性研究报告)
(2)、需求分析(项目分析人员、项目经理、产品经理)
为了解决这个问题,系统必须要做什么?
需求规格说明书(与客户深入交流形成)
(3)、系统设计
总体设计
概要设计(架构师、体系结构)
详细设计 模块设计:总体设计阶段所给出的每个模块的内部算法流程和数据结构
数据库设计
(4)、系统开发(写代码)
(5)、系统测试(通过各种测试提高软件的质量,以满足客户的需求)
系统测试报告
(6)、系统运行维护(使系统持久的满足用户的需求)
系统交付:
系统使用手册;系统部署手册
11、软件项目来源
(1)、新产品研发项目
(2)、合同类项目
(3)、产品升级项目

二、软件工程(1968年提出)

软件工程 是软件行业的知识体系的内核。无论以后是走技术岗还是管理岗位,只要你想要走的更快更稳,软件工程是必修课。
1、IT世界三大定律
(1)、摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月,便会增加一倍,性能也将提升一倍。
(2)、反摩尔定律:一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。
(3)安迪-比尔定律:硬件提高的性能,很快被软件消耗掉了。(What Andy gives, Bill takes away.)

2、软件危机
3、产生“软件危机”的主要原因:
(1)、软件开发人员继承下来的不良传统、
(2)、对软件开发的内在规律认识不够深入、
(3)、缺乏足够的软件开发技术和工具的支撑
4、软件工程可以看做由以下3个部分组成:
计算机科学和数学:用于构造软件的通信、模型与算法
工程科学:用于
管理科学:
5、软件工程涉及人员分为3类
(1)、客户(customer):是为将要开发的软件系统支付费用的公司、组织或个人。
(2)、用户
(3)、开发人员(user):是将实际使用系统的人,包括坐在终端前的人、提交数据的人或阅读输出的人。
6、软件工程人员的素养
(1)、保密 —— 工程人员必须严格保守雇主或客户的机密,而不管是否签署了保密协议。
(2)、工作能力 —— 工程人员应该实事求是地表述自己的工作能力,不应有意接受超出自己能力的工作。
知识产权 —— 工程人员应当知晓有关专利权、著作权等知识产权的地方法律,必须谨慎行事,确保雇主和客户的知识产权受到保护。
计算机滥用 —— 软件工程人员不应运用自己的技能滥用计算机,如通过网络窃取别人个人隐私信息等。
7、编程语言的学习方法
精通一门,一通百通。
8、软件工程师的业务素质
(1)、热爱软件工程事业,对软件开发、软件实施、软件管理或软件维护等工作感兴趣。因为喜欢才会产生兴趣,而兴趣就是动力,动力十足就不会疲劳与厌倦。
(2)、至少要熟练掌握两种以上的编程语言,能编写规范的源程序。
(3)、熟悉问题求解的数据结构或数据库,即数据建模。数据结构适合于系统软件、工具软件的建模,数据库应用于管理信息系统软件建模。
(4)、有良好的文档书写习惯,真正理解软件是“知识、程序、数据和文档”的集合,掌握符合国际标准规范的文档撰写方法,以便国际软件工程师之间互通交流。
(5)、在软件工程技术上与时俱进,掌握主流的软件开发工具及环境,如各种CASE 工具和软件配置管理工具等。
(6)、努力跟踪所在行业领域知识,不断适应客户需求的变化。因为任何软件企业,都不可能面向许多行业,而只能面向一两个行业,所以必须掌握这些行业领域的最新业务知识。
(7)、在技术或管理上不断总结经验,吸取教训,做到每年都有所进步。
(8)、在业务工作中提倡与遵守团队精神,反对个人英雄主义。
9、软件工程的主要内容:
(1)、软件开发技术(软件工程):软件开发方法学、软件开发过程、软件工具和软件工程环境
(2)、软件工程管理(项目管理):软件管理学、软件经济学、软件心理学
10、软件质量:IS09216软件质量的六个一级特性:功能性、可靠性、可使用性、有效性(效率)、可维护性、可移植性。
11、软件开发方法:
结构化设计方法(自顶向下)、
面向对象设计方法(封装、继承、多态)(统一建模语言)UML、
形式化方法(了解)
12、软件模型
(1)、瀑布模型(现代软件工程的起源):问题的定义和规划(需求文档和可行性分析报告)、需求分析(时间越多越好)(需求分析文档)、软件设计(架构设计文档)、程序编码(代码文件)、软件测试(测试报告)、运行维护(使用说明文档)
在这里插入图片描述
(2)、快速开发原型
在这里插入图片描述

(3)、增量模型
在这里插入图片描述
在这里插入图片描述

(4)、迭代模型(每次迭代都有一个可用的版本)
它将一个完整的软件拆分成不同的组件,然后逐个组件地开发测试,每完成一个组件就展现给客户,让客户确认这一部件功能和性能是否达到客户需求,最终确定无误,将组件集成到软件体系结构中。

(5)、螺旋模型(项目风险高,随时可能会中断)
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值