- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程关注于大型程序的构造:一个人短时间写的程序是小程序,多人半年以上时间为大型程序。
软件工程的基本原理
1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性
软件工程包括技术和管理两方面,是技术和管理紧密结合所形成的工程学科。
管理:是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。
范型:在软件生命周期全过程中使用的一整套技术方法的集合为方法学,也称为范型。
软件工程三要素:方法,工程,过程
软件工程方法学:分为传统方法学和面向对象方法学
软件生命周期
问题定义2. 可行性研究3. 需求分析4. 总体设计5. 详细设计6. 编码和单元测试
综合测试8. 软件维护
可行性研究过程
1. 复查系统规模和目标2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型
4. 进一步定义问题5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划
8. 书写文档提交审查
在澄清问题定义后,分析员应导出系统的逻辑模型,然后探索主要解法,对每种解法研究可行性,至少三种可行性:技术可行性(使用现在的技术能实现这个系统吗?),经济可行性(这个系统的经济效益能超过它的开发成本吗?),操作可行性(系统的操作方式在这个用户组织内行的通吗?),必要时还需要法律、社会效益等发面研究每种解法可行性。
数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流4种基本符号:
在数据流图中应该描绘所有可能的数据流向,而不应该描绘出某个数据流的条件。
数据字典:对数据流图中包含的所有元素的定义的集合;
数据流图与数据字典共同构成系统的逻辑模型。
数据字典的内容: 1)数据流; 2)数据元素(数据流分量); 3)数据存储;4)处理。
数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述三个原因:
①对于同样的数据,不同的用户使用了不同的名字;
②一个分析员在不同时期对同一个数据使用了不同的名字;
③两个分析员分别分析同一个数据流时,使用了不同的名字。
从哪些方面验证软件需求的正确性
一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。
设计过程:1. 设想供选择的方案2. 选取合理的方案3. 推荐最佳方案4. 功能分解
设计软件结构6. 设计数据库7. 制定测试计划8. 书写文档9. 审查和复审
总体设计过程分为两个主要阶段:系统设计阶段,确定系统的具体实现方案;结构设计阶段, 确定软件结构。
软件设计过程应遵循的基本原理跟相关概念:
模块:是由边界元素限定的相邻程序元素的序列,而且有个总称标识符代表它。
抽象:人类在认识复杂现象的过程中使用的最强有力的思维工具
逐步求精:人类解决复杂问题采用的基本方法
Miller法则: 一个人在任何时候都只能把注意力集中在(7+-2)知识块上。
信息隐蔽和局部化:
信息隐蔽原理:要求一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。
局部化:把一些关系密切的软件元素物理地放的彼此靠近,更有助于实现信息隐蔽。
局部化与信息隐蔽是密切相关的
模快独立:每个模块完成一个相对独立的子功能,并且和其他模块之间的关系很简单。
模块独立性的概念是模块化、抽象、信息隐藏和局部化的直接结果。
模块的独立性可以由两个定性标准度量:
耦合:用于衡量不同模块彼此间互相依赖(连接)的紧密程度;
内聚:用于衡量一个模块内部各个元素间彼此结合的紧密程度。
耦合的六种类型:1.非直接耦合2.数据耦合3.特征耦合4.控制耦合5.公共耦合6.内容耦合
七种内聚:1.偶然内聚2.逻辑内聚3.时间内聚4.过程内聚5.通信内聚6.顺序内聚(信息 内聚)7.功能内聚
启发式规则: 1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇入、 扇出都应适当 4.模块的作用域应该在控制域之内 5.力争降低模块接口的 复杂程度 6.设计单入口单出口的模块 7.模块的功能应该可以预测
面向数据流的设计方法把信息流映射城软件结构,数据流的类型
文档评论(0)