【系统分析师】-软件工程

1、信息系统的生命周期

1、四阶段划分

  1. 立项 阶段:企业全局、形成概念、需求分析。包含【系统分析师】-系统规划-CSDN博客
  2. 开发阶段:总体规划--系统分析--设计--实施--验收
  3. 运维阶段:通过验收、移交之后
  4. 消亡阶段:更新改造、功能扩展、报废重建

2、开发阶段

系统规划:系统设计任务书(建设方案、实施计划)

系统分析:SRS需求规格说明,确认测试、系统测试、初步的用户手册

系统设计:架构文档、概设、详设、概测、详测计划

系统实施:软件编码、单测、集成、系统测试,操作手册

2、软件系统的生命周期

可作为论文大纲

3、软件开发方法

原型法属于需求阶段

1、瀑布模型

属于结构化法。需求固定、自顶向下

2、螺旋模型

以 原型 + 瀑布 结合方式。引入++风险分析++

以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划、风险分析、实施工程、客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统。

3、V模型

测试贯穿始终

  • 单元测试的主要目的是针对编码过程中可能存在的各种错误。例如:用户输入验证过程中的边界值的错误。
  • 集成测试的主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误。
  • 系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行。例如:在产品设置中是否达到了预期的高性能。
  • 验收测试通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。

4、喷泉模型

迭代、无间隙

对软件复用和生命周期中多项开发活动的集成提供了支持

5、构件组装模型(CBSD)

利用模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。

构件即多系统中共用的模块

从架构设计中分析需要的构件,从构件库中提取可用构件、创建或改造构件

6、统一过程RUP

一种基于面向对象技术的软件开发过程,其特点是用例驱动,架构为核心,增量与迭代。

整个开发的过程是由用例来驱动的。++用例贯穿于整个开发流程之中++。用例是需求层面的东西,其实也可以理解为功能需求。用例不能决定架构,因为架构往往取决于非功能需求。

每个阶段的产出物:

初始阶段:项目蓝图文档(核心需求,关键特征,主要约束),++用例模型++,项目计划

细化阶段:完成架构设计,淘汰高风险元素

构造阶段:++UML模型++,测试用例

交付阶段:可运行的软件产品,用户手册,用户支持计划。

7、敏捷方法

以人为本、增量迭代、小步快跑(强调部分交付)

  • 极限编程(XP):一些对费用控制严格的公司中的使用,非常有效。
  • 水晶方法:探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。
  • 开放式源码:程序开发人员在地域上分布很广【其他方法强调集中办公】。
  • SCRUM:明确定义了的可重复的方法过程。
  • 功用驱动开发方法(FDD):编程开发人员分成两类:首席程序员和"类"程序员。
  • ASD方法:其核心是三个非线性的、重叠的开发阶段:++猜测、合作与学习++。
  • 动态系统开发方法(DSDM):倡导以业务为核心。

SCRUM并列争求法

8、逆向工程

++抽象层次越高、完备性越低++

层次最高的是UML图,UML图属于分析阶段,领域层级的。

  • 实现级:包括程序的抽象语法树、符号表、过程的设计表示
  • 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构
  • 功能级:包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型
  • 领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,例如实体关系模型

9、净室软件工程

形式化方法、高度严谨的逻辑、数学层面

相关推荐
muddjsv10 小时前
软件工程:职业全景与前景深度解析
软件工程
明洞日记11 小时前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
muddjsv11 小时前
软件工程编程语言学习:从入门到工程化的路线与建议
软件工程
宇钶宇夕1 天前
CoDeSys入门实战一起学习(二十八):(ST)三台电机顺起逆停程序详解
运维·学习·自动化·软件工程
学嵌入式的小杨同学1 天前
【Linux 封神之路】进程进阶实战:fork/vfork/exec 函数族 + 作业实现(含僵尸进程解决方案)
linux·开发语言·vscode·嵌入式硬件·vim·软件工程·ux
加密狗复制模拟2 天前
破解加密狗时间限制介绍
安全·软件工程·个人开发
muddjsv2 天前
软件工程核心课程学习规划表(按时间递进)
软件工程
明洞日记3 天前
【软考每日一练030】软件维护:逆向工程与再工程的区别与联系
c++·软件工程·软考·逆向工程
明洞日记3 天前
【软考每日一练026】软件工程深度解析:软件开发方法学的分类与应用实战
c++·ai·系统架构·软件工程·软考
喜欢吃豆3 天前
Ralph 架构深度解析报告:自主代理循环与软件工程的确定性重构
人工智能·重构·架构·大模型·软件工程