软件工程第三周

可行性研究 续

表达工作量的方式

LOC估算:Line of Code

估算公式S=(Sopt+4Sm+Spess)/6

FP:功能点

1. LOC (Line of Code) 估算

  • 定义:LOC是指一个软件项目中的代码行数

2. FP (Function Points) 估算

  • 定义:FP是基于软件的功能性和复杂性来估算的。FP的计算考虑了输入、输出、用户查询、文件和外部接口等因素。

估算公式含有PERT (Program Evaluation and Review Technique) 估算中的三种估算类型:

  • Sopt:乐观估算
  • Sm:最可能的估算
  • Spess:悲观估算

使用这三种估算可以给出一个期望值和估算的方差,从而更好地理解估算的不确定性。

软件工程第三周_第1张图片

软件工程第三周_第2张图片

 逻辑模型:工作业务的流程。可以使用系统流程图数据流图表示这样的系统。

软件工程第三周_第3张图片

操作上可行:比如火影新忍者审核。可研是抓住主要矛盾!

系统流程图

软件工程第三周_第4张图片

系统流程图是带有物理部件的数据流动的表示。

在不同的图形工具中,图形表示的含义不一定相同。


数据流图

软件工程第三周_第5张图片

描述的是一个逻辑模型控制流涉及到HOW,而数据流图不提供控制流,只关于WHAT

数据流图(Data Flow Diagram, DFD)是一种用于描述信息系统的图形化工具,它表示了系统中数据的流动、加工过程以及数据存储。DFD是系统分析与设计过程中常用的工具,可以从宏观到微观逐步细化系统的功能和数据流程。

数据流图由以下基本组件构成:

  1. 过程:通常用一个圆形或矩形表示,它代表系统中的一个功能或任务。过程中的数据会被转换或处理。
  2. 数据流:用箭头表示,显示数据在系统中的流动方向。数据流旁边通常会标明数据的名称或描述。
  3. 数据存储:通常用两条平行线表示,代表数据在系统中的存储位置,如数据库或文件。
  4. 外部实体:用矩形表示,代表系统的外部用户或其他系统。它们与系统交互,向系统提供输入数据或从系统获取输出数据。

软件工程第三周_第6张图片

顶层数据流图(High-Level DFD)

顶层数据流图,是表示系统整体情况的DFD。它通常只包含一个过程(代表整个系统)和与之交互的外部实体(若干个数据源点和终点)。数据流显示了从外部实体到系统的输入以及从系统到外部实体的输出。这种DFD为读者提供了对系统的总体概述,其实就是下图的基本系统模型

软件工程第三周_第7张图片

基本系统模型:系统和外部的实体有关联,是设计的基础和起点。将顶层图(基本系统模型)分解,形成0级图,再分解形成1级图。分解的目的是把数据的加工流程进一步细化,比如将上面的呢订货系统进一步拆分,形成更加细致的数据流图。

系统会和哪些人、软硬件打交道,界定了整个系统的范围。

软件工程第三周_第8张图片

可行性研究报告标准格式

软件工程第三周_第9张图片


课内实验和大作业是两个东西,这两个东西是通过实验连接在一起。

实验报告只要结论不要过程。

大作业报告写上过程。


第三章 需求分析

架构师:关注系统实现的整体结构,不是具体的设计内容。

需求工程师:关注需求调研和分析,产品的业务设计和应用设计。

两者结合,就是整个软件的最高价值所在。

确切描述,完整、准确、清晰、具体的要求。

可行性研究:浓缩度很高,会提出一些解决方案(包含了简单初步的需求分析等内容),不仅仅在于定义阶段,也可能在开发阶段,往往会忽略一些细节。需求分析和后续开发阶段就是一步步分析找到这些细节的过程

软件工程第三周_第10张图片

软件工程第三周_第11张图片

需求导出:Feasibility study and report

在项目管理和系统开发中,可行性研究是一个评估项目计划可行性的重要步骤。它包括分析项目的所有关键方面,例如技术可行性、经济可行性和法律合规性。基于这些分析,将生成一份报告,概述项目的可行性和潜在问题。报告还应包含关于如何解决潜在问题的建议或替代方案。

需求排序和分析:Requirement elicitation and analysis

根据重要性对需求进行排序是确保项目成功的关键步骤之一。通过使用不同的项目管理模型(如快速原型和增量模型),可以更灵活、更迅速地响应项目中最重要的需求

例如,在增量模型中,项目被分为几个小部分或增量,每个增量代表项目的一部分功能或需求。通过优先分配资源到最重要的增量,可以确保项目按照优先级顺序推进。

(需求)规格说明:Requirement specification

规格说明文档提供了关于系统或项目需求的详细信息。这包括对系统功能、性能标准和界面的详细描述。授权用户可以查询系统需求和系统描述以更好地理解系统的工作方式和功能。

同时,也应该允许用户查询自己的需求,从而确保系统满足他们的期望和需求。举个例子,如果是一个软件项目,那么在项目的某个阶段(比如在开发阶段或者测试阶段),应该让用户了解或者试用这个软件,让他们了解这个软件是否符合他们的需求和期望,是否解决了他们的问题或者满足了他们的目标。通过这种方式,可以在项目早期发现问题和不符合需求的地方,从而做出相应的调整和优化,确保项目的成功和用户的满意。

需求确认:Requirements validation

在项目开发过程中,需求确认是确认所有项目需求都已正确理解和记录的过程。需求命名有助于确保所有团队成员都对需求有相同的理解。通过为需求设置测试工具和标准,项目团队可以在项目结束时评估其有效性。这确保了项目不仅按照预定计划完成,而且满足了所有既定的需求标准和质量标准。

委托项目需求分析过程

访谈:极其重要的形式!访谈一定要有前期的准备,但是有局限性:访谈对象非常少!

问卷或interview:深入理解,把想要看到的推导给问卷被调查对象。

观察用户:细节问题

市场分析、网络搜索

创新项目需求分析过程

起始点:市场分析,头脑风暴,逐渐清晰我们的需求。

你可能感兴趣的:(软件工程,软件工程)