软件=程序+数据+文档
1、软件危机的主要表现
用户需求开发成本严重超标,开发周期大大超过规定日期质量难以保证,可靠性差维护开发速度跟不上计算机发展速度2、软件危机产生的原因
一方面与软件本身的抽象性和复杂性有关,这是客观原因
另一方面与软件开发和维护过程中使用的技术和方法有关,这是主管原因
根本原因是软件开发过程不成熟,具体表现为:
调研和需求分析工作开发的经验和有关软件开发数据的积累,使得开发的计划很难制定缺乏统一的、规范化的方法论指导用户,开发成员间的及时有效的沟通文档资料不规范或不准确。导致开发者失去工作的基础,管理者失去管理的依据。质量保证体系3、软件危机的解决途径
软件开发技术和方法软件开发工具,提高软件生产率好的组织,严密的管理,各方面人员相互配合共同完成任务1、软件工程基本原理
生存周期计划进行严格的质量管理阶段评审产品控制现代程序设计技术结果应能清楚的审查少而精改进软件工程实践的必要性软件工程的三要素是方法、工具和过程
2、软件生命周期
软件产品或软件系统从设计、投入使用到被淘汰的全过程称为软件的生命周期
软件生命周期各阶段

3、软件开发模型
1、瀑布模型
犹如瀑布流水,自上而下、逐级下落
特点:
顺序性和依赖性。前一段结束后才能开始后一阶段的工作,前一阶段的输入是后一阶段的输入推迟实现观点,尽可能推迟程序的物理实现强调质量保证观点。每个阶段必须完成规定的文档,每个阶段结束前完成文档审查,以便及早改正错误。文档驱动的模型优点:
缺点:
适用场合
2、快速原型模型
特点:
主要用于挖掘需求,或是进行某种技术或开发方法的可行性研究,是开发人员为了快速而准确获得用户需求而经常采用的方法。
优点:
缺点:
适用场合
确切定义需求的软件系统,或需求多变的系统设计方案没信心或对将要采用的技术手段不熟悉或把握不大单独的过程模型使用,也常被作为一种方法或实现技术应用于其他的过程模型3、增量模型
把软件产品作为一系列增量构件来设计、编码、集成和测试,在项目软件开发过程中,以一系列的增量方式来逐步开发系统。
特点:
线性模型,是一种非整体的开发模型增量开发是按一定的时间间隔开发部分软件增量提交是先提交部分软件给用户试用,听取用户意见,在提交另一部分软件让用户试用,反复多次,直到全部提交部分阶段采用,也可以在全部开发阶段采用优点:
缺点:
适用场合
4、喷泉模型
特点:
是对象驱动过程,对象是所有活动作用的主体,也是项目管理的基本内容喷泉模型适用于面向对象的软件开发
1、目的:最小的代价、尽可能短的时间、是否有可行解决方案
可行性分析是一个大大简化的系统分析和设计过程。
2、可行性分析的任务
3、可行性分析的步骤
4、工具:系统流程图
表述的是什么?描述物理模型
5、项目计划:成本估算的方法有哪些?
6、进度安排方法
直观简明,易于绘制,标名了各任务的计划进度和当前进度,能动态反映软件开发的进展状况。任务彼此间的依赖关系,进度计划中的关键阶段不明确。现在和将来完成的工作内容、各项工作单元间的关系。并且可以预先确定各任务的时差。了解关键作业或某一项进度的变化对后续工作和总工期的影响度,便于及时地采取措施或对进度计划进行调整。达每项的起始时间与结束时间,不易于对单项任务的过程进行跟踪。7、成果:可行性分析报告:包含哪些内容?
1 .投资必要性;
2.技术的可行性;
3.财务可行性;
4.组织可行性;
5.经济可行性;
6.社会可行性;
7.风险因素及对策
1、需求分析的任务:描述软件的功能和性能,需求不单单是功能需求,还有非功能性需求
2、需求分析的步骤
(1)需求获取有哪些方法?
3、结构化分析-建模的方式(重点掌握)
(1)思想:结构化分析与设计是一种面向数据流的分析方法,自顶向下,逐步求精
(2)工具1:数据流图(DFD)
描绘逻辑模型,什么是数据流图?
数据流图是用于表示系统逻辑模型的一种工具。从数据传递和加工的角度,以图形的方式描述数据在系统中流动的处理的过程
基本符号

画法(给你需求,让你画数据流图):先找源点、汇点,再找加工(动词),再找数据流(名词)
顶层图、0层图、1层图,父子图之间的平衡必须要注意
(3)工具2:数据字典(DD):4种
数据字典是结构化分析方法中的另一个有力工具,它针对数据流图出现的所有数据元素给出逻辑定义
符号使用案例:
机票 = 姓名 + 日期 + 航班号 + 始发地 + 目的地 + 费用;终点 = [上海 | 北京 | 广州];
航班号 = “CZ9938” ·· “CZ9948”;
人工方法:人工方法实现时,每一词典条目(每一个数据定义或每一个加工逻辑说明)写在一张卡片上,由专人管理和维护。为了便于搜索,所有卡片按数据名称排序。人工方法的优点是容易实现。自动方法:把词典存在计算机中,用计算机对它搜索和维护。现有多种“词典管理程序”,如 PLS/PSA。用计算机管理词典质量高,搜索、维护方便。人工和自动混合的方法:在人工过程中可借助正文编写程序、报告生成程序等工具辅助完成。没有冗余:主要指数据定义不能重复。在规格说明书的其他组成部分中已出现的信息不能重复。查阅方便:通过名称可以方便地查阅数据词典中的每个定义。定义的书写方法简单、方便、严谨,而且可读性强。建议采用卡片形式书写。(4)工具3:加工逻辑说明:(类似与描述算法)
4、成果:需求规格说明书:包含哪些内容?
正文的第一章内容是1.概述,包含
1.1.编写目的;1.2.术语与定义;1.3.参考资料;三个部分
第二章要给出该项目的标准和规范,在文档的后续内容编写中以及项目开发过程中必须遵照这个标准和规范进行。
第三章应该说明该项目的相关假设、限制和一些依赖条件,在后续系统部署的过程中可以有参考意义。
第四章“功能规格”是重点,重点介绍这个系统的角色,界面设计思路,系统的功能视图和功能点清单,以及系统的需求用例。这个内容必须详细描述,这样才能对后续的开发和测试提供指导意义。
第五章“非功能规格”要对项目的性能、安全、数据的备份恢复等内容解释解释说明,一个项目除了功能完整之外,还要考虑性能、安全等相应的要求。
第六章“附录”,是对软件需求规格说明书的一些补充说明文档,其中的“软件需求跟踪矩阵”是重点,这份文档是对后续需求的完善程度进行了严格的控制。
1、任务:确定系统的总体结构
2、过程:数据库设计是概要设计中的一个任务、测试计划也是概要设计中的一个任务
3、原则:模块独立性的两个标准:耦合和内聚(哪几种,排列顺序)
模块独立性:
1️⃣耦合性
耦合是模块之间相互连接的紧密程序的度量
模块之间的练习越紧密,联系越多,耦合性就越高,而其模块独立性就月弱
尽量使用数据耦合,少用控制耦合,慎用或有控制地使用公共耦合、并限制公共耦合的范围,坚决避免内容耦合
2️⃣内聚性
设计的要求:高内聚、低耦合
设计的准则:提高独立性、模块的作用范围和控制范围
4、工具:系统结构图:通过数据流图导出系统结构图(怎么画的要了解)
数据流图两种:变换型数据流图、事务型数据流图,大部分的数据流图都是变换型的,局部有事务型特征
5、成果:概要设计说明书:包含哪些内容?
需求或目标(讲一下事情的起源)、环境、局限;总体设计:从全局的角度说一下外部接口:总体说明外部用户、软、硬件接口(可用资源);模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置。1、任务:确定每一个模块所使用的算法、块内数据结构和接口细节
2、工具(较重要):程序流程图、N-S图、PAD图(画法,给你一个算法,你能画图)
每种图有优缺点:程序流程图在描述程序结构、嵌套关系、层次结构上不容易表示,不太支持逐步求精,简单、清晰、直观
图形工具:程序流程图、N-S图、PAD图
表格工具:判定表
语言工具:过程设计语言(PDL)
1️⃣程序流程图

顺序结构:
选择结构:
多分支选择结构:
当循环结构
直到循环结构:
优点:直观清晰、易于使用
缺点:①控制流程的流向可以任意画,容易造成非结构化的程序结构
②流程图不能反映逐步求精的过程,往往反映的是最后的结果
③不易表示数据结构
2️⃣N-S图
(1)顺序结构:在方框内从上到下安排任务,任务之间以横线分开,一个任务框内可以是一条语句或多条相关语句
(2)选择结构:
(3)循环结构

N-S图特点
①每一个特定控制结构的作用域都很明确,能够清晰判别
②绘制时需遵守结构化程序设计要求,不能够任意转移控制
③易于确定局部数据和全局数据的作用域
④易于表示嵌套结构的模块化得层次结构
3️⃣PAD图
优点
(1)结构清晰,易读易画
(2)使用PAD图设计出的程序必然是结构化程序
(3)PAD图容易转换成高级语言源程序
(4)支持自顶向下、逐步求精的设计方法

4️⃣PDL图
特点:
(1)关键字具有固定的语法格式,可以提供结构化控制语句、数据和模块说明
(2)处理部分的描述采用自然语言,便于理解
(3)可以说明简单数据结构和复杂数据结构
(4)可以完成模块定义和调用的说明,并能完成各种接口的描述
(5)PDL描述与程序结构相似,容易自动生成程序
(1)数据说明:PDL 程序中指明数据名的类型及作用域.其形式为:
end <子程序名>
(3)分程序结构
begin <分程序名>
end <分程序名>
(4)顺序结构
选择型
if <条件> then
else
end if
if <条件> then
else if <条件> then
else
end if
WHILE 循环
loop while <条件>
end loop
UNTIL 型循环
loop until <条件>
end loop
CASE 型
Case <选择句子> of
<标号>{, <标号}: >
[default]: []
end case
(5)输入/输出结构 print read display
3、成果:详细设计说明书
下一篇:覆水城成语疯狂猜成语