软件工程--实践者的研究方法[设计的概念]

本文探讨了软件设计在软件工程中的重要性,强调了设计是建立软件质量和实现需求的关键步骤。设计过程是迭代的,从高抽象层次到低抽象层次,包括数据设计、体系结构设计、接口设计和构件级设计。设计模型应展示清晰的结构、模块化和可读性,以实现功能、易用性、可靠性和性能等质量属性。软件设计遵循一些基本原则,如抽象、模块化、信息隐藏和关注点分离,并随着时间的发展引入了设计模式、面向对象等概念。最后,文章提到了软件质量属性FURPS和设计历史的演变。

11.1 软件工程中的设计

  • 需求模型注重描述所需要的数据功能行为
  • 设计模型提供了软件体系结构数据结构接口构件的细节。
  • 设计创建的模型是实现系统所必须的。
  • 设计模型的质量可以被评估改建
  • 设计是确立软件质量的关键步骤。
  • 软件设计包括一系列原理概念实践,用以指导高质量的系统和产品开发。
  • 软件设计的目标是创作坚固(稳定)、适用令人愉悦的模型或表示(这里借鉴了建筑上的观念
  • 坚固是指程序应该不含任何妨碍其功能的缺陷。适用是要程序符合开发的目标。赏心悦目是要求使用程序的体验应是愉快的。
  • 设计中设计师的做法
    • 先是实现多样化、再进行聚合。
  • 多样化是指要获取多种方案和设计的原始资料,包括目录、教科书和头脑中的构件、构件方案和知识。
  • 聚合是把各种信息汇聚在一起,从其中挑选能够满足需求工程和分析模型所定义的需求的元素。进行经取舍。
  • 多样化和聚合需要直觉和判断力,其质量取决于设计师的水平、设计方式、评价标准、迭代过程等。

分析模型 -> 设计模型
在这里插入图片描述
在这里插入图片描述

  • 数据或类设计:将类模型转化为设计类的实现及软件实现所要求的数据结构
  • 体系结构设计:定义了软件的主要结构化元素之间的关系、用于达到系统需求的体系结构风格和模式以及影响体系结构实现方式的约束。
  • 接口设计:描述了软件协作系统之间、软件使用者之间是如何通信的。
  • 构件级设计:将软件体系结构的结构化元素变换为对软件构件的过程性描述。
    在这里插入图片描述
  • 软件设计和软件质量密切相关。
  • 设计是软件工程中形成质量的地方,设计为我们提供了可以用于质量评估的软件表示。
  • 设计是我们能够将用户需求准确地转化为软件产品或系统的唯一方法。
  • 软件设计是所有软件工程活动和随后的软件支持活动的基础
  • 软件设计和编码不同!!!

11.2 设计过程

  • 软件设计是一个迭代的过程,通过设计过程,需求被变换为用于构建软件的“蓝图”。
  • 初始时,蓝图描述了软件的整体视图,也就是说,设计是在高抽象层次上的表达,在该层次上可以直接跟踪到特定的系统目标和更详细的数据、功能和行为需求。
  • 随着设计迭代精化将导出更低抽象层次的设计表示。这些表示仍然能够追踪到需求,但是更加错综复杂。
  • 指导评价良好设计迭代演化的三个特征:
    • 设计必须实现所有包含在分析模型中明确需求,而且必须满足客户期望的所有隐含需求
    • 对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的可理解的指南。
    • 设计必须提供软件的全貌,从实现的角度说明
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值