zoukankan      html  css  js  c++  java
  • 软件工程

    第1章        软件工程的内容和方法 

    程序是计算机为完成特定任务而执行的指令的有序集合。

    软件=程序+数据+文档

    软件工程是研究软件开发方法和软件管理方法的一门工程学科

    软件工程的三要素:软件工程的方法(开发方法)、工具(支持方法的工具)和过程(管理过程)。

    软件工程的7条原理:(1)用分阶段的生存周期计划严格管理软件开发,分为计划、分析、设计、编程、测试和运行维护6个阶段。(2)坚持进行阶段评审。上一阶段评审不通过,就不能进入下一阶段开发。(3)实行严格的产品版本控制。(4)采用现代程序设计技术。(5)结果应能清楚地审查。(6)开发小组的成员要少而精。(7)要不断地改进软件工程实践的经验和技术,要与时俱进。

    软件工程中常用的软件开发方法:面向过程的开发方法、面向对象的开发方法、面向数据的开发方法和形式化开发方法。

    面向过程的开发方法的优点:简单好学;缺点:不适应窗口界面,维护困难;适用场合:大型工程计算,实时数据跟踪处理,各种自动化控制系统,以及系统软件实现等领域。

    面向对象的开发方法的优点:功能强大,易于维护;缺点:不用掌握;适用场合:互联网时代,完全有用户交互控制程序执行过程的应用程序和系统软件的开发。

    面向数据的开发方法的优点:通俗易懂;缺点:不适应窗口界面;适用场合:以关系数据库管理形态为支撑环境的信息系统建设。

    形式化开发方法的优点:准确、严谨;缺点:难于上手和应用;适用场合:对安全性要求极高,不容许出错的软件系统,如军事、医药、交通等领域。

    软件工程的五个面向理论:面向流程分析、面向数据设计、面向对象实现、面向功能测试和面向过程管理。

    软件工程的过程管理有:ISO 9000 质量管理和质量保证体系、CMMI 软件能力成熟度模型和软件企业文化。

     

    名称

    来源

    特点

    ISO 9000 质量管理和质量保证体系

    国际标准化组织

    按20多个质量要素管理

    CMMI 软件能力成熟度模型

    美国卡内基-梅隆大学软件工程研究所(CMU/SEI)

    按24个过程域PA,分阶段模型和连续模型两种方式管理,属于重载过程管理

    软件企业文化

    Microsoft公司、IBM公司、敏捷方法

    属于轻载过程管理

     

    第2章        软件生产周期及开发模型

    软件的生存周期:1 立项(或签合同)、下达任务书; 2 需求分析;3 概要设计;4 详细设计;5 编码实现;6 软件测试;7 软件发布与实施;8 软件维护;9 版本更新或退役。

    瀑布模型的特点:1、里程碑或基线驱动,或者说文档驱动。2、过程逆转性很差或者说不可逆转。优点:开发阶段清晰。便于评审、设计、跟踪、管理和控制。缺点:过程逆转性差,错误以发散式扩大。

     

    模型名称

    优点

    缺点

    适用范围

    瀑布

    简单好学

    逆转性差

    面向过程开发

    增量

    可以分阶段提交

    有时用户不同意

    系统可拆卸和组装

    迭代

    克服了瀑布模型的缺点

    风险大

    有高素质软件团队

    原型

    开发速度快

    不利于创新

    已有产品的原型

     

    第3章        软件立项与合同

    “非订单软件”:通过市场调研之后,认为某产品将会产生巨大的市场空间,而软件公司在人力资源、设备资源、抵抗风险、资金和时间上都具备开发该产品的能力,于是决定立项,这类软件产品被称为“非订单软件”。

    “订单软件”:与固定用户签订软件开发合同,由软件公司启动该项目的开发,这类软件被称为“订单软件”。

    第4章        软件需求

    需求分析为什么重要?

    答:(1)许多大型应用系统的失败,最后均归结到需求分析的失败。

    (2)需求分析的输出文档《用户需求分析》即使软件生产周期中的第一个里程碑,又是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,是三者共同工作的基础,是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。

    (3)需求分析要占整个软件开发时间或工作量的30%左右。

    (4)需求获取中的错误属于软件开发早期错误,它会在后续的设计和实现中进行发散式传播。

    需求获取为什么难?

    答:(1)用户需求具有动态性

    (2)用户需求具有模糊性

    (3)开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。

    (4)中国的国有企业正处于变动期,中国的民营企业正处于成长期,造成需求不成熟、不稳定和不规范,增加了难度系数。

    基线:基线是软件工作产品,它是经内部和外部评审过的,并且是下一阶段工作的基础。一根基线是一个里程碑或一个检查点。

    检查点:检查点只是由时间、计划、事件驱动的检查工作进度和质量的一个记号。一个检查点不一定是一根基线或一个里程碑。

    里程碑:里程碑是一个标记,只需要经过内部评审。一个里程碑是一个检查点,但不一定是基线。

    评审:评审是对软件工作产品质量的一次开会或汇签活动。

    审计:审计是复查评审活动程序的合法性,是否按程序与规范进行

    需求来源:系统目的、行业知识、软件涉众、运行环境和组织环境。

    需求分析的目的:用于说明软件产品或软件项目需要满足的条件和限制。

    需求分析是对提取的需求进行分析整理,主要完成以下工作:1、需求分类,将相关需求组织成一个子集;2、检查需求是否准确,是否存在二义性;3、检查和解决不同需求间的冲突;4、分析软件的边界,以及软件与环境是如何相互作用的;5、从系统需求中推导软件需求。

    第5章        软件策划

    软件策划的4个步骤

     

    步骤

    步骤名称

    步骤内容

    1

    估计软件工作产品的规模、工作量、费用及所需的资源

    软件工作产品,包括需求规格说明书,概要设计说明书,详细设计说明书,源代码,测试计划和测试报告,质量保证计划,软件配置管理计划,里程碑及评审点计划

    2

    制定时间表

    包括开发进度时间表和管理进度时间表:软件开发计划、质量保证计划、软件配置管理计划、测试计划、评审计划

    3

    鉴别和评估风险

    政策风险,资源风险、市场突变风险、技术风险和技能风险

    4

    与相关的组或人协商策划中的有关约定

    策划的结果要实事求是,要得到各方面的同意和认可

     

    软件评估:是指对软件项目进行量化估计,并记录估计结果的过程。软件估计是软件策划的核心,是软件策划的重点和难点。

    软件项目规模评估的估计方法:希腊古都法、类比法、功能点估计法、无礼估计法。(要求可分清适用范围P107)

    第6章        软件设计

    《概要设计说明书》和《详细设计说明书》的差异?

    答:《概要设计说明书》一是要覆盖《需求规格说明书》的全部内容,二是要作为指导详细设计的依据。因此,塔注重于框架上的设计。《详细设计说明书》一是要覆盖《概要设计说明书》的全部内容,二是要作为指导程序设计的依据,因此,它注重于微观上和框架上的设计。在一般情况下,《概要设计说明书》由系统设计师负责,《详细设计说明书》则有高级程序员负责。

    软件价格应描述以下问题:(1)软件系统镇南关包含了那些子系统和部件。(2)每个子系统和部件都完成那些功能。(3)子系统和部件对外提供或使用外部的哪些接口。(4)子系统和部件间的依赖关系,以及对实现和测试的影响。(5)系统是如何部署的。

    OOA模型采用分层次结构划分为5层,它们分别是对象-类层、属性层、服务层、结构层和主题层。

    OOD体系结构的4个部分内容:问题论域部分、人机交互部分、任务管理部分和数据管理部分。

    第7章        软件建模

    功能模型:描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。

    业务模型:描述系统在何时、何地、由和角色、按什么业务规则去做,以及做的步骤和流程,即对系统的操作流程进行定义。

    数据模型:描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。

    业务模型的描述方法有:组织结构图,岗位(或角色)职能表,业务流程图加上业务规则说明。

    功能模型在需求分析时的表示方法有:系统功能需求列表、性能需求列表、接口需求列表、界面需求列表。

    数据模型的描述方法有:系统的CDM(概念数据模型,即E-R图)和PDM(物理数据模型,即物理表),以及相应的表结构。

    第8章        软件实现

    从宏观上讲,软件实现包括详细设计、编码实现、单元测试和集成测试。从微观上讲,软件实现是通过编码、调试、单元测试、集成测试等活动创建软件产品的过程。软件的实现与软件的设计、软件的测试密不可分。

    构件:就是标示的且可以被复制的软件制品。

    构件的三个特点:可明确被标识、可复用和是软件制品。

    程序设计风格的内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句层次结构、遵守统一的编程规范。

    编程规范的内容包括:命名规范、界面规范、提示及帮助信息规范、热键定义规范等。

    软件实现的原则: 1、尽可能的简单  2、易于验证 3、适应变化  4、遵守一个编程规范   5、选择项目组成员最熟悉的工具或语言。

    代码重构:代码重构是软件进化的重要手段,定义为“对软件内部结构的修改,使之更容易理解和修改,但不改变软件的对外可见的行为”。需要重构的地方  例如: 重复代码、函数过长、循环过长或嵌套过深、类的内聚性差、方法传递过多的参数、平行类修改、平行修改CASE语句、方法过多使用其他类的成员、公共的数据成员。

    界面设计遵从的原则:界面简洁朴素、控件摆放整齐、颜色风格统一、照顾客户的习惯。

    项目如果无法按时完成,可以采取以下方式处理:增加开发人员、减少项目的内容和重新认识2 8定律。

    提示信息的分类(注意区分):1、引导性提示信息     2、错误性提示信息   3、状态行提示信息   4、位置性提示信息。

    第9章        软件测试

    软件测试定义:软件测试是为了发现错误而执行程序的过程。

    软件缺陷:符合下面五个规则之一的就是软件缺陷1.软件未达到产品说明书标明的功能。2.软件出现了产品说明书指明不会出现的错误。3.软件未达到产品说明书未指明但应达到的目标。4.软件功能超出产品说明书指明的范围。5.软件测试人员认为软件难于理解,不易使用,速度缓慢,或者最终客户认为不好。

     

    详细设计

     

     

    概要设计

     

     

    需求分析

     

     

    集成测试

     

     

    系统测试

     

     

    验收测试

     

     

    编码

     

     

    单元测试

     

     

    测试需求分析

     

     

    系统测试设计

     

     

    集成测试设计

     

     

    编码测试用例

     

     

    单元测试

     

     

    集成测试

     

     

    系统测试

     

     

    验收测试

     

     

     

     

     

     

     

    软件测试V模型                                          改进的软件测试V模型

    黑盒测试:又叫功能测试。盒子指的是被测试的软件,“黑盒”就是只知道被测软件的外部情况,主要是界面和接口,被测软件的内部逻辑结构和数据结构,对测试人员是不可见的。黑盒测试的方法有:等价分类法、边界值分析法和错误推测法。

    白盒测试:对程序执行路径的测试。白盒测试的方法有:逻辑覆盖测试、循环测试和基本路径测试。

    回归测试:在软件发生修改之后,重新执行原有已执行过的测试用例,以保证修改的正确性,为此目的展开的测试工作成为回归测试。

    Alpha测试:Alpha测试时开发人员或者测试人员在场,客户在开发环境下使用软件,也称为受控测试。

    Beta测试:就是将软件的Beta版本交给大量典型客户,由他们从客户的角度出发在实际环境中使用软件。

    以下注意区分:

    通过测试:简单说就是验证软件至少能做什么,而不会考验其能力有多强。

    失败测试:纯粹是为了验证软件在某一条件下,是否会出现异常、停止工作等现象而进行的测试。

    负载/压力测试:一方面,可以通过减少软件需要的资源(内存、磁盘空间、网络资源等),来测试出软件运行的最低配置或最低资源需求;另一方面,可以正常提供软件需要的资源,但是通过不断加重软件要处理的任务,来测试软件在正常配置下能够具有的能力指标

    ...
     

     

     





  • 相关阅读:
    C#的委托事件总结
    iOS的录屏功能
    Unity通过NTP获取网络时间
    Unity的弱联网Json数据传输
    Unity场景和代码合并以及UnityYAMLMerge的使用
    Unity学习--捕鱼达人笔记
    Yomob广告在cocos2dx安卓平台的Demo
    谷歌广告Admob在cocos2dx上通过回调实现底部Banner
    JZ2440 裸机驱动 第13章 LCD控制器(2)
    JZ2440 裸机驱动 第13章 LCD控制器(1)
  • 原文地址:https://www.cnblogs.com/itc0z0sti/p/3305719.html
Copyright © 2011-2022 走看看