读《软件工程实践者的研究方法》有感

这周我读的是这一本叫《软件工程实践者的研究方法》的书,开篇是以作者和一名45岁,具有大型企业公司主管形象的中年男子的对话开始,他们就“软件有没有死”展开了激烈的辩论。
      说实话,刚开始,我感觉那位中年男子说的很有道理,但作者说如果软件已经死了,就不必要读这本书了。可老师说看这本书肯定有什么出色的理解,再者说,如果“软件已经死了”,作者也不会写这么长的文章来维护自己的观点。所以我硬着头皮,往后阅读了起来。
      我看了一下,本书共分为5个模块,分别为软件过程、建模、质量管理、软件项目管理以及软件工程高级课题。下面,我就这五个章节,说一说我对软件工程的理解以及所不明白的地方。
      我是软件工程专业的,我一直以为我的专业仅仅是敲代码、找bug。确不知还有这么多学问,软件是什么,书上给的定义是:(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;(2)数据结构,使得程序可以合理利用信息;(3)软件描述信息,它以硬拷贝和虚拟地址存在,用来描述程序的操作和使用。那什么是软件工程呢?书上的定义是:将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。
      软件工程的层次:工具、方法、过程、质量关注点(根基),一个通用的软件工程框架通常包含以下5个活动。沟通、策划、建模、构建、部署。此外,一系列普适性活动——项目跟踪控制、风险管理、质量保证、配置管理、技术评审以及其他活动——贯穿软件过程始终。软件过程有一个很重要的方面就是过程流,它描述的是在执行顺序和执行时间上,如何组织框架中的活动,动作和任务。它为3个方面,分别为线性过程流、迭代过程流和并行过程流。
      为了改变软件开发的混乱状况,使软件开发更加有序,我们提出了过程模型,这些过程模型为软件工程工作增加了大量有用的结构化设计,并为软件团队提供了有效的路线图。有5大模型,分别为瀑布模型、增量过程模型、演化过程模型、协同模型和专用过程模型。1.瀑布模型又被称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署过程,最终提供一个完整的软件并提供持续的技术支持。要求:需求明确 ,更改较小的情形。2.增量模型:以迭代的方式运用瀑布模型。随着时间推移,增量模型在每个阶段运用线性序列,每个线性序列生产出一个软件的可交付增量。和原型不同,增量模型每个增量都提交一个可交付的产品。瀑布模型的一个迭代版本,在每个阶段运行瀑布模型生产出一个软件可交付增量。运用增量模型时,第一个增量往往时核心产品。适用范围:在开发过程中开发人员不足。3演示过程模型,这里主要讲一下螺旋模型,它是一种风险驱动型过程模型,它有两个显著的特点。一是采用循环的方式逐步加深系统定义和实现的深度,同时降低风险(要求在项目的所有阶段始终考虑技术风险)。二是确定一系列里程碑,确保共利益者都支持可行的和令人满意的系统解决方案。后面的模型就不介绍了。
      第二部分建模,在这一部分,让我学到了指导软件工程实践有哪些概念和原则,让我学到了什么是需求工程?什么是能指导良好需求分析的基本概念?如何创建需求模型以及如何设计高质量软件部件等等。
      软件工程是以一系列的核心原则作指导的,所以说学软件的知道软件工程的核心原则很重要,所以这一章我重点看了一下。指导过程的原则:1.敏捷 2每一步都关注质量 3.做好适应的准备 4.建立一个有效的团队 5.建立沟通和协调机制6.管理变更 7.评估风险 8.创造能给别人带来价值的工作产品。指导实践的原则:1.分治管理 2.理解抽象的使用 3.力求一致性 4.关注信息传送 5.构建能展示有效模块化的软件 6.寻找模式 7.在可能的时候,用大量不同的观点描述问题及其解决办法 8.有人对软件进行维护,后面还有建模原则,需求建模原则,编码原则,部署原则,策划原则…因为这一章主要是建模,所以补充一下建模原则的内容1.软件团队的主要目标是构建软件而不是构建模型2轻装前进——不要创建任何你不需要的模型 3.尽量创建能描述和软件的做简单的模型 4用能适应模型改变的方式构建模型 5.明确描述创建每一个模型的目的 6调整所开发模型用来适应待开发系统 7.经理构建有用而不是完美的模型 8对面构建模型的方法不要死板9如果直觉告诉你模型不妥当,尽管看上去很正确,那么你要注意了 10.尽可能的获得反馈。
      这一章我解决了很多我开始不会的问题,比如建模的三个目标a.描述客户需要什么,b.为软件设计奠定基础,c.定义在软件完成后可以被确认的一组需求。什么是分析建模?分析模型在系统描述和设计模型之间建立桥梁。怎样建模?建模的方法(结构化分析和面向对象)1、一种考虑数据和处理的分析建模方法被称为结构分析。2、第二种方法是面向对象的分析,这种方法关注于定义类和影响客户需求的类之间的协作方式。模型的元素有哪些?模型的元素:基于场景、面向信息流、基于类、基于行为。什么是ERD?ERD(实体+关系+基数和形态)数据字典 面向对象分析模型。还有基于类的建模:实体、类、类图(CRC图),行为模型(时序图)以及分析模型的概念及其组成 :分析包:分析建模的一个重要部分就是分类,也就是将分析模型的各种元素(如用例、分析类)分组打包-称作分析包,并为每个包取一个有代表性的名称。
      第三部分就是质量管理,什么是质量?质量好不好取决于用户,用户满意度=合格的产品+好的质量+按预算和进度安排交付。那么什么是软件质量呢?软件质量是在一定程度上应用有效的软件过程、创造有用的产品,为生产者和使用者提供明显的价值。这一章主要讲的就是软件质量保证、软件测试策略、软件配置管理以及对传统应用的测试,面向对象的应用系统的测试以及web应用系统的测试。
      第四部分介绍的是软件项目管理,作者拜访了很多家企业,得到的结果就是项目管理太弱。看完这一章节,我想阐述一下我对项目管理的理解,1.项目要进行整体管理,善始善终 。整个项目开始要做好项目整体计划,在项目的整个过程中,始终要按照项目计划执行,如若遇到项目发生变更,要进行影响分析,得到批准后制定变更计划,并按变更计划执行。2.项目范围管理的重要性,需求管理是项目范围管理中的问题,这是因为它实际上是开发过程中的所有管理原则的先决条件。只有在开发的目标被清楚明白地表述和理解的情况下,软件开发才能以一种有计划的有序的方式进行。3.项目时间管理理论指导我们在项目管理中怎样抓主要矛盾,项目管理的实施最为直观的就是缩短项目时间。所以我们在软件的项目管理中,也要将时间控制理论运用进来。
      第五部分就是软件工程高级课题,什么是spi?spi就是软件过程改进,它的方法就是1如何要获得有效的软件过程,就要给定一组特性,2用来评估是否具有这些特性的一种方法3一种总结这些评估结果的机制4用来帮助软件组织弥补在实施过程中发现弱点和缺失的一种策略。看完这一章,让我知道软件没有死,那么软件的发展趋势是什么呢?并没有人知道,但是我相信软件工程师们正在努力的研究,软件的大家庭也不断有新人涌入,我们彼此协同合作,一起面对巨大的挑战——基于软件系统变得越来越大,越来越复杂。
      既然选择软件工程,那就必须担起责任,最后,以这本书软件工程师的责任结尾。
      软件工程师八项原则:
      (1)原则1:公众
      软件工程师的行为应与公众利益一致
      (2)客户与雇主
      软件工程师应以他们的客户和雇主最大利益化的方式做事,与公众利益一致。
      (3)产品
      软件工程师应当确保他们的产品以及相关的修改达到尽可能高的专业标准。
      (4)判断
      软件工程师应当完整独立地进行自己的专业判断。
      (5)职业
      在与公众利益一致的原则下,软件工程师应当保证其职业的完整和声誉。
      (6)管 理 
      软件项目的经理和领导人员应赞成和促进对软件开发和维护合乎道德规范的管理。
      (7)同事
      软件工程师应当正直地去帮助他们的同事。
      (8)自身
      软件工程师应当参与终生职业实践学习,并促进合乎道德的职业实践方法。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值