软件工程知识点复习总结

Software:

如果有想要内推字节跳动或者腾讯的小伙伴,欢迎加我的wx: dHR5czIwMTU=(base64)

(1)指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;
(2)数据结构,使得程序可以合理利用信息
(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用


Software Engineering:

软件工程是:
(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。
(2)在(1)中所述方法的研究

What the difference between software and hardware?
1.软件是设计开发的,而不是传统意义上生产制造的。
2.软件不会“磨损”
3.大多数软件根据实际的顾客需求定制的。

Why does software need Change or Evolved?
软件必须适应新的计算环境或技术的需要。
必须增强软件来实现新的业务需求。
软件必须扩展到与其他更现代的系统或数据库进行互操作。
必须重新构建软件,使其在网络环境中可行。
列表内容
支持软件工程的根基在于质量关注点(quality focus)
是对软件的组织承诺,是支持软件工程的基石
软件工程的基础是过程(process)层。软件过程将各个技术层次结合在一起,使得合理、及时地开发计算机软件成为可能。
软件工程**方法(method)**为构建软件提供技术上的解决方法。方法包括:沟通、需求分析、设计模型、编程、测试和技术支持。


Software Process :

**软件过程:**软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。

Generic Framework Activity
适用于所有软件项目,无论其规模和复杂程度如何
**1.沟通(Communication):**目的是理解利益相关者的项目目标,并收集需求以定义软件特性和功能。
**2.策划(Planning):**定义和描述了软件工程工作,包括需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。
**3.建模(Modeling):**利用模型哎更好地理解软件需求并完成符合这些需求的软件设计。
**4.构建(Construction):**它包括编码和测试以发现编码中的错误。
**5.部署(Deployment):**软件交付到用户,用户对其进行评测并给出反馈意见。

Umbrella Activities(普适性活动):
普适性活动贯穿软件项目始终。
**1.软件项目跟踪和控制:**项目根据计划评估项目进度,并且采取必要的措施保证项目按进度计划进行。
**2.风险管理:**对可能影响项目成果或者产品质量的风险进行评估。
**3.软件质量保证:**确定和执行软件质量保证的活动
**4.技术评估:**评估软件工程产品、尽量在错误传播到下一个活动之前,发现并清除错误。
**5.测量:**定义和收集过程、项目和产品的度量,以帮助团队在发布软件的时候满足利益相关者要求。同时,测量还可以与其他框架活动和普适性活动配合使用。
**6.软件配置管理:**在整个软件工程中,管理变更所带来的影响。
**7.可复用管理:**定义产品复用的标准,并且建立构建复用机制。
**8.工作产品的准备和生产:**包括了生产产品所必需的活动。


Process Flow

**过程流:**描述了在执行顺序和执时间上,如何组织框架中的活动,动作,任务。
**线性过程流(Liner process flow):**从沟通到部署顺序执行五个框架活动。
这里写图片描述
**迭代过程流(iterative process flow):**在执行下一个活动前重复执行之前一个或多个活动。
这里写图片描述
**演化过程流(evolution process flow):**采取循环的方式执行各个活动。
这里写图片描述
**并行过程流(parallel process flow):**将一个或是多个活动与其他活动并行执行。
这里写图片描述


**过程模式(process pattern)😗*描述了软件工程工作中遇到的过程相关的问题、明确了问题环境并给出了针对该问题的一种或几种可证明的解决方式。


Process Model

惯用过程模型是为了改变软件开发的混乱状态,促使软件开发更加有序。
**瀑布模型(waterfall model):**又被称为经典生命周期(classic life cycle),它提出了一个系统的、顺序的软件开发方法。
优点:
有利于大型软件开发过程中人员的组织、管理,从而提高了大型软件项目开发的质量和效率。
当需求确定、工作采用线性的方式完成的时候瀑布模型是一个很有用的过程模型。
一个有用的过程模型,其中需求是固定的,工作将以线性方式完成。
缺点:
过于理想,缺乏灵活性,容易产生需求偏差。
实际的项目很少遵守瀑布模型提出的顺序。
客户通常很难清除的描述所有的需求。
客户必须要有耐心,因为只有在项目接近尾声的时候,他们才能的带执行的程序。
**适用范围:**需求确定,工作能够采用线性的方式完成的软件。
这里写图片描述
V模型(V-model):
描述了质量保证动作同沟通、建模相关动作以及早期构建相关的动作之间的关系。
V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。
**优点:**适合工程量小、人力资源少并且开发过程中改动不大的项目
**缺点:**错误发现时间迟,产生的风险代价高
这里写图片描述

增量过程模型(Incremental Model)
增量过程模型侧重于每一个增量都提交一个可以运行的产品。
优点:
1.能在较短的时间内向用户提交可完成部分工作的产品。
2.逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个 全新的软件可能给客户组织带来的冲击。
3. 规避技术风险
4. 可并行开发构件,加快开发的进度
5. 对于在业务截止日期之前完全实施的人员配置非常有用。
缺点:
(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
适用范围:
(1)进行已有产品升级或新版本开发,增量模型是非常适合的; (2)对完成期限严格要求的产品,可以使用增量模型;
(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。
(4) 项目在既定的商业要求期限之前不可能找到足够的开发人员
这里写图片描述

演化过程模型(Evolutionary Model)
演化模型是迭代的过程模型。
原型开发(prototyping ):当需求很模糊的时候,原型开发可以帮助软件开发人员和利益相关者更好地理解究竟需要做什么。
优点:
开发者与用户充分交流,可以澄清模糊需求,需求定义比其他 模型好得多
开发过程与用户培训过程同步
为用户需求的改变提供了充分的余地
开发风

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值