911 软件工程 张海藩软件工程导论(第 软件工程导论第六版
- 作者: Mustang77
- 来源: 51数据库
- 2020-04-15
软件工程实例 报告 文档 程序 都有
1 引言。
1编写目的: 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。
明确开发风险及其所带来的经济效益。
本报告经审核后,交软件经理审查。
1.2 项目背景: 开发软件名称:超市进销存系统。
项目任务提出者:老师。
项目开发者:shu408157847。
用户:超市。
实现软件单位:学校 项目与其他软件,系统的关系: 本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序。
1.3 定义: [专门术语]: [缩写词]: 1.4 参考资料: 《软件工程导论》,张海藩,清华大学出版社。
《实用软件工程》,郑人杰等,清华大学出版社。
2.可行性研究的前提 2.1要求 主要功能: 性能要求: 对服务器上的数据必须进行及时正确的刷新。
输出要求:数据完整,详实。
输出要求:简捷,快速,实时。
安全与保密要求:权限不同 完成期限:预计六个月,即截止2007年12月8日。
2.2目标: 系统实现后,大大提高旅游局的机票预定服务效率超市的管理水平。
降低误差,减少开销 2.3条件,假定和限制 建议软件寿命:5年。
经费来源:。
硬件条件:服务器sun工作站,终端为pc机。
运行环境:Linux 数据库:Oracle8 投入运行最迟时间:2000/04/04 2.4可行性研究方法 2.5决定可行性的主要因素 1 经济可行性 成本/效益分析结果,短期-长期利益分析。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受。
3.技术可行性分析 3.1系统简要描述 3.2处理流程和数据流程 3.3环境可行性 3.4 人员可行性:操作宜学 3.5 效益分析 投资回收周期 2.3年 4.5敏感性分析 设计系统周期为五年, 估计最长可达10年 处理速度:一般查询速度<4秒 关键数据查询速度: <2秒 5。
法律因素 6。
其他可供选择的方案 7.结论意见 由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发. 以上为包含步骤,供你参考!!
软件工程第二版 (张海藩 著) 人民邮电出版社 课后答案
同是天涯沦落人~~我也正在寻找这份答案呢,目前网上能下载到的答案只有寥寥的几道题是课后的,大部分题的答案都找不到。
我已经去人民邮电出版社留言了,希望他们能给我发份答案。
如果我收到答案,我会给你发一份的。
但是不知道你的邮箱是?如果你找到答案,能不能麻烦发给我一份?我的qq是402746150
软件工程导论里的SA方法是什么意思?
Structured Analysis的缩写形式,是结构化分析方法的意思SA方法的基本思想:“由顶向下逐层分解”, 这是软件工程中的一条基本原则。
SA方法的实施步骤: 先分析当前现实环境中已存在的人工系统,再考虑即将开发的软件系统。
SA方法优点: 简单清晰, 易于学习掌握、易于使用。
SA方法的薄弱环节: · SA方法在理解和表达用户的数据需求方面比较局限,同数据库技术亦不能较好地衔接。
· SA方法在理解和表达人机界面方面是很差的,用数据流图描绘人机界面不太合适,逐层分解在这里起不了什么作用,而且SA方法通常要到最后才来考虑人机界面。
· SA方法强调分析数据流,而对时间、控制方面的描述恰恰是不精确的,所以SA方法原则上不适用于实时系统。
· 在澄清、确定用户需求方面能起的作用是有限的。
...
北京交通大学软件工程专业的研究生专业课都考什么?
北京交通大学软件工程专业2014年考研招生简章招生目录 招生年份:2014 本院系招生人数:229 软件工程专业招生人数:8 专业代码:083500 研究方向 01 软件工程理论02 软件工程技术考试科目① 101 思想政治理论② 201 英语一③ 301 数学一④ 926 数据结构与软件工程复试科目、复试参考书复试科目:02105 操作系统复试参考书目:02105 操作系统 《操作系统原理》,西安电子科大出版社,汤子赢同等学力加试科目:① 02201 数据库原理② 02205 面向对象程序设计备注:一级学科博士学位授权点参考书目、参考教材 926 数据结构与软件工程 1.《数据结构》(C语言版),清华大学出版社,严蔚敏、吴伟民;2. 《软件工程导论》,清华大学出版社, 张海藩 。
软件工程(本科)的课程设置
软件工程专业(本科)的课程设置:1、学科:马克思主义理论、大学外语、高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理2、该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
3、实践环节:毕业实习、课程设计、计算机工程实践、生产实习、毕业设计(论文)。
...
【求高手帮忙解几道《软件工程导论》习题,一、填空题1.到目前为...
一.1.程序设计、程序系统、软件工程 2.结构化分析、结构化设计、结构化程序设计 3.需求规格说明书,初步用户使用手册,确认测试计划 4.软件需求、软件表示、概要设计、详细设计 5.系统分析员、用户 6.封装 7.结构化设计、数据流图 8.软件需求明确 9.软件配置管理 10.模块 11.数据值 (以下供参考)二.1.D 2. D三.1.* 2.√ 3. *(如果对你有用,望采纳)
软件工程一般要学什么
2009年软件工程专业培养计划 (同济大学版)附件一:教学安排 课程性质 课程编号 课程名称 考试学期 学分 学时 上机时数 实验时数 A1 002016 形势与政策(1) 1 0.5 1 0 0 A1 070374 思想道德修养和法律基础 1 3 2 0 0 A1 112001 大学英语(A)1 1 4 4 0 0 A1 112144 大学英语(三级) 1 4 4 0 0 A1 112145 大学英语(四级) 1 4 4 0 0 A1 320001 体育(1) 1 1 2 0 0 A1 360011 军事理论 1 1 1 0 0 B1 122004 高等数学(B)上 1 5 5 0 0 B1 122010 线性代数B 1 3 3 0 0 C1 420001 C语言程序设计 1 3 3 0 0 C1 420227 计算机基础 1 3 3 0 0 A1 002017 形势与政策(2) 2 0.5 1 0 0 A1 070373 中国近现代史纲要 2 2 2 0 0 A1 112002 大学英语(A)2 2 4 4 0 0 A1 112145 大学英语(四级) 2 4 4 0 0 A1 112146 大学英语(五级) 2 4 4 0 0 A1 320002 体育(2) 2 1 2 0 0 B1 122005 高等数学(B)下 2 5 5 0 0 B2 420095 英语交流 2 4 4 0 0 C1 420006 数据结构与算法 2 4 4 0 0 C1 420019 离散数学 2 4 4 0 0 C1 420099 汇编语言 2 2.5 2 0 0 C2 420097 面向对象程序设计(C++) 2 4 4 0 0 C2 420226 面向对象程序设计(Java) 2 4 4 0 0 A1 002018 形势与政策(3) 3 0.5 1 0 0 A1 112003 大学英语(A)3 3 4 4 0 0 A1 112147 中级口语 3 3 3 0 0 A1 112148 英语报刊选读 3 3 3 0 0 A1 112149 商务英语 3 3 3 0 0 A1 112154 综合翻译 3 3 3 0 0 A1 112155 实用写作 3 3 3 0 0 B1 122011 概率论与数理统计 3 3 3 0 0 B2 420095 英语交流 3 4 4 0 0 C1 420024 操作系统 3 4 4 0 0 C1 420026 计算机网络 3 4 4 0 0 C1 420117 算法分析与设计 3 3 3 0 0 C1 420244 数据库原理与应用 3 4 4 0 0 E1 420239 嵌入式系统导论 3 3 3 0 0 E1 420240 数字电路与组成原理 3 4 4 0 0 E1 420246 数字逻辑 3 3 3 0 0 E1 420248 大型机概论与操作系统 3 3 3 0 0 E2 420008 Windows程序设计 3 4 4 0 0 E2 420163 大型机程序语言设计 3 2 2 0 0 E2 420214 大型商务数据库基础 3 2 2 0 0 E2 420240 数字电路与组成原理 3 4 4 0 0 A1 002019 形势与政策(4) 4 0.5 1 0 0 A1 078057 ***思想、***理论和“三个代表”重要思想 4 6 3 0 0 A1 112067 大学英语(A)4 4 2 2 0 0 A1 112147 中级口语 4 3 3 0 0 A1 112148 英语报刊选读 4 3 3 0 0 A1 112149 商务英语 4 3 3 0 0 A1 112154 综合翻译 4 3 3 0 0 A1 112155 实用写作 4 3 3 0 0 B2 420096 日语 4 4 4 0 0 C1 420102 编译原理 4 4 4 0 0 E1 420022 计算机组成原理 4 4 4 0 0 E1 420222 中小型服务器应用开发与SOA 4 2 2 0 0 E1 420249 大型机数据库应用开发 4 3 3 0 0 E1 420250 大型机中间件系统与应用 4 2 2 0 0 E2 420008 Windows程序设计 4 4 4 0 0 E2 420107 JAVA企业级开发技术 4 4 4 0 0 E2 420107 JAVA企业级开发技术 4 4 4 0 0 E2 420172 软件架构与设计模式 4 3 3 0 0 E2 420241 Java移动开发技术 4 3 3 0 0 E2 420251 大型机应用开发综合实验 4 2 2 0 0 F2 420030 计算机图形学 4 3 3 0 0 F2 420230 GIS导论 4 3 3 0 0 F2 420231 数据仓库技术 4 3 3 0 0 F3 420260 实时系统 4 3 3 0 0 F3 420261 Firmware程序设计 4 3 3 0 0 A1 320003 体育(3) 5 1 2 0 0 B2 420225 职场商务英语 5 2 2 0 0 C1 420243 计算机系统结构 5 4 4 0 0 E1 420106 基于UML的面向对象系统分析与 5 3.5 3 0 0 E1 420192 软件工程 5 4 4 0 0 E2 420108 XML与WebService技术 5 3 3 0 0 E2 420247 Linux程序设计 5 3 3 0 0 E2 420252 大型机系统管理 5 2 2 0 0 F2 420108 XML与WebService技术 5 3 3 0 0 F2 420242 数字信号处理 5 4 4 0 0 F2 420253 数据库查询优化 5 2 2 0 0 F3 420232 .net体系结构与设计开发 5 3 3 0 0 F3 420233 基于GIS的.net开发技术 5 3 3 0 0 F3 420234 高级计算机图形学 5 3 3 0 0 F3 420235 数据分析与数据挖掘 5 3 3 0 0 F3 420236 Service Based GIS 5 3 3 0 0 F3 420237 商务智能 5 3 3 0 0 F3 420237 商务智能 5 3 3 0 0 F3 420256 中小型服务器系统操作与管理 5 2 2 0 0 F3 420262 移动应用开发 5 3 3 0 0 A1 070376 马克思主义基本原理 6 3 2 0 0 A1 320004 体育(4) 6 1 2 0 0 E1 420028 软件项目管理 6 3 3 0 0 E1 420111 软件测试技术 6 3 3 0 0 E2 420028 软件项目管理 6 3 3 0 0 E2 420111 软件测试技术 6 3 3 0 0 E2 420111 软件测试技术 6 3 3 0 0 F2 420131 Windows CE嵌入式系统 6 3 3 0 0 F2 420245 嵌入式Linux系统 6 3 3 0 0 F2 420254 大型机数据库系统管理 6 2 2 0 0 F2 420255 服务计算 6 4 4 0 0 F3 420258 IT服务管理 6 2 2 0 0 F3 420263 车载嵌入式系统 6 3 3 0 0 F2 420170 信息安全基础 7 3 3 0 0 F3 420238 人机界面 7 3 3 0 0 F3 420257 Linux系统管理 7 2 2 0 0 F3 420259 电子商务技术基础 7 2 2 0 0 附件二:实践环节安排 序号 课程号 课程名称 学分 学期 阶段 时间长度 地点 上机时数 备注 1 420145 数据结构课程设计 1.5 2 教学周阶段 3周 0 2 360002 军训 2 2 实践周阶段 3周 0 3 420142 电子技术实验 1.5 3 教学周阶段 3周 0 嵌入式系统方向 4 420147 计算机网络实验 1 3 教学周阶段 2周 0 5 420148 操作系统课程设计 1.5 3 教学周阶段 3周 0 6 420228 公共讲座 1 4 教学周...
软件工程如何学好?
本人乃软件工程专业毕业生! 不要着急,要自信一点,都是这么过来的,大学里面主要学的就是理论,实际操作都是要靠自己在课外的时间多自学.一般大一都是学C,大二学习java和C++,不过你自己要弄清楚,你到底想精通哪一门,千万不要每一门都去深究(暂时你没有那么多的时间)。
大学课堂上学的东西真的好重要,千万别听别人说什么“大学什么都学不到”,我学的是java,下面是我学习的部分路线(直接从以前的回答中复制过来的),希望对你有用。
首先找一本简单的教材,先对java有个基本的认识(大概看那么半个月就差不多了,随便下载一本入门的书就行了) 然后推荐你看>,分为上下两卷,已经是第八版了,大概有一千六七百页;当 你看完后,基本的java知识已经掌握了(记住,一定要多练习啊)(我那时候一个暑假看完第一遍,每天看将近十个小时加练习,但是要弄懂,呵呵,至少看个三四遍吧,这两本书只要能搞懂70%就很不错了) 这个时候你可以看看>中文名"java编程思想",这本书写的比较难,如果你看不懂,那么你要多做练习,慢慢看,如果看完了,而且懂了,那么证明你的java水平到达了一个更高的层次;(去参加面试的时候问的那些java知识完全可以应付过来了)(或者你可以先看下面的书,边看thinking in java这本书,这样也是可以的,而且学习的效率应该会高些) 然后java就会分方向,j2me(手机编程)不建议你去学这个(要学就学android手机编程),已经过时了;j2ee方向(Web编程),先学html,javaScript,css(这些书多得数不清,呵呵),然后就学servlet和jsp,《jsp应用开发详解》(入门) 《Servlet与JSP核心编程》(核心)这两本书还不错,然后就可以学SSH(三大框架,这个书一大堆),学习struts的时候建议你从struts1开始学起《精通Struts基于MVC的Java Web设计与开发》,然后就可以学习struts2《Struts2权威指南》,接下来学习Hibernate《精通Hibernate:Java对象持久化技术详解》,最后学习Spring《spring2.0技术手册》(提示:只要你java基础学得好,这些东西都会学得很快) 这个时候你就要把注意力放在设计模式,数据结构和计算机算法上面来了, 设计模式可以先看> 然后再看>, 数据结构建议你看清华大学严慰敏老师写的那本教材; 计算机算法要了解基本的排序,如果你不做底层,只做应用的话,没有必要去看那个这本书太难了。
(设计模式,数据结构和算法才是真正的精髓,要有很多年的编程经验才能够使用得游刃有余,光看懂还不行的,一定要多练习,到了这个境界才是真正的java高手)(我学java有三年了,这是我的体会) 等你掌握前面的这些知识之后,推荐你看>,这本书是目前java领域公认的高级书籍。
在项目中你肯定会遇到一些前端的知识,那么你得精通javascript,>(入门), >(进阶),这两本书弄懂了,那么学习jquery和extjs都会很快的。
还有要提醒你一下,对于初学者,不要使用eclipse编程工具,建议你先用记事本写程序,当你比较熟练了之后就可以使用eclipse这些工具了。
不要心急,不要图快,所有的书要一本本的慢慢看,多看几遍(一本书看上个四五遍,你就可以成高手,呵呵)。
java基础(j2se)的重点有:继承、多态、流、线程、网络编程、反射、集合、数据库连接、泛型、JNI技术、分布式技术还有解析xml也是很重要的,如果你想学android手机编程,那么SWING和AWT要熟悉一下。
如果你不想学Web编程(j2ee),那么我建议你可以学android手机编程《Google+Android开发入门与实战》(入门) 《Google Android SDK开发范例大全》(深入)(建议把android当作业余爱好,把web编程当作主攻方向,因为j2ee包含了大量框架知识),书很多,可以自己去搜。
多想 多看 多练才是王道,不要相信什么培训机构,这些都没啥用,真正学好只能靠你自己。
面向对象思想+java基础(j2se)+数据结构+设计模式+计算机算法 为核心,学好了这几个8000元/月轻而易举,什么都可以不学好,唯独这几科一定要学好,切记切记! 当然,随着你的技术水平的提高,你还会要学习其他的语言,不过这都是后话,等你把上面的东西掌握了,我再告诉你怎么学(高并发等内容),哈哈!
求一个用C+编写的题目为学生学籍信息管理系统设计,整个系统要设...
没法传图,自己想一下怎么改吧…… 一.开发目的: 总结软件开发过程中的方法和技巧,更好的应用和数据库技术 1.开发内容:开发一套学生成绩管理系统软件 采取的研究方法:采用面向对象的编程,结合网络和数据库技术,实现控制和管理。
通过系统分析、需求分析、概要设计、详细设计、编写代码、软件测试、软件维护、经验方法总结等一系列实验方案,实验软件的开发。
2.具体开发方案: 分七个阶段进行: 系统分析、需求收集和分析 概念设计 第一阶段:系统分析、需求收集和分析 这一阶段首先进行系统分析,分析确定系统的规模和范围,确定软件的总体要求以及所需要的硬件和支撑软件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制,完善项目计划。
在这之后,这一阶段的大部分时间将被用来进行需求收集和分析。
向学校管理人员及学生了解情况,确定软件系统的综合要求,分析软件系统的数据要求,导出系统的逻辑模型,修正项目开发计划。
采用结构化分析方法,生成数据流图、数据词典及加工逻辑说明。
估计阶段跨度:2006年某月初至某月中旬 第二阶段:概要设计 在这一阶段将确定软件系统的结构,对全局数据结构进行设计,进行模块划分,确定每个模块的功能 接口以及模块间的调用关系。
采用与结构化方法衔接的结构化设计方法,生成结构图及概念设计说明书。
估计阶段跨度:2006年某月中旬至某月底 第三阶段:详细设计 为每个模块设计实现的细节将成为这个阶段的主要任务,还要对局部数据结构进行设计。
采用结构化设计方法。
采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。
使得程序具有良好的结构,增强程序的可读性。
生成程序流程图及详细设计说明书。
详细设计时,如果不满意,须回到概要设计中重新完善设计。
估计阶段跨度:2006年某月初至某月中旬 第四阶段:编写代码 这一阶段用来根据详细设计说明书编写代码。
采用计算机语言编写。
追求高质量的代码,生成源程序代码、内部文档。
估计阶段跨度:2006年某月中旬至某月底 第五阶段:软件测试 这将是一个很重要也将是一个很耗时间和精力的阶段。
在这一阶段中将尽可能多地发现软件中的错误和缺陷。
如果有错,还将退回到编码阶段进行调试。
测试过程分为单元测试、集成测试和确认测试。
估计阶段跨度:2006年某月初至某月中旬 第六阶段:完善各项文档及和报告,从整个开发过程和这些文档中总结经验和教训,罗列各种方法和技巧。
估计阶段跨度:2007年某月中旬至某月底。
需求分析说明书 一,引言 21世纪以高科技为核心的知识经济将占主导地位,国家的综合国力和国际竞争力将越来越取决于科学技术创新水平。
教育作为知识创新、传播和应用的基础,培养和输送人才的摇篮,已经成为经济发展和社会进步的基础。
尽管人类进步的程度随着不同时代,不同地区而有所变化,教育的口径却在不断扩宽,以便使过去仅供少数人使用的教育资源能够为更多各种年龄、不同社会阶层和背景的人们所用。
在信息爆炸的时代,传统教学管理面临着诸多挑战。
1.编写目的: 开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。
2.背景说明 随着学校规模的不断扩大,专业、班级、学生的数量急剧增加,有关学生选课的各种信息量也成倍增长,而目前许多高校的学生选课管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的体育课信息管理系统来提高管理工作的效率。
基于互联网的学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。
3.术语定义及参考资料 1. (美) Grady Booch,James Rumbaugh,Ivar Jacobson,《UML用户指南》,机械工业出版社,2001年8月 2.Microsoft,MSDN 3.Microsoft, SQL Server2000联机手册 4.Roger S. Pressman。
软件工程——实践者的研究方法。
机械工业出版社,1997 5.IPL。
Software Testing and Software Development Lifecycles。
IPL,1996 6.Karl E. Wiegers《软件需求》机械工业出版社,1999 7.张海藩《软件工程导论》清华大学出版社。
4任务概述 4.1. 目标 系统开发的总体任务是实现学生选课信息关系的系统化、规范化和自动化。
4.2. 系统技术 学生选课系统要求具有信息处理的开发性,方便教师上传学生成绩、学生上网选课和查询选课信息及成绩等,因此本系统设计为基于WWW的网络数据库应用系统,使用ASP脚本以Access为数据库的开发技术,运行在支持ASP的服务器上。
4.3基本设计概念和处理流程 采用基于SQL Server 的分布式数据库管理系统。
三层结构是目前用得最多的,这种结构比传统的C/S结构增加了一个应用程序服务器,应用程序服务器包括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端...
学习《软件工程》心得和体会
软件工程学习心得在本学期的软件工程课程的学习中,我们学习了十一章的内容。
第一章软件与软件工程的概念,这一章主要讲解的是一些概念性和基础性的内容,例如软件的概念、特性,软件危机的主要表现,软件工程的概念以及软件生存期、典型生存期模型等等。
第二章软件工程方法与工具,这一章主要对软件工程方法进行介绍,包括三种方法:传统方法、面向对象方法、形式化方法。
还引出了工具UML。
第三章软件需求获取与结构化分析方法,本章详细介绍了需求获取与需求分析阶段的任务以及结构化分析方法,画分层的数据流图、E-R图以及状态图式本节的重点。
第四章结构化分析方法,这一章重点讲解了使用变换型映射方法和事务型映射方法生成初始的模块结构以及模块结构的改进。
第五章编码,这一章重点讲解了编码的风格及规范,还告诉我们编码规范说带来的好处,并告诫我们将来一点要形成好的编码风格。
第六章软件测试方法,本章讲解了软件测试相关的概念及重要性,软件测试与开发各个阶段的关系;还介绍了白盒测试技术以及黑河测试技术。
第七章统一建模语言UML概述,本章详细介绍了UML的基本模式、事物、关系及建模时用到的各种图进行了介绍。
第八章面向对象分析,这一章主要讲解了面向对象分析的3种模型,包括功能模型、静态模型和动态模型。
第九章软件体系结构与设计模式,本章对软件体系结构的基本概念、典型风格等进行了讲解。
第十章面向对象设计,本章的重点是对面向对象分析时建立的对象模型进行调整和细化。
第十一章软件维护,本章主要介绍软件维护的任务、软件维护活动以及软件维护方法进行了介绍。
要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须知道软件工程的目标、过程和原则: 软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
正确性指软件产品达到预期功能的程度。
可用性指软件基本结构、实现及文档为用户可用的程度。
开销合宜是指软件开发、运行的整个开销满足用户要求的程度。
这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及维护等活动。
需求活动包括问题分析和需求分析。
问题分析获取需求定义,又称软件需求规约。
需求分析生成功能规约。
设计活动一般包括概要设计和详细设计。
概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。
详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
实现活动把设计结果转换为可执行的程序代码。
确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。
维护活动包括使用过程中的扩充、修改与完善。
伴随以上过程,还有管理过程、支持过程、培训过程等。
软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
我们学习了详细设计的方法,其原则是过程描述是否易于理解、复审和维护,进而过程描述能够自然地转换成代码,并保证详细设计与代码完全一致。
包括程序流程图、N-S图、PAD图、HIPO图程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。
它独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程,易于学习掌握。
在流程图中只能使用下述的五种基本控制结构:顺序型;选择型;while型循环;until型循环;多情况型选择。
N-S图:一种符合结构化程序设计原则的图形描述工具,称为盒图,又称为N-S图。
在N-S图中,为了表示五种基本控制结构,规定了五种图形构件。
顺序型;选择型;WHILE重复型;UNTIL重复型;多分支选择型。
PAD图:它是用结构化程序设计思想表现程序逻辑结构的图形工具。
PAD也设置了五种基本控制结构的图示,并允许递归使用。
HIPO图:HIPO图是由一组IPO图加一张HC图组成。
它是美国IBM公司在软件设计中使用的主要表达工具。
HC图既是层次图,用于表示软件的分层结构。
HC图中的每一个模块,均可用一张IPO图来描述。
IPO 图由输入、处理和输出三个框组成,需要时还可以增加一个数据文件框,这种图形的优点,是能够直观地显示输入—处理—输出三者之间的联系。
还有测试方法:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。
测试方法有分析方法(包括静态分析法与白盒法)与非分析方法(称黑盒法)。
静态分析技术:不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。
动态测试技术:当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。
还学习了其他很多工具、语言、方法等,虽然不是都学得很透彻,但我相信在今后的学习中一定会慢慢...
转载请注明出处51数据库 » 911 软件工程 张海藩软件工程导论(第
