用户工具

站点工具


侧边栏

1.信息化与信息系统:软件工程

软件需求

1.需求包括业务需求、用户需求和系统需求 业务需求: 反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。 用户需求: 描述的是用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了用户能使用系统来做些什么。(19上10) 系统需求: 从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。

2、软件需求包括3方面: 功能需求: 通常是通过系统特性的描述表现出来的,所谓特性,是指一组逻辑上相关的功能需求,表示系统为用户提供某项功能(服务),使用户的业务目标得以满足 非功能需求: 指系统必须具备的属性或品质,又可细分为软件质量属性(例如,可维护性、可维护性、效率等)和其他非功能需求。 设计约束: 也称为限制条件或补充规约,通常是对系统的一些约束说明,例如,必须采用国有自主知识产权的数据库系统,必须运行在UNIX操作系统之下等 3、质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。QFD将软件需求分为三类,分别是常规需求、期望需求和 意外需求。(21上9)(掌握) ①常规需求:用户认为系统应该做到的功能或性能,实现越多用户会越满意。 ②期望需求:用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。 ③意外需求:也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。 4、常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。5、一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。(了解)

6、使用SA方法进行需求分析,其建立的模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。(掌握)

数据模型 实体联系图 ER图 描述实体、属性,以及实体之间的关系
功能模型 数据流图 DFD 从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能I; (19下7)(20 下8)
行为模型 状态转换图 STD 通过描述系统的状态和引起系统状态转换的事件,来表示,系统的行为,指出作为特定事件的结果将执行哪些动作

7、软件需求规格说明书(SRS)是需求开发活动的产物,内容包括:①范围、②引用文件、③需求、④合格性规定、⑤需求可追踪性、®尚未解决的问题、①注解、③附录(了解) 8、需求验证也称为需求确认,在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对SRS进行技术评审(掌握)

软件设计

1、软件设计分为结构化设计与面向对象设计。(了解) 2、结构化设计是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。(掌握) 3、在SD中,需要遵循一个基本的原则:高内聚、低耦合。(掌握)(06 下7)

内聚表示模块内部各成分之间的联系程度; 耦合表示模块之间联系的程度。

4、OOD 是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。(掌握) 5、设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。设计模式包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素。(掌握) (1)根据处理范围不同,设计模式可分为类模式和对象模式;

类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,属于静态关系; 对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性。(掌握)

(2)根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式三种。

创建型模式 创建对象 工厂方法/抽象工厂/原型/单例/建造者 模式
结构型模式 处理类或对象的组合 适配器/桥接/组合/装饰/外观/享元/代理模式
行为型模式 描述类或对象的交互以及职责的分配 职责链/命令/解释器/选代器/中介者/备忘录/观察者/状态/策略/模板方法/访问者 模式(18下8)

6、能力成熟度模型集成(CMMI): ①阶段式模型、②连续式模型(掌握)(18下9)过程域的阶段式分组 过程域的阶段式分组

已管理级 需求管理、项目管理计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证【助记:需求计划配置监控;合同度量质保】
已定义级 需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境【助记:开发技术产品集验确,焦点定义,培训项管团队决策环境】(19下9)
定量管理级 组织级过程性能、定量项目管理【助记:性能定量】
优化级 组织级改革与实施、因果分析和解决方案【助记:改革因果】

连续式模型的过程域分组

过程管理 组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施【助记:三个过程改革培训(有过程两个字的都是)】
项目管理 项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理【助记:四个项目团队管合同风险(有项目两个字的都是)】(21下10)
工程 需求管理、需求开发、技术解决方案、产品集成、验证、确认【助记:两个需求技术,集成认证】(20下9)
支持 配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案【助记:制度保证决策,环境决定因果

7、在软件过程管理方面,最著名的是能力成熟度模型集成: (19上8)

  • 普通列表项目成熟度级别3级与4级的关键区别在于对过程性能的可预测性
  • 普通列表项目连续式模型将24个过程域按照功能划分为过程管理、项目管理、工程和支持四个过程组
  • 这两种表示方法(阶段式模型和连续模型)各有优缺点,均采用统一的24个过程域,它们在逻辑上是等价的,对同一个组织采用两种模型分别进行CMMI评估,得到的结论应该是相同的。

软件测试

1、软件测试方法可分为静态测试和动态测试。静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查、代码走查和代码审查。(掌握)(19上9) 2、动态测试是指在计算机上实际运行程序进行软件测试,采用白盒测试和黑盒测试方法。白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。 白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。(18上9)白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考察对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。(掌握)(15上11) 3、黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。(掌握) 黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查程序功能是否能按照SRS的要求正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例:文件和数据库等)的完整性等。(19下9)(21下11) 4、软件测试分单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等。(掌握) ①单元测试:也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或00软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。 ②集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。 ③确认测试:主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型: (18下10) .内部确认测试:主要由软件开发组织内部按照SRS进行测试。 .Alpha测试和Beta测试: Alpha测试是由用户在开发环境下进行测试; (21上11) Beta测试是由用户在实际使用环境下进行测试。在通过Beta测试后,才能把产品发布或交付给用户。验收测试:指针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。 ④系统测试:对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。 ⑤配置项测试:测试的对象是软件配置项,目的是检验软件配置项与SRS的一致性。⑤回归测试:目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及 软件原有的、正确的功能、性能和其他规定的要求的不损害性。(10下8)(15下11)

6、面向对象的测试系统具有三个明显特征,即封装性、继承性与多态性。(18下26) 7、软件调试与测试的区别: (掌握)(20下10)

区别 测试 调试
目的 找出错误 定位作物并修改程序以修正错误
顺序 调试是测试之后的活动,测试和调试在目标、方法和思路上都有所不同
可预测性 从一个已知的条件开始,使用预先定义的过程,有预知的结果 从一个未知的条件开始,结束的过程不可预计
结果 可以事先设计,进度可以事先确定 不能描述过程或持续时间

8、软件测试的管理包括过程管理、配置管理和评审工作。(掌握) (1)过程管理:包括测试活动管理和测试资源管理。软件测试应由相对独立的人员进行。(2)配置管理:将测试过程中产生的各种工作产品纳入配置管理。由开发组织实施的软件测试,应将测试工作产品纳入软件项目的配置管理;由独立测试组织实施的软件测试,应建立配置管理库,将被测试对象和测试工作产品纳入配置管理。(18上10) (3)评审:测试过程中的评审包括测试就绪评审和测试评审。

面向对象

1、OOA模型独立于具体实现,即不考虑与系统具体实现有关的因素,这也是OOA和OOD的区别之所在。0OA的任务是“做什么”, OOD的任务是“怎么做”。(掌握)
2、面向对象分析阶段的核心工作是建立系统的用例模型与分析模型。(掌握) 3、SA(结构化分析)方法采用功能分解的方式来描述系统功能,在这种表达方式中,系统功能被分解到各个功能模块中,通过描述细分的系统模块的功能来达到描述整个系统功能的目的。(了解) 4、在ooA方法中,构建用例模型一般需要经历四个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。 5、常用的00D原则如下: (了解)
①单一职责原则:设计功能单一的类。本原则与结构化方法的高内聚原则是一致的。
②开放-封闭原则:对扩展开放,对修改封闭。
③李氏(Liskov)替换原则:子类可以替换父类。
④依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。⑤接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
③组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
①迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。本原则与结构化方法的低耦合原则是一致的。

UML

1、UML的结构包括构造块、规则和公共机制三个部分。(掌握)
2、UML主要有下列四种关系: (掌握)
①依赖:两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
②关联:描述一组对象之间连接的结构关系。
③泛化:一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
④实现:类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。

类图 描述一组类、接口、协作和它们之间的关系,是最常见的图。
对象图 描述一组对象及它们之间的关系。描述了在类图中所建立的事物实例的静态快照
构件图 描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构
组合构件图 描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容
用例图 描述一组用例、参与者及它们之间的关系。以图形化的方式描述系统与外部系统及用户的交互,描述用户需求,包括基于基本流程的“角色”关系(05 上1) (05 上2-3) (07 下16) (08 下13) (11下15) (13 上21-22)(15 下 26)(16 上27)
顺序图(序列图) 一种交互图,交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。(07下17)(08下17) (13下27) 对于顺序图,还可以按执行者角色、控制类、用户接口、业务层、后台数据库,由左向右分别排列。(19上26)
通信图 一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)
定时图 一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。(17下26)
状态图 描述一个状态机制,它由状态、转移、事件和活动组成。(15下27)(18下27)
活动图 将进程或其他计算结构展示为计算内部一步步的控制流和数据流。
部署图 描述对运行时的处理节点及在其中生存的构件的配置。(11上27)
制品图 描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合
包图 描述由模型本身分解而成的组织单元,以及它们之间的依赖关系是活动图和顺序图的混合物
交互概览图 是活动图和顺序图的混合物

4UML5个系统视图(掌握)(07下6)【记忆口诀:裸线不用进】

逻辑视图 也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集(17下27)
实现视图 对组成基于系统的物理代码的文件和构件进行建模
部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构
用例视图是最基本的需求分析模型
进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构

软件架构

1、软件架构设计的一个核心问题是能否达到架构级的软件复用,也就是说,能否在不同的系统中,使用同一个软件架构。(了解) 2、在架构评估过程中,评估人员所关注的是系统的质量属性。(掌握)(17下7) 3、通用软件架构:数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。

数据流风格批处理序列架构风格知管道/过滤器两种风格(21下9)
调用/返回风格 主程序/子程序、数据抽象和面向对象,以及层次结构(19上7)
独立构件风格进程通信和事件驱动的系统(18上7)
虚拟机风格解释器和基于规则的系统
仓库风格数据库系统、黑板系统和超文本系统

企业应用系统集成

1、EAI可以包括表示集成、数据集成、控制集成和业务流程集成等多个层次和方面。当然,也可以在多个企业之间进行应用集成。(掌握)(17下11)
①表示集成:也称界面集成,是比较原始和最浅层次的集成,是常用的集成,是黑盒集成;这种方法将用户界面作为公共的集成点,把原有零散的系统界面集中在一个新的界面中。无须了解程序与数据库的内部构造。常用的集成技术主要有屏幕截取和输入模拟技术。(19下10)
表示集成通常应用于以下几种情况: (21上12)
(1)在现有的基于终端的应用系统上配置基于PC (个人计算机)的用户界面。
(2)为用户提供一个看上去统一,但是由多个系统组成的应用系统。
(3)当只有可能在显示界面上实现集成时。
②数据集成:
是白盒集成,有很多不同的中间件工具可以用于数据集成。例如,批量文件传输、ODBC(开放数据库互连)标准接口、数据库访问中间件技术等。数据集成比表示集成要更加灵活。
通常在以下情况下,将会使用数据集成:
(1)需要对多种信息源产生的数据进行综合分析和决策。
(2)要处理一些多个应用喜人需要访问的公用信息库。
(3)当需要从某数据源获得数据来更新另一个数据源时,特别是它们之间的数据格式不相同时。
③控制集成:
也称为功能集成或应用集成,在业务逻辑层上对应用系统进行集成的。是黑盒集成。集成处可能只需简单使用公开的API(应用程序编程接口)就可以访问,当然也可能需要添加附加的代码来实现;控制集成与表示集成、数据集成相比,灵活性更高。表示集成和数据集成适用的环境下,都适用于控制集成。但是,由于控制集成是在业务逻辑层进行的,其复杂度更高一些。(18上11) (19上11)(21下12) ④业务流程集成:
也称为过程集成,这种集成超越了数据和系统,它由一系列基于标准的、统一数据格式的工作流组成。它包括应用集成、B2B集成、自动化业务流程管理、人工流程管理、企业门户,以及对所有应用系统和流程的管理和监控等。当进行业务流程集成时,企业必须对各种业务信息的交换进行定义、授权和管理,以便改进操作、减少成本、提高响应速度。(20 下11) ⑤企业之间的应用集成:
EAI技术可以适用于大多数要实施电子商务的企业,以及企业之间的应用集成。EAI使得应用集成架构里的客户和业务伙伴,都可以通过集成供应链内的所有应用和数据库实现信息共享。能够使企业充分利用外部资源。

1.信息化与信息系统/软件工程.txt · 最后更改: 2022/04/29 12:39 由 pwbty