很多项目在应用ASPICE时,首先都会感觉到需要比以往项目更多的工作量,这些增加的工作量里面,有很多工作量是分配到了软件详细设计、软件单元验证和软件集成测试活动中。 &尊龙凯时登录nbsp; 本文谈谈 软件详细设计 的话题。
说明:本文如下的讨论以手写代码为场景。 软件代码是按照一定的逻辑来开发的,如果直接阅读源代码的话,代码逻辑很难被直观和全面的把握和看懂。软件详细设计是软件代码实现逻辑的直观展现。例如包括: ① 如上图所示,如何来回答这些疑问呢?或者说,如何有信心地来回答这些疑问呢? 软件详细设计是软件代码实现逻辑的直观展现,软件详细设计可以回答: ② 车载嵌入式软件产品的生命周期很长(通常至少15年以上),软件的可维护性、软件的设计质量至关重要。 软件详细设计是软件代码实现逻辑的直观展现。软件详细设计可以帮助工程师来把握软件的设计,确保软件设计符合相关的设计原则,例如:模块化、封装、低复杂度、接口简单、高内聚、低耦合等。 近日,有个小伙伴问了一个问题,比较有代表性:
杨老师好,请教您一个问题。
我了解到有一个根据代码来生成流程调用图和数据流图的工具,叫crystal flow的,
有一个疑惑想问一下,在做ASPICE的时候是要求先有设计,再有编码。 但做设计的时候,人工画流程图确实是花费精力比较多的一个部分, 而通过工具,可以快速地出流程图,相比人工更能确保代码和流程图的一致性。
那么,问题来了: 有没有既能使用这类工具,又同时满足ASPICE的实践呢?
模拟一下开发人员的开发步骤: ① 编码人员基于需求 软件架构设计,有一个对于软件组件内部逻辑的初步思路。(思路可以在脑子里,或者写在一张草稿纸上) ② 编码人员进行编码,将思路落实在代码上,边实践,边完善。 ③ 当所有的代码基本完成后,基于代码生成详细设计。 ④ 基于生成的详细设计,对软件组件的设计/实现进行考虑,考虑整体的软件组件的设计,例如:是否正确实现了需求,是否遵循了架构设计,是否满足模块化/封装/高内聚/低耦合等设计原则。 ⑤ 必要时,返回②进行调整。
在这样的场景下,软件详细设计活动和软件编码活动是耦合在一起的。
因此,这样的软件详细设计是可以被接受的。
但是如果开发人员是直接基于需求和架构设计进行代码开发,然后基于代码生成详细设计,然后就结束了。(没有基于生成的详细设计去看与架构设计/需求的一致性,没有去检查与设计原则的符合性),这样的话,就是不可以接受的。
推荐阅读:
文章转载自公众号:仨人谈起 |
部门热线
前 台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777