A级:
软件生命周期模型:需求工程→软件设计→软件实现→软件测试→软件交付→软件维护
Software Life Cycle Model: 
  • Requirements Engineering 
  • Software Design 
  • Software Implementation 
  • Software Testing 
  • Software Delivery 
  • Software Maintenance
需求工程:建立解决方案
主要任务:(获取,分析,规格说明,验证,管理)
需求开发:需求获取,需求分析,需求规格说明,需求验证
需求管理
方法:
结构化分析方法:DFD,ERD
面向对象分析方法:用例图,概念类图,行为模型(顺序图、状态图)
Requirements engineering: building solutions
Main tasks: (acquisition, analysis, specification, validation, management)
Requirements development: requirements acquisition, requirements analysis, requirements specification, requirements validation
Demand management
Methodology
Structured analysis methods: DFD, ERD
Object-oriented analysis methods: use case diagrams, conceptual class diagrams, behavioural models (sequence diagrams, state diagrams)
软件设计如何完成功能
体系结构设计:高层设计
结构化方法:结构图
面向对象:包图,构件图,部署图
主要制品:软件体系结构原型,软件体系结构设计模型,软件体系结构设计文档(概要设计文档)
详细设计
结构化方法:结构图
面向对象:包图,类图,顺序图
主要制品:软件详细设计模型,软件详细设计文档
人机交互设计:设计交互机制,具有易用性
Software design: how to complete the functionality
Architecture design: high-level design
Structured approach: structural diagram
Object-oriented: package diagrams, deployment diagrams
Main products: software architecture prototype, software architecture design model, software architecture design document (outline design document)
detailed design
Structured approach: structural diagram
Object oriented: package diagram, class diagram, sequence diagram
Main products: software detailed design model, software detailed design documentation
Human-computer interaction design: designing interaction mechanisms
软件构造:构件软件
编程,集成,测试,调试
软件测试:保障产品质量
单元测试
集成测试
系统测试
方法:白盒与黑盒
软件交付:产品交付用户
安装与部署,用户培训,文档支持
软件维护
完善性维护,适应性维护,修正性维护,预防性维护
逆向工程,再工程,遗留资产处理
构建-修复模型(Build-Fix Model):
缺点:没有考虑最基本的生命周期。没有分析需求的真实性。没有考虑软件结构的质量。没有考虑可维护性。
适用范围:软件规模很小、质量要求不高、对后期维护要求不高的程序可以使用。
Waterfall Model:
  • follows an ordered sequence of transformations from one stage to another. Require that every activity be validated.
  • Allowing iterations to occur, the results of each activity must be verified, "document driven"
  • Requirements engineering → software design → software implementation → software testing → software delivery → software maintenance (can be iterative).
  • Disadvantages:
    • High expectations for documentation
    • Linear presets for development activities
    • Insufficient client-user engagement
    • Milestone granularity is too coarse
  • Scope of application: Projects with very mature and stable requirements, reliable technology and moderate complexity.
瀑布模型(Waterfall Model):按照一个阶段到另一个阶段的有序的转换序列。要求每一个活动必须进行验证。
允许出现迭代,每个活动的结果必须验证,“文档驱动
需求工程→软件设计→软件实现→软件测试→软件交付→软件维护(可以迭代反复)。
缺点:对文档的高期望、对开发活动的线性预设客户用户参与不够里程碑粒度过粗
适用范围:需求非常成熟稳定、技术可靠、复杂度适中的工程。
增量迭代模型
长的开发周期分成多个迭代每个迭代结束时提交产品的一个部分,所有迭代集合起来共同交付完整产品
将开发活动组织为多个迭代、并行的瀑布式开发活动。“需求驱动
目的:迭代,渐进交付,并行开发
优点:
有更好的适用性
并行开发可以帮助缩短软件产品的开发时间
渐进交付可以加强用户反馈
降低开发风险。
缺点:加入构件不能破坏已经构造的部分,需要完备清晰的项目前景
适用范围:相对稳定、成熟的领域。
Incremental iterative model
  • The long development cycle is divided into multiple iterations, with one part of the product being submitted at the end of each iteration, and all iterations coming together to deliver the full product
  • Organize development activities into multiple iterative, parallel waterfall development activities. "Demand-driven."
  • Purpose: 
    • Iteration
    • incremental delivery
    • parallel development
  • Advantages:
    • There is better suitability
    • Parallel development can help reduce development time for software products
    • Progressive delivery can enhance user feedback
    • Reduce development risk
  • Disadvantages
    • The addition of building blocks does not destroy the already constructed parts
    • requires a complete and clear project vision
  • Scope of application: relatively stable, mature field
演化模型:
  • 初始开发迭代中,澄清和明确系统的核心需求,建立和交付核心系统。在得到核心系统后,用户在使用的过程中发现变更需求、澄清不确定性需求,反馈给开发人员。开发人员根据用户反馈规划后续迭代,精化和增强系统。
  • 多个迭代、并行的瀑布式开发活动
  • 优点:
    • 迭代式开发
    • 并行开发
    • 渐进交付加强用户反馈
  • 缺点
    • 无法确定项目范围
    • 整体项目计划不好把握
    • 后续迭代容易蜕变为Build-Fix模式。
  • 适用范围:变更比较频繁不稳定领域的大规模系统开发。
Evolutionary models:
  • During the initial development iteration, clarify and specify the core requirements of the system and build and deliver the core system. After getting the core system, users discover change needs and clarify uncertainty needs in the process of using it and feed it back to developers. Developers plan subsequent iterations to refine and enhance the system based on user feedback.
  • Multiple iterative, parallel waterfall development activities
  • Advantages:
    • iterative development
    • parallel development
    • Progressive delivery to enhance user feedback
  • drawback
    • Inability to define project scope
    • Poor grasp of the overall project plan
    • Subsequent iterations easily morph into Build-Fix patterns
  • Scope of application: Large-scale system development in the field of frequent changes and instability.
原型模型(Prototyping):注重使用抛弃式原型(不确定部分)而不是演化式原型(成为产品的一部分的原型)。
  • 需求开发部分迭代(抛弃式原型):原型需求→设计原型→构件原型→评估原型。
  • 优点:加强了客户用户的交流,适用于新颖的领域。
  • 缺点:原型方法在避免风险时候带来新的风险不舍得抛弃原型
  • 适用范围:不确定性较多的软件开发。
Prototyping:
  • focuses on using discarded prototypes (indeterminate parts) rather than evolutionary prototypes (prototypes that become part of the product)
  • Requirements development partial iteration (discarded prototype): prototype requirements → design prototype → building blocks prototype → evaluate prototype
  • Advantages: Enhanced client-user communication, suitable for novel areas.
  • 缺点:The prototype approach introduces new risks when it comes to avoiding them and is not willing to abandon the prototype.
  • Scope of application: Software development with high uncertainty.
螺旋模型(Spiral Model):为了尽早解决比较高的风险。风险驱动
是迭代与瀑布的结合,使用原型解决需求的不确定性
优点:可以降低风险,减少项目因风险造成的损失。
缺点:自身带来风险,模型过于复杂。
适用范围:高风险的大规模软件系统开发
Spiral Model:To address the higher risks as early as possible. Risk-driven
is a combination of iteration and waterfall, using prototypes to solve the uncertainty of the need
Benefit: Reduces risk and reduces project losses due to risk.
Disadvantages: Self-imposed risk, overly complex model.
Scope: High-risk, large-scale software system development.
软件⼯工程知识体系的知识域:(SWEBOK)
第二版:(10个)
软件生命周期知识:(5个)
软件需求
软件设计
软件构造
软件测试
软件维护
软件工程的工程知识:(5个)(工程配置工具管理过程质量
软件工程管理
软件配置管理
软件工程过程
软件工程工具和方法
软件质量
第三版:(新增5个)(职业软件工程师需要学习概率论线性代数高等数学和软件工程
软件工程职业实践
工程经济学基础
计算基础
数学基础
工程基础
C级:
Rational统一过程:
软件生命周期:初始,细化,构造交付
基础思想:迭代,管理需求,基于组件的体系结构,可视化建模,验证质量,控制变更
RUP裁剪
特点:
吸收借鉴了传统的最佳实践方法
适用面广
有一套软件工具的支持
缺点:
没有考虑交付后的软件维护问题
裁剪和配置工作不是一个简单的任务

《软件工程与计算(卷二)》-Chapter22-23-软件开发过程模型与软件工程职业基础相关推荐

  1. 敏捷软件开发与传统软件工程的比较

    敏捷软件开发与传统软件工程的比较             软件工程的开发过程中有两种不同的管理和开发体系,一种是基于"瀑布模型"的预设性传统软件工程,另一种是轻量级的适应性敏捷软件 ...

  2. [架构之路-131]-《软考-系统架构设计师》-软件工程-1-软件工程方法大全(软件开发过程方法、软件开发过程模型、逆向工程、净室软件工程)

    前言: 第3章 软件工程 3.1 软件开发过程方法 3.1.1 什么是软件工程 软件工程是一门研究用工业硬件生产的工程化方法构建和维护有效.实用和高质量的软件的学科. 它涉及程序设计语言.数据库.软件 ...

  3. UML建模与软件开发过程模型

    UML建模与软件开发过程模型 现在谈到软件开发过程,大家可能也不会陌生,学过软件工程的人都能随口说上几个软件过程模型,现在要把这两种不同的模型拿到一起来讨论,一方面是软件开发的实际需要,另一方面也是U ...

  4. 想要成为一名软件开发人员?这个职业道路指南可以了解下

    有无数种方法可以进入软件开发.有些人在中学或大学中发现了他们对编码的热情:其他人在职业生涯的中途偶然发现了发展. 但无论你对软件开发的介绍如何通过,所有有抱负的程序员最终都需要问自己同样的问题:我怎样 ...

  5. 软件开发过程模型 软件过程模型 软件开发过程几种模型对比

    软件开发过程模型主要有:51Testing软件测试网@$H5K2K2e0x/k8O  瀑布模型(V模型.喷泉模型 )51Testing软件测试网tQ5e8r8E#E  螺旋模型51Testing软 ...

  6. 保研笔记一 软件工程与计算卷二(1-7章)

    目录 第一.二章 软件工程概论 1.软件工程(名词解释) 2.从1950s-2000s之间的特点(简答) 第三.四章 项目启动 1.团队结构:主程序员团队:民主团队:开放团队 2.质量保障有哪些措施? ...

  7. 【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。

    (瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)各种模型的概念特点优点缺点和不同. (张海藩,吕云翔)著-软件工程 复习记录 文章目录 一.瀑布模型 二.快速原型模型 三.增量模型 四.螺旋模 ...

  8. 计算传递函数乘法_软件开发教程:计算机科学最重要的32个算法

    软件开发的根本在于解决各种业务功能需要,实现数字化和自动化,而算法(Algorithm)是对解决方案的准确而完整的描述,是一系列解决问题的清晰指令.算法代表着用系统的方法描述解决问题的策略机制.在计算 ...

  9. 软件工程导论08-基于构件的软件开发

    基于构件的软件开发 长期以来的软件开发状况 多数软件都是针对某个具体的应用系统从头进行开发的. 导致:出现了大量的同类软件重复开发,造成大量人力.财力的浪费,而且软件的质量也不高. 对比:汽车工业的生 ...

最新文章

  1. 关于命名空间namespace
  2. 使用Bootstrap制作导航栏
  3. 剑指offer java版(一)
  4. index加载显示servlet数据_[WEB篇]-JavaWeb基础与应用-02-Servlet开发
  5. python爬携程酒店评论_python爬虫爬取携程网的酒店评论数据时,有个请求参数不知道是怎么生成的?...
  6. ecshop 手机版的php代码在哪里,PHP 在ecshop上集成 手机网页支付_php
  7. Mint-Ui的mt-search点击选中
  8. 阿里架构师的工作总结:Spring Cloud在架构演进中起到的作用
  9. Glide 加载圆角图片(解决设置圆角后和centerCrop冲突的问题)
  10. ass字幕导入Premiere的另一种思路 用ffmpeg把ass转换成颜色通道和透明度通道两个视频
  11. Ubuntu问题:E45: ‘readonly‘ option is set (add ! to override)错误解决
  12. 下载CyanogenMod c8650源代码
  13. 【USACO 2019 February Bronze】Sleepy Cow Herding
  14. mac笔记本怎么外接显示屏_Mac电脑外接显示器全攻略
  15. 艾克姆 STC15W4K56S4 IAP15W4K58S4 51开发板 大赛esp8266开发板 STC15W4K56S4
  16. 理想是只被狼强奸的羊
  17. 【工具】-10 UML时序图(Sequence Diagram)学习笔记
  18. M91A人脸识别布控球机人脸AI视频分析功能
  19. bilibili_Linux网络基础5_SSH远程管理服务
  20. mysql主从复制、读写分离集群/etc/my.cnf配置文件

热门文章

  1. 100%成功王者荣耀战区修改(亲测)
  2. 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)
  3. nginx+php 上传含有php脚本的木马图片文件的漏洞解决
  4. 柳维尔定理与代数基本定理
  5. 三角函数反函数c语言,高中数学反函数有哪些 反三角函数的所有公式
  6. Linux-curl指令
  7. CSR频率校准定频工具
  8. Nginx缓存、静态文件缓存配置
  9. Maven 的下载安装和配置
  10. 彻底解决问题:签名不对,请检查签名是否与开放平台上填写的一致