【软件工程】软件工程知识点提纲7

  • 1. 类与实例
  • 2. 类与类之间的关系
  • 3. 基于用例的需求分析,建立用例模型
  • 4. 基于类的需求分析,建立对象模型
  • 5. 面向对象的软件设计,用组件图描述软件结构
  • 6. 接口在软件设计中的应用
  • 7. 要掌握的UML图

1. 类与实例

  • 设计类图:着重于实现域
  • 分析类图:着重于问题域的对象
  • 类(私有变量、公有变量):类就是对具有相同数据和相同操作的一组相似对象的定义
  • 实例:实例就是由某个特定的类所描述的一个具体的对象

2. 类与类之间的关系

  • 关联

符号 含义
0…1 0到1个对象
0…* 或* 0到多个对象
1+或1…* 1到多个对象
1…15 1到15个对象
3 3个对象
  • 聚集

符号 含义
聚集:一删保留
组合:一删全删
  • 泛化(继承)
  • 依赖和细化
    • 依赖关系

    • 细化关系


3. 基于用例的需求分析,建立用例模型

  • 用例图

  • 用例说明

    • 用例名:取票
    • 行为者:旅客
    • 前置条件:旅客订购机票成功、已打印取票通知单、已打印账单
    • 预期结果:旅客顺利取票,显示取票成功
    • 正常事件流:读取数据库浏览旅客信息与航班信息,核对旅客取票通知单、账单
    • 异常:提示错误信息,核对错误或数据库中未找到旅客信息,返回上一级界面。

4. 基于类的需求分析,建立对象模型

  • 确定类与对象

    • 找出候选的类与对象

      • 可感知的物理实体,如汽车、书、房屋
      • 人或组织的角色,如雇员、雇主、柜员
      • 应该记忆的事件,如演出、访问、事故
      • 两个或多个对象的相互作用,如购买
      • 需要说明的概念,如政策、法律

例子:ATM
类与对象的候选者:
银行、自动取款机(ATM)、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、帐户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、信息、密码、类型、取款额、帐单、访问等。

  • 筛选出正确的类与对象

    • 冗余:如“储户”与“用户”、“磁卡”与“现金兑换卡”
    • 无关:如“成本”、“街道”、“营业厅”、“储蓄所”
    • 笼统:如“银行”、“网络”、“系统”、“软件”、“信息”
    • 属性:如“余额”、“分行代码”、“卡号”、“密码”、“类型”
    • 操作:如“访问”
    • 实现

在ATM实例中,经过初步筛选,剩下的类与对象为:ATM、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、帐户、事务、现金兑换卡。

  • 确定关联

    • 初步确定关联

      • 直接提取动词短语得出的关联
      • 需求陈述中隐含的关联
      • 根据问题域知识得出的关联
    • 筛选
      • 已删去的类之间的关联
      • 与问题无关的或应在实现阶段考虑的关联
      • 瞬时事件
      • 三元关联
      • 派生关联
    • 进一步完善
      • 正名
      • 分解
      • 补充
      • 标明重数

  • 划分主题

    • 在开发很小的系统时,可能根本无须引入主题层
    • 对于含有较多对象的系统,则往往先识别出类与对象和关联,然后划分主题,并用它作为指导开发者和用户观察整个模型的一种机制
    • 对于规模极大的系统,则首先由高级分析员粗略地识别对象和关联,然后初步划分主题,经进一步分析,对系统结构有更深入的了解之后,再进一步修改和精炼主题
  • 确定属性
    • 分析
    • 选择
      • 误把对象当作属性
      • 误把关联类的属性当作一般对象的属性
      • 把限定误当成属性
      • 误把内部状态当成了属性
      • 过于细化
      • 存在不一致的属性

  • 识别继承关系

    • 自底向上:抽象出现有类的共同性质泛化出父类,这个过程实质上模拟了人类归纳思维过程。
    • 自顶向下:把现有类细化成更具体的子类,这模拟了人类的演绎思维过程。

5. 面向对象的软件设计,用组件图描述软件结构

组件图通过这些元素描述了系统的各个组件及之间的依赖关系,还有组件的接口及调用关系。包含:组件、接口和依赖关系,构件与其对应接口之间的关系,符号: - - - - >

6. 接口在软件设计中的应用

  • 模块或软件构件间的接口设计
  • 软件与其他软硬件系统之间的接口设计
  • 软件与人(用户)之间的交互设计

7. 要掌握的UML图

  • 类图

  • 用例图

用例名:取票
行为者:旅客
前置条件:旅客订购机票成功、已打印取票通知单、已打印账单
预期结果:旅客顺利取票,显示取票成功
正常事件流:读取数据库浏览旅客信息与航班信息,核对旅客取票通知单、账单
异常:提示错误信息,核对错误或数据库中未找到旅客信息,返回上一级界面。

  • 状态图
    例子:办公室复印机的工作过程如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接受复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。

  • 程序流程图
    例子:ASP检索程序流程图

  • 顺序图

  • 组件图

【软件工程】软件工程知识点提纲7相关推荐

  1. 【软件工程】软件工程知识点提纲8

    [软件工程]软件工程知识点提纲8 1. 软件规模的度量和估算 1.1 代码行技术 1.2 功能点技术 2. 软件工作量估算 2.1 分解技术 2.2 经验模型 3. 工作量估算 4. 进度计划 4.1 ...

  2. 软件工程详细知识点(上)

    文章目录 一.软件工程概述 1.软件与软件危机 2.软件工程 3.软件开发模型 二.可行性研究 三.需求分析 1.结构化分析及建模(重点掌握) ++软件设计 四.概要设计 1.模块独立性 2.软件结构 ...

  3. TUT 2020年软件工程期末复习提纲

    软件工程期末复习提月工 目录概览 第一章 软件工程的基础知识 1.软件危机 定义:软件危机是指再计算机软件的开发和维护过程中所遇到的一系列严重问题. 软件危机包含下述两方面的问题: 如何开发软件,以满 ...

  4. 软件工程期末复习提纲、主要内容

    第一章 软件工程的范畴 软件工程 软件工程是一门学科 目的是生产出没有错误的软件 以工程学的思维去进行软件设计.软件开发.软件软件运维的一种方法论,按时并且在预算范围内交付,满足用户的需求. 软件危机 ...

  5. 软件工程导论知识点汇总

    文章目录 一.填空题 二.简答题 专为大学生期末创造奇迹整理的知识点 一.填空题 1.软件是一种逻辑产品 2.软件开发方法是指导软件开发的一系列规则和约定 3.软件生存周期中花费最多的阶段是软件维护阶 ...

  6. 广州大学《软件工程》软件工程课程知识点

    一.知识点列举: 软件工程:软件危机:软件模型:软件工程知识体系:软件需求:需求分析:UML:用例图:用例描述:类图:顺序图:状态图:活动图:ER图:软件测试:黑盒测试:白盒测试:软件维护:软件质量. ...

  7. 【软件工程】知识点梳理(全)

    文章目录 (一)软件工程学概述 1.[软件] 2.[软件危机] 3.[软件工程] 4.[软件工程方法学] 5.[软件生命周期] 6.[软件过程] 7.[软件生命周期模型] 8.[可行性研究] 9.[需 ...

  8. 数据流图软件_软件工程导论知识点梳理之概念题

    1. 软件的定义:软件是程序.数据及开发.使用和维护程序需要的所有文档的完整集合. 例:在信息处理和计算机领域内,一般认为软件是程序.文档和数据. 2.软件的分类: 按照应用场景:系统/应用软件 按照 ...

  9. 软件工程详细设计说明书_软件工程导论知识点梳理之简答题

    1. 软件危机的表现形式 对软件开发成本和进度估计不准确 已完成的软件不符合用户需求 软件产品质量差,可靠性得不到保证 软件产品可维护性差 软件成本在计算机总成本中的比例逐渐变大 软件开发生产率提高速 ...

最新文章

  1. 数据结构和算法学习一,开篇
  2. 分享一个好用的函数吧,将js中的对象转成url参数
  3. IDEA 实用功能Auto Import:自动优化导包(自动删除、导入包)
  4. 使用String.intern()减少内存使用
  5. 公司新来的小可爱,竟然把内存搞崩了!
  6. oracle用户登录报错,oracle用户登录报错-bash: ulimit: open files: cannot modify limit: Operation not permitted...
  7. C#LeetCode刷题之#443-压缩字符串​​​​​​​(String Compression)
  8. 《高级着色语言HLSL入门》系列文章
  9. 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
  10. 最新AWVS14安装使用教程(2021年10月11日)
  11. 【元胞自动机】基于元胞自动机模拟生命演化、病毒感染等实例附matlab代码
  12. HTML5 之 Link 标签
  13. ⑦企业级zabbix监控 微信报警、邮箱报警、钉钉报警、全网最细
  14. amoeba mysql下载_amoeba for mysql
  15. R语言--Apriori关联分析
  16. access中本年度的四月一日_2014年3月计算机二级ACCESS上机试题及详解十二
  17. 太原师范学院计算机考研率,太原师范学院怎么样(太原师范学院考研率)
  18. 关于游戏中的数据分析
  19. Flutter必备——Dart入门(上)
  20. Adaptive Spectrum Noise Cancellation (自适应频谱噪声消除 ,ASNC)去除强运动伪影

热门文章

  1. 小米手机与笔记本互联|MIUI下载链接
  2. configuration is still incorrect. do you want edit it again?
  3. ubuntu下qt模拟键盘按键按下_基于Linux+Qt软键盘设计及其实现.pdf
  4. 洛谷 P2717 寒假作业 1
  5. 通往财富自由之路5--你拥有的最宝贵的财富是什么?(问答02)
  6. 有关聚合支付的三大问题
  7. 如何用python编程机器人培训班_如何Python入门
  8. Activiti工作流视频教程-基于Activiti5工作流实战企业协同OA办公系统
  9. WPF行列对换的横向DataGrid
  10. 《金山区提信心扩需求稳增长促发展行动方案》的通知