软件系统分析与体系结构设计

一、软件工程概论

概念

  • 软件危机(软件开发和维护过程中遇到的一系列严重的问题
    • 软件开发成本日益增长
    • 软件开发进度难以控制
    • 软件质量难以保证
    • 软件维护困难

成本,质量难以保证,维护难,开发过程难控制

  • *软件危机的原因
    • 软件的复杂性
      • 开发结构的逐渐复杂性
      • 软件技术的发展复杂性
    • 软件的特殊性
    • 人们认识的局限性

围绕软件越来越“复杂”

  • *软件工程定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。

简单的背为将工程化应用在软件中

  • 软件生命周期

    • 需求分析
    • 系统设计
    • 系统实现
    • 测试
    • 维护
  • *软件系统分析与设计的重要性

    • 需求分析为整个软件打下良好基础
    • 设计阶段为软件的编写打下良好基础
    • 这两个阶段若做好可以从根本上减少软件开发过程的时间和成本
    • 反之,带来的损失是不可估量的

整本书的重要性,肯定要背下来,需求分析打下基础,设计打下基础,做的好有很多好处,做的不好损失太大了

软件工程学的三个核心元素

  • 软件开发过程模型

    • 线性模型(瀑布模型)
      • 优点:1.有利于开发人员管理2.有利于使用软件开发工具,提高了效率
      • 缺点:1.开发是线性的,开发结果得到慢,与用户交互少了2.前期的的错误扩散到后期3.无法解决复杂情况
    • 增量模型
      • 优点:1.灵活性高2.需要人员少
      • 缺点:1.需要开发式的体系结构2.退化成边做边改模型,失去整体性
    • 螺旋模型
      • 优点:1.支持用户需求动态变化2.方便用户参与,提高软件适应能力3.方便管理人员及时调整管理决策,降低开发风险
      • 缺点:1.需要丰富的风险评估经验和专业知识2.不适用于合同项目的开发3.过多的迭代造成成本增加,延迟提交时间
  • 软件开发方法

    • 结构化方法
    • 面向对象方法
    • 相同点:
      • 都是软件系统的开发方法
      • 在运用分解和抽象原则上的要求是完全一致的。
      • 局部化和重用性设计上的一致。
    • 不同点:
      • 结构化方法是一种面向数据流的开发方法,面向对象方法是一种面向对象的开发方法
      • 处理问题时的出发点不同。前者是一种面向过程的开发方法
      • 处理问题的基本单位和层次逻辑关系不同
      • 数据处理方式与控制程序方式不同
      • 分析设计与编码转换方式不同
  • 软件工程工具(泛指软件开发全过程中使用的各种程序系统)

    • 工具
    • 工具接口
    • 用户接口
  • *CASE(计算机辅助软件工程)原指支持管理信息系统开发的、由各种计算机辅助软件和工具组成的大型综合性软件开发环境;现已转化为支持整套独立

  • *CASE的分类

    1. 事务系统规划工具(Business System Planning Tools)
    2. 项目管理工具(Project Management Tools)
    3. 支撑工具(Support Tools)
    4. 分析与设计工具(Analysis and Design Tools)
    5. 程序设计工具(Programming Tools)
    6. 测试与分析工具(Test and Analysis Tools)
    7. 原型建造工具(Prototyping Tools)
    8. 维护工具(Maintenance Tools)
    9. 框架工具(Frame Tools)

二、结构化分析和设计方法

结构化方法的基本思想

  • 结构化方法的特点:自顶向下地分析与设计,逐步求精。

  • 结构化分析

    • 功能建模
    • 数据建模(数据流图、层次化数据流图)
  • 结构化设计

    • 概要设计(软件结构图)
    • 详细设计
  • 数据流图



中间的订书组去掉

  • 软件结构图




三、面向对象分析和设计方法概述

概念

  • 面向对象=对象+类+继承+通信

  • 面向对象的特点

    • 抽象性
    • 封装性
    • 共享性(共享【数据结构和行为特征】)
      • 同一类中所有实例共享数据结构和行为特征
      • 同一应用中所有实例通过继承共享数据结构和行为特征
      • 不同应用中所有实例通过复用共享数据结构和行为特征
  • RUP统一开发过程:核心在于用例驱动;以体系结构为核心;以质量控制和风险管理为目标;迭代的、增量的过程

  • RUP的特点

UML统一建模语言

  • *UML的意义
  1. UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。
  2. UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
  3. 使用UML使硬件组件和软件组件之间将会有更大的透明度。便携性和综合效率将会增加。
  • UML视图
    • 用例视图
    • 逻辑视图
    • 构件视图
    • 进程视图
    • 部署视图
  • 四种关系
    • 依赖:一个元素的变化将影响到某个元素或向其提供信息
      ------ ➤
    • 关联
      ——➤
    • 泛化(继承)
      ——➣
    • 实现
      ------➣

虚线为依赖,实线为关联(没屁意义),空心箭头的很容易另记。


四、需求分析与用例建模

概念

  • 需求分析的任务是发现、求精、建模和规格说明的过程。包括
    • 细化在项目开发计划中规定的软件范围
    • 创建所需要的数据模型、功能模型和控制模型
    • 分析可选择的解决方案,并将它们分配到各个软件成分中去
  • 需求分析的步骤
    • 问题识别(需求获取)
    • 分析与综合(需求建模)
    • 编制需求分析阶段的文档(需求描述)
    • 验证(需求评审)

就背括号里的步骤了

  • 场景和用例:用例:系统执行的完整动作,场景:用例的实例

  • 场景的作用

    • 帮助我们验证用例是否能满足客户提出来的需求
    • 驱动测试用例的编写
  • 规格说明

    • 用例名称
    • 用例简述
    • 行为者
    • 前置条件
    • 后置条件
    • 基本事件流
    • 备选事件流
    • 异常事件流

用例图后要写,必背

用例建模

  • 用例之间的关系(包含、扩展、泛化)


  a. 关联(Association)
  表示参与者与用例之间的通信,任何一方都可发送或接受消息。
  【箭头指向】:指向消息接收方

  b. 泛化(Inheritance)
  就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
  【箭头指向】:指向父用例

  c. 包含(Include)
  包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
  【箭头指向】:指向分解出来的功能用例

  d. 扩展(Extend)
  扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
  【箭头指向】:指向基础用例

  e. 依赖(Dependency)
  以上4种关系,是UML定义的标准关系。但VS2010的用例模型图中,添加了依赖关系,用带箭头的虚线表示,表示源用例依赖于目标用例。
  【箭头指向】:指向被依赖项

  • 一个用例图示例:

  • 关系的使用(这段文字太绕了不看了)
    • 一个用例偶尔使用另一个用例的功能描述时,采用继承关系
    • 两个以上用例重复处理同样的动作,可采用使用关系或包含关系
    • 用例要采用多种控制方式对异常或任选动作进行处理时,采用扩展关系
一个例子

包括可以简单理解成这个用例有什么,比如订购的内容是提供用户信息、付款安排等
扩展就是定购额外做的事情,我理解呢就是这个这个事物本身不一定要,但是在这次建模里有特殊性才附加

案例(一定要看书上两个案例)

  • 本人写的只具有参考作用
  1. 请根据以下要求画出一个保险业务相关的用例图。
    参保顾客与保险公司业务员签署保险凭单;保险公司业务员统计自己业务范围内的保险金额和参保顾客人数;保险公司业务经理查询统计公司所有保险总金额和参保顾客总人数。
1.先画出顶层用例图

下面针对保险业务处理、统计个人业务、查询统计全公司业务分别进行细化

  • 保险业务处理
    • 查看并选择保险业务
    • 签署保险凭证
  • 统计个人业务
    • 统计自己参保顾客人数
    • 统计自己业务金额
  • 查询统计全公司业务
    • 查看公司总保险人数
    • 查看公司保险总金额

我觉得这样写的太马虎了考试一定多想点方面

2.再画出细化用例图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容