软件工程之设计与实现

软件设计和实现是软件工程过程的一个阶段,在此阶段会开发一个可执行的软件系统。软件设计和实现活动一般来说总是存在重叠,软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系。实现是将设计实现为一个程序的过程。有时候会有一个独立的设计阶段,其中的设计会被建模和文档化。而其他时候设计存在于程序员的脑海中,或只是在白板或纸上大致地用草图画一下。设计是关于如何解决一个问题,因此总是有一个设计过程。

设计和实现紧密联系在一起,考虑一个设计时通常将实现问题考虑进来,如果使用面向对象语言编程,那么使用UML描述一个设计可能是正确的选择。如果使用Python这样的动态类型语言,那么UML就没那么有用了。敏捷方法通常是在非正式的设计草图基础上工作的,设计决策留给了程序员。

使用UML进行面向对象设计。为了开发一个系统设计,你需要:1、理解并定义上下文以及与系统的外部交互。2、设计系统体系结构。3、识别系统中的主要对象。4、开发设计模型。5、刻画接口。

系统上下文模型和交互模型所呈现的关于系统及其环境之间关系的视图是互补的。系统上下文模型是一种结构化模型,其中展示了所开发的系统的环境中的其他系统。交互模型是一种动态模型,其中显示系统在使用时如何与环境进行交互。

软件系统和系统环境之间的交互定义好之后,就可以以此为基础来设计系统体系结构。设计人员需要将这一知识与自身关于体系结构设计原则的通用知识以及更加详细的领域知识相结合。需要识别构成系统的主要构件以及他们之间的交互,然后要使用一种体系结构模型来设计系统的组织结构,例如客户-服务器模型。

随着对设计的理解进一步加深,需要对关于系统对象的想法进行精化。用例描述帮助你识别系统中的对象和操作。识别对象的方法有:1、对所要构建的系统的自然语言描述进行语法分析,对象和属性是名词,操作或服务是动词。2、使用应用领域中有形的试题或事物、角色、事件、交互、位置、组织单元等。3、使用基于场景的分析方法,其中依次识别并分析系统使用的各种场景,在每个场景中识别对象、属性和操作。

设计模型展示了一个系统中的对象或对象类,还展示了这些实体之间的关联和关系。这些模型是系统需求和系统实现之间的桥梁。它们必须是抽象的,以使得不必要的细节不会隐藏它们和系统需求之间的关系。然而,模型还是要包含足够的细节,以使得程序员可以做出实现决策。使用UML开发两种设计模型:1、结构模型,使用静态类及其关系描述系统的静态结构。2、动态模型,描述了系统的动态结构并展示了所期望的系统对象之间的运行时交互。可以使用三种UML模型:子系统模型、顺序模型、状态机模型。

设计过程的一个重要部分是设计中所包含的组件之间的接口的规格说明。接口设计关注刻画一个对象或一组对象的接口的细节,这意味着要定义由一个对象或一组对象所提供服务的型构和语义。接口在UML中可以使用类图来刻画。

设计模式是一种对于问题及其解决方案的本质的描述,从而使得解决方案可以在不同的环境中进行复用。模式和模式语言是描述最佳实践、好的设计的方式,其中捕捉了相关的经验,从而使其他人复用这些经验成为可能。设计模式的四个基本元素: 名字、问题域的描述、设计方案描述、效果陈述。

bb6d6f5cfca2a8a244414892e0614fe6.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值