软件工程之系统设计概述
软件生存周期:
- 可行分析与项目开发计划 -> 需求分析 -> 概要设计 -> 详细设计 -> 编码 -> 测试 -> 维护。可行分析与项目开发计划:要解决什么问题?用什么方法解决?是否可行?费用大概多少?时间大概多长?
主要参与人员:用户、项目负责人和系统分析师。
产生文档:可行性分析报告和项目开发计划。
- 需求分析:确定系统必需要做什么,并不是具体解决问题,确定软件的功能、性能、数据、界面等,确定系统的逻辑模型。
主要参与人员:用户、项目负责人和系统分析师。
产生文档:需求说明书 - 概要设计:将软件的各个功能需求转化为需要的体系结构。确定系统由哪些模块组成,模块间调用关系以及确定系统的数据结构。
主要参与人员:软件设计师和系统分析师
产生文档:概要设计说明书。 - 详细设计:确定各个模块的详细功能及实现方法。
主要参与人员:软件设计师和程序员
产生文档:详细设计文档 - 编码:将上面的设计转化成具体的代码。
主要参与人员:软件设计师和程序员
产生文档:软件开发方档 - 测试:为了保证系统的稳定性,需要进行严格的测试。确保系统的功能完整性和稳定性。
主要参与人员:另一个部门的软件设计师或系统分析师以及测试人员
产生文档:软件测试计划和测试报告。 - 维护:这个阶段是软件生命期中最长一部分,是指系统交付使用后到软件报废这段时间,期间需要对所发现的Bug进行修复。
软件生存期模型:
- 瀑布模型,将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。主要适合一些软件需求明确的软件项目。主要缺点:由于其是一种线性的模型,缺乏灵活性,特别不适合前期需求不明确的软件。
- 演化模型,由于许多系统的前期需求不明确,本模型先根据已有一些确定的模型,生成一个初始的演示版本。然后根据用户提出意见和建议,进行修改。重复这一过程,最终完善系统。
- 螺旋模型,由于一些大型系统,通过演化模型生成的初始演示版本无法满足要求,通过螺旋模型将瀑布模型和演化模型结合起来进行实施。一般分为四个步骤:一、制定计划。二、风险分析。三、实施工程。四、用户评估。
- 喷泉模型,这是一种以对象为驱动的模型,适合面向对像的开法方式。喷泉模型具有迭代性和无间隙性。迭代性是指不断完善系统;无间隙性是指开发活动之间不存在明显间隙。不像瀑布模型那有各个阶段有明显的划分,而是这个阶段交叉、迭代进行。
软件开发方法:
- 结构化方法。结构化方法是由结构化分析、结构化设计、结构化程序设计构成。它是一种面向数据流的开发方法。主要思想是自顶向下、表层分解,它的基本原则是功能分解和抽象。
- Jackson方法。是一种面向数据结构的开发方法。
- 维也纳开发方法。是一种基于模型的开发方法。主要思想将软件系统当作模型来描述。
- 面向对像开发方法。主起思想是以人认识世界的方法和思维方法来解决系统问题。
2 条评论
提到“文档”就头晕,现在天天看,天天写…那些牛人都几十页地写!!!
你忘了曾经的AND了?也是一写几十页,不就扯么,插图就是啦。像我这样表达能力这么差的人都能整个差多,何况你呢?
国内的企业严格按软件工程来的,可能都没有。