软件开发(一)

【软件】

1.软件是什么?软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档的完整集合。

2.软件的特点?1.是一种逻辑实体,既有抽象性。2.软件的生产与硬件不同,没有明显的制造过程。3.运行和使用中没有老化现象。4.软件的开发在一定程度上依赖于硬件5.尚未摆脱手工的开发。6.成本贵。7.知识产权涉及社会因素。

3.软件的分类:系统软件-操作系统 数据库管理系统 设备驱动程序 通信处理程序
【软件工程】

软件工程中一般把软件的开发分为以下几个阶段:

一. 1、问题定义2、可行性研究3、需求分析4、总体设计(概要设计)5、详细设计6、编码和单元测试7、综合测试8、软件维护(运行维护)

二. 软件工程的原则:分解独立性 一致性 确定性

三. 问题定义:可行性研究需求分析 设计 编码 测试 运行与维护

四. 结构化分析方法:用抽象的模型概念用软件的内部的概念传递。自顶向下,逐步分解。

五. 数据字典的定义:数据字典是关于数据的信息的集合,是shu据流程图的补充工具

六. 数据字典的内容:数据流数据项 数据结构 数据存储 处理逻辑 外部实体 需求分析的评审 一致性 完整性 现实性 有效性

七. 面向过程的软件设计方法:软件设计的目标和任务根据用信息域表示的软件需求,以供能和性能需求,进行数据设计系统结构设计 过程设计

八. 软件设计的任务:从工程管理角度来看,软件的设计分两步完成,概要设计(系统结构设计)详细设计(过程设计)

九. 自顶向下,逐步细化 软件结构:程序的模块结构和数据的结构。

【生命周期】

一.【系统开发生命周期】

1.分析阶段(收集信息确认系统需求 建立需求发现原型 划分需求优先级 产生评估 ) 2.设计阶段(设计用会数据库和模块的设计,设计细节的原型化,考虑用户手册的编写)

3.实现阶段(构建软件部件检验测试转换数据 安装系统)

4.项目计划阶段

5.系统支持(保证有效运行,接口)

二.【可行性研究】

从五个方面讨论:经济可行性 技术可行性 操作可行性 法律可行性 时间可行性

可行性分析:确定系统总的目标和要求和投资效益分析和进度

结束:提交报告

使用工具:数据流图 DFD图 系统流程图

以技术可行性为主

三.【软件需求分析】

深入任务:深入描述软件的功能和性能,确定软件设计的约束性和软件的其他因素接定义软件的其他有效需求

软件需求分析的原则:需要能够表达和理解问题的信息域和功能域,要能以层次化的方式对问题进行分解

四. 分解:横向分解 纵向分解

【模型】
一.软工开发模型:瀑布模模型快速还原模型 建增模型 演化模型 螺旋模型 喷泉模型 迭代模型等
二.模块:三种基本属性:功能逻辑 状态
三. 模块独立性:模块具体及模块见得耦合度和模块内聚,,在模块内部所有的语句都是为了完成一个功能
四. 模块的耦合小就是模块间联系较少
五. 【耦合】
非直接耦合:两个模块之间没有直接关系。
控制耦合:
外部耦合
公共耦合
内容耦合:强耦合,当模块之间公用代码,两个模块代码有重叠,模块有相似。
总结:尽量使用数据耦合,好用控制耦合,限制公共耦合,完全不用内容耦合。

【内聚】

 模块内聚:模块之间的紧密程度。

 巧合内聚:最低内聚(偶然内聚)模块之间没有联系,或者联系很松散。

 逻辑内聚:低内聚功能组合在一起。

 时间内聚:低内聚(瞬间内聚)要求功能在同一时间段内执行。

 过程内聚:中内聚使用流程图作为工具设计程序是,吧流程图的某一部分划出组成模块,上一个的输入就是慈爱一      个的输出。

 通信内聚:中内聚各个功能都是使用相同的输入或者输出数据。

 信息内聚:高内聚(顺序内聚)按照顺序完成,各个功能在同一结构上操作。

 功能内聚:高内聚一个模块中个个部分都是完成单一的不可缺少的功能。

【危机】
危机产生原因:规模大很难检验
【方法】

结构化设计方法

事务性系统结构图:接受一项事物,根据事物处理的特点和性质,钻则分派一个适当的处理单元,然后给出一个结果。

导图如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46151596/article/details/118405609