1、软件工程 第一讲,苏贵洋 ,子曰:“丘也闻有国有家者,不患贫而患不均,不患寡而患不安。” 成绩的组成: 点名+课堂纪律=10% 小作业=30% 大作业=60% 开始点名 班长课后来报道,点名时间,课程论文(30%) 形式:软件开发实践心得或某书读后感 篇幅:8000字,每人交1篇 时间:11月15以前 大作业(60%) 内容:构造一个应用系统(包括分析、设计、编码、测试) 形式:分组、分阶段文档、编码、集成,课程考核,小作业截止日期:11月15日。大作业截止日期:12月31日。,作业提交时间,电子版: 作业收到会有反馈 UML建模文档、Word文档和编码 文档中包括程序Run起来的界面抓图 详
2、细的分工、模块说明 建模工具可以任意选择 会有程序演示的抽查 小贴士:文档打包压缩一下会更好 在压缩包里面务必注明年级、姓名、学号等。,作业形式,大作业要求就一个系统完成其开发过程并交付相关文档。交付的文档包括 软件需求说明书(包括建模结果) 软件设计说明书(包括软件体系结构、数据结构、外部接口、算法和处理、出错处理等设计) 用户手册(包括安装和使用说明、出错信息和对策等) 演示程序(包括主要数据输入、数据显示和操作界面),大作业要求,可以234人一组,自由组合,合交大作业。 根据软件规模,考虑人数、工作量、质量,大作业要求(续),选题建议 可以自选(结合正在开发的相关系统)。也可以从以下参考
3、选题中选择: 网络防沉迷系统(结合身边的情况,深层次讨论实现) 电子商务系统(如网上购物商城、网络书店) 远程教学网站(如软件工程或数据结构课程的课程信息发布网站) 动态教学演示系统(选某门课程) 信息管理系统(如图书管理系统、库存管理系统、车管所业务管理系统、商店业务处理系统) 实际需求的系统设计(如交友管理、财务管理等),大作业要求(续),图书管理系统旨在用计算机对图书进行管理,本项目针对的用户是中小型图书馆,它是图书管理支持系统。系统的功能需求有: 用户管理 包括用户权限管理、图书编目人员和管理人员密码设置、读者登记和读者注销等功能。 馆藏图书管理 包括图书目录的登记、修改、删除等功能。
4、,大作业案例 图书管理系统的设计与开发,同一种书可分为若干卷(册),还可有多个复本。在馆藏编号中要体现这种层次关系。 图书查询 包括读者身份认证、按书名、作者名、出版社、出版日期、索书号(馆藏编号) 等查询,也可以做多关键字联合查询。 图书流通 分为本馆流通和馆际互借两类,对馆际互借需在进行具体操作前先进行馆际互借的许可认证。,大作业案例(续),图书流通主要操作包括图书的出借、返还、(远程或馆内现场) 预约、续借、历史信息统计记录等。 图书馆读者的索书请求通过多个客户机在线录入,在图书查询界面上可以直接选择借书和撤销,并可以切换到借书列表界面,也可以从借书列表界面切换到图书查询界面。 借书列表
5、界面可以显示索书结果。,大作业案例(续),查询与统计 图书借出频率信息 图书借出去向信息 读者借阅信息 读者借阅期限及续借、处罚信息 图书流通中的损失情况信息 馆际互借文件的查询和统计 可定义输出报表格式并选择输出到打印机或数据库。,大作业案例(续),数据维护 对数据库文件进行信息备份和恢复。建立软件产品和开发要求及需求模型。 数据流图模型或用例模型,描述功能性需求 实体关系模型或对象模型,描述数据信息,大作业案例(续),系统开发的阶段划分 一、需求分析,状态图、顺序图,描述对象行为和服务 数据字典,详细定义数据信息 编写软件需求说明书建立软件总体结构,建立设计模型 软件总体结构设计 可用系统
6、结构图或类图 软件数据结构设计 可用数据库或表格文件 软件图形界面设计 用GUI设计 出错处理设计,大作业案例(续),二、软件设计,建立软件实现细节,包括控制机制 模块接口设计 模块主要算法设计 编写软件设计说明书实现一个用户界面演示程序(用任意语言) 给出主要的界面,包括相应的菜单和对话框,可以演示。 编写用户手册,大作业案例(续),三、软件实现,使用图文并茂的方式,说明各种功能的使用方法及出错处理信息。 菜单方式下各种功能的操作顺序。 统计报表或各种单据的数据格式。 出错处理清单。 系统配置及安装步骤。,大作业案例(续),孙子谋攻 “知己知彼,百战不殆。” Show一下去年的优秀小作业、大
7、作业,优秀大作业案例,理论 课程定位 内容:基本原理、方法和技术 形式:讲授、自学、讨论 参考书的选择:自选,课程安排,软件工程是软件的哲学 没有理论指导的实践是盲目的实践 KISS原则 Keep It Simple, Stupid 大道至简,从简入繁,化繁为简 在绝大部分情况下,更简单的往往是更有效的。所以我始终忠告朋友们:“力求简明”约翰.墨菲 大道甚夷,而民好径 老子,概述,如果你还没成功,表示还没失败够 挫折是一种转折,危机是一种转机 时间的力量超乎我们想象的强大。只有经历长时间的洗涤、磨砺和淘汰,才可以看出你真正的才能 永远牢记,无论赢输,一人承担。 祝愿大家在学习阶段多失败、多挫折
8、!,失败和挫折,中美软件工程联合教学实验 上海交通大学信安学院与Old Dominion University(http:/www.odu.edu/)商学院 方法:与美国的同学一起做一个软件工程项目。美方主要负责建模和画图。中方负责其他部分。 要求:主动的交流、热情的完成项目、保留交流记录。 组数:3-5组,每组2-4人 中方指导教师:苏贵洋,现在是广告时间,第一节 软件工程概述 策略、方法和工具,概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质
9、量的软件并有效地维护它,这就是软件工程。 规划 大局观,软件工程的本质,软件过程模型 软件的需求分析 软件的设计、建模、编程与实现 软件测试 软件的维护与管理,本课程将要讲述的主要内容,瀑布模型(waterfall model) 快速原型模型(rapid prototype model)螺旋模型(spiral model) 构件集成模型(component integration model) 统一软件开发过程(RUPRational Unified Process),软件过程模型 Process Model,瀑布模型,特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证 存在问题 不适合需求
10、模糊的系统,瀑布模型,快速原型模型,特点 快速开发工具 循环 低成本,快速原型模型,螺旋模型,特点 瀑布模型+快速原型+风险分析 迭代过程 一个螺旋式周期 确定目标,选择方案,选定完成目标的策略 风险角度分析该策略 启动一个开发阶段 评价前一步的结果,计划下一轮的工作,螺旋模型,构件集成模型,特点 面向对象 基于构件库 融合螺旋模型特征 支持软件开发的迭代方法 软件重用,构件集成模型,用例驱动 迭代和增量的过程 五个活动:需求、分析、设计、实现和测试 UML建模,使用工具自动生成代码和文档,统一软件开发过程RUP (Rational Unified Process),Why to do? 可行性研究 What to do?需求分析 How to do? 系统设计,开发软件要回答三个问题,回答是否可行 最短时间 最小代价 三个方面的可行性 技术可行性 经济可行性 操作可行性,可行性研究的任务,循环,复查系统规模和目标 研究现有系统功能 导出新系统模型 重新定义问题 导出和分析各种可选解决方案 推荐行动方针 草拟开发计划 书写文档提交审查,可行性研究的步骤,Rational Rose Power Designer * MS Visio MS Project ,软件建模常用工具,The End,