需求分析、概要设计

最近和一个朋友聊天, 发现还是需要一些理论功底,没事到网上找点资料看看吧

 

按照传统软件工程的软件过程,区别如下:

1.需求分析--产生 软件功能规格说明书,需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作(概要设计)

2.概要设计--产生 软件概要设计说明书,说明系统模块划分、选择的技术路线等,整体说明软件的实现思路。并且需要指出关键技术难点等。

3.详细设计--产生 软件详细设计说明书,对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。理论上要求可以照此编码。

 

 

 
<一> 需求分析(requirement analysis)  
 
    需求分析是当前软件工程中的关键问题。需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求,准确地回答“系统必须做什么”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。   
            
    需求分析的基本任务包括:   
  • 抽取需: 分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。  
  • 模拟和分析需求:需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性;不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。
  • 传递需求:传递需求的主要任务是书写软件需求规格说明。   
  • 认可需求:就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。
  • 进化需求:客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法 ,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。   
 
<二> 概要设计   
    概要设计是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现。
   
    概要设计基本任务:
  • 建立软件系统结构:划分模块、定义模块功能、模块间的调用关系、定义模块的接口、评价模块的质量
  • 数据结构和数据库的设计:数据结构设计、概念设计、逻辑设计、物理设计
  • 编写概要设计文档:概要设计说明书、用户手册、数据库设计说明书、修订测试计划
 
<三> 详细设计 
  • 详细设计说明书 
引言
    1.1 编写目的 
         编写这份详细设计说明书的目的(指出预期的读者)。
    1.2 背景   
         待开发软件系统的相关。   
    1.3 名称解释   
         列出本文档中用到的有必要解释的术语。此术语可能在其他文档中用到。
    1.4 参考资料
   列出编写本报告时参考的文件(如经核准的计划任务书或合同、上级机关的批文等)、资料、技术标准,以及他们的作者、标题、编号、发布日期和出版单位。
2 程序系统结构
3 类设计
  3.1 命名空间(命名空间下可再加子命名空间,以此类推,相应序号加层)
       3.1.1 类名称
            3.1.1.1 类功能说明:
    3.1.1.2 父类
            3.1.1.3 成员变量  
            3.1.1.4 成员函数列表  
            3.1.1.5 成员函数设计  
                 3.1.1.5.1 函数名:  
                      3.1.1.5.1.1 功能描述  
                      3.1.1.5.1.2 输入 
                      3.1.1.5.1.3 返回值   
                      3.1.1.5.1.4 流程图  
                      3.1.1.5.1.5 算法说明  
                 3.1.1.5.2 函数名  
                      …   
         3.1.2 类名称 
               ….   
  3.2 命名空间  
     ….   
posted @ 2016-06-30 10:12  SKYisLimit  阅读(1144)  评论(0编辑  收藏  举报