您好,欢迎访问三七文档
软件工程概论48学时(24理论+24上机)顾春华chgu@ecust.edu.cn课程安排理论内容:基本原理、方法和技术形式:讲授、自学、讨论实践内容:构造一个应用系统(包括分析、设计、编码、测试)形式:分组、分阶段文档、编码、集成软件工程的内容软件工程的基本概念软件过程软件开发各阶段的任务、技术、方法传统方法、面向对象方法项目管理软件质量保证第一章软件危机与软件工程软件与软件危机软件工程技术复审和管理复审软件程序、软件与软件产品独唱--小合唱--合唱--万人大合唱|||简单程序较复杂程序软件软件包括程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料软件开发的发展过程计算机应用发展软件数量多规模大软件成本高质量低个体化软件开发方法软件维护困难软件危机软件工程软件危机定义计算机软件的开发和维护过程所遇到的一系列严重问题表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势软件危机原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析软件开发=程序编写轻视软件维护软件危机解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具软件工程定义指导计算机软件开发和维护的工程学科工程方法+管理技术+技术方法B.W.Boehm七条基本原理确保软件质量和开发效率P5-7课后作业你以前开发软件的过程是什么?你认为正确的软件开发过程是怎样的?学习理解RUP(可选)你对软件工程课教学方式和内容的建议软件生命周期软件生命周期软件定义问题定义可行性分析需求分析软件开发系统设计编码测试软件维护技术复审和管理复审复审每阶段结束前技术复审从技术角度确保质量降低软件成本(尽早发现问题)管理复审成本、进度、经费等技术复审审查小组审查过程准备简要介绍情况阅读被审文档开审查会返工复查第二章软件过程模型ProcessModel瀑布模型(waterfallmodel)快速原型模型(rapidprototypemodel)螺旋模型(spiralmodel)转换模型(transformationalmodel)构件集成模型(componentintegrationmodel)瀑布模型问题定义可行性研究需求分析软件设计编码测试维护瀑布模型特点阶段的顺序性和依赖性推迟实现的观点质量保证存在问题不适合需求模糊的系统快速原型模型需求分析原型开发最终系统设计原型评价最终系统实现用户反馈快速原型模型特点快速开发工具循环低成本种类渐进型抛弃型螺旋模型螺旋模型特点瀑布模型+快速原型+风险分析迭代过程一个螺旋式周期确定目标,选择方案,选定完成目标的策略风险角度分析该策略启动一个开发阶段评价前一步的结果,计划下一轮的工作转换模型形式化规格说明与需求比较后修正变换2变换1变换n测试形式化开发记录系统需求目标系统转换模型特点形式化软件开发方法形式化需求规格说明变换技术程序自动生成技术确保正确构件集成模型构件集成模型特点面向对象基于构件库融合螺旋模型特征支持软件开发的迭代方法软件重用RUP用例驱动迭代和增量的过程五个活动:需求、分析、设计、实现和测试四个阶段第三章可行性研究可行性研究的任务可行性研究的步骤可行性研究的工具系统流程图数据流图数据字典成本/效益分析开发软件要回答三个问题Whytodo?—可行性研究Whattodo?—需求分析Howtodo?—系统设计可行性研究的任务回答是否可行最短时间最小代价三个方面的可行性技术可行性经济可行性操作可行性循环可行性研究的步骤1.复查系统规模和目标2.研究现有系统功能3.导出新系统模型4.重新定义问题5.导出和分析各种可选解决方案6.推荐行动方针7.草拟开发计划8.书写文档提交审查1复查系统规模和目标问题定义阶段的成果系统规模和目标报告书复查任务改正含糊的、二义的描述改正不正确的描述核查系统限制和约束2研究现有系统功能分析现有系统高层系统流程图确定系统功能比较新旧系统新系统必须完成旧系统的基本功能新系统必须改正旧系统存在问题新系统必须比旧系统增收入、减支出3导出新系统模型旧系统逻辑模型新系统逻辑模型新系统目标和规模逻辑模型描述工具数据流图数据字典用例图4重新定义问题复查问题定义、规模和目标根据新系统模型分析员误解用户遗漏重新定义问题循环(定义,分析,求解,重定义)5导出和分析可选解决方案从逻辑模型导出物理系统方案不同角度多个方案分析各种可选方案技术可行性操作可行性经济可行性为可行方案制定初步进度计划6推荐行动方针得出可行性研究结果继续开发终止项目推荐解决方案成本/效益7草拟开发计划为推荐方案确定开发计划进度开发人员硬件设备软件工具各阶段成本估计8书写文档提交审查可行性研究报告各步骤结果推荐方案开发计划等系统流程图SFD物理数据流图,不同与程序流程描述物理系统表示物理部件信息流动符号(P21)例子(P23)分层的SFD从抽象到具体,从简单到复杂数据流图DFD描述系统逻辑模型信息在系统中的流动和处理用途交流信息的工具分析和设计的工具数据流图DFD符号P24例子P25-27分层从高层到低层分解前后的数据流必须一致命名数据流处理领书单进书通知购书单缺书单DFD练习—售书系统学生教材购销系统书库保管员领书单进书通知进书通知购书单缺书单DFD练习—售书系统1销售2采购书库保管员学生F1教材存量表F2缺书登记表数据字典DDDFD中所有元素的定义的集合内容数据流数据流分量数据存储处理(一般不用DD描述)数据字典DD定义数据的方法自顶向下分解数据数据元素的组合方式顺序:A+B选择:[A|B]重复:1{A}5可选:(A)数据字典DDDD的用途分析阶段的交流工具包含控制信息数据库设计的基础例子P32成本/效益分析成本估计代码行技术行数*每行平均成本任务分解技术人月1*月工资+人月2*月工资+。。。自动成本估算软件工具成本/效益分析成本/效益分析方法开发成本、运行费用新系统带来的经济效益必须考虑货币的时间价值(利率)计算投资回收期纯收入投资回收率第四章需求分析需求分析的任务与步骤需求获取的常用方法分析建模软件需求说明结构化分析技术面向对象分析技术需求分析的任务和步骤需求分析的任务建立分析模型编写需求说明需求分析的步骤需求获取需求提炼需求描述需求验证需求获取的常用方法联合分析小组用户代表、领域专家和系统分析员客户访谈充分准备,寻找共同语言循循序渐进、逐步逼近问题分析与确认多个来回分析建模结构化分析模型面向对象分析模型分析模型描述工具DFD、DD和PSPECCFD、CSPEC和STDE-R图用例图,对象-关系图,对象-行为图两种程序设计方法程序设计的两次飞跃结构化程序设计程序=数据结构+算法面向对象程序设计程序=对象+消息两种软件工程方法传统软件工程软件分析→总体设计→详细设计→面向过程的编码→测试面向对象软件工程软件分析与对象抽取→对象详细设计→面向对象的编码→测试面向对象的基本概念对象Object类Class继承Inheritance消息Message面向对象对象+类+继承+消息通信对象Object客观世界中的实体状态(静态属性Attributes)操作(动态行为Mehtods)对象::=ID,MS,DS,MIIdentifierMethodSetDataStructureMessageInterface对象的特点以数据为中心对象是主动的实现数据封装本质上有并行性模块独立性好类Class和实例Instance类相同属性和行为的对象的抽象实例特定类所描述的一个具体对象子类直接继承父类的数据和操作继承的传递性,单继承、多重继承继承(Inheritance)家具桌子椅子衣柜床椅子的实例多态性Polymorphism概念不同类层次共享一个方法名相同的参数特征和返回值类型多种不同实现C++中虚函数实现动态联编重载Overloading函数重载同一作用域多个名字相同的函数参数特征不同静态联编运算符重载消息Message对象间的交互手段形式:Message:[dest,op,para]DestinationObjectOperationParameters结构化分析模型加工说明数据对象说明STD图DFD图E-R图DD控制说明面向对象分析模型属性、操作、协作者对象-行为模型对象-关系模型类/对象模型使用实例软件需求说明(SRS)引言信息描述功能描述需要规格说明书行为描述质量保证接口描述其它需求分析模型描述工具结构化分析工具DFD、DD和PSPECCFD、CSPEC和STDE-R图面向对象分析工具用例图,类对象图对象-关系图对象-行为图CFD和CSPEC与DFD类似适合实时系统的分析表示控制流CFD和CSPEC的符号表示控制信息或事件引用控制说明例子:DFD和CFD---DFD信号半分钟数据光电管采集计数传送工控机处理实时数据显示班数据处理半小时数据班数据例子:DFD和CFD---CFD翻屏人工驱动信息时钟半小时半分钟某型号累加物品经过信号半分钟数据光电管采集计数传送工控机处理实时数据显示班数据处理半小时数据班数据STD描述软件状态变迁符号表示矩形---系统状态箭头---状态转变方向规则表达式---事件/触发行为状态1状态2事件/触发行为STD例子20秒到/翻屏生成最新数据/翻屏半小时到/工控处理半分钟到/传送空闲/采集物品经过/计数采集PLC计数传送工控处理实时翻屏
本文标题:软件工程概论(1)
链接地址:https://www.777doc.com/doc-213259 .html