上海艾纵企业管理咨询有限公司 - 课程体系 - 专题课程 - 软件项目管理技术专题


您好!欢迎来到上海艾纵企业管理咨询有限公司!

加入收藏

登录注册

400-676-1955

专题课程

软件需求分析与设计

我要报名

编辑日期 2018-06-11  阅读次数:450 次


【课程背景】

决定软件开发项目成败主要有四方面的因素:过程、技术、人和范围。据统计,导致软件开发项目失败的因素中,需求方面的原因占了80%。传统的软件工程是基于面向过程的开发方法,侧重于研究过程对于项目的影响,其对软件开发起了巨大的推动作用。但随着问题领域的不断复杂化以及软件规模的不断扩大,传统软件工程的弊端也逐渐显现出来,面向过程的方法论,在问题领域到需求,在从需求到设计存在两个巨大的鸿沟,其固有的特性也决定了软件的维护成本高昂。而面对对象的方法论,从问题领域,到业务模型,到需求模型,到设计模型,再到实现与测试模型,模型与模型之间是逐步演化和统一的;而且由于面向对象自身的封装、继承、多态、抽象等特性,使软件有一个更加合理的架构成为可能,进而可能很大地提升软件的可维护性。

随着软件技术以及开发工具的发展,面向对象的分析设计初步成为软件开发的主流,然而在实际开发过程中,开发人员由于对面向对象理解的不透彻,以及受传统软件工程和过程化思维的影响,并不能很好的应用面向对象进行分析与设计,徒有其表。 因此,本课程以需求和设计为主线,UML作为建模语言,详细论述面向对象思想在业务建模、需求分析以及系统设计中的应用,使开发人员对面向对象的分析设计方法能有一个清晰的认识。

课程基于成熟的平台化开发管理模式、工具及方法,并结合国内出色研发管理企业的典型实践,针对中国企业的实际,帮助您掌握平台化研发管理的核心思想、组织模式以及系统的方法与工具,进而实现平台化、模块化开发,提升企业的核心竞争力。

【培训收益】

1、  掌握UML建模语言

2、  深入理解面向对象思想

3、  了解需求工程的内涵,掌握需求获取、需求分析、需求描述的方法

4、  了解什么是架构,以及架构的意义

5、  设计模式入门,了解一般的分析、设计原则

6、  掌握数据库设计的基本原则和方法

【培训对象】

企业CEO/总经理、研发总监、研发经理/项目经理/技术经理/产品经理、系统工程师、产品规划从业者

【课程时长】

12小时(2天)

【课程大纲】

1.    案例分析

 

2.    软件项目开发概述;

1)     什么是项目;

2)     软件项目的特点;

3)     影响软件项目开发的主要因素。

 

3.    UML介绍;

1)     什么是建模以及建模的意义;

2)     用例图;

3)     类图;

4)     交互图(顺序图和协作图)

5)     活动图

6)     状态图

 

4.    业务建模;

1)     业务用例模型;

2)     业务对象模型;

3)     业务建模流程

a)      业务需求的组成

b)     业务需求的来源

c)      软件产品的业务目标

d)     软件产品的前景与范围

e)     干系人及特征

f)      业务需求如何编写、模板范例及说明

g)     不明确的业务需求带来的常见问题

h)     业务需求如何决定用户需求与功能需求

i)       业务需求应该由谁来负责

j)       组织中的需求分工与需求团队

4)     案例分析与演练2

                      

5.    需求开发和获取

1)     什么是需求工程?

a)      什么是需求开发?

b)     什么是需求管理?

c)      需求开发与需求管理的关系

2)     需求工程的推荐方法

3)     迭代的需求开发过程

a)      用户需求的来源

b)     干系人与用户,用户的参与程度对需求质量的直接影响

c)      从用户角度看需求

d)     寻找用户类,常见的分类方法

e)     设立用户代表,用户代表的作用

f)      案例分析与演练3

g)     需求获取的常见方法

h)     需求访谈

i)       需求研讨会

j)       需求整理:分类与分层

k)      案例分析与演练4

l)       用例法

l  用例定义

l  参与者目标清单

l  从业务事件发现用例

l  业务用例与场景

l  在业务用例中对干系人利益的保障

l  从业务用例中提取产品用例

l  用例模板

l  用例开发中的常见问题

l  用例的作用

m)    案例分析与演练5

n)     原型法

o)     业务规则与术语

l  业务规则的分类

l  业务规则与需求

l  术语

p)     寻找遗漏的需求

q)     案例分析与演练

6.    需求编写

1)     问题探讨和概念澄清

2)     需求规格的特点和作用

3)     需求的标识

4)     需求规格的框架及汇编

5)     需求属性与需求矩阵的使用

6)     需求的存储和使用

7)     需求规格说明模板和使用

8)     需求矩阵模板

9)     案例分析与演练9

 

7.    分析与设计;

1)     架构设计;

a)      架构概述

b)     架构的层次

c)      典型架构

d)     逻辑视图、开发视图、部署视图、运行视图、数据视图 ,实现视图

e)     如何和怎样绘制软件架构视图

f)      UML建模工具在架构视图的应用

g)     软件架构文档的概述

h)     软件架构模板(根据实际项目情况选择合适内容)

i)        

2)     系统分析

a)      用例实现

b)     分析类

c)      设计子系统

d)     设计包

e)     软件系统边界和外部系统接口的定义

f)      大型软件系统的划分子系统原则

g)     子系统功能模块的分解

h)     子系统间的通信接口的设计

i)       如何应对系统内部紧耦合、高内聚

j)       软件系统关键质量属性树和可行性分析

k)      软件系统部署架构(分布式/数据分布/通信/安全)

l)       软件系统部署容量评估(主机/中间件/数据库等资源容量评估)

m)    应用系统的类型和架构风格

n)     架构模式在实际项目的应用

o)     软件架构立方体图(软件架构的分层,分区和基础服务)

p)     软件架构通用机制的分析(如何处理基础设施扩展和具体有什么方法做基础设施扩展, 掌握如何分离这些基础设施用例)

q)     使用质量场景属性进行迭代架构设计

r)      软件架构各层的架构策略(针对企业应用分层,每层的架构策略)

s)       

3)     面向对象设计:

a)      深入理解面向对象;

b)     泛化与继承;

c)      设计原则;

d)     抽象(Abstraction)、封装(Encapsulation)和信息隐藏(Information Hiding

e)     分而治之(Divide-And-Conquer)和模块化(modularization

f)      松耦合和高内聚(Coupling and Cohesion

g)     策略和实现的分离(Separation of Policy and Implementation

h)     接口和实现的分离(Separation of Interface and Implementation

i)       单一引用点(Single Point of Reference

j)       数据架构(数据模型/数据分布/数据存取,以及核心数据流)

k)      用例视图(抽取典型,有风险和客户关心用例进行分析,结合架构进行设计)

l)       实现视图(架构,设计和开发,实现原则和指南)

m)    完成架构文档,对架构文档进行评估

 

8.    数据库设计

4)     关系数据库

l  关系模型

l  关系数据结构及形式化定义

l  关系的完整性

5)     关系数据库规范化

l  函数依赖

l  规范化

l  模式分解及分解应具有的特性

6)     数据库的控制功能

l  事务管理

l  数据库的备份与恢复

l  并发控制

l  安全性和授权

a)      数据库设计

l  概念结构设计

l  逻辑结构设计

l  数据库的物理设计

l  数据库的实施和维护

 

9.    总结