软件工程与文档写作由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程文档写作”。
软件的开发方法 面向过程的方法特点:程序的执行过程,不由用户控制,完全由程序员控制。优点:简单实用。缺点:维护困难。
面向对象的方法 特点:(1).程序的执行过程,不由程序员控制,完全由用户控制。(2).分析设计时面向类,编程时面向对象。优点:易于维护。缺点:较难掌握。
面向数据的方法特点:程序的执行过程,有时由程序员控制,有时由用户控制。优点:通俗易懂,适合数据层上的设计与实现。缺点:实现窗口界面较困难。
瀑布模型特点:(1)里程碑或基线驱动(2)过程逆转性很差;选择模型的条件:在开发时间内需求没有或很少变化;分析设计人员对应用领域很熟悉;低风险项目;用户使用环境很稳定;用户除提出需求以外,很少参与开发。优点:开发阶段清晰,便于评审、跟踪、管理和控制; 缺点:可维护性差,表现在 由于逆转性很差,所以返工会造成重大损失;由于文档驱动,错误的传递,会采取发散扩大的方式。
增量模型特点:任务或功能模块驱动,可以分阶段提交产品;有多个任务单,这些多个任务单的集合,构成项目的一个总任务书;选择模型的条件:在开发过程中,客户接受分阶段交付;开发人员对应用领域不熟悉,难以一步到位;工期过紧的中等或高风险项目;用户可参与到整个软件开发过程中;使用面向对象语言或第四代语言;软件公司自己有较好的类库、构件库。优点将一个大系统分解为多个小系统,就等于将大风险分解为多个小风险,从而降低开发难度缺点:若软件系统的组装和拆卸性不强;或开发人员全局把握水平不高;或者客户不同意分阶段提交产品;或者开发人员过剩,都不宜采用这种模型。
原型模型特点:原型驱动。因此,开发者必须先有一个原型,至少要有一个原型的核心。选择模型的条件:已有产品/产品原型,只需客户化的项目;简单而熟悉的行业或领域;有快速原型开发工具;进行产品移植或升级。优点:开发速度快,用户意见反馈实时缺点:因为事先有一个展示性的产品原型,所以在一定程度上,不利于开发人员的创新
需求获取为什么难1.用户需求具有动态性,即需求的不稳定性。2.用户需求具有模糊性,即需求不准确性。3.开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。4.中国的国有企业正处在变动期,中国的民营企业正处在成长期。这就给信息系统的需求分析增加了难度系数。
软件需求的主要属性:可验证性(基本)、优先级、唯一性
需求分析的任务1.画出目标系统的组织结构图2.画出目标系统的业务操作流程图3.画出目标系统的数据流程图4.列出目标系统的功能点列表5.列出系统的性能点列表6.列出目标系统的接口列表7.确定目标系统的运行环境8.目标系统的界面约定9.对目标系统的开发工期、费用、开发进度、系统风险等问题进行分析与评估
需求分析的方法:面向功能分析、面向对象分析、面向数据分析
风险分析5种是指对项目及团队的政策风险、技术风险、技能风险、资源风险等因素,进行逐个分析与分解,制定用于跟踪和监控风险的风险管理计划。
模块耦合程度由低到高的分级如下1.数据耦合(或参数传递耦合),属于低级别耦合2.控制耦合,属于中级别耦合3.外部耦合(或共用耦合),它属于高级别耦合。4.内容耦合,它属于最高级别耦合。
软件建模中的三个模型是指业务模型、功能模型和数据模型。功能模型FM是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。业务模型OM是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。数据模型DM是描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义 数据库设计包括数据库需求分析、数据库概念设计、数据库物理设计三个阶段
第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解。
步骤设 计 内 容将原始单据分类整理,理清原始单据与输出报表之间的数据转换关系及算法,澄清一切不确定的问题
从原始单据出发,划分出各个实体,给实体命名,初步分配属性,标识出主键
或外键,理清实体之间的关系
进行数据库概念数据模型CDM设计,画出实体关系图ERD,定义完整性约束 2 3步
4步 进行数库物理数据模型PDM设计.将概念数模型CDM转换为物理数模型PDM 5步在特定的数据库管理系统上定义表空间,物理建表与建索引
6步
7步
8步
9步定义触发器与存储过程定义视图,说明数据库与应用程序之间的关系数据库加载测试数据库性能优化
10步数据库设计评审
软件实现原则
尽量简单;易于验证;适应变化;遵守某一编程规范;选择项目组成员最熟悉的工具或语言。
测试阶段是在代码编写完成以后,先作单元测试开始,然后是集成测试、系统测试和验收测试。软件测试的分类动态测试;静态测试,黑盒测试;白盒测试;回归测试;Alpha测试;Beta测试
客户化是指按照客户的实际需求,对软件产品的功能、性能、接口做适当的改动; 初始化是指按照客户的实际情况,对软件产品的代码表(又称数据字典)进行初始化,即:将客户的各种信息编码录入到相应的代码表中。
软件维护是在软件产品安装、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作
软件的4类维护,纠错性维护、适应性维护、完善性维护、预防性维护
维护副作用修改编码使编码更加混乱,程序结构更不清晰,可读性更差,且有连锁反应;修改数据结构,数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼;修改用户数据,需要与用户协商,一旦有疏忽,可使系统发生意外;修改文档,对非结构化维护不适应,对结构化维护要严防程序与文档的不匹配
软件生存周期包括:需求、分析、设计、编码、测试、运行和维护阶段
CMMI5级初始级、重复级、已定义、已管理级、优化级
CMM模型共计18个关键过程域KPA,52个具体目标,316个关键实践KP。
软件配置管理是在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、管理,使其最终形成受控的软件版本产品
存取控制通过配置管理中的3个库来实现软件开发库、软件基线库、软件产品库
经正式评审和审计,并被批准后的阶段性的软件工作产品,称为软件配置管理中的一根基线。里程碑只是一个阶段标记,基线是一个阶段软件工作产品,基线与里程碑一般表现为一对一的关系。程碑是检查点,检查点不一定是里程碑,因为检查点还可以是时间、计划和事件。
人们将“质量标准、配置管理、测试测量”,作为质量管理的三大支柱
项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。
项目管理是运用相关的知识、技能、方法与工具,对实现项目目标所必须做的计划、进度、质量、成本、资源进行管理和控制的活动。
印度为什么强大?因为它软件产业发达。为什么发达?原因有五:
1.印度属于英语国家;2.印度人在美国定居者基本上溶入了美国社会;3.印度人报效祖国,承包美国的外包项目非常多;4.印度政府支持软件产业,给予一系列优惠政策;5.印度的软件公司特别重视软件过程管理。上述五条原因,最重要的一条是用CMMI进行软件项目管理。