没有合适的资源?快使用搜索试试~ 我知道了~
需要考软件工程的人值得参考一波,全是考试重点。
资源推荐
资源详情
资源评论
软件危机
概念:计算机软件的开发和维护过程中所遇到的一系列严重问题。
表现:
对软件开发的成本和进度估计不准确
用户对“已完成的”软件系统不满意的情况经常发生
软件的质量靠不住
软件的可维护性差
产生的原因:
本身特点
缺乏可见性(正确与否,只有使用才知道)
不会被用坏(没有磨损,老化问题)
规模庞大,复杂(涉及人类社会的各行各业
软件是订制的(捕获需求很重要)
错误的方法
忽视需求分析
认为软件开发就是写程序并使之运行
轻视维护
解决方法(缓解)
推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法
开发和使用更好的软件工具
良好的组织管理措施
软件工程
定义:
为了经济的获得可靠且有效运行软件,而建
立的和使用的完善的工程原理
!"# :把系统的,规范的可度量的
途径应用于软件开发、运行和维护过程,也就是把工程应用于软件开发 研究 中提到的途径
内容:
指导软件开发的和维护的工程学科,采用工程的概念、原理、方法来开发和维护软件,结合正确的
管理技术和当前最好的技术方法,经济的开发高质量的软件
特性:
关注大型程序构造
中心课题是控制复杂性
软件经常变化
开发效率非常重要
$ 和谐的合作的开发软件的关键
软件必须有效的支持它的用户
% 在软件工程领域中通常有具有一种文化背景的人替具有另一种文化背景的人创造产品
基本原理:
用分段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
使用现代程序设计
$ 结果应能够清楚的审查
开发小组的人员应该少而精
% 承认不断改进软件工程实践的必要性
方法学:
三要素:方法、工具和过程
传统方法学☹ 结构化方法
结构化分析方法(&)
结构化设计方法(&')等
优点:
( 把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便
于不同人员分工协作,从而降低了整个软件开发工程的困难程度;
( 在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个
阶段结之前都从技术和管理两个角度进行严格的审查,合格之后才开始下一阶段的
工作,这就使软件开发工程的全过程一种有条不紊的方式进行,保证了软件的质量,
特别是提高了软件的可维护性。
缺点:
( 生产效率非常底
( 软件重用性差
( 软件可维护性差
( 开发出的软件不能满足用户需要
面向对象方法学😊
对象是具有相同状态(数据)的一组操作的集合
把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程
面向对象的方法 )对象*分类 *继承 *通过消息的通讯
)+, *- **-..!/.
特点:
( 以数据为中心
( 对象是主动的
( 实现了数据封装
( 本质上具有并行性
( 模块独立性好
优点
( 与人类习惯的思维方法一致
( 可重用性好
( 可维护性好
( 稳定性好
( 较易开发大型软件
( 面向对象的软件比较容易修改
( 面向对象软件比较容易理解
缺点
( 需要一定的软件支持环境
( 不太适宜大型的 0& 开发,若缺整体系统设计划分,易造成系统结构不合理、
各部分关系失调等问题
( 只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优
软件定义阶段(系统分析员)需要做什么?
问题的定义:(要解决的问题是什么?)
系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过对系统的实际用户和使用部门
负责人的访问调查,分析员扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨
论这份书面报告,澄清含糊不精的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。
可行性分析:(对上一阶段定义的问题有行的通的方法吗?)
需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析
和设计的过程。
+ 可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问
题是否值得去解,是否有可行的解决办法。
需求分析:(为了解决问题,目标系统必须做什么?)
主要是确定目标系统必须具备哪些功能
+ 在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常
用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。
需求分析阶段必须提供完整准确的系统逻辑模型,经过用户确认之后才能进入下一个阶段,这就可
以有效地防止和克服急于着手进行具体设计的倾向。
软件开发阶段需要做什么?
总体设计:(概括的说应该怎样实现目标系统)
总体设计阶段以比较抽象概括的方式提出了解决问题的办法1应该考虑几种可能的解决方案
系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在
充分权衡各种方案的利弊的基础上1推荐一个较好的系统 最佳方案1并且制定实现所推荐的系统的详细计
划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另一项主要工作。
详细设计:(应该怎样具体的实现这个系统)
详细设计阶段的任务就是把解法具体化
这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工
程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代
码。
编码和单元测试
写出正确的容易理解、容易维护的程序模块。
综合测试
通过各种类型的测试(及相应的调试)使软件达到预定的要求
+ 最基本的测试是集成测试和验收测试
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配
过程中对程序进行必要的测试。
# 验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参加
下)对目标系统进行验收。
必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验。
$ 软件维护
通过各种必要的维护活动使系统持久地满足用户的需要
+ 通常有四类维护活动:
改正性维护,也就是诊断和改正在使用过程中发现的软件错误;
适应性维护,即修改软件以适应环境的变化;
剩余14页未读,继续阅读
资源评论
yaya专注搞技术
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计-仿生六足机器人的制作全教程源码+电子元器件+程序代码+线路组件图+安装教程+搭建视频教程
- 基于ROS和webots的xrobot机械臂仿真初探C++源码
- 基于ROS的点焊机器人仿真与控制python源码+文档说明+使用说明+详细注释
- 基于vue实现的细粒度交通时空大数据分析系统+源代码+文档说明
- 安卓大作业-基于Electron的交通时空大数据分析挖掘系统客户端(Android)+源代码+文档说明+界面截图
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
- 基于Apache Spark的Spark DistCP重实现设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功