设计模式 16-设计模式工厂模式 为对象的创建提供一个接口,将具体创建的实现封装在接口之下,分离的对象的创建与使用,使得具体创建的实现改变不会对client类产生影响。 三种工厂的关系 当抽象工厂模式中只有一个产品等级结构时,抽象工厂模式退化为工厂模式。 当工厂模式只有一个工厂类,且类中方法为静态方法,工厂模式退化成简单工厂模式 简单工厂模式:工厂类职责过重,违背了OCP,加入新产品需要修改工厂 工厂模式: 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件测试 19-软件测试软件测试目标 向开发者和用户展示软件满足了需求,是一个合格的产品。(有效性测试) 找出软件中的缺陷和不足,测试的目标是发现尽可能多的缺陷而不是所有缺陷。。(缺陷测试) 验证与确认 验证:检测开发者是否用正确的技术开发系统。如“编程错误”,“设计思路错误”,“文档书写错误”。 确认:检查开发者是否建立了正确的系统,确保最终产品符合规格。如“需求文档是否反映需求”,“设计能否跟踪到需求” 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件开发过程模型与软件工程职业基础 22-23-软件开发过程模型与软件工程职业基础软件生命周期模型 包含了软件从生产到报废的六个阶段。 需求工程→软件设计→软件实现→软件测试→软件交付→软件维护 软件生命周期模型只是界定了软件开发活动的不同阶段的顺序关系。 **软件过程模型: 软件过程模型是对软件生命周期模型更为详细和准确的描述,即进一步说明了各个阶段的任务、对象等信息。同一个软件生命周期可以存在不同的软件过程模型。 构建-修复模型 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件构造与代码实现 17-18-软件构造和代码设计软件构造定义:通过编码,验证,单元测试,集成测试,和调试等工作的结合,生产可工作的,有意义的软件详细创建过程。简单说软件构造是以程序为主完成的综合性任务。 软件构造包含的活动 ①详细设计; ②编程:软件构造的核心活动,目的是产生高质量代码程序。 ③测试: 1.单元测试:对程序单元进行正确性检验 2.集成测试:对系统接口进行正确性检验 (集成测试策略:1.大爆炸集成;2 2022-06-15 计算机基础 > 软件工程 #计算机基础
项目管理基础 4-项目管理基础项目管理的目标 ①限定时间内; ②限定的成本; ③在要求的质量水平上; ④高效使用资源; ⑤获取客户认可。 项目管理的过程组与活动 过程组:①项目启动; ②项目计划;③项目执行;④项目跟踪与控制;⑤项目收尾。 活动:①计划制定;②团队管理;③成本控制;④质量保障;⑤度量;⑥过程管理;⑦进度跟踪与控制; ⑧风险管理;⑨配置管理。 团队结构 ①主程序员团队 指定技术出色的一人为主程序员 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件需求基础 5-软件需求基础需求工程概念:所有需求处理活动的总和。它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终描述出软件被应⽤后与其环境互动形成的期望效应 需求工程的三个任务: ①说明软件系统被应用的环境及其目标(在哪里做什么),说明达成这些目标的软件功能(以什么做),也即要同时说明软件需要“做什么”和“为什么”需要做。(环境,目标,功能) ②需求工程必须将目标和功能反映到软件系统当中,映射为 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件维护与演化 21-软件维护与演化软件交付的主要活动 1.安装部署。2.用户培训与文档支持。3.项目评价(汲取经验教训)。 软件维护 软件交付之后修改软件系统或其部件的活动过程,可以修正缺陷,完善系统功能,提高性能或其他属性、适应变化的环境。演化和维护是等价的词汇。 软件维护的类型 完善性维护:为了满足新需求,增加软件功能。 适应性维护:为了使软件适应新环境。 修正性维护:为了排除系统中的缺陷。 预防性维护:为 2022-06-15 计算机基础 > 软件工程 #计算机基础
需求文档化与验证 需求文档化与验证文档化的原因.软件系统子任务与人员之间存在着复杂的关系,存在大量的沟通和交流,所以软件系统开发中需要编写多种不同类型文档,针对广泛交流的内容,进行文档化。 为什么需要需求规格说明? 文档化的原因 需求规格说明的定义 用例文档和软件需求规格说明的区别 用例文档和软件需求规格说明文档是最常见的两种需求文档。 用例文档:从用户的角度以用例文本为主描述软件系统与外界的交互。 软件需求规格说 2022-06-15 计算机基础 > 软件工程 #计算机基础
需求分析方法 6-需求分析方法需求分析的任务: ①建立分析模型,达成开发者和用户对需求信息的共同理解。 ②检查需求中存在的各种缺陷,并加以修改。 ③依据共同理解,发挥创造性,创建软件系统解决方案(需求规格说明)。 为什么要细化需求(为什么要需求分析)⽤户需求的描述的模糊性和系统需求的严谨性之间的矛盾。 模型和建模 模型是对事物的抽象,帮助人们在创建一个事物之前可以有更好的理解。(抽象,理解) 建立模型的过程被称 2022-06-15 计算机基础 > 软件工程 #计算机基础
软件设计基础 8-软件设计基础什么是软件设计? 是关于软件对象的设计,是一种设计活动,具有设计的普遍特性。(设计活动) 软件设计既指软件对象实现的规格说明,也指这个规格说明产生的过程。(规格说明and其过程) 软件设计的核心思想: 分解和抽象。(分而治之是软件设计解决复杂性难题的主要思路。) 分解:横向上将系统分割为几个相对简单的子系统以及各子系统之间的关系。分解之后每次只需关注经过抽象的相对简 单的子系统以及 2022-06-15 计算机基础 > 软件工程 #计算机基础