系统分析师笔记
信息系统生命周期:
1、立项阶段:企业全局、形成概念、需求分析
2、开发阶段:系统规划、系统分析、系统设计、系统实施、系统验收
3、运维阶段:通过验收和移交之后
4、消亡阶段:更新改造、功能扩展、报废重建
1、系统规划:初步调查、分析系统目标、子系统组成、拟实施方案、可行性研究、制定系统建设方案。输出物:系统设计任务书:系统建设方案、实施计划
2、系统分析:业务流程分析、数据与数据流和分析、软件需求分析、网络需求分析。输出物:系统需求规格说明书、软件需求规格说明书、确认测试计划、系统测试计划、初步的用户手册
3、系统设计:软件架构设计、系统概要设计、详细设计、网络设计。输出物:架构设计文档、概要设计说明书、详细设计说明书、程序规格说明书、概要测试计划、详细测试计划、各类设计图
4、系统实施:软件编码、软件单元/集成/系统测试、综合布张。输出物:源码、单元测试报告、集成测试报告、操作手册
5、系统验收:确认测试、试运行。输出物:确认测试报告、项目验收报告
系统需求分析方法:
1、面向对象的分析方法
2、结构化分析方法
2、面向问题域的分析方法
软件开发方法:
一、结构化方法:自顶向下,逐步分解求精、区分阶段,应变能力差
二、面向对象方法:自底向上,更好应变和复用,符合人们的思维习惯
三、面向服务的方法:粗粒度、松耦合,标准化、构件化,抽象级别:操作-服务-业务流程
四、原型法:水平和垂直、抛弃和演化,展示和获取需求
1、确定用户需求
2、开发初始原型系统
3、使用原型确认用户需求
五、形式化方法:净室软件工程、数学模型化,所有东西均可验证,而不是测试
六、统一过程UP
七、敏捷方法
敏捷宣言:个体和交互胜过过程和工具,可工作的软件胜过大量的文档(实现和测试是核心),客户合作胜过合同谈判,响应变化胜过遵循计划。
是适应性的,不同于预设性。是以人为本,不是以开发过程为本。是增量迭代,小步快跑,不是整体分阶段。适合小项目。
1、XP
4大价值观:沟通,加强面对面沟通。简单:不过度设计。反馈:及时反馈。勇气:接受变更的勇气。
12条过程实践规则:简单设计、测试驱动、代码重构、结对编程、持续集成、现场客户、发行版本小型化、代码集体所有制、规划策略、规划策略、40小时工作机制
软件开发模型:
一、瀑布模型:
1、软件计划
2、需求分析
3、软件设计
4、程序编码
5、软件测试
6、运行维护
二、V模型:测试贯穿始终,测试分阶段,测试计划提前,需求分析对应验收测试,概要设计对应系统测试,详细设计对应集成测试,编码对应单元测试
三、原型模型
四、增量模型
五、螺旋模型/原型+瀑布:以原型为基础,重点考虑风险。
1、制定计划:决定目标、方案和限制
2、风险分析:
3、实施工程:需求确认、详细设计、编码
4、客户评估:需求计划、一切计划、组装与测试
六、喷泉模型/早期面向对象
七、构件组装模型/基于构件的开发方法:
1、需求分析与定义
2、软件架构设计、
3、构件库的建立:1)构件标准:CORBA、COM、EJB;构件库:构件获取、构件管理
4、应用软件构建
5、测试和发布
八、快速应用开发RAD/瀑布+构件组装:
1、业务建模
2、数据建模
3、过程建模
4、应用生成
5、测试与交付
九、统一过程/统一开发方法:用例驱动,以架构为中心,迭代和增量
1、初始阶段:定义最终产品视图和业务模型
2、细化阶段:设计及确定系统架构、制定工作计划及资源要求
3、构建阶段:开发剩余构件和应用程序功能,把这些构件组装为产品,并进行详细测试
4、交付阶段:确保软件对最终用户是用的,进行用户环境测试,制作产品发布版本
十、敏捷开发方法
1、极限编程:费用控制严格
2、水晶方法:最少纪律
3、开放式源码:程序开发人员在地域上分布很广
4、SCRUM:明确定义了可重复的方法过程,
1)获取需求
2)产品负责人PO召集团队,确认产品待办列表
3)迭代计划会议:团队选择该迭代,承诺完成多少工作
4)下个迭代版本:产品待办列表整理
5)迭代,在一个迭代版本中目标没有发生变化
6)每日站会,进行迭代评审会议
7)发布产品增量
8)迭代回顾会议,形成下步迭代目标
5、功用驱动开发方法:首席程序员和“类”程序员
6、ASD自适应方法:猜测、合作、学习
7、动态开发方法:以业务为核心
逆向工程:
1、实现级:包括程序的抽象语法树、符号表、过程的设计表示。
2、结构级:包括反映程序分量之间的相互依赖关系的信息,如调用图、结构图
3、功能级:包括反映程序段功能及程序段之间在关系信息,如数据和控制流模型
4、领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,如实体关系模型
1、并行过渡
2、系统设计
3、数据值域,分区,SET,离散值
4、规范化-候选键+范式+模式分解+公理体系、数据安全机制
5、TCP/IP协议