为什么需要软件详细设计?

2023-07-03 00:20| 发布者: |

很多项目在应用ASPICE时,首先都会感觉到需要比以往项目更多的工作量,这些增加的工作量里面,有很多工作量是分配到了软件详细设计、软件单元验证和软件集成测试活动中。

&尊龙凯时登录nbsp;

本文谈谈 软件详细设计 的话题。

 

说明:本文如下的讨论以手写代码为场景。

软件代码是按照一定的逻辑来开发的,如果直接阅读源代码的话,代码逻辑很难被直观和全面的把握和看懂。软件详细设计是软件代码实现逻辑的直观展现。例如包括:

为什么需要软件详细设计? -汽车开发者社区

如上图所示,如何来回答这些疑问呢?或者说,如何有信心地来回答这些疑问呢?

为什么需要软件详细设计? -汽车开发者社区

软件详细设计是软件代码实现逻辑的直观展现,软件详细设计可以回答:

车载嵌入式软件产品的生命周期很长(通常至少15年以上),软件的可维护性、软件的设计质量至关重要。

为什么需要软件详细设计? -汽车开发者社区

软件详细设计是软件代码实现逻辑的直观展现。软件详细设计可以帮助工程师来把握软件的设计,确保软件设计符合相关的设计原则,例如:模块化、封装、低复杂度、接口简单、高内聚、低耦合等。

近日,有个小伙伴问了一个问题,比较有代表性:

 

杨老师好,请教您一个问题。

 

我了解到有一个根据代码来生成流程调用图和数据流图的工具,叫crystal flow的,

 

有一个疑惑想问一下,在做ASPICE的时候是要求先有设计,再有编码。

但做设计的时候,人工画流程图确实是花费精力比较多的一个部分,

而通过工具,可以快速地出流程图,相比人工更能确保代码和流程图的一致性。

 

那么,问题来了:

有没有既能使用这类工具,又同时满足ASPICE的实践呢?

 

模拟一下开发人员的开发步骤:

① 编码人员基于需求 软件架构设计,有一个对于软件组件内部逻辑的初步思路。(思路可以在脑子里,或者写在一张草稿纸上)

② 编码人员进行编码,将思路落实在代码上,边实践,边完善。

③ 当所有的代码基本完成后,基于代码生成详细设计。

④ 基于生成的详细设计,对软件组件的设计/实现进行考虑,考虑整体的软件组件的设计,例如:是否正确实现了需求,是否遵循了架构设计,是否满足模块化/封装/高内聚/低耦合等设计原则。

⑤ 必要时,返回②进行调整。

 

在这样的场景下,软件详细设计活动和软件编码活动是耦合在一起的。

 

因此,这样的软件详细设计是可以被接受的。

 

但是如果开发人员是直接基于需求和架构设计进行代码开发,然后基于代码生成详细设计,然后就结束了。(没有基于生成的详细设计去看与架构设计/需求的一致性,没有去检查与设计原则的符合性),这样的话,就是不可以接受的。

 

推荐阅读:

 

文章转载自公众号:仨人谈起

<
>
关于我们
AB模版网成立于2014年,我们是一家专注用户体验设计开发与互联网品牌建设的设计公司,创立至今为2000多位客户提供了创新与专业的设计方案。设计服务范围包括:交互原型设计、产品视觉设计、网站设计与开发建设、移动及软件产品界面设计、图标设计、品牌及平面设计等。

联系我们

13588889999服务时间:9:00-18:00)

[email protected]

官方微信官方微信

部门热线

前   台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777

咨询电话13588889999 返回顶部
返回顶部