- 1、本文档共135页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大连理工大学软件工程导论复习综述
大连理工大学软件学院;第1章 基础知识 ;什么是软件;什么是软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。;软件工程基本原理 (开发与维护的指导)
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性;软件工程方法学
把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(paradigm)。
软件工程方法学三个要素:方法、工具和过程。
方法是完成软件开发各项任务的技术,回答“如何做”;
工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;
过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答“如何控制、协调、保证质量”。;目前使用得最广泛的软件工程方法学。
传统方法学也称为生命周期方法学或结构化范型。
当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;
此外,使用传统方法学开发出的软件,维护起来通常都很困难。
结构化-静态分析,面向对象-动态分析;传统方法的特点;面向对象方法:
对象作为融合数据及在数据之上的操作行为的统一的软件构件。
把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。
按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。
对象彼此间仅能通过发送消息互相联系-封装性。;1.3 软件生命周期 ;问题定义
可行性研究
需求分析
概要设计
详细设计
编码和单元测试
综合测试
软件维护
;实际的瀑布模型;快速原型模型;增量模型;完整的螺旋模型;喷泉模型;喷泉模型;可行性与需求分析;可行性研究
不是解决问题,而是确定问题是否值得去解决
较高层次的系统分析和设计过程
需求分析
发现、求精、建模、规格说明和复审的过程
反复求精多次细化,得出对目标系统的完整、准确和具体的要求。
建立数据模型、功能模型和行为模型等三种模型。
还要写出准确的软件需求规格说明。;系统流程图;系统流程图例子; 数据流图;加工中常见关系的符号表示;Date;把处理事务的功能进一步分解后的数据流图;数据字典;定义数据的方法;数据字典的实现; 实体—关系图;某校教学管理 ER 图; 学生和课程之间的E-R模型
学生和课程之间的多对多联系E-R模型;
(b) 将多对多联系转换为一对多联系E-R模型; 其他图形工具;其他图形工具(3);其他图形工具(2);总体设计;总体设计;模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
可以由许多程序员分工编写不同的模块
可以使软件结构清晰,便于扩展
使软件容易测试和调试,因而有助于提高软件的可靠性。
模块大小要适中,不过分细。;模块独立;耦合是对一个软件结构内不同模块之间互连程度的度量。
尽可能松散耦合;数据耦合:
特征耦合:
控制耦合:
外部耦合:
公共耦合:
内容耦合:
;内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
简单地说,理想内聚的模块只做一件事情。
;功能内聚:
信息内聚:
通信内聚:
过程内聚:
时间内聚:
逻辑内聚:
巧合内聚:;改进软件结构提高模块独立性
模块规模应该适中
深度、宽度、扇出和扇入都应适当
模块的作用域应该在控制域之内
力争降低模块接口的复杂程度
设计单入口单出口的模块
模块功能应该可以预测;描绘软件结构的图形工具;正文加工系统的层次图;正文加工系统的H图;;软件结构设计方法;变换流和事务流;设计步骤
复查基本系统模型。
复查并精化数据流图。
确定数据流图具有变换特性还是事务特性。
确定输入流和输出流的边界,从而孤立出变换中心。
完成“第一级分解”。
完成“第二级分解”。
使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。;数字仪表板系统的数据流图;具有边界的数据流图;第一级分解的方法;数字仪表板系统的第一级分解;第二级分解的方法;未经精化的输入结构;精化后的数字仪表板系统的软件结构;事务分析的映射方法;详细设计;详细设计阶段主要完成界面和程序过程设计.
过程设计应该在数据设计、体系结构设计和接口设计完成之后进行.
程序员将根据过程设计写出实际的程序代码。;结构程序设计的经典定义如下所述:
如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则
文档评论(0)