软件工程复习资料(二)

第二部分

一.软件工程实践综述

(1).软件工程实践精髓:
①理解问题(交流和分析)
②计划解决方案(建模和软件设计)
③实施计划(代码生成)
④检查结果的精确度(测试和质量保证)
(2).核心原则
①存在价值②保持简洁③维护视图④生产者要让消费者理解⑤面向未来⑥计划复用⑦认真思考

2.需求工程(requirement engineering)
(1)需求工程:致力于不断理解需求的大量任务和技术。(定义业务需求,刻画用户场景,描述功能和特性
※※※****A bridge to design and construction

什么是需求:①很容易识别出来的叫需求②没有二义性的③可测试的

※※※(2)需求工程所执行的七个不同的活动是:
起始:(建立基本的理解)
导出:导出需求,(理解用户目标是什么,想实现什么,系统和产品如何满足业务要求)
精化:类之间的关联和协作关系(画图)
协商:协商来调节用户需求改变时的冲突
规格说明:例如软件需求规格说明书。
确认:(列出的需求是不是有效,是否容易产生误解)
需求管理:在项目进展中标识,控制和跟踪需求。

※(3)需求工程师的工作:标识公共区域(所有利益相关者都同意的需求)和矛盾区域或不一致区域(某个利益相关者提出的需求和其他利益相关子的需求相矛盾)

(4)质量功能部署(quality function deployment):将用户要求转化为软件技术需求。有三类需求:
①正常需求
②期望需求:用户没明显说,做出了更好,没做出来用户不开心不过也不影响软件使用
③令人兴奋的需求:实现就相当满意

(5)需求建模
a.基于场景的元素:从用户的视角描述系统
UML活动图
这里写图片描述
b.基于类的元素:
UML类图
这里写图片描述

3.需求建模:场景、信息与类分析
(1)需求分析:产生软件工作特征的规格说明,说明软件和其他系统元素的接口,规定软件必须满足的约束。

需求建模动作产生为以下一种或多种模型类型:
场景模型出自各种系统“参与者”观点的需求
数据模型描述问题信息域的模型
面向类的模型表示面向对象类的模型,其方式为通过类的协作获得系统需求。
面向流程的模型表示系统的功能元素并且描述当前功能元素在系统中运行时怎样进行数据变换的模型
行为模型描述事件对系统状态的影响

※※※(2)需求模型必须实现的三个主要目标:
①描述客户需要什么
②为软件设计奠定基础
③定义软件完成后可以被确认的一组需求。

(3)创建分析模型是应该遵循的经验原则:
①模型应关注在问题域或业务域内可见的需求(要求抽象级别很高,类似湖南姐姐说的那个边界图,不要关注系统实现细节)
②需求模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域、功能和系统行为的深入理解
③关于基础结构和其他非功能的模型应推延到设计阶段在考虑。
④最小化整个系统内的关联
⑤确认需求模型为所有利益相关者都带来的价值
⑥保持模型简洁
这里写图片描述

需求模型的元素
这里写图片描述

(4)基于场景的建模
E-R图:方框来表示实体集合,菱形块(直接用直线)表示关系,属性用实体方块上面加椭圆
这里写图片描述

用例图

活动图
这里写图片描述

泳道图
这里写图片描述
数据对象之间如何联系

(数据对象的性质)
类图(识别分析类,描述属性,定义操作,类-职责-协作者建模,关系和依赖)
这里写图片描述

4.需求建模:流程、行为、模式和web应用
(1)创建数据流模型(功能建模)
数据流图(Data Flow Diagram,DFD):有助于软件工程师开发信息域的模型,并同时开发功能域的模型
这里写图片描述
导出数据流图时指导原则:
第0层的数据流图应将软件或系统描述为一个泡泡;
②应仔细标记主要的输入与输出
③通过把选定的处理、数据对象和数据存储分离为下一层表示而开始精化过程
④应使用有意义的名称标记所有的箭头和泡泡
⑤当从一个层转到另一个层时要保持信息流连续性
⑥一次精化一个泡泡
这里写图片描述
※※图片解释:这是家庭安全系统最外一层(0层)的数据流图,圆圈圈为整个这个系统,他有5个外部的实体(控制面板,传感器,控制面板显示,警报,电话线),可以理解系统外部有什么样的设备,什么样的环境

这里写图片描述

※※图片解释:每一个箭头上都是数据,圆圈的都是将来要写的程序(每个圈就是一个功能),双横线(配置信息)用来表示数据存储

这里写图片描述

(2)控制规格说明辅助数据流图(就是数据流图里面可以用虚线来代表控制)——理解就好
控制规格说明:使用两种不同的方式表现系统的行为,CSPEC包含一个状态图,改图是行为的序列说明,也可能包括程序激活表即行为的组合说明

(3)处理规格说明辅助数据流图(就是数据流图中可以在圆圈圈下面加注释)——理解就好
处理规格说明(PSPEC):用于描述出现在求精过程中最终层次的所有流程模型的处理。处理规格说明的内容可以包括①叙述性的征文②处理算法的程序设计语言描述③数学方程④表或uml活动图。

(4)生成行为模型
所需步骤:
①评估所有的用例
②识别驱动交互顺序的事件
③为每个用例生成序列
④创建系统状态图
⑤评审行为模型以验证准确性和一致性

状态图STD:(行为建模)
一个状态到另一个状态(要有开始和结束,与活动图的区别就是注重状态,以及状态变化的条件)上面是条件下面是结果,箭头表示状态的变化
这里写图片描述

总结:※※结构化的
数据流图建立的是功能模型(核心不是数据,而是流图。对数据的处理过程,及强调的是处理,处理及功能)
E-R图数据字典建立的是数据模型
状态STD变换图建立的是行为模型

**面向对象分析:**6个步骤——对象和行为,类和行为
①定义用例(讲故事)
②抽取对象,抽取类(包含属性与方法)——用例图
③定义类之间的层次
④建立类之间的关系(各层次之间有关系,之间怎么交互)——类图
⑤建立行为模型——状态图
⑥不断地迭代

用例:使用的例子(讲故事,怎么工作,描述我们的使用过程,Actor:①用户,②设备,③系统)
(一)用例图:
这里写图片描述
这里写图片描述
拓展与包含

(二)序列图:每一列都是一个对象,每个对象之间如何交互完成这个功能,从上至下按时间顺序干什么干什么——用例图的补充
这里写图片描述
对用例的补充
这里写图片描述
这里写图片描述

(三)协作图:直接由协作图转换,序号表示消息传递的顺序
这里写图片描述

(四)之后变为标准类图:(如果全是数据类就是E-R图)
这里写图片描述

(五)状态图()
这里写图片描述
此图为单入口多出口
“/”斜杠后面是状态发生变化以后的结果,斜杠前面是发生这个状态需要的条件

总结:面向对象的需要建的6个图:用例图,序列图,活动图,协作图,类图,状态图一共六个图

5.设计概念
(1)软件工程中的设计
软件设计是建模活动的最后一个软件工程活动,接着便要进入构造阶段(代码生成与测试)
设计模型包括
①数据/类设计
②体系结构设计
③接口设计
④构件级设计

这里写图片描述
需求模型到设计模型的转换(缺图)

(2)设计过程
软件质量指导原则和属性:指导设计演化的三个特征
①设计必须实现所有包含在需求模型中的明确需求,而且必须满足利益相关者期望的所有隐含需求
②对于那些生产代码的任何那些进行测试以及随后维护软件的人而言,设计必须是可读的,可理解的指南
③设计必须提供软件的全貌,从实现的角度说明数据域、功能域和行为域。

质量指导原则(待续)

※※※(3)设计概念(缺例子,待续)
①抽象
②体系结构
③模式
④关注点的分离
⑤模块化
⑥信息隐蔽
⑦功能独立:内聚性与耦合性
⑧求精
⑨方面
⑩重构
11面向对象
12设计类
设计者创造那些类型的类:
a.用户接口类:定义人机交互所必需的所有抽象
b.业务域类
c.过程类
d.持久类
e.系统类

为组织良好的设计类定义了四个特征
①完整性与充分性
②原始性
③高内聚性
④低耦合性

(4)设计模型
设计模型维度(缺图)
分为以下的几个元素
①数据设计元素
②体系结构设计元素
③接口设计元素
④构件级设计元素
⑤部署级设计元素
这里写图片描述

6.体系结构设计
(1)软件体系结构定义:指系统的一个或多个结构,它包括软件构件、构件的外部可见属性以及它们之间的相互关系。
软件体系结构完成的任务
①对设计在满足既定需求方面的有效性进行分析
②在设计变更相对容易的阶段,开了体系结构可能的选择方案
③降低与软件构造相关的风险

(2)体系结构风格
每种风格描述一种系统类别
①完成系统需要的某种功能的一组构件(例如,数据库、计算机模块)
②能使构件间实现“通信、合作和协调”的一组连接件
③定义构建如何集成为系统的约束
④语义模型,能使设计者通过分析系统组成成分的已知属性来理解系统的整体性质

(3)体系结构风格的简单分类
① 以数据为中心的体系结构
②数据流体系结构
③调用和返回体系结构
④面向对象体系结构
⑤层次体系结构
(—————-使用数据流进行体系结构映射——————–)

7.构件级设计
(1)什么是构件
①面向对象的观点:在面向对象的软件工程环境汇总,构件包括一组协作的类。构建中的灭国类都得到详细的阐述,包括所有的属性和与其实现相关的操作。
②传统观点:一个构件就是程序的一个功能要素
a.控制构件,协调问题域中所有其他构建的调用
b.问题域构件,实现客户需要的全部功能或部分功能
c.基础设施构件,负责完成问题域中所需支持处理的功能
这里写图片描述

(2)设计基于类的构件
基本设计原则:
①开闭原则
②Liskov替换原则
③依赖倒置原则
④接口分离原则

构件级设计指导方针
构件,接口,依赖与继承

内聚性,耦合性
(3)实施构构件级设计
步骤一:
步骤二:

(4)领域工程:
三种主要活动:
①分析,②构造,③传播

8.界面设计
※※※(1)界面设计的3条黄金规则
①用户操纵控制
②减少用户的记忆负担
③保持界面一致

(2)用户界面的分析与设计
过程:开始于螺旋模型的内部
①界面分析及建模
②界面设计
③界面构造
④界面确认

※※(3).界面分析
**①用户分析
②任务分析和建模
③显示内容分析
④工作环境分析**

※※(4).界面设计步骤
①使用界面分析中获得的信息,定义界面对象和动作
②定义那些导致用户界面状态发生变化的事件,并对其进行建模
③描述每个界面状态,就像最终用户时间看到的那样
④简要说明用户如果从界面提供的界面信息来解释系统状态

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值