精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 系统分析>>待整理2000/4/25之后>>软件质量讨论发起

主题:软件质量讨论发起
发信人: cancan28()
整理人: majorsun(2000-12-05 18:11:44), 站内信件
    蒙克长兄弟软件质量属性的启发,小弟觉得大家有必要在这里讨论讨论软件

质量 的问题,毕竟好的软件是大家的目标,到底什么样的软件才是好的软件呢?

从哪些方面衡量呢?
     目标---->过程---->方法论------>技术------->工具 
软件质量是目标
小弟的愚见为:
    好的软件要从以下几个方面衡量:
        实用性
        有效性
        安全性
        可扩展性
        伸缩性
        性能
           等等
    但这些似乎有些抽象,具体的方面,小弟并不是能比较清楚的描述,希望大

家指正
        1、软件迎合系统的需求
        2、能在有效的时间和预算的资金内完成系统
        3、性能能较好的满足应用环境的要求
        4、对于将扩展的功能能预留接口,减少扩展费用
        5、对于匿名用户比较多的情况下,系统性能受用户数增加的影响较少


        6、系统不容易招受意外的攻击
        7、软件具有很强的直观性,用户易操作,同时提供在线帮助
        8、系统的维护方便,维护费用较低
        9、分布式处理可行,并容易部署

    等等等

      欢迎大家指正和补充





--
好耶!你喜欢足球吗?

※ 修改:.cancan28 于 Nov  3 15:05:51 修改本文.[FROM: 202.104.105.165]
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.105.165]
发信人: kmwh (克长), 信区: SystemAnalysis
标  题: Re: 软件质量讨论发起
发信站: 网易虚拟社区 (Fri Nov  3 18:33:39 2000), 站内信件

【 在 cancan28 (苏康胜) 的大作中提到: 】
:     蒙克长兄弟软件质量属性的启发,小弟觉得大家有必要在这里讨论讨论软件

: 质量 的问题,毕竟好的软件是大家的目标,到底什么样的软件才是好的软件呢?

:    .......



想到一个有点愚蠢的问题,请教大家

软件的本质和目标是什么?

一点愚见:
计算机软件是为了解决现实中的某一问题而在计算机用代码模拟和优化过的
现实系统模型。
即现实问题的模型的再抽象。问题是现实,解决方案是现实问题的解答方案
模型,软件是从解决方案再一次抽象出来的模型。

不过有时候解决方案不一定全部用软件实现的。比如BRP(业务流程再造),
BRP里面就并不全是软件。而是重点在于业务流程的优化。可以说优化方案是
解决方案,而通过软件优化只是其中可选择的一种方法而已。还有其他非软
件的方法可选择

苏兄帖子上所说的我大体同意

刚才说的软件的定义,关键在于“解决问题”
所以关于软件质量的度量。我认为最重要的有以下几个
1、可操作性(实用性,解决问题的能力,这是重点)
2、可修改性(能适应变化和扩充)
3、完整性和安全性(软件的外在质量)
这也许能作为质量衡量的基本框架
其他的如:性能、直观性等等,是针对不同系统时,需要才加以考虑
比如,实时控制系统就对直观性要求不会很高。

有了目标,如何来实现这些目标呢?
就需要将目标针对具体项目分解成子目标,并设置实现这些子目标的的具体任务

这些任务保证子目标的实现。任务例如:需求开发、建摸、编码。。。
子目标保证整体目标的实现。任务需要通过过程来
组织和管理,子目标和关键任务可以被标志为阶段点和里程碑。便于管理,测量

和控制。针对不同时期和不同的项目,过程、阶段点、里程碑和任务组织结构
不尽相同。人们认为比较成熟有效的过程就被抽象为过程模型。比如常见的瀑布

模型,原形模型、增量模型。。。/
大家经常讨论的RUP好象就是增量模型的一个UML化的变种。
有了目标,有了实现目标的任务,也有了组织/管理任务的过程。那如何实现任务
呢?
这就需要方法,由方法保证任务的完成质量。由方法论验证方法的有效性。
方法包括了相关的技术和工具。


 目标---->过程---->任务---->方法(方法论)------>技术------->工具 


这是一个粗略的过程。

根据不同的目标,在不同的阶段选择不同的过程、任务、方法、技术和工具。
个人认为,不存在万能的东西(过程、任务、方法、技术和工具)
应该根据不同的项目进行选择。从而达到质量目标。

软件的质量是由以上各部分共同保证的。RUP是现在比较流行也比较有效的一种过
程模型

同时有Rational公司CASE工具的支持,很有前途,很值得我们去学习和尝试
ROSE背后包含了面向对象思想和UML方法,也同样是个好东西。

但这些,我认为都需要归结到软件过程里去运用,才能发挥出最大效力。

以上浅见,请大家指正


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.73.39]
发信人: soloist2000 (孤独客), 信区: SystemAnalysis
标  题: Re: 软件质量讨论发起
发信站: 网易虚拟社区 (Mon Nov  6 18:11:12 2000), 站内信件

软件质量这个问题太大了,以我的经验,客户满意的才是质量的真正核心,
否则,技术层面的东西客户不懂,再好的质量同样也会给他们枪毙或者
吹毛求疵,所以谈质量不能脱离实际。
【 在 cancan28 (苏康胜) 的大作中提到: 】
:     蒙克长兄弟软件质量属性的启发,小弟觉得大家有必要在这里讨论讨论软件

: 质量 的问题,毕竟好的软件是大家的目标,到底什么样的软件才是好的软件呢?

:    .......


--
巧者劳而智者忧,无能者无所求,饱食而遨游,泛若不系之舟。

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.34.93]
发信人: diaoz (雕子), 信区: SystemAnalysis
标  题: Re: 软件质量讨论发起
发信站: 网易虚拟社区 (Sat Nov 11 15:01:33 2000), 站内信件

【 在 cancan28 (苏康胜) 的大作中提到: 】
:     蒙克长兄弟软件质量属性的启发,小弟觉得大家有必要在这里讨论讨论软件

: 质量 的问题,毕竟好的软件是大家的目标,到底什么样的软件才是好的软件呢?

:    .......
能见到这样认真研究问题的人还真不容易!非常乐意跟您交流!
以下是我在看《面向对象软件构造》第一章的笔记,由于是原文是英文的关系,
不一定正确。
在此先考出第一页供您参考。作者对各因素的先后次序还是很不错的。

软件质量:
软件质量包含两方面的因素:
1. 外部因素:如速度、易用等。它们由使用者感觉到的。
2. 内部因素:如模块化(Modular)、可读性等。它们是接触原代码的软件开发人
员所能感觉到的。
最终决定性的是外部因素:使用者在使用时,并不管原代码是否模块化或可读性
是否良好,它只关心是否有所要的功能、功能是否正常、速度是否满意、界面是
否友好等。这些不满意,则软件就不好。
但是,外部因素是由内部因素决定的。

外部因素:
1. 正确性:即功能是否如它定义那样完成处理。
这点达不到,其他的免谈(如速度快、界面友好等等)。
要更容易达到正确性,必须要分层,然后确保每一层的正确性,因为上层的正确
性是依赖于它的所有下层。而且软件开发应在可重用部件库层之上。确保可重用
部件库层的正确性。
保证正确性,测试和跟踪(Debugging)是必不可少的。但还要更多的方法,例如,
使软件从一开始就是正确的,而不只是跟踪调试使它达到正确,而是"双重的检查
"其正确性。
2. 容错性:即软件能对异常情况作出适当的处理能力。
正确性是指软件在它的规格范围内的,容错性是指发生规格外的情况下的反应。
虽然在规格说明以外,但却被视为软件开发中已计划在内的事情:如使用者输入
了一个非法的日期等。容错能力表现在以下几个方面:当出现异常情况时,
· 不能造成大祸;
· 可给出适当的错误提示,并彻底地中断执行(我认为只是中断当前的操作且不
可有副作用,但系统不能停止工作!其他正常的情况应能继续处理,我的大多数
项目都是要24小时运行的)。
3. 扩展性:软件产品在规格要求改变时的改编的容易性。
任何东西都在发展变化的。规章制度、业务流程、甚至科学定律都是阶段性的。
因此,不但客户应用软件会不断地进步而提出升级修改要求,我们对客户业务的
理解更加是一知半解。所以不经过一年半载的不断修改,软件是不可能合格的。
所以在一无所知的客户业务入门阶段开发出来难以修改的软件,后果一定是工程
失败。提高扩展性的原则:
· 应当设计简单的代码,这样才更容易修改。
· 隔离性:要尽量多设计较为独立性的模块,它的修改只影响其本身或少数的模
块,不要使整个系统都受到影响。
4. 可重用性:软件可以用于更多的不同应用系统中的能力。
多处的代码都非常相似;不应老重复面对过去遇到过的问题;少重写代码能提高
其他的因素,如正确性及容错性;软件工业化也使可重用性成为更迫切的需要。
它将是我们的研究的重点。
5. 兼容性:软件单元之间的结合的难易度。
软件单元是要相互作用的。通讯方式不一样,会使软件单元无法结合在一起。提
高兼容性的要点是使用标准的习惯作为软件内部的信息传递:
· 使用标准的文件格式:象UNIX的文本文件只是一系列按次序排列的字符。
· 标准的数据结构:象LISP系统,所有的数据、程序都用二进制树来描述(被称
为LISP清单)
· 标准的用户界面:所有的工具软件无论在Windows,OS/2,MacOs都只用一个样子
与使用者见面,都是用相同的部件如窗体、图标、菜单等。
已经有许多的标准通道协议抽象了各种数据类型,才使软件可以相互配合实现了
所有重要的操作,例如 CORBA and Microsoft's OLE-COM (ActiveX)。
6. 效率:软件对硬件资源的需求较低的能力,如处理时间(CPU占用率)、内/外
存的占用率、通讯设备的带宽。
它与性能几乎是同意词。首先,我们不应过份地强调它,过份重视效率则会使软
件变得十分特别而失去可重用性及兼容性!;而且算法,数据结构特别也使程序
难于理解而难修改及代码联系过于紧密;"在正确之前不要考虑速度"的名言是正
确的,硬件配置方案及硬件的发展比软件设计上花心思能更有效地解决速度上的
问题。但是在下列情况下效率十分重要:


--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.185.123]

[关闭][返回]