2020-2-21

《软件工程导论》读书笔记

我花了一个星期的时间大致浏览了一遍软件工程导论。这本书带了我很大启发,让我对软件程这一学科有了致的认识这本书从设计,开发,管理,需求,危机,安全和维护这些方面像我们介绍了一个软件工程开发过程中大部分的问题与知识。
从中我了解到作为一名 软件工程师要掌握更的编程语。不仅仅是C和JAVA。除此之外,最重要的是能够熟练的使用。一个软件工程的开发就一定有维护工作,有维护就一定存在危机,我从中知道三次软件危机。
第一次软件危机。
表现: 效率低下。软件成本高。难以维护。
原因: 人员知识结构单一,code&fix 的模式。理论体系不成熟。开发管理不完善。
解决: 理论体系的形成,它指导了 过程 和 项目管理。
第二次软件危机
表现: 错误低质量的产品。项目延时,违约。 工作时间太长。
原因: 需求理解不充分。 黑盒模型,与客户交流只是在开始和结束。
解决: 白盒模型的引入。
第三次软件危机
表现:需求变更,软件质量不能保证。 软件演化,开发效率低下。 软件重用和成本的问题。知识产权的问题。安全的问题。
原因: 遗产系统的使用。开源软件的使用。 不确定的需求。
解决: 自动化,智能化。自适应,自修复,自测试。 自主软件。
在软件开发需要掌握软件开各个阶段基本技能如市场分析可行性分析需求分析, 结构设计, 详细设计, 软件测试等
需求工程
需求工程的任务提供一种良好的机制:理解客户需要什么,分析需求,评估可行性,协商合理方案,无歧义的详细说明方案,确认规格说明, 管理需求以至将这些需求转化为可执行的系统。活动: 起始, 导出, 精化(是一个分析建模动作,最终结果是形成一个分析模型,定义问题提供的信息,功能和行为域),协商,规格说明, 确认和需求管理。需求工程的工作产品必要性和可行性的陈述系统或产品范围的界限说明。参与需求导出的客户,用户和其他共同利益者的列表系统技术环境的说明。需求列表(按照功能加以组织)。一系列适用场景,有助于深入了解系统或者产品在不同运行环境下的使用。任何能够更好定义需求的原型。
需求开发的方法需求获取:
1开始过程: 与客户建立初步交流。
2导出过程:通过访问和调查,获得需求的描述
需求分析: 精化过程,通过分析建模,建立精确的
技术模型,说明软件功能,特征和约束。
需求处理:
1协商过程
2形成规格说明
3需求确认
同时在软件工程的开发过程中会使用到许多的模型和代码如:瀑布模型(经典的生命周期)
标准的软件生命周期:分析 ,设计, 编码 ,测试
特点:从上一项活动中接受该项活动的活动成果作为输入利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,作为输出传给下一项活动对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。
优点: 简单,容易使用。 为项目提供了按阶段划分的检查点,项目管理比较规范。每个阶段必须提供文档,而且每个阶段必须进行正式严格的技术审查。
缺点:瀑布模型过于依赖早期进行的唯一一次需求调查,不能适应需求的变化 。瀑布模型是单一流程,开发中的经验教训不能反馈应用于本产品的过程。造成软件错误的积累和放大效应
适用:在实现之前清楚了解问题需求需求不会变更太大需求没有无法解决的高风险因素。需求对利益相关方来说是兼容的。实现需求的正确架构已经被很好的理解。有足够的时间顺序的进行项目。
增量模型
特点相当于瀑布模型的迭代随着日程时间的进展而交错的线性序列与原型不同,强调每个增量均发布一个可操作产品典型应用是同一产品的不同项目版本
优点:提高对用户需求的响应有计划的管理技术风险,如早期增量版本中避免采用尚未成熟的技术若开发前期找不到足够的人员,早期的增量可以由少量人员完成,若核心产品口碑不错,可以成为下个增量投入更多人员
缺点:不能破坏原来构造好的东西加入一个新的增量不是那么简单。调节各个增量之间的关系也很难.至始至终开发者和客户纠缠在一起,直到完成版本出来尽管其灵活性能适应需求变化,但也容易退化成边做边改模型,使软件过程控制缺乏整体性
适用: 需求经常变化的软件开发,市场急需而开发人员和资金不能再设定的市场期限之前实现一个完善的产品的软件开发
我要多多锻自己的能,努力争取较的提高。同时 我对于软件工有了致的了解我要时刻保一颗清醒头脑,随时为自己目标而奋。一个人,若要获得成,必须拿出勇,付出努力、拼搏、奋斗、成功。机遇不同情泪的忧伤不相信颓废绝望,只期待爱打、时刻准备着人,这本书对于初入软件工程的人,是一个不错的选择。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月18日
下一篇 2020年1月18日

相关推荐