软件工程-软件系统设计

软件系统设计

软件体系结构概念

软件体系结构包括构成系统的设计元素的描述,设计元素之间的交互,设计元素的组合模式以及在这些模式中的约束
风格,模式和框架
**体系结构风格:**用于描述某一特定应用领域中系统组织的惯用模式,反应了领域中众多系统所共有的结构和语义特性 比如 MVC就是一种常见的体系风格
**设 计 模 式 :**描述了软件系统设计过程中常见问题的一些解决方案,通常是从大量的成功实践中总结出来的且被广泛公认的实践和知识 比如 观察者模式: 他主要用于解决实践处理的问题
**软 件 框 架 :**软件框架是由开发人员定制的应用系统的骨架,是整个或部分系统的可重用设计,由一组抽象构件和构件实例间的交互方式组成

框架和体系结构的关系:

  • 体系结构的呈现形式是一个设计规约,而框架则是半成品软件
  • 体系结构的目的是知道软件系统的开发,而框架的目的是设计复用

框架和设计模式的关系:

  • 框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,且可以在不同的应用程序或者框架中应用
  • 设计模式的目标是改善代码结构,提高程序的结构质量;框架强调的是设计的重用性和系统的可扩展性,以缩短开发周期,提高开发质量

体系结构风格针对系统组织,对构成系统的构件的接口,行为模式,协作关系等体系问题的决策总和, 设计模式针对解决问题, 框架是整个应用的体系结构相当于一个半成品软件

软件设计原则

设计原则是系统分解和模块设计的基本标准,应用这些原则可以使代码更加了灵活,易于维护和扩展
抽象 封装 模块化 层次化 复用
高内聚 低耦合

软件体系结构风格

软件体系风格是描述特定系统组织方式的惯用范例,强调了软件系统中通用的组织结构

主程序-子程序风格
主程序-子程序风格是结构化程序设计的一种典型风格, 从功能的观点设计系统, 通过逐步分解和细化,形成整个系统的体系结构

管道-过滤器风格
这是把系统任务分成若干连续的处理步骤, 这些步骤由通过系统的数据流连接, 一个步骤的输出是下一个步骤的输入

以数据为中心的风格
仓库体系结构是一种以数据中心的体系结构,适合于数据由一个模块产生而由其他模块使用的情形, 适合于实现哪些经常发生改变,而且具有复杂数据处理的任务 但耦合度很高

层次结构

客户机/服务器结构
是一种分布式系统模型

事件风格
事件系统是将应用看成一个构件集合,每个构件直至发生对它有影响的事件时才有所动作

解释器风格
解释器是一个用来执行其他程序的程序。解释器针对不同的硬件平台实现了一个虚拟机。将高抽象层次的程序翻译成低抽象层次所能理解的指令,以此消除程序语言与硬件之间存在的语义差异
基本构件:(1)解释器引擎 (2)存储区:被解释的源代码;解释器引擎当前的内部控制状态的表示;程序当前执行状态的表示
连接器:对存储区域的访问

软件设计过程

模块化分解是很重要的一步

Web系统架构设计

数据库选择策略

测试题

软件体系结构是不同项目的相关人员之间沟通的使能器
良好的分层体系有利于系统的扩展与维护
设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识

实现分析模型中的所有需求和提供软件的完整描述是良好设计的特征

事件系统适用于word, excel等应用系统

微信抢票应用案例
一、问题背景与系统需求

某学校团委经常组织一些活动,让组织人员非常头疼的一个问题是活动票的发放。尤其是一些受学生欢迎的热门活动,因为原来采取排队领票或购票形式,经常出现的场景就是在活动票发放前两三个小时门外就排起长长的队伍。为了改善学生排长队领票的不便,校团委希望开发一款微信抢票应用,为学生们提供热门活动推送、校园活动抢票等服务。

整个抢票过程包括创建和发布活动、抢票和检票三个阶段,具体过程如下图所示。校团委相关部门负责创建和发布活动,校内学生可以查看活动的详细信息。在抢票开始时,学生可以参与指定活动的抢票。如果学生成功抢到活动票,系统将自动生成一个带有二维码的电子票,学生可以查看自己的电子票;如果没有抢到票,系统将未抢到票的消息反馈给学生。

在活动开始时,校团委工作人员在活动入场处进行检票,学生可以持电子票检票参加活动。对于学生持有的电子票,工作人员使用二维码扫描枪进行扫描,验票成功即可入场,验票成功的条件是电子票有效且未被使用;学生也可以持自己的学生证,由工作人员通过学号查询电子票,再手动确认检票。

开发团队根据上述业务流程和要求,确定了微信抢票应用的系统需求。

  1. 功能需求

活动管理员可以发布和维护最新的校园活动信息,包括活动名称、活动详情介绍、活动时间、活动地点、抢票数量、抢票时间等。
本校学生使用自己在学校信息门户的账号和密码实现微信号与校园账号的绑定。
学生可以查看校园活动的详细信息。
学生可以在活动抢票时段进行微信抢票,目前规定一个账号一次只能抢一张票。
学生在抢票成功之后可以获得系统生成的一张二维码电子票。
抢到票的学生在抢票未结束时可以退票。
抢到票的学生在活动开始时可以使用电子票通过检票进入活动现场。
2. 非功能需求

系统应能够支持500个用户并发访问。
系统应当支持iOS和Andriod两种主流手机操作系统。
在正常网络环境下,系统的响应速度应该控制在5秒以内。
所交付的系统源代码要求格式规范、风格统一,易于阅读和维护。
系统应该具有良好的架构设计,可扩展性强。
系统应具有良好的用户体验,并充分体现微信的交互特点。
系统应该保证安全可靠。
考虑到热门活动的门票可能比较紧俏,个别大学生可能抱有好奇心用非法手段钻系统的漏洞,开发团队认真讨论了可能出现的安全性问题,并提出了可能的应对方案。

问题1:个别学生可能会利用刷票工具或者自己编写程序进行抢票,这样会造成遵守规定的学生无法抢到热门活动票。
解决方法:如果直接从活动详情页面点击进行抢票,就需要在应用程序中自己处理刷票的问题,这样势必会增加实现的难度。如果从微信中直接发送消息,那么抢票命令只能由操作人从微信公众号手动发出,刷票程序很难替代,因此最终采取抢票和退票均由微信命令进行操作的方式。

问题2:个别学生可能复制别人抢到的电子票,并使用复制票进行检票入场。
解决方法:由于抢票活动是限制在校内学生参加的,所以可以把学号与电子票进行关联,一个学号只能对应一张电子票。另外,如果入场时由于手机忘带或者没电等造成无法出示电子票,也可以直接使用学生证通过学号进行检票。

在程序设计中 要尽可能对程序代码进行优化是错误的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值