模块
构成模块(或称为组件)的四个基本要素:输入和输出、处理功能、内部数据、程序代码。
-
输入 (Input):
- 输入是模块从外部接收的数据、信号或指令。
- 这些输入数据可以是用户通过用户界面输入的,也可以是从其他模块或系统传递过来的。
- 输入数据的类型、格式和范围对模块的功能有直接影响。
-
输出 (Output):
- 输出是模块处理完输入数据后产生的结果或响应。
- 这些输出数据可以被用户查看或用于其他模块或系统的进一步处理。
- 输出的形式可以是文本、图像、声音、控制信号等。
-
处理功能 (Processing Function):
- 处理功能是模块对输入数据进行转换或操作的核心部分。
- 它根据模块的设计目标和算法,对输入数据进行计算、比较、排序、筛选等操作。
- 处理功能决定了模块的行为和性能,并影响输出的结果。
-
内部数据 (Internal Data):
- 内部数据是模块在运行过程中存储和使用的数据。
- 这些数据可以是常量、变量、数据结构或数据库等。
- 内部数据用于支持模块的处理功能,并保存模块的状态信息。
- 内部数据的存储和管理方式会影响模块的效率和可靠性。
-
程序代码 (Program Code):
- 程序代码是实现模块功能和处理逻辑的指令集合。
- 它用特定的编程语言编写,定义了模块如何接收输入、处理数据和产生输出。
- 程序代码的质量、可读性和可维护性对模块的性能和系统的整体性能有重要影响。
在设计和开发模块时,需要仔细考虑这四个要素,确保它们之间的协调一致,并满足系统的整体需求和约束。同时,还需要注意模块之间的接口设计,以确保模块之间的数据交换和协作能够顺利进行。
模块结构图
在软件工程中,模块结构图(或称为模块图、组件图)是一种用于表示软件系统内部各模块(或组件)之间关系的图形化工具。它展示了模块之间的层次结构、依赖关系、数据和控制流等。以下是模块结构图中关键元素(模块、调用、数据、控制、转接)的简要解释:
-
模块(Module):
- 模块是软件系统中可独立命名和可独立访问的组成部分,它执行特定的功能或提供特定的服务。
- 在模块结构图中,模块通常表示为矩形或盒子,盒子内包含模块的名称和/或简要描述。
-
调用(Call):
- 调用表示一个模块请求另一个模块执行某项操作或功能。
- 在图中,调用通常用带有箭头的线段表示,箭头从调用模块指向被调用模块。
-
数据(Data):
- 数据是模块之间传递的信息,可以是输入、输出或两者兼有。
- 在模块结构图中,数据流通常用带有标签的箭头表示,箭头从发送数据的模块指向接收数据的模块。标签描述了数据的类型或内容。
-
控制(Control):
- 控制流描述了模块之间控制信号或指令的传递路径。
- 在模块结构图中,控制流可能与数据流重叠或单独表示,取决于系统设计的具体情况。
- 控制流箭头通常与数据流箭头不同,可能使用更长的线条或特定的标记来区分。
-
转接(Transition):
- 转接通常指的是从一个状态或模块到另一个状态或模块的转变过程。
- 在模块结构图中,转接可能不直接表示为一个特定的图形元素,而是隐含在模块之间的调用、数据和控制流中。
- 然而,在某些情况下,特别是在描述状态机或事件驱动的系统时,转接可能会作为明确的图形元素出现,例如使用带有标签的箭头或特殊的符号来表示状态之间的转变。
请注意,具体的图形表示和术语可能会因不同的软件工程方法、工具或组织而有所不同。因此,在实际应用中,最好参考所使用的具体方法或工具的文档来准确理解模块结构图的表示和含义。
变换分析
变换分析是一种从数据流图(DFD,Data Flow Diagram)导出程序结构图的方法,特别适用于处理具有明显变换流特性的系统。以下是对变换分析步骤的详细解释:
1. 确定输入流和输出流、分离出变换中心
- 输入流:在数据流图中,从外部实体流向系统的数据流称为物理输入。这些输入数据流最终会到达变换中心,进行必要的处理。
- 输出流:从系统流向外部实体的数据流称为物理输出。这些输出数据流是变换中心处理后的结果。
- 变换中心:位于输入流和输出流之间的部分就是变换中心。它是数据流图中对数据进行主要处理的区域。
2. 第一级分解
第一级分解主要是设计模块结构的顶层和第一层。
- 顶层模块:顶层模块是整个系统的主控模块,负责接收输入数据、调用变换中心进行处理,并产生输出数据。
- 输入控制模块:用来接收所有的输入数据,并将其传递给变换中心。
- 变换控制模块:实现输入到输出的变换,即处理变换中心中的数据。
- 输出控制模块:用来产生所有的输出数据,将变换后的数据传递给外部实体。
3. 第二级分解
第二级分解主要是设计中、下层模块。
- 在这一步中,需要根据数据流图中的详细处理过程,将变换控制模块进一步细化为多个子模块。每个子模块负责完成特定的数据处理任务。
- 同时,根据输入流和输出流的特性,可能需要为输入控制模块和输出控制模块添加额外的子模块,以处理特定的输入/输出需求。
4. 事务分析
虽然事务分析在变换分析的描述中并未直接提及,但它是另一种从数据流图导出程序结构图的方法,特别适用于处理具有事务流特性的系统。事务流是根据输入数据的性质选择加工路径的数据流。
事务分析的过程通常包括:
- 确定事务来源:识别数据流图中的事务中心,即根据输入数据性质选择加工路径的节点。
- 确定系统结构:根据事务中心的特性,设计系统的整体结构。
- 确定处理工作:分析每个事务的处理过程,确定所需的模块和子模块。
- 模块合并与分解:根据处理工作的需要,对模块进行合并或分解,以优化系统结构。
总结
变换分析和事务分析是从数据流图导出程序结构图的两种常用方法。变换分析适用于处理具有明显变换流特性的系统,而事务分析则适用于处理具有事务流特性的系统。在实际应用中,需要根据系统的具体特性选择合适的方法。
面向数据结构的设计方法(jackson 方法)
分析确定输入输出数据的逻辑结构,找出输入与输出数据结构有对应关系的数据单元,从描述数据结构的 jackson 图导出描述程序结构的 jackson 图,列出所有操作并分配到程序结构图上,用伪码表示程序。
Jackson 图
表达数据元素间的逻辑关系(顺序,选择,重复)或程序结构(顺序,选择,重复)。
系统详细设计
- 代码设计(唯一性、合理性、可扩充性、简单性、适用性、规范性、系统性)
- 输入设计(确定输入数据内容、输入方式设计、输入格式设计、校对方式设计)
- 输出设计(确定输出内容、选择输出设备与介质、确定输出格式)
- 处理过程设计(程序流程图、盒图:NS 图、形式语言、决策树、决策表)
- 用户界面设计(菜单方式、会话管理方式、提示方式与权限管理)
- 安全控制设计(环境性因素、数据处理因素)
系统实施的任务
按总体设计方案购置和安装计算机网络系统,软件准备,培训,数据
准备,投入转换和试运行。
系统实施的步骤
按总体设计方案购置和安装计算机网络系统,建立数据库系统,程序设计,收集有关数据并进行录入工作和系统测试,人员培训、系统转换和试运行
程序设计方法
- 结构化方法(模块内部程序各部分要自顶向下地结构化划分、各程序部分应按功能组合、各程序部分的联系尽量使用调用子程序方式而不是 GOTO 方式)
- 原型方法(将带有普遍性的功能模块集中、开发完成通用模块、生成程序模块原型)
- 面向对象的方法(一个简单直接的映射过程)
程序模块图
测试
以最少的人力和时间发现潜在的各种错误和缺陷。
测试过程
制定测试计划,编制测试大纲,设计生成测试用例,实施测试,生成测试报告。
软件测试
- 单元测试:模块接口、局部数据结构、重要的执行路径、出错处理、边界条件
- 集成测试:把模块按系统设计说明书的要求组合起来进行测试
- 确认测试:有效性测试、软件配置审查、验收测试
- 系统测试:恢复测试、安全性测试、压力测试、性能测试、可靠性及可用性和可维护性测试、安装测试
测试方法
- 静态测试:人工检测、计算机辅助静态分析
- 动态测试
- 白盒测试:逻辑覆盖、循环覆盖、基本路径测试
- 黑盒测试:等价类划分、边值分析、错误猜测、因果图
调试
改正测试时发现的错误:
- 试探法
- 回溯法
- 对分查找法
- 归纳法
- 演绎法
系统文档
软件开发过程中的文档,硬件采购和网络设计中的文档,系统建设过程中的各种来往文件、会议纪要、会议单据等,程序资料和培训教程等。
系统转换
新系统试运行成功后与旧系统相互转换:
- 直接转换
- 并行转换
- 分段转换
系统可维护性的评价指标
- 可理解性
- 可测试性
- 可修改性
系统维护
- 硬件维护
- 软件维护(正确性维护、适应性维护、完善性维护、预防性维护)
- 数据维护
系统维护的步骤
- 提出维护或修改要求
- 领导审查并做出答复
- 领导分配任务
- 维护人员执行修改
- 验收维护成果并登记修改信息
系统评价
系统评价是对信息系统在其生命周期内的不同阶段进行全面评估的过程。这一过程包括立项评价、中期评价和结项评价三个主要阶段。
-
立项评价:
立项评价是信息系统在开发前的预评价,也可以理解为系统规划阶段的可行性研究。这一阶段的目的是决定是否可以立项进行开发。评价的内容主要包括分析当前软件系统是否具备开发的条件,明确系统目标的重要性和可能性。具体来说,立项评价需要评估技术可行性(即技术上是否能够实现系统目标)、经济可行性(即项目成本是否合理、是否有经济效益)、管理可行性(即组织结构和人力资源是否足以支持项目执行)以及开发环境可行性(即是否具备必要的硬件、软件和其他资源)。由于事前评价所采用的参数大多是不确定的,因此评价的结果具有一定风险性。
-
中期评价:
中期评价包括两种含义。第一种是指在项目方案实施过程中,由于外部环境出现重大变化(如客户需求变化、竞争性技术或更完美的替代系统的出现)或者发现原有系统设计存在重大缺陷时,需要对系统方案进行重新评估,以决定是否继续执行还是终止该方案。第二种含义是指在信息系统开发正常情况下,对系统设计、系统分析、系统实施阶段的阶段性成果进行评估。这种评估有助于及时发现和纠正问题,确保项目按计划进行。
-
结项评价:
结项评价属于项目系统准备结束时对系统的评价。一般指信息系统在投入正式运行后,为了进一步了解系统是否达到预期的目的和要求,从而对系统运行的效果进行综合的评价。结项评价的内容主要包括系统的性能评价(如响应时间、吞吐量等)、系统的经济效益评价(如投资回报率、成本效益分析等)、企业的管理效率是否提升以及管理水平是否改善等。通过结项评价,可以了解系统的质量和效果,检查系统是否符合预期的目的和要求;同时,项目人员也可以总结开发工作的经验、教训,为今后的工作提供有益的参考。