赞
踩
1、含义:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
2、解决方案:引入软件工程的思想。
1、含义:《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。
2、目标:
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
为软件开发提供了“如何做”的技术。方法覆盖面很广,包括沟通,需求分析、设计建模、程序构造、测试和技术支持。完成软件开发的各项任务的技术方法。
为运用方法而提供的自动的或半自动的软件支撑环境。
工作产品构建时所执行的一系列活动、动作和任务的集合。
软件生命周期是指软件从产生到最终被废弃的生命周期,可以分为三大阶段,分别为定义问题、软件开发和软件维护,其中问题定义中的需求分析是软件开发和维护的前提,它直接决定软件项目的成败。
(1)此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标(是什么)及其可行性(怎么做可行)。
(2)主要产物:可行性分析报告和项目计划书
(1)在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
(2)得到逻辑模型,为整个项目的成功打下基础,也是开发过程中不断变化和深入的阶段。
(3)主要产物:软件需求说明书
(1)概要设计+详细设计=软件设计
(2)得到物理模型
(3)概要设计:设计系统的结构,明确模块构成、层次、模块间调用方法、模块间通信方法、每个模块的功能等;系统整体的数据结构、数据库结构等;主要产物:概要设计书。对测试来说,这一阶段还需确认集成测试相关的东西。
(4)详细设计:比概要要细,完成每一个模块所对应的功能的具体描述==把每个模块的功能变成一系列的程序执行步骤的逻辑代码==生成程序流程图/程序框图。主要产物:详细设计说明书
(1)软件设计阶段的程序流程图变成具体代码。
(2)将物理模型变成实际运行的代码。
(3)转成代码
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
(1)测试完成后,将软件放到生产环境中,进入运维阶段。
(2)运维阶段是软件生命周期中花钱最多、持续时间最长的活动。
1.包括:问题定义、可行性研究、需求分析
2.软件定义阶段任务
描述包含多个子系统的产品(即系统)的顶级需求。
包括 功能需求、非功能需求、设计约束;实际上还有行为需求,是通过系统的特性表现出来的,一般不考。
每项需求必须描述清楚,使后面设计的人员可以获得所需的信息,包括设计和实现的所有必要信息。
每一项需求都必须准确陈述要开发的功能。
每一项需求必须是在已知系统和环境的全能和限制范围内可以实现。
检查每项需求是否能通过设计测试用例或其他验证方法开确定产品是否按需求实现。
解析:如果需求不可验证,则确定其实施是否正确就成为主观臆断,而非客观分析了。一份前后矛盾,不可行或有二义性的需求也是不可验证的。而题中的需求是报表功能容易扩展,新的文件格式还是末知的情况下,无法验证该需求。
每项需求都是编写文档的根源,每项需求都能追溯到具体用户需求。
对所有的需求,只有一个明确的统一解释。
设计软件的结构、明确软件由哪些模块组成,这些模块的层次结构是怎样的,这些模块的调用关系是怎样的,每个模块的功能是什么。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
①、设计软件系统的总体结构(将系统按功能划分模块:确定每个模块的功能:确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量);
②、数据结构及数据库设计;
③、编写概要设计文档;
④、评审
软件体系结构:是对子系统、软件系统组件以及它们之间相互关系的描述。
就是把系统切割成很多个小部分。
(1)对每个模块进行详细的算法设计。用某种图形、表格和语言等工具将每个模块处理过程的详细算法描述出来。
(2)对模块内的数据结构进行设计。
(3)对数据库进行物理设计,即确定数据库的物理结构。
(4)其他设计。
为了提高数据的输入、分类、存储和检索等操作,节约内存空间,对数据库中的某些数据项的值要进行
代码设计。
模块要接收的数据的数量、类型等。
模块要实现特定的功能,算法、具体步骤
为了保证系统设计工作的顺利进行,结构设计应遵循如下原则:
(1)所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性。
(2)模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。
(3)整个系统呈树状结构,不允许网状结构或交叉调用关系出现。
(4)所有模块(包括后继IPO图)都必须严格地分类编码并建立归档文件。
软考中参考值不宜超过500行。
提高聚合程度,降低模块之间的耦合程度是模块设计应该遵循的最重要的两个原则。
符合这个标准=模块独立型好=后期可维护性高
根据ISO-IEC14764划分
更正性维护:更正交付后发现的错误.
适应性维护:使软件产品能够在变化后或变化中的环境(运行环境/企业管理环境)中继续使用。
完善性维护:改进交付后产品的性能和可维护性。
预防性维护:在软件产品中的潜在错误成为实际错误前,检测并更正它们。将来存在的错误。
一个雇员可以雇佣多个雇员。
关联关系展示的是一组链,就是对象之间的链接。
聚合、组合都描述的是整体和部分的关系,图示都表示特殊的关联关系。
(1)聚合(空心菱形+箭头线)
聚会是个整体,聚会结束后,参加聚会的人都还存在。
强调部分可以独立于整体。
(2)组合(实心菱形+箭头线)
皮衣和毛,皮衣不存在了要毛也没用。
强调部分依赖于整体,整体不存在,部分也就不存在了。
静态建模机制描述的是系统的结构,或结构的深化和扩展。
(1)类图(静态视图)
(2)对象图(静态视图)
(3)构件图(静态视图)
(4)配置图(部署图 静态视图)
描述的是系统的行为和动作。
(1)用例图(静态视图)
(2)状态图(动态视图)
(3)活动图(动态视图)
(1)序列图(顺序图)
(2)通信图(协作图)
(3)交互概览图
(4)计时图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。