1.4软件工程知识体系与职业道德

软件工程知识体系与职业道德

软件工程的知识体系

两类过程

一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;

另一类是支持和组织过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。

10个知识域

1.软件需求:软件需求基础、软件过程、需求获取、需求分析、需求规格说明、需求确认、时间考虑。

2.软件设计:软件设计基础、软件设计关键问题、软件结构与体系结构、软件设计质量的分析与评价、软件设计记法、软件设计的策略与方法。

3.软件构造:软件构造基础、管理构造、实际考虑。

4.软件测试:软件测试基础、测试级别、测试技术、与测试相关的度量、测试过程。

5.软件维护:软件维护基础、软件维护关键问题、维护过程、维护技术。

6.软件配置管理:软件配置过程管理、软件配置标识、软件配置控制、软件配置状态报告、软件配置审计、软件发行管理和交付。

7.软件工程管理:项目启动和范围定义、软件项目计划、软件项目实施、评审与评价、项目收尾、软件工程度量。

8.软件工程过程管理:过程定义、过程实施与变更、过程评估、过程和产品度量。

9.软件工程工具和方法:软件工具(软件需求工具、软件设计工具、软件构造工具、软件测试工具、软件维护工工具、软件配置管理工具、软件质量工具和其他工具问题) 软件工程方法(启发式方法、形式化方法、原型方法)

10.软件质量:软件质量基础、软件质量过程、时间考虑。

软件工程是一门交叉学科

包含:

计算机工程、计算机科学、管理学、数学、项目管理、质量科学、系统工程

软件工程 VS 计算机科学 【区别】

软件的基础是计算机,而软件工程的基础之一是计算机科学。

计算机科学的目标是研究计算理论与提高计算机能力

软件工程为了解决客户的具体问题,需要利用计算机科学的研究成果,其最终目标是为客户提供解决问题的工具和技术。

换句话说,我们不需要很nb的技术,只要能够解决客户的要求即可。

一些对软件工程的误解

(注:M 代表误解,R 代表现实。)

管理方的误解

管理方的误解主要来自对管理理论与实践的结合、项目内部管理与项目的外包管理,管理方必须懂得如何从内部管理和控制软件项目,并将理论知识应用于实践。

M1: 我们已经有一本关于软件生产的标准和过程的,这还不能让我们学习到需要的知识吗?

R1: 相比最新的大型主机,工作站和PC,这会使我们在做高质量软件开发时花费更多时间

M2: 如果我们项目进度落后了,可以加入更多的程序员来赶进度

R2: 软件开发的机制和手工作业不一样。在一个延迟了的软件项目中加入新的开发人员只会让它延迟更多

M3: 如果我们将软件项目外包给第三方我们就轻松了,让那个公司去完成它吧。

R3: 如果组织管理方不懂得如何从内部管理和控制软件项目,即使将项目外包也无济于事。

客户方的误解

客户方的误解主要来自于对软件需求重要性的不理解。客户必须配合开发方人员,在项目的早期阶段尽可能明确需求,因为随着开发的深入,需求变更对软件的影响会有数量级的提升。

M1: 对目标的一般陈述就足以开始编程,我们可以今后再补充细节

R1: 前期糟糕的项目需求定义,是导致软件失败主要原因

R2: 项目需求的确在不断变化,但变化所产生的影响根据变化提出的时间不同而不同的

开发人员的误解

在早期的软件开发中,编程被视为一种艺术形式。而开发方对于软件工程的误解,主要来自于是否认可工程化的思想来开发软件。个人编程与软件工程最根本的不同,就在于你是否理解程序与软件的区别,是否能遵循工程规范而不是跟着艺术灵感去编写程序。

M1: 一旦我们编程完毕并成功运行,我们的工作就结束了。

R1: “越早开始写代码,我们就会花费越长的时间去完成它”。工业数据显示,软件开发60%-80%的精力将耗费在软件首次提交给用户以后。

M2: 当我的程序运行之前,我没有办法评估它的质量

R2: 一个最有效的软件质量保证机制应当在项目的正式开始启动时——可以通过技术报告体现。

M3: 唯一可交付的工作成果是一个成功运行的项目程序

R3: 一个可运行的程序只是软件结构的一部分,它还包含了许多其它因素,例如项目报告等。

M4: 软件工程将会让我们去创建大量不必要的文档,并且总是使我们的进度放慢。软件工程仅仅是文档而已

R4: 软件工程并不是创建文档,而是创建质量。更好的质量减少返工的概率。更少返工会让项目更早交付。所有的文档都是提高团队沟通和质量所必须的。

软件工程职业道德和责任规范

第一点,诚信:工程师们应当对他们的雇主和顾客时刻保持诚信而无论之前是否达成了关于诚信的协议。

第二点,能力:工程师们不应该虚夸他们的能力水平。他们不应该故意接受一份超出自己能力范围的工作。

第三点,知识产权:工程师们应该了解当地的知识产权法律法规,如专利权、版权等。他们应该小心确保雇主和客户的知识产权受到了保护。

第四点,滥用计算机:软件工程师不以他们的工作职责为由滥用别人的电脑。滥用计算机的范围很广,从极小(在雇主的机器上玩游戏)到极其严重的(传播病毒)。

一名合格的软件工程师不仅要理解和掌握软件工程的知识体系,还应该遵循软件工程的职业道德与责任规范,才能拥有广阔的职业发展前景。

本章小结

posted @   Dinesaw  阅读(531)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示