软件工程导论

四川大学软件工程导论课程重点总结2024

概要

开发一个软件的整个流程
在这里插入图片描述

基本概念

软件工程
在这里插入图片描述软件
在这里插入图片描述

软件过程:敏捷开发,极限编程

通用过程框架
在这里插入图片描述瀑布模型:沟通,策划,建模,构件,部署
原型模型
在这里插入图片描述敏捷开发:aglie
在这里插入图片描述

软件表达方法:可视化为UML*13种

用例图
在这里插入图片描述活动图
在这里插入图片描述类图
顺序图
在这里插入图片描述通信图
在这里插入图片描述状态图
在这里插入图片描述

界面调研:黄金准则

黄金准则:减少记忆负担,用户掌控,界面一致

软件分析,设计,重构:用例分析,GRASP,设计概念,设计原则OCP等

1.抽象:抽象是人类解决复杂问题的一种手段,更是一种思想。包含了过程抽象和数据抽象。过程抽象指的具有明确和有限的指令序列;数据抽象是描述数据对象的冠名数据集合。
2.求精:求精实际上是一个细化的过程:该过程从高抽象级上定义的功能陈述或信息描述开始。然后在原始陈述上进行细化,随着在每个细化的持续进行,将提供越来越多的细节
3.体系结构:软件的整体结构和这种结构为系统提供概念完整性的方式,构建表示主要的系统元素及其交互。
4.关注点分离:关注点分离是将复杂问题分解为可以以独立解决或优化的若干块,使得该复杂问题能够更容易地被处理的设计概念。
5.模块化:模块化是一种软件设计技术,强调将程序的功能分解为独立的、可互换的模块,每个模块都包含执行所需功能的所有必要元素。在架构领域中,模块化就是表示从逻辑上给相互关联的代码分组的过程。模块化的度量可以使用三个度量指标:内聚,耦合和共生。
6.信息隐藏:在计算机科学中,信息隐藏是将计算机程序中最有可能发生变化的设计决策与程序的其他部分隔离开来的原则。信息隐藏的目标是通过提供稳定的接口来保护程序的其他部分免受实现(其细节可能会发生变化)的影响。
7.功能独立:功能独立在软件工程中意味着当一个模块专注于单一任务时,它应该能够以很少与其他模块的交互来完成它。如果一个模块在功能上独立于其他模块,那么它意味着它具有高内聚和低耦合。
8.方面:通过允许分离横切关注点来增加模块性。这允许那些不是业务逻辑的核心(如日志记录)的行为被添加到程序中,而不会使核心函数的代码变得混乱。

在这里插入图片描述

体系结构

在这里插入图片描述

测试:圈复杂度,测试用例

圈复杂度:V(G)
覆盖所有的可能情况最少使用的测试用例数

测试用例设计方法
在这里插入图片描述
边界值测试
在这里插入图片描述在这里插入图片描述在这里插入图片描述方法1测试用例为9个:(min,min+,max,max+)*2,nom,引入健壮性为13个:(min-,max+)*2
方法2测试用例为25个:5^n

等价类测试
在这里插入图片描述在这里插入图片描述在这里插入图片描述路径分析测试
在这里插入图片描述

### 关于《软件工程导论》学习资料与笔记 #### 一、定义理解 软件工程是指研究和应用如何以系统化、规范化以及可度量的方式开发、运行并维护软件的过程,即将工程方法应用于软件领域[^1]。 #### 二、组成部分解析 该学科主要由三大部分构成:程序设计、数据处理及文档编写。这三大要素共同作用确保了整个项目的顺利实施和发展。 #### 三、历史沿革与发展背景 随着信息技术的进步,特别是计算机硬件性能提升带来的复杂性增加,传统编程方式难以满足日益增长的需求。因此,在此背景下诞生了专门针对这些问题而设立的新分支—软件工程技术。其核心在于解决大型项目中存在的效率低下等问题,并通过引入新的理论和技术手段来提高生产率和服务质量[^2]。 #### 四、具体实践工具介绍-UML顺序图 作为一种可视化表达形式之一,UML中的顺序图用于描述对象间按时间序列发生的交互过程;它不仅能够清晰展示不同实体之间的关系变化情况,还支持对特定业务逻辑进行精确建模。绘制此类图表通常遵循以下几个原则: - 明确所需模拟的任务流程; - 合理布局参与交互的对象位置及其对应的生命线目; - 基于实际需求补充必要的通信指令说明; - 整合局部视图为全局视角提供全面的支持[^4]。 ```python # Python UML Sequence Diagram Example (Pseudo Code) class Object: pass def draw_sequence_diagram(): obj_list = [] # List to hold all objects involved in the interaction. while True: action = input("Enter next action or 'done' when finished:") if action.lower() == "done": break sender, receiver, message_type = parse_action(action) add_message_to_timeline(sender,receiver,message_type,obj_list) draw_sequence_diagram() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值