-
什么是软件危机
计算机行业发展过程中集中暴露出的严重问题导致软件行业的信任危机。这些在软件开发和维护中遇到的一系列问题具体包括:
软件开发成本难以估算,无法制定合理的开发计划;
用户的需求无法确切表达;
软件质量存在问题;
软件的可维护性差;
缺乏文档资料。
产生危机的根本原因是:软件系统本身的复杂性;软件开发方法和技术的不合理及不成熟。 -
软件的其中一种定义:包括程序、数据及其文档的完整集合。
-
软件工程三要素:方法(提供“如何做”的技术)、工具(自动或半自动的软件支撑环境)、过程
-
软件生命周期六个基本步骤:计划、需求分析、概要设计、系统编码、测试、运行维护
-
什么是需求分析?
对用户提出的要求进行详细分析并给出详细的定义,准确定义新系统的目标,回答系统“做什么”的问题并编制需求规格说明书。其目标是借助当前系统的逻辑模型推导出目标系统的逻辑模型,解决目标系统“做什么”的问题。
(理解需求:当前系统—模型化—>物理模型—抽象化—>逻辑模型)
(表达需求:逻辑模型—实例化—>物理模型—具体化—>目标系统) -
传统软件周期模型
瀑布模型、演化模型、增量模型、喷泉模型、V模型 -
新型软件生命周期模型
RUP统一软件开发模型、敏捷建模、极限编程 -
RUP统一软甲开发模型
四个阶段:初始阶段、细化阶段、构造阶段、移交阶段
每个阶段结束都有一个主要的里程碑——软件目标里程碑、体系结构里程碑、运行能力里程碑、产品发布里程碑
特点:以用例为驱动,软件体系结构为核心,应用迭代及增量的新型软件生命周期模型。
适用:小步骤、快速反馈和调整 -
敏捷建模AM
将着眼点放在建模过程上,其次才是文档,免于过度建模,过度编制文档。 -
UML统一建模语言
一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示。 -
UML用模型表述系统的结构(静态特征)及行为(动态特征)。从不同的视角为系统的架构建模,形成不同的视图。
4+1视图:用例视图(用户角度看到的),逻辑视图、进程视图、构件视图、部署视图
9个基本图:用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图
用例视图:使用用例图和活动图
逻辑视图:使用类图、对象图、顺序图/协作图
进程视图:使用状态图和活动图
构件视图:使用构件图
部署视图:使用部署图 -
面向对象的需求分析
分析结果:需求规格说明书 = 用例模型 + 领域模型
领域模型描述“当前系统”逻辑模型的静态结构及业务流程;
领域模型 = 业务背景知识 + 业务流程
用例模型描述“目标系统”的逻辑模型,定义了“目标系统”做什么的需求
用例模型 = 用例图 + 用例说明 + 系统顺序图 + 操作契约 -
UML中类与类的关系
类:类名+属性+操作
类的关系:依赖关系、关联关系、聚合关系、组合关系、继承关系 -
结构化需求分析
E-R图、数据流图、状态迁移图、数据词典、判定树/判定表
数据流图四种基本元素:加工、外部实体、数据流、数据存储
数据词典由以下内容组成:数据流词条、数据元素词条、数据文件词条、加工词条、外部实体 -
软件设计:如何实现所提出的功能和需求,既是过程也是实现
动态结构设计:
静态结构设计: -
软件设计的技术原则
满足需求、可追踪可回溯、具有建设性可拓展性、分层结构、模块化、简化接口(高内聚低耦合)、结合数据特点设计合适的数据结构 -
软件设计的一个目标是建立软件体系结构表示
软件体系结构 = {构件,连接件,约束}
软件体系结构三要素:程序构件的层次结构、构件之间交互的方式、数据的结构
在软件体系结构设计中应保持的几个性质:结构、附属功能、可复用 -
面向对象设计
以需求分析阶段的用例模型和领域模型为基础。 -
模型层次化:用户界面层、控制器层、业务逻辑层、持久化层、系统层
-
软件测试
白盒测试:考虑内部结构。主要用于单元测试,检查程序逻辑错误的方法。逻辑覆盖、测试路径、控制流图、环路复杂度
黑盒测试:不考虑内部结构。根据概要设计或者需求分析结果进行测试用例的设计。一般用于集成测试、系统测试、验收测试。需要进行等价类划分。边界值分析、因果图、转换判定表
【面试准备】软件工程
最新推荐文章于 2024-07-20 08:27:55 发布