zoukankan      html  css  js  c++  java
  • 《毛毛虫团队》第六次作业:团队项目系统设计改进与详细设计

    一:实验名称:团队项目系统设计改进与详细设计


    二:实验目的与要求

    (1)掌握面向对象软件设计方法; (2)完善系统设计说明书,掌握面向对象详细设计内容、设计原理和技术。

    三:实验步骤

    任务一:团队项目系统设计改进;
    任务二:团队项目系统详细设计;
    任务三:回答所给出的问题;
    任务四:发布博文,陈述本次作业实施过程,描述团队成员的具体分工、占整个任务的工作量比例及完成各自任务的实际时间,总结团队项目详细设计心得,总结中要体现每个成员的工作内容。


    ### 四:实验内容
    项  目
    内  容
    这个作业属于哪个课程
    任课教师博客主页链接
    这个作业的要求在哪里
    作业链接地址
    团队名称
    毛毛虫组
    作业学习目标
    1.掌握面向对象软件设计方法;
    2.掌握面向对象详细设计内容、设计原理和技术。

    一:毛毛虫组团队项目系统设计改进

    ####a:《毛毛虫组项目系统设计说明书》初稿不足之处:
        1.本团队的项目名称是仓库管理系统,在上一次的实验团队项目需求改进与系统设计中我们对软件系统结构模型建模做了类图的补充,这一次通过进一步学习,对结构建模部署图做了补充,使其可以对仓库管理系统运行时的架构一目了然。我们团队在软件工程课程中学习的几种UML建模用例图、类图、对象图、序列图、协作图、状态图、活动图、组件图、部署图针对仓库管理系统已基本全部完善。完善部分写入了改进的《软件系统设计说明书》
        2.每一次实验任务都是对自身项目相关知识的学习、改进,在前几次的实验中,我们把主要方向定在了用户的需求上,而忽视了管理员管理仓库、如何管理仓库的细节,这次实验中我们对此进一步咨询了相关人员,还通过网上查阅了解细微知识。
    ####b:Github仓库中更新的《软件系统设计说明书》的链接地址:https://github.com/maomaochongzu/tuanduizuoyeshiyanba

    二:团队项目系统详细设计

        软件系统详细设计已上传至GitHub仓库:《软件系统详细设计说明书》

    三:问题回答

    (1)何谓软件体系结构、软件设计模式?

        (1)软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。
        虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:1.Dewayne Perry和A1ex Wo1f认为软件体系结构是具有一定形式的结构化元素,即构件的集合;2.Mary Shaw和David Garlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计;3.Kruchten指出,软件体系结构有四个角度:概念角度、模块角度、运行角度、代码角度;4.Hayes Roth则认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。
        (2)软件设计模式就是Uml统一建模语言的技巧性概念。主要研究各个类模块和接口之间的安排与搭配,也是为程序员提供交流的一个很好的平台。利用软件设计模式您可以做出质量更高,代码更少,扩充更容易的软件。设计模式主要分三个类型:创建型、结构型和行为型。其中,创建型有单例模式、抽象工厂、工厂方法、建造模式、原型模式;行为型有迭代器模式、观察者模式、模板方法、命令模式、状态模式、策略模式、职责链模式、中介者模式、访问者模式、解释器模式、备忘录模式;结构型有组合模式、外观模式、代理模式、适配器模式、装饰模式、桥模式、享元模式。
    (2)什么是C/S与B/S结构?
        1.B/S结构:B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
        B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。
        2.C/S结构:C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
        C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。
        2.C/S结构: (3)什么是MVC设计模式?
        MVC是一种目前广泛流行的软件设计模式,近来,随着J2EE的成熟,它正在成为在J2EE平台上推荐的一种设计模型,也是广大Java开发者非常感兴趣的设计模型。MVC模式也逐渐在PHP和ColdFusion开发者中运用,并有增长趋势。随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的依据。
        (一)MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层――模型层、视图层、控制层。
        (1)视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
        (2)模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
        (3)控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
        (二)MVC的优缺点如下:
        (1)MVC的优点大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。
        首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,也易于维护。
        其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。
        再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。因此,控制层可以说是包含了用户请求权限的概念。
        最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。
        (2)MVC的缺点MVC的设计实现并不十分容易, 理解起来比较容易,但对开发人员的要求比较高。MVC只是一种基本的设计思想,还需要详细的设计规划。模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。
        综合上述,MVC是构筑软件非常好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图以及控制层, 使得你会认真考虑应用的额外复杂性,把这些想法融进到架构中,增加了应用的可拓展性。
    ###四:团队项目总结 (1)本次实验实施过程:
        在本次实验中,我们团队首先对上次作业中存在的问题进行了讨论,在之前信息采集的基础上,对上次的项目系统设计说明不足之处进行补充并加以改进,并且更新了《软件系统设计说明书》,讲其上传到GitHub仓库中,然后了解了软件体系结构、软件设计模式以及C/S与B/S结构,并搜集了关于MVC设计模式的相关内容,深入了解了其优缺点,利用面向对象方法,详细分析系统设计模型,总结了之前UML的相关内容,找出不足之处在小组内讨论,最后大家分工合作,完成各自分配到的任务,将其整理到本次博文当中。
    (2)团队成员在系统设计的具体分工及占整个系统设计文档任务的工作量比例:
    姓  名
    任  务
    占  比
    王雪刚 回答所给出的问题
    陈述本次作业实施过程
    25%
    陈  靖 团队项目系统详细设计 25%
    陈倩倩 团队项目系统设计改进 25%
    唐  璐 总结团队项目详细设计心得 25%
    (3)团队项目详细设计心得:
        在本阶段中,为开发过程提供系统处理过程的详细说明,使团队成员对整个系统所需实现的功能以及系统的功能模块的划分、实现和数据库的表结构清楚的认识。在完成了前期的调研以及与成员们进行了深入的探讨和分析的基础上,明确该系统应具有的功能、性能与界面,并在此基础上不断迭代,进一步完成项目后续的设计与开发。虽然系统前期的工作繁重,但通过不断地更正和总结,为此次的详细设计做了更好的铺垫。团队成员互相的协作,有效的完成了此次详细设计。
  • 相关阅读:
    Windows 上如何安装Sqlite
    StringBuffer类讲解
    Android Debug Bridge(adb)百度
    0117调试 (Logout调试)
    android cmd adb shell 出现 Device offline的状态下
    菜鸟:为什么要用不同的包 android
    0105Activity+Intent
    adb shell 后感
    0116sqlite
    iptables
  • 原文地址:https://www.cnblogs.com/maomaochongzu/p/10947493.html
Copyright © 2011-2022 走看看