202214-无霸哥 实验八 团队作业5:团队项目需求建模与系统设计(2)

项目 内容
班级博客 链接
作业要求 链接
团队名称 无霸哥
团队成员分工描述 王孜睿:软件需求规格说明书;
牛靖威:博客撰写;
曹霖枫:软件系统设计说明书;
团队课程学习目标 (1)学习使用建模工具Visio;
(2)掌握软件系统总体设计过程,面向对象软件系统设计原理
这个作业在哪些方面
帮助团队实现学习目标
(1)在团队编制项目需求规格说明书的过程中,了解了项目的特点和知识点;
(2)在团队编制项目系统设计说明书的过程中,掌握软件系统总体设计过程、设计原理和启发式规则。;
(3)在学习系统总体设计过程、设计原理和启发式规则的过程中,掌握面向对象设计原理等内容;
团队博客链接 无霸哥
团队项目Github仓库地址链接 GIthub

任务1:使用Visio,应用面向对象分析方法(OOA),完善团队项目的《软件需求规格说明书》,并将该文档上传到团队项目Github仓库

  • (1)设计用例图表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;

  • (2)参考《构建之法—现代软件工程》8.5节功能的定位和优先级,给出功能分析的四个象限;

  • (3)选择适当的UML模型,建立问题域对象模型;

  • (4)完善项目的WBS,估计各项任务所需时间

    各项任务所需时间:

    任务 所需时间/(min)
    需求分析 60
    开发环境部署 200
    系统设计 120
    编码实现 300
    测试验收 60
    用户验收 40
    试运行与维护 120

任务2:查阅资料,回答以下问题:

(1)什么是C/S结构?

  • 什么是C/S结构?
    C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。它可以分为客户机和服务器两层:
    第一层: 在客户机系统上结合了界面显示与业务逻辑;
    第二层: 通过网络结合了数据库服务器。
    简单的说就是第一层是用户表示层,第二层是数据库层。
  • C/S结构优缺点:
    优点:
    • 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快。
    • 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
    • C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
    • 安全性能可以很容易保证,C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。
      缺点:
    • 兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
    • 开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需要改变。
    • 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。

(2)什么是B/S结构?

  • 什么是B/S结构?
    B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。B/S架构的系统无须特别安装,只有Web浏览器即可。
    B/S架构的分层:与C/S架构只有两层不同的是,B/S架构有三层,分别为:
    第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
    第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
    第三层数据层:主要是接受客户端请求后独立进行各种运算。
  • B/S结构优缺点:
    优点:
    • 分布性强,客户端零维护。只要有网络、浏览器,可以随时随地进行查询、浏览等业务处理。
    • 业务扩展简单方便,通过增加网页即可增加服务器功能。
    • 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
    • 开发简单,共享性强。
      缺点:
    • 在跨浏览器上,BS架构不尽如人意。
    • 客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。
    • 在速度和安全性上需要花费巨大的设计成本。
    • 功能弱化,难以实现传统模式下的特殊功能要求。

(3)什么是MVC设计模式?

  • 什么是MVC设计模式?
    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

任务3:以任务1的成果为基础,使用Visio,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书以回答:软件是如何实现用户需求的?文档内容要求如下:

(1)采用适合的模式设计软件系统总体结构;
(2)设计软件系统数据库逻辑结构;
(3)说明软件重用方案;
(4)设计关键类的重点服务。

文档下载地址

任务4:完成《实验八 团队作业5:团队项目需求建模与系统设计(2)》团队博文作业

  1. 完成情况:如图所示
  2. 各项任务完成时间
任务内容 所用时间(min) 负责人
任务一 240 王孜睿
任务二 30 牛靖威
任务三 240 曹霖枫
任务四 300 牛靖威
  1. 结合实验七、实验八的学习体验,对比陈述结构化软件分析与设计、面向对象分析与设计两类软件开发技术的异同。
  • 基本概念方面:
    • 结构化方法学又被称生命周期方法学或传统方法学。软件从设计者诞生开发想法起始,到没有人用、被废弃结束,称为软件的生命周期。传统的软件开发方法中,软件的生存周期分为三个大的阶段,即软件定义阶段,开发阶段,维护阶段。详细又可以分为问题定义、可行性分析、需求分析、系统设计、系统实现、后期维护等阶段。
    • 面向对象方法学是一种把面向对象程序设计语言的思想应用于软件开发过程,指导开发过程的方法。面向对象方法学由以下三部分面向对象分析、面向对象设计、面向对象程序设计组成。面向对象开发是按照人的逻辑概念,思维方式去解决问题,使软件开发时的代码重用性和可靠性大大提高。也使软件更容易被人理解,从而提高软件后期运行易维护性。
  • 开发过程方面:
    • 结构化开发分为以下五个阶段:系统规划阶段、系统分析阶段、系统设计阶段、系统实施阶段、系统运行阶段。系统规划阶段的内容主要为明确软件的发展规划,确定用户对软件需求,并制定软件开发的计划。系统分析阶段的内容有解析软件所对应的工作任务,工作任务中的数据和数据流图,软件的功能所需要的技术支持和选择。系统设计阶段的工作有设计系统总体的结构,相关硬件设施的建设,相关环境的建立与进一步确定和数据库、数据结构设计等。系统实施阶段的内容为按照上衣阶段的成果,协调技术人员开始编程同时对软件编程开发人员展开培训,测试等相关任务。系统运行阶段的工作包括以下三个部分即对软件的运行管理,用户评价反馈,后台数据监省察。在软件运行时,一定会出现一些问题,这是也一定需要对软件进行修改,维护和调整,又时甚至会出现影响比较大的问题,如用户需求发生重大改变,相关技术革新,例如网络系统的更新换代,平台的升级更新,虽然这些问题可能出现的时间会比较晚,但也要即使监管并进行相关软件功能或者模块的升级。
    • 面相对象开发分为以下四个阶段面向对象分析阶段(OOA)、面向对象设计阶段(OOD)、面向对象编程阶段(OOP)、面向对象测试阶段(OOT)。面向对象分析阶段的工作主要有需求分析以及建立相关需求模型。具体来说就是建立软件中需要的相关的完整的对象,包括这些对象应具有的属性和相关行为。面向对象设计阶段的主要任务就是将上一阶段得到的需求转化为有技术能力实现的,成本符合预算的并且能够达到用户需求的软件实现方案。具体呢就是确定软件的高层架构,确定需要的类以及对外接口和实现算法等。面向对象编程阶段的工作内容就是实现上一阶段的设计结果,并在编程的过程中修正出现的设计不到位的部分,实现预计的各项功能。面向对象测试阶段的主要工作任务就是测试软件各项功能是否存在问题,各项性能如容错性,稳定性,安全性等各项性能,以让软件不断完善。
  • 总结:
    • 传统方法学编程是以过程为中心的,尽量把大的程序划分为许多个相对独立、功能尽可能简单的小的程序模块,其强调重视过程,重视功能的结构化,和简单化。最终实现功能是通过一系列过程的调用和处理来完成。虽然经过时间累积开发人员们的不断完善,传统开发方法一直都有新的成果,模式出现,但无可避免的被面向对象开发方法所冲击。
    • 面向对象编程是将对象作为中心的,其功能的实现是对一系列相关对象的操作,给对象发送消息,再由对象来执行相对应的一系列操作并返回结果,重在强调对象。而在理论上,面向对象的程序设计方法可以生产更良好的模块内聚和耦合特性,更好得实现软件开发的逻辑原则,这也使得面向对开发的软件更易于重用与维护,也相对更加稳定,质量也相对更高。
  1. 从团队分工和协作学习角度,陈述团队实施Visio建模工具学习、项目需求分析建模、软件系统设计等学习活动的心得。
  • 团队分工:通过本次实验,我们发现了明确合理的团队分工对团队项目的进展有极大的正向促进作用。在本次实验中,我们分配了两名成员进行Visio建模工具学习,一名成员进行项目需求分析建模,两名成员进行软件系统设计,在Visio建模工具学习时,两名成员分别有所侧重得学习,再进行交流,时间上比一名成员进行学习效率提高了不少;在项目需求分析建模方面,之分配了一名成员来进行,而在软件系统设计方面,两名成员相互分配不同的方面进行,从整个系统的需求分析,设计上来说总共是三名成员进行了系统的分析和设计。合理的团队分工确实提高了整个项目的进展效率。
  • 协作学习:在本次实验中,各个成员协作学习,合理分配不同的学习模块配合大大提高了项目的进展速度。每个成员有每个成员不同的擅长的模块,在此基础上各成员进行学习模块的分配,提高了每名成员的学习效率,提高了整个模块的进展速度,在协作学习的基础上,各个成员也更加容易做到有效的沟通。
posted @ 2022-06-13 23:59  无霸哥d  阅读(60)  评论(1编辑  收藏  举报