《Miracle_House》团队项目系统设计改进

一、团队项目系统设计改进:

1.分析项目系统设计说明书初稿的不足,特别是软件系统结构模型建模不完善内容:

    对于原文档中,设计图中存在的错误以及文字描述不准确的地方进行了修改。

2. 团队项目Github仓库中更新《软件系统设计说明书》:https://github.com/cy0325/Team_work.git

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

1.在OOD的软件项目详细设计阶段,开发团队将进一步细化分析系统设计模型,精化类的属性和操作,详细定义类中服务的参数和具体实现逻辑,依据软件开发环境调整类的层次关系和关联关系,定义软件数据库表结构等等。请采用适当的建模方法完成团队项目的系统详细设计:

2.团队项目Github仓库《软件系统详细设计说明书》链接:https://github.com/cy0325/Team_work.git

3.在团队博客发布博文,陈述本次实验实施过程,描述团队成员的具体分工、占整个实验任务的工作量比例及完成各自任务的实际时间,总结中要体现每个成员的工作内容:

 姓名

任务 

  时间

 汝春瑞

   改进《软件系统设计说明书》

 2.5h

 曹阳

               改进《软件系统设计说明书》

 2.5h

 梁玉龙

编辑博文,六个问题

 2.8h 

 赵红波

 编辑博文,项目设计心得

 2.8h

 傅康

               编写《软件系统详细设计说明书》

 2.8h

 丁伟轩

               编写《软件系统详细设计说明书》

 2.8h


4.总结团队项目详细设计心得:

    在这次团队项目改进过程中,通过对《软件系统设计说明书》不断地改进以及对《软件系统详细设计说明书》的撰写,使我们对软件系统的各个层次有了更深的理解,巩固了对系统分析与设计的应用。

以下是本次团队项目中可能存在的一些问题,及改进建议(希望大家以后避免这些问题的出现):

1、前期需求不明,造成设计时目的不明确

改进方法:需求要完全明确是很难做到,但在局部相对独立功能上应该要尽量明确。如:尽量能明确注册需要哪些信息、每个表单是用什么控件、处于什么范围、列表显示哪些字段、查询需要什么条件有明确的说明,这样可以在后期测试时少掉一半的需求建议或bug。

2.开发时因分工不明确,每个页面可能团队所有的人都有修改,这其实出问题的风险是非常大。

改进方法:数据层、逻辑层、UI层,以及UI的各个功能分工,都需要责任到人。

3.计划不能按期完成,大致三种原因,1、计划不合理;2、人员没有抓紧;3、因其它计划外的原因造成延误。
改进办法:制订计划项目组长需与相关成员讨论以决定计划完成日期,制订时间需要科学合理,如果明确后,相关成员需要尽量按时完成,若有特殊原因,比如技术难题,计划外的事情耽误等等,需要给出理由。再由组长和成员共同商议解决时间,以保证全局的进度不受影响。

5.回答以下六个问题:

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

    软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。

    软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

  • 结构模型。这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。研究结构模型的核心是体系结构描述语言。

  • 框架模型。框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题结构。

  • 动态模型。动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。

  • 过程模型。过程模型研究构造系统的步骤和过程,因而结构是遵循某些过程脚本的结果。

  • 功能模型。功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作一种特殊的框架模型。

(2)什么是C/S与B/S结构

   C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到client端和sever端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级。升级难,可能是再做一个全新的系统。

   B/S结构,即BRower/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面通过www浏览器实现。

    利用了不断成熟的www浏览器技术,结合浏览器的多种Script语言(VBScript,javaScript)和Active技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础上,比C/S有更高的要求。B/S结构的程序架构是发展的趋势,从MS的.net系列的Biz Talk2000 Exchange 2000等。

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

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

(1)模型:模型持有所有的数据、状态和程序逻辑。模型独立于视图和控制器。

(2)视图:用来呈现模型。视图通常直接从模型中取得它需要显示的状态与数据。对于相同的信息可以有多个不同的显示形式或视图。

(3)控制器:位于视图和模型中间,负责接受用户的输入,将输入进行解析并反馈给模型,通常一个视图具有一个控制器。

   优点在于:用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。也就是说逻辑层面全部位于C(controller)层,另外两层专注于视图层和模型(数据层)的书写。那么很显而易见Controller层在MVC框架中起到了很重要的作用(承上启下)。 

(4)结合项目系统设计体验,简要说明(1)、(2)、(3)的内容与软件系统设计的关系。  

    我们从MVC框架模式中来分析设计模式与框架之间的关系。透过SmallTalk MVC框架将帮助我们了解设计模式与框架之间的关系。
    MVC中包含三类对象。模型、视图和控制器。视图和模型的分离所使用的设计模式就是Observer 设计模式(Observer设计模式是二十几种设计模式之一)视图的可嵌套使用的是ComPosite设计模式。视图与控制器的关系使用的是Strategy设计模式。当然,MVC框架模式中还使用的其他设计模式。

    设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是 一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设 计模式的思想可以在框架设计中进行应用。

框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应用的领域。

1)从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。

2)从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。

3)以第二条为基础,可以得出设计模式比框架更容易移植:框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。

(5)详细设计的常见工具有哪些?

(1)程序流程图。程序流程图又称为程序框图,是使用最广泛然而也是用得最混乱的一种描述程序逻辑结构的工具。它用方框表示一个处理步骤,菱形表示一个逻辑条件,箭头表示控制流向。其优点是:结构清晰,易于理解,易于修改。缺点是:只能描述执行过程而不能描述有关的数据。
(2)盒图。盒图是一种强制使用结构化构造的图示工具,也称为方框图。其具有以下特点:功能域明确、不可能任意转移控制、很容易确定局部和全局数据的作用域、很容易表示嵌套关系及模板的层次关系。
(3)PAD图。PAD是一种改进的图形描述方式,可以用来取代程序流程图,比程序流程图更直观,结构更清晰。最大的优点是能够反映和描述自顶向下的历史和过程。PAD提供了5种基本控制结构的图示,并允许递归使用。
PAD的特点有:使用PAD符号设计出的程序代码是结构化程序代码;PAD所描绘的程序结构十分清晰;用PAD图表现程序的逻辑易读、易懂和易记;容易将PAD图转换成高级语言源程序自动完成;即可以表示逻辑,也可用来描绘数据结构;支持自顶向下方法的使用。
(4)PDL。PDL也可称为伪码或结构化语言,它用于描述模块内部的具体算法,以便开发人员之间比较精确地进行交流。语法是开放式的,其外层语法是确定的,而内层语法则不确定。外层语法描述控制结构,它用类似于一般编程语言控制结构的关键字表示,所以是确定的。内层语法描述具体操作,考虑到不同软件系统的实际操作种类繁多,内层语法因而不确定,它可以按系统的具体情况和不同的设计层次灵活选用,实际上任意英语语句都可用来描述所需的具体操作。用它来描述详细设计,工作量比画图小,又比较容易转换为真正的代码。
PDL的优点:可以作为注释直接插在源程序中;可以使用普通的文本编辑工具或文字处理工具产生和管理;已经有自动处理程序存在,而且可以自动由PDL生成程序代码。
PDL的不足:不如图形工具形象直观,描述复杂的条件组合与动作间对应关系时,不如判定树清晰简单。

(6)如何绘制符合规范的流程图?

1、程序流程图的作用

   程序流程图的作用程序流程图的作用程序流程图的作用 程序流程图是人们对解决问题的方法、思路或算法的一种描述。

   流程图的优点:

   (a)采用简单规范的符号,画法简单;

   (b)结构清晰,逻辑性强;

   (c)便于描述,容易理解。

2、流程图采用的符号

程序流程图的画法

程序流程图的画法

程序流程图的画法

三种循环的流程图画法:

      C语言编程中常用的三种循环为for(;;),while  和 do-while。    

 1.for循环

          for循环形式: for(表达式1;表达式2;表达式3)

          流程图:

            程序流程图的画法

           图1 for循环流程图

2. while循环

           while循环形式:

                               while(判断条件)

                                 {

                                    执行语句;

                                  }

                流程图:

          程序流程图的画法

            图2 while循环流程图

3.do-while循环

           do-while循环形式:

                                    do
                                        {

                                          执行语句;

                                        }while(条件判断)

           do-while循环流程图:

           程序流程图的画法  

            图3 do-while循环流程图

 

 

原文地址:https://www.cnblogs.com/Miracle-House/p/9141212.html