【读书笔记】软件工程·实践者的研究方法第7版 第一部分 软件过程(引论 软件和软件工程)

软件定义:

1、能够完成预定功能和性能的可执行的指令(计算机程序)

2、使程序能够适当地操作信息的数据结构

3、描述程序的操作和使用的文档

综合来说:软件是计算机系统中与硬件相互依存的另一部分,包括程序数据及其说明文档(描述信息)


软件的特征:

1、软件是被开发或设计的,不是被制作

2、软件不会磨损

3、正在向基于构建的组装前进,但大多数仍是定制的


软件的分类:

1、系统软件

2、应用软件

3、工程和科学计算软件

4、嵌入式软件

5、产品线软件

6、web应用

7、人工智能软件


软件面临的新挑战:

1、开放计算。2、网络资源、3、开源软件


软件工程的定义:

1、软件工程是建立和使用一套合理的工程原则,以便经济地获得可靠的可以在实际机器上高效运行的软件。

2、软件工程是将系统的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。


什么是模型:模型是现实的简化。


软件工程包括:

1、过程:定义了一个过程框架,包含若干个框架活动:沟通策划建模构建部署

2、方法:如何做、基本原则

3、工具:CASE计算机辅助软件工程


~~~~~~~~~~~~~~  以下是第一部分 软件过程   ·~~~~~~~~~~~~~

软件过程:也称软件生存周期过程,是活动的集合,而活动是任务的集合,任务把输入加工成输出


活动的执行可以是:线性(顺序)的,迭代(重复)的,演化的,并行的


软件生存周期模型,开发模型,过程模型:三个说法一样意思,规定了软件开发、运作和维护等所需的过程、活动和任务


瀑布模型,经典生命周期:严格线性的

适用情况:所需功能、性能需求能一次性理解和描述,不再变动

优势:

1、结构简单,广为人知

2、配套开发方法和支撑工具

2、配套有成熟的管理模式

缺点:

1、实际项目很少遵守顺序;

2、客户很难清楚描述所有的需求;难以适应需求变化

3、可交付版本在最后才出现,风险高;

4、容易阻塞

5、系统太大时,难以一次做完


增量过程模型:线性和并行


第一个增量往往是核心产品,满足基本的需求;每个增量都提交一个可以运行的产品。

适用情况:(优势)

1、需要迅速提供一个可用版本

2、早期的增量可以仅需少量的人员/资金

3、规避技术风险:例如延后某硬件的使用

风险(劣势):

1、需求未被很好的理解;需求迅速变化

2、技术变化

3、长期内仅有有限的资源


演化过程模型:首先执行风险最大、核心的任务,后续“演化”完善

掌握核心需求后就可以渐进式开发,其余需求可以在后续迭代中实现。不断完善的过程造就了“演化”的名字。

与增量模型的区别:只需要核心需求,其他逐步完善

背景(使用情况):

1、需求常变

2、短时间内无完善的产品,有限功能产品迅速抢占市场

3、核心产品和系统需求已知,但细节未定


(快速)原型模型,原型开发泛型:

用快速设计的方式(例如:只有界面),跟客户交流;循环迭代地修正、明确需求,开发者也有大体感受;低成本;第一个系统(原型)是要被抛弃的,为了软件质量

适用情况:需求模糊,用于讨论,试水

问题(缺陷):

1、客户要求将原型上线,软件质量和后续维护性得不到保证

2、原型舍弃了一些软件质量,例如低效的算法等 可能会遗留系统


螺旋模型:结合了原型的迭代性和瀑布模型的系统性和可控性,风险驱动,

特点:1、循环逐步加深;2、里程碑

缺点:

1、很难说服客户演进方法是可控的;

2、依靠风险评估专家


协同开发模型,协同工程:过程网络,状态转换。更适合不同的工程团队共同开发的系统工程项目


现在总结演化模型的总体缺点:

1、开发周期数目不定,不利于传统的项目管理和估算技术的应用

2、演化的速度难以把握

3、灵活性和可延展性 VS 软件质量 的平衡


专用过程模型

1、基于构件

2、形式化方法

3、面向方面

4、模型驱动


基于构件

1、构件是软件复用的重要手段,由构件规约和实现两部分组成

2、基于构件开发模型本质上是演化模型,有螺旋模型的特点


形式化方法模型(净室软件工程):严格的数学符号保证正确性

优势:依靠数学分析的方法,避免歧义性、不完整、不一致;高度关注安全性,不容有失的软件(飞行器和医疗)

劣势:非主流

1、耗时、成本高

2、极少数程序员具有相关学习背景,因此需要大量培训

3、对于技术水平不高的客户很难沟通


面向方面的软件开发:

方面,表示构建功能及非功能的横切属性,例如:数据存取/查询和索引(持久性方面)

演化模型适合定义和构建方面,协同开发的并行特点用于“方面”和“构建”的并行开发,要注意二者的异步通信



统一过程模型(Unified Process,RUP):用力驱动,以架构够核心,迭代并且增量

统一过程模型的四个阶段对应本书的五个活动


九个核心工作流


每一个迭代都是一个小的瀑布模型


个人软件过程(PSP:personal software process):强调对产品及其质量的个人测量。

五个框架活动:策划、高层设计、高层设计评审、开发、后验。

PSP强调今早发现错误。是严格有序的,效果显著的。

劣势:对能力的挑战,培训时间长,价格高,人员不习惯

团队软件过程(TSP: Team Software Process):自我组织进行高质量的软件开发

框架活动:项目启动、高层设计、实现、集成、测试、后验。

个人和团队软件都强调了:测量、策划和自我管理



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ku360517703/article/details/16362207
上一篇写个图片爬虫,scrapy,python第一次接触(停止更新)
下一篇【读书笔记】软件工程·实践者的研究方法第7版 第一部分 软件过程(第3章 敏捷开发)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭