1.4 软件工程

1.软件需求的三个层次
业务需求:业务需求是指反应企业或客户对系统高层次的目标需求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。通过业务需求可以确定项目视图和范围。
用户需求:描述用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了员工后能使用系统来做些什么。通常采用用户访谈和问卷调查等方式,对用户使用的场景进行整理,从而简历用户需求。
系统需求:系统需求是从系统的角度来说明软件的需求,包括功能需求,非功能需求和设计约束等。

功能需求也称为行为需求;他规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
非功能需求是指系统必须具备的属性或品质,又可细分为软件质量属性和其他非功能需求
设计约束也成为了限制条件或补充规约,通常是对系统的约束说明,例如,必须采用国有自主知识产权的数据库系统,必须运行在unix操作系统之下等。

2.质量功能部署
常规需求,期望需求,意外需求
3.需求获取
需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。
常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联版,联合需求计划等。
4.需求分析
需求分析将提炼、分析和审查已经获取到的需求,以确保所有的项目干系人都明白其含义并找处其中的错误、遗漏或不足的地方。
使用SA方法进行需求分析,其建立的需求模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型。在实际工作中,一般使用实体联系图(E-R图)表示数据模型,应用数据流图(DFD)表示功能模型,用状态转换图(STD)表示行为模型。
OOA的基本任务是运用OO方法,对问题域进行分析和理解,正确认识其中的食物以及他们之间的关系
5.软件需求规格说明书(SRS)
是需求开发活动的产物。目的是使项目干系人域开发团队对系统的初始规定有一个共同的理解,成为整个开发项目的基础。
包括:范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决问题、注解、附录
6.需求验证
SRS正确的描述可预期的、满足项目干系人需求的系统行为和特性
SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的
需求是完整的。高质量的
需求的表示,所有地方都一致
需求为继续进行系统设计、实现和测试提供足够的基础
7.UML
UML是一种良好的、易于表达的、功能强大的且普遍使用的建模语言,作用域不限于OOA,OOD,还支持蹴球分析开始的软件开发过程
UML结构包括构造块、规则和公共机制三部分
构造块:事务,关系和图
规则:包括命名,范围,可见性,完整性,执行
公共机制:规格说明,修饰,公共分类和扩展机制
8.面向对象分析
OO方法
面向对象编程思想设计模型,不一一赘述
常用的OOD原则:

  • 单一职责原则
  • 开放-封闭原则
  • 李氏替换原则
  • 依赖倒置原则
  • 接口隔离原则
  • 组合重用原则
  • 迪米特原则

CMMI有两种模型表示方法:阶段式表示方法,连续式表示方法

  • 阶段式表示方法
    式针对整个组织进行统一的评级,当组织通过某一等级过程域种的全部过程,即意味着该组织的成熟度达到了这一等级。利用阶段式模型对组织进行成熟度度量,概念清晰、易于理解、便于操作。
  • 连续式表示方法
    失真度组织的某些过成都评级,诶评价组织的某个PA的能力等级为2级。
  • 对比
    级短时成为组织成熟度等级,连续式成为过程能力等级

软件的测试分为动态测试和静态测试
动态测试☞不在机器上运行,采用人工检测和计算机辅助静态分析的手段对程序进行检测
静态测试☞文档的静态测试和对代码的静态测试

白盒测试和黑盒测试
白盒测试:透明的盒子,了解结构和处理过程
黑盒测试:只看结果是否符合预期

测试过程:
单元测试-集成测试-确认测试-系统测试-配置项测试-回归测试

常用的软件调试方法:蛮力法、回溯法和原因排除法

软件测试的管理包括过程管理、配置管理和评审工作

  1. 过程管理:包括测试活动管理和测试资源管理
  2. 配置管理:应按照软件配置管理的要求,肌酐测试过程种产生的各种工作产品纳入配置管理
  3. 评审:测试过程中平生包括测试就绪评审和测试评审。

企业应用集成(EAI)所链接的应用包括各种电子商务系统、erp、oa、数据系统、数据仓库等。eai包括表示集成、数据集成、控制集成和业务流集成等多个层次和方面。