持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第七天,点击查看活动详情
--------20220607 刚考完概率论,感觉寄了,很难受的小张留
软工,拜托,我爱死它了,还没考软工的宝贝们,速看,信我,我感觉整理的这几份还算重点
软件的概念:就是一种逻辑产品,与计算机系统中的硬件相互依存的另一部分,是程序+数据+相关文档的完整集合
软件的分类:可复用型软件 系统软件 工具软件 应用软件
IEEE定义:(1)将系统化,可量化,规范的方法用于软件的开发,维护和测试。即将工程化的方法应用到软件当中
(2)对于(1)中方法的研究
软件危机的表现:
1、对于软件的开发成本和进度估计常常不太准确
2、软件的开发速度无法跟不上电脑硬件系统更新的速度
3、软件成本在计算机系统总成本所占的比例逐年上升
4、软件没有适当的文档进行配合
5、系统常常是不可维护的
6、用户对于系统不满意
7、软件产品的质量往往靠不住
软件工程的提出和软件危机的关系:
20世纪60年代末,由于软件规模扩大、软件复杂性提高导致软件开发开发周期长、成本高、质量差和维护困难,爆发了软件危机,为了克服软件危机,1968年北大西洋公约组织(NATO)提出了软件工程的概念,试图将工程化的方法应用于软件开发。
软件工程的三要素:过程,方法,工具
过程:是软件工程的基础,包含各个技术层次,定义了有效实施软件工程的框架
方法:技术上的解决方法,是一组基本原则,涵盖了软件工程所有的技术领域
工具:给过程与方法提供自动和半自动化的支持
软件工程得到实施的主要保证是软件开发的工具与环境
软件过程的五个框架活动:沟通,策划,建模(需求分析,设计),构建(编码,测试),部署。(普适性活动贯穿项目始终:项目跟踪和控制,风险管理,软件质量保证,技术评审,测量,软件配置管理,可复用管理,工作产品的准备和生产)
按照软件生命定义来划分:软件定义时器,软件开发时期,软件维护时期
软件工程的通用性原则:
(1) 存在价值
(2) 面向未来
(3) 保持愿景
(4) 计划复用
(5) 保持简洁
(6) 关注使用者
(7) 认真思考
敏捷宣言:
个体和互动高于流程和工具
与用户的交流高于合同谈判
响应变化高于遵循计划
工作的软件高于详尽的文档
敏捷团队需要有以下特点:
(1) 基本能力
(2) 共同目标
(3) 认真合作
(4) 决策能力
(5) 自组织
(6) 相互信任
(7) 模糊问题的解决能力
XP设计:
严格遵循KIS原则,CRC,spike解决方案,rebulid(已不改变代码外部行为,而改进其内部结构的方式来修改软件系统的过程)
可行性分析的目的:有一些错误可能没办法在规定的系统规格或是时间内完成,可行性分析就是用最小的代价在尽可能短的时间内确定问题是否能够解决。