本文用于记录上课《软件工程》的笔记,由于太多概念性的东西了,故利用博客进行上课笔记的汇总,第一次上课由于没带电脑+人懒,看情况补档吧
1.软件工程的基本原则(Boehm 七条)
- 分阶段计划,严格管理
- 阶段审查
- 产品控制(需求变更时提出)
- 才用现代程序设计技术
- 结果清晰审查
- 开发小组小而精
- 趁人不断更新,改进是必要的
2.老师的开发经验(姑且记一下)
越早发现和修复错误,代价就越低
3.基本路线:
项目计划–需求分析与定义–软件设计–编码实现–软件测试–运行和维护
计划阶段:
- 确定待开发软件系统的工作范围,给出功能,性能,约束,接口和可靠性等方面的要求。
- 确定开发该软件所需要的人力资源,可重用的软件资源,软硬件工具
- 预估成本:包括开发进度,开发工作量
- 对软件风险进行管理。
需求分析与定义:<确定需要什么功能>
- 需求获取 && 需求分析 && 需求定义
- 软件解决方案(从用户视角和与外界互动的方式)
- <软件要完成哪些功能>
- 软件,需求,规格,说明 (SRS,软件需求规格说明,Software Requiements Specification)
软件设计:<确定要怎么实现功能>
- 软件总体设计:将软件系统划分为不同的子系统或者模块,确定个子系统和模块的功能;明确个子系统和模块对外交互方式与接口,满足需求并符合重要内容;产出软件总体设计说明<软件架构师>
- 软件详细设计:在总体设计的基础上,定义重要的过程,类方法,数据结构或者复杂算法,满足该模块担负的职责;产出:软件详细设计说明<软件设计师>
- 人机交互设计:建立系统与用户之间的交互机制;<人机交互设计师(前端工程师)>
- 软件构件方法(从生产者角度和产品内部结构的方式)<软件要如何完成功能>
- 软件,设计,规格,说明
编码实现:
由程序员去:编码,调试
产生:源程序和可执行程序(也可以算软件产品)
软件测试:<保证产品质量QA>
核心确保为:
- 验证产品生产中的技术运用过程是否正确:单元测试,集成测试 <程序猿完成>:产生 高质量的软件产品
- 确认产品生产中的技术运用出发点是否正确:确认测试,系统测试 <软件测试员完成>:产生 软件测试报告
提交&产生:
- 测试计划
- 测试执行
- 测试报告
软件运行:
- 安装与部署
- 培训用户并提供文档支持
- 项目总结和项目评价
软件维护:
- 移除缺陷
- 适应环境变化
- 提高软件质量
- 满足新的需求(加功能…加钱)
软件模型 的 雏形:构建-修复模型
构建第一个版本–>修复–>得到第二个版本–>修复–> (重复N次) —> 维护
存在de问题:
- 初期没有分析需求的真实性
- 设计阶段没有考虑软件体系结构
- 没有文档,维护困难
可行性分析:
介绍:从各个方面对如案件开发的可行性进行分析,确定一个系统是否值得开发,如果值得开发,则指定相应的项目计划
目标:用最小的代价在尽可能短的时间内确定一个如案件项目是否能够开发,是否值得开发。(喜欢出选择题)
分类:
1.技术可行性:
主要研究待开发系统的功能,性能和限制条件,使用现有技术能否实现,风险有多大。
2.操作可行性:
在一个给定的工作环境中,系统的操作是否可行,以及用户对新系统的认识和接受程度。
3.经济可行性:
成本-效益分析
2 条评论
xx · 2019年10月9日 下午7:05
记得多写点,。。。
Mustenaka · 2019年10月9日 下午11:05
不出意外的话每节课都有笔记