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