实验九 FBG 团队项目需求改进与系统设计

任务一git

A、《项目需求规格说明书》分析github

  根据老师的指导以及本周所学的OOA,分析改进上周编写的《项目需求规格说明书》,发现需求项目书UML图例描述不够完善,仅仅是用例图没办法更好的表示出软件设计,因此后期又加了其余UML模型,具体状况请见《软件需求规格说明书》1.1版本(https://github.com/FBGfbg/xuqiu),在此以前特介绍一下OOA以下:数据库

Object-Oriented Analysis——面向对象分析法安全

OOA的主要优势网络

  (1)增强了对问题域和系统责任的理解;app

  (2)改进与分析有关的各种人员之间的交流;数据库设计

  (3)对需求的变化具备较强的适应性;性能

  (4)支持软件复用;学习

  (5)贯穿软件生命周期全过程的一致性;编码

  (6)实用性;

  (7)有利于用户参与。

OOA的主要原则。

  (1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。抽象是造成概念的必须手段。

  抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,可是分析员并不须要了解和描述它们的一切,只须要分析研究其中与系统目标有关的事物及其本质性特征。第二,经过舍弃个体事物在细节上的差别,抽取其共同特征而获得一批事物的抽象概念。

  抽象是面向对象方法中使用最为普遍的原则。抽象原则包括过程抽象和数据抽象两个方面。

  过程抽象是指,任何一个完成肯定功能的操做序列,其使用者均可以把它看做一个单一的实体,尽管实际上它多是由一系列更低级的操做完成的。

  数据抽象是根据施加于数据之上的操做来定义数据类型,并限定数据的值只能由这些操做来修改和观察。数据抽象是OOA的核心原则。它强调把数据(属性)和操做(服务)结合为一个不可分的系统单位(即对象),对象的外部只须要知道它作什么,而没必要知道它如何作。

  (2)封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽量隐蔽对象的内部细节。

  (3)继承:特殊类的对象拥有的其通常类的所有属性与服务,称做特殊类对通常类的继承。

  在OOA中运用继承原则,就是在每一个由通常类和特殊类造成的通常—特殊结构中,把通常类的对象实例和全部特殊类的对象实例都共同具备的属性和服务,一次性地在通常类中进行显式的定义。在特殊类中再也不重复地定义通常类中已定义的东西,可是在语义上,特殊类却自动地、隐含地拥有它的通常类(以及全部更上层的通常类)中定义的所有属性和服务。继承原则的好处是:使系统模型比较简练也比较清晰。

  (4)分类:就是把具备相同属性和服务的对象划分为一类,用类做为这些对象的抽象描述。分类原则其实是抽象原则运用于对象描述时的一种表现形式。

  (5)聚合:又称组装,其原则是:把一个复杂的事物当作若干比较简单的事物的组装体,从而简化对复琐事物的描述。

  (6)关联:是人类思考问题时常常运用的思想方法:经过一个事物联想到另外的事物。能令人发生联想的缘由是事物之间确实存在着某些联系。

  (7)消息通讯:这一原则要求对象之间只能经过消息进行通讯,而不容许在对象以外直接地存取对象内部的属性。经过消息进行通讯是因为封装原则而引发的。在OOA中要求用消息链接表示出对象之间的动态联系。

  (8)粒度控制:通常来说,人在面对一个复杂的问题域时,不可能在同一时刻既能纵观全局,又能洞察秋毫。所以须要控制本身的视野:考虑全局时,注意其大的组成部分,暂时不详察每一部分的具体的细节;考虑某部分的细节时则暂时撇开其他的部分。这就是粒度控制原则。

  (9)行为分析:现实世界中事物的行为是复杂的。由大量的事物所构成的问题域中各类行为每每相互依赖、相互交织。

 状态图连接:https://www.processon.com/diagraming/5b0e072ae4b009aef58fa653

 

B、功能分析四象限

连接:https://www.processon.com/view/link/5b0e10e2e4b0e5f3aa6db8d7

 

C、团队项目WBS

 

D、用户故事

   我是一位妈妈,个人孩子今年在上小学五年级。我像往常同样检查孩子的做业。我跟孩子每次都须要花费好长时间才能勉强完成做业。我特别渴望解决咱们当下的问题。终于我遇到了它。小学生课后习题答案查询app,是它拯救了我,也挽回了我作家长的威严。我先注册登陆了。发现有好几个查询方式,我一一试了便。第一个查询方式是拍照查询,它的操做特别简单方便,只需把所要查询的题目拍下来搜索便可。第二个查询方式是精准查询,它的界面有四个选项构成的分别是孩子所读年级的选择,教材的选择,章节的选择,题目的选择。经过它所得出的答案是特别精准的,没有任何差错的。第三个查询方式是扫码查询,它的特别之处就是把所用教材背后的条形码,放入扫码区就会一会儿能够查询到整本书上全部的课后习题。这三种查询方式中我大部分所用的是拍照查询,选择这个的主要缘由是只需会拍照就行,对咱们这些文化水平较低的家长而言没有什么要求。自从用了这个app以后我省出了许多空闲时间,跟孩子的感情也更深了。维护家长的威严,加深与孩子之间感情的最好选择就是它——小学生课后习题查询app

E、团队成员预估任务时间

设计阶段

两周

系统实现

两周

APP运行与维护

一周

F、制做看板图和燃尽图

初始的看板图和燃尽图为下:

在这个过程当中,咱们团队对已经完成的任务和之后要完成的任务进行了大概的划分,燃尽图以下:

 

如下这一版是对整个项目作了细化之后完整的WBS作出来的成果:

 

 

其中看板图标签绿色表明家长的功能,紫色表明教师的功能,灰色表明管理员的功能

 

任务二

设计团队项目系统整体结构和数据库逻辑结构(E-R图)

系统E-R图连接:https://www.processon.com/diagraming/5b0df204e4b037160973e070

任务三

软件系统概要设计说明书连接:https://github.com/FBGfbg/xuqiu

任务四

团队成员具体分工及比重:

团队成员

任务

比重

马玉婷

任务1.a 完善《需求规格说明书》

任务1.b 功能分析的四个象限

任务1.e制做任务时间表

任务1.f 建立看板图和燃尽图

任务3 撰写团队项目软件系统设计说明书

任务4 编辑博客

35.41%

马美玲

任务1.a 完善《需求规格说明书》

任务1.c 编制团队项目的WBS

任务2 设计系统整体结构、制做E-R图

任务3 撰写团队项目软件系统设计说明书

35.41%

益西卓嘎

任务1.d 以讲故事的方式介绍项目中的功能

任务1.g 在博文中编辑改进内容协助调研

29.18%

 两个问题:
1、系统整体设计和需求分析的关系是什么?
   需求分析的结果是系统设计的依据。
   需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员通过深刻细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而肯定系统必须作什么的过程。需求能够是用户提出,也能够是经过需求分析师分析挖掘用户数据、行为等获得,但归根到底仍是提出“想要什么”。
   系统设计是根据系统分析的结果,运用系统科学的思想和方法,设计出能最大限度知足所要求的目标 (或目的) 的新系统的过程。是根据需求对目标(能够是软件系统、也多是硬件设备等)进行建模,使之知足需求中的要求。
   需求分析关注系统“作什么”,设计关注“如何作”,其实这是一个很模糊的说法。不管是在结构化方法中仍是在面向对象的方法中,需求分析的结果既包括了“作什么”也部分包括了“如何作”,只不过描述“如何作”时抽象的层次比较高。客户在提出系统需求时,可能对“如何作”提出一些约束条件,开发人员进行需求分析后,进行系统设计。系统设计这个阶段的任务是设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程,其目的是明确软件系统"如何作"。这个阶段又分两个步骤:概要设计和详细设计。根据系统需求分析阶段所肯定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即创建新系统的物理模型。所以,需求分析的结果是系统设计的依据。
 
2、如何设计系统的整体结构?  

   系统整体设计即对全局问题的设计,也就是设计系统总的处理方案,又称概要设计。
   制造系统工程整体设计包括:市场调研,技术规格书编写,初步设计,详细设计,产品制造等。
   软件工程整体设计包括:计算机配置设计、系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容。软件功能分解属于下列软件开发中的整体设计阶段,系统设计阶段的结果是系统设计说明书,它主要由模块结构图、模块说明书和其它详细设计的内容组成。 

一、系统设计的主要任务是进行整体设计和详细设计。

(1)整体设计 

总  体设计包括系统模块结构设计和计算机物理系统的配置方案设计。 

<1>系统模块结构设计 。系统模块结构设计的任务是划分子系统,而后肯定子系统的模块结构,并画出模块结构图。

<2>计算机物理系统配置方案设计 。在进行整体设计时,还要进行计算机物理系统具体配置方案的设计,要解决计算机软硬件系统的配置、通讯网络系统的配置、机房设备的配置等问题。计算机物理系统具体配置方案要通过用户单位和领导部门的赞成才可进行实施。 

(2)详细设计 

   在整体设计基础上,第二步进行的是详细设计,主要有处理过程设计以肯定每一个模块内部的详细执行过程,包括局部数据组织、控制流、每一步的具体加工要求等,通常来讲,处理过程模块详细设计的难度已不太大,关键是用一种合适的方式来描述每一个模块的执行过程,经常使用的有流程图、问题分析图、IPO图和过程设计语言等;除了处理过程设计,还有代码设计、界面设计、数据库设计、输入输出设计等。 

二、系统设计原则  

(1)简单性:在达到预约的目标、具有所须要的功能前提下,系统应尽可能简单,这样可减小处理费用,提升系统效益,便于实现和管理

(2)灵活性和适应性:以便适应外界的环境变化。可变性是现代化企业的特色之一,是指其对外界环境的变化的适应能力。系统的可变性是指容许系统被修改和维护的难易程度。一个可变性好的系统,各个部分独立性强,容易进行变更,从而可提升系统的性能,不断知足对系统目标的变化要求。此外,若是一个信息系统的可变性强能够适应其它相似企业组织的须要,无疑地,这将比重新开发一个新系统成本要低得多。 

(3)一致性和完整性:一致性是指系统中信息编码、采集、信息通讯要具有一致性设计规范应标准;完整性是指系统做为一个统一的总体而存在,系统功能应尽可能完整。  

(4)可靠性:系统的可靠性指系统硬件和软件在运行过程当中抵抗异常状况的干扰及保证系统正常工做的能力。衡量系统可靠性的指标是平均故障间隔时间和平均维护时间。前者指平均的先后两次发生故障的时间,反映了系统安全运行时间,后者指故障后平均每次所用的修复时间,反映系统可维护性的好坏。只有可靠的系统,才能保证系统的质量并获得用户的信任,不然就是没有使用价值。     

   提升系统可靠性的途径主要有: 

     1)取可靠性较高的主机和外部设备; 

     2)硬件结构的冗余设计,即在高可靠性的应用场合,应采起双机或双工的结构方案; 

     3)对故障的检测处理和系统安全方面的措施,如对输入数据进行校检,创建运行记录和监督跟踪,规定用户的文件使用级别,对重要文件的拷贝等。

(5)经济性:系统的经济性是指系统的收益应大于系统支出的总费用。系统支出费用包括系统开发所需投资的费用与系统运行维护费用之和;系统收益除有货币指标外,还有非货币指标。  系统应该给用户带来相应的经济效益。系统的投资和经营费用应当获得补偿。须要指出的是,这种补偿有时是间接的或不能定量计算的。特别是对于管理信息系统,它的效益当中,有很大一部分效益不能以货币来衡量。  

三、系统设计的目的      

   系统设计的目的是在保证明现逻辑模型功能的基础上,尽量提升目标系统的简单性、可变性、一致性、完整性、可靠性、经济性、系统的运行效率和安全性,将分析阶段所得到的系统逻辑模型,转换成一个具体的计算机实现方案的物理模型,包括计算机物理系统配置方案报告和一份系统设计说明书。

3、实验心得

   通过了一段时间的磨合,咱们团队的凝聚力有了很大的提高,你们从刚开始的不明白本身的定位到如今可以迅速分工找到合适本身的任务并保质保量的完成,咱们真的成长了不少,也在这个过程当中进一步的明白了团队凝聚力和小组合做的优点,虽然跌跌撞撞,但咱们在茁长成长。

   除了团队的成长以外,通过几回有目的有方向的实验任务,咱们队对软件工程这门课的认识又加深了许多,同时也对学好这门有了更大的信心,相信通过系统的学习,咱们团队会更加出色。

相关文章
相关标签/搜索