软件工程复习总结(多国语言完整版)V2.0

Windforce 发表于 2008-01-06 22:21:14

 


         这是我用一天时间从书上总结的,因为时间仓促,若有不妥之处或一些单词拼写错误请看官谅解.

感谢廖宇晨提供部分框架

感谢杨小龙提供部分资源

 

第一章       概述

Chapter 1 : Why Software Engineering?

 

1.软件工程

1.Software Engineering

关于设计和开发高质量的软件的科学

is about designing & developing high quality software.

 

2.错误类型

2.Terminology for describing bugs

①缺陷(fault)是人进行软件开发活动中人为出错(称为error)造成的;

①Fault occurs when a human makes a mistake,called an error;

②故障(失效failure)是相对于系统指定行为的偏离

②Failure is a departure from the system’s required behavior.

缺陷是系统内部观点(开发者角度);

A fault is an inside view of the system,as seen by the eyes of the developers;

故障是系统外部观点(用户看到的问题)

A failure is an outside view,a problem that the user sees.

 

 

第二章       软件过程

Chapter 2 : Modeling the Process and Life Cycle

1.过程的概念(process)

1.The meaning of process

      我们把有顺序的任务集合称为过程,即一系列涉及到活动,约束和资源的步骤,它们产生某种类型的有目的的输出。

       We can think of a set of ordered tasks as a process:a series of steps involving activities,constrains,and resources that produce an intended output of some kind.

 

2.瀑布模型(waterfall model)

2.Watrefall Model

Founction of Waterfall Model:

              The Waterfall model presents a very high-level view of what goes on during development,and it suggests to developers the sequence of events they should expect to encounter.

       Effect of Waterfall:

              Waterfall Model can be very useful in helping developers lay out what they need to do.Its simplicity makes it easy to explain to cystomers who are not familiar whith software development;it makes explicit which intermediate products are necessary in order to begin the next stage of development.

 

       Process of Waterfall Model:

需求分析

Requirements Analysis

→系统设计

System Design

→程序编写

Program Design

→编码

Coding

→单元测试与集成测试

Unit & Integration Testing

→系统测试

System Testing

→验收测试

Acceptance Testing

→运行和维护

Operation & Maintenance

3.原型(prototype)模型

3.Prototyping Model

原型就是部分开发的产品,这个产品能使顾客和开发人员检验所建议系统的某些方面,并且判断它对最终产品是否合适。

A Prototype is a partially developed product that enables customers and developers to examine some aspect of the proposed system and decide if it is suitable or appropriate for the finished product.

 

Process of Prototyping Model:

       List of Revisions    ←┈┄    List of Revisions    ←┄┄    List of Revisions

          ↓↑                   ↓↑                     ↓↑

┌→Prototype Requirements→      Prototype Design    →           Prototype System→ Test┐

│                                                                      ↓

System Requirements(sometimes informal or incomplete)                      Delivered System

 

4.V模型

4.V Model

       Concept of V Model:

              The V Model is a variation of the waterfall model that demonstrates how the testing activities are related to analysis and design.

 

→运行和维护

  Operation & Maintenance

需求分析←----------------------------------→验收测试                  

       Requirement Analysis                 Acceptance testing

→系统设计←--------------------→系统测试

  System Design              System Testing

→程序编写←---------→单元测试与集成测试

  Program Design     Unit & Integration Testing

  →编码

    Coding

Effect of V Model:

V模型使得某些迭代和重新工作更加清晰

V Model makes more explicit some of the iteration and rework that are hidden in the waterfall depiction.

瀑布模型的中心通常是文档和工件;V模型的中心通常是活动和正确性

The focus of the Waterfall is often documents and artifacts,the focus of the V is activity and correctness.

 

5.Phased Development:Increments & Iterations

       Incremental development:

              The system as specified in the requirements documents is partitioned into subsystems by functionality.

       Iterative development:

              It delivers a full system at the very beginning and then changes the functionality of each subsystem with each new release.

Windforce小结:Incremental development 就是一个模块一个模块按次序完成,而Iterative development 则是先把所有的模块框架写好,再分步骤将各个框架的内容添满

 

第三章  项目管理

Chapter 3 :Planning and Managing the Project

1. WBS(work breakdown structure)工作分解结构

1.Work Breakdown Structure

是一个详尽的,层次的(从全面到细节)的树形结构,由可提交物与为了完成项目需要执行的任务组成。

It  depicts the prioject as a set of discrete pieces of work.

一般用四个参数描述每个活动:前驱(precursor),持续时间(duration),截至日期(due date),终点(endpoint)。

Precursor : an event or set of events that must occur before the activity can begin;it describs the set of conditions that allows the activity to begin.

Duartion: is the length of time needed to complete the activity.

Due Date: is the date by which the activity must be completed,frequently determined by contractual deadlines.

Endpoint: is usually a milestone or deliverable.

Milestone: is the completion of an activity----a particular point in time.

Deliverables: the items that thecustomer expects to see during project development.

2. CMP:关键路径法

2.Critical Path Method

Concept of CPM:

       Analyzing the paths among the milestones of a project by adding to it information about the estimated time it will take to complete each activity.For a given activity,we label the corresponding edge of the graph with the estimate.

Founction of CPM:

       The paths can show us the minimum amount of time it will take to complete the project,given our estimates of each activity’s duration.Moerover,CPM reveals those activities that are most critical to completing the project on time.

Real time or Actual time: the estimated amount of time required for the activity to be completed.

Available time: the amount of time available in the schedule for the activity’s completion

Slack time or Float: the difference between the available time and the real time for that activity.

 

Formulas:

Slack time = Available time – Real time

Slack time = Latest time – earliest time

 

Critical Path is the one for which the slack at every node is zero.

3. 项目计划

3.The Project Plan

①项目计划应该包括以下几点:

项目范围(project scope)     

项目进度(project schedule)  

项目小组组成结构(project team organization)   

项目的技术描述(technical description of the proposed system)

项目的标准、过程和建议的技术及工具(project standarts,procedures,and proposed techniques and tools)   

质量保证计划(quality assurance plan)

配置管理计划(configuration management plan) 

文档计划(documentation plan)    

数据管理计划(data management plan)

资源管理计划(resource management plan)

测试计划(test plan)

培训计划(training plan)

风险管理计划(security plan)

维护计划(maintenance plan)

②项目计划还应该列出使用的标准或方法,例:

算法(algorithms)   

工具(tools)    

评审或审查技术(review or inspection techniques)

设计语言或表示方法(design languages or representations)             

编码语言(coding languages)

测试技术(testing techniques)

 

4. 估计软件成本

4.Effort Estimation

The most important way:Constructive Cost Model(COCOMO)

Stage1.build prototypes to resolve high-risk issues involving user interfaces,software and system interaction,performance,or technological maturity.

Estimate size in what its creators call application points

To compute application points,you first count the number of screens,reports,and third-generation language components that will be involved in the application.

Next,you classify each application element as simple,medium,or difficult.(by guidelines on Table 3.10 Page113)

Stage2(the early design stage).a decision has been made to move forward with development,but the designers must explore alternative architectures and concepts of operation.

Estimate the functionality captured in the requirements.

Effort estimate is adjusted for degree of reuse,requirements change,and maintenance. 

Stage3(the postarchitecture stage).sizing can be done in terms of function points or lines of code,and many cost factors can be estimated with some degree of comfort. 

 

第四章  需求分析

Chapter 4 :Capturing the Requirements

1.需求的类型

1.Types of Requirements

       Functional requirement: describes required behavior in terms of required activities

       Quality requirement(nonfunctional requirement):describes some quality characteristic that the software solution must possess.

      

      Type of Requirement documentation:

              Requirements definition:a complete listing of everything the customer wants to achieve.It describes the entities in the environment in which the proposed system will be installed.

              Requirements specification:restates the requirements as a specification of how the proposed system shall behave.

2.需求的特征

2.Characteristics of Requirements

正确(correct) 

一致(consistent)

没有二义性(unambiguous)  

完整(complete)     

现实(feasible)

可验证(testable)

相关(relevant)      

可追踪(traceable)

是否每个需求都描述了顾客要求的某件事情

Check that we eventually perform to assess the requirements

 

3.需求的表示

①数据字典:一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、                    格式、度量单位、精度以及允许取值范围的共享仓库。

②判断表

③      状态图

 

4.Entity-Relationship(ER) Diagrams

Three core constructs of ER diagrams:

       Entity: depicted as rectangle,represents a collection(sometimes called class) of real world objects that have common properties and behaviors

       Relationship: depicted as an edge between two entities,with a diamond in the middle of the edge specifying the type of properties associated with the entity.

       Attribute: an annotation on an entity that decribes data or properties associated with the entity.

See figure4.4 in page158

 

Function of ER diagrams:

1.       They provide an overview of the problem to be addressed

2.       This view is relatively stable when changes are made to the problem’s requirements.

5.Data-Flow Diagrams(DFD)

Processor or function(represented as a bubble): transforms data.

Data flow(represented as an arrow): an arrow into a bubble represents an input to the bubble’s function and an arrow out of a bubble represents one of output.

Data store(represented as two parallel bars): a formal repository or database of information

Actors(represented as a rectangle): entities that provide input data or receive output results.

 

Advantages:The diagrams provide an intuitive model of a proposed system’s high- level funvtionality and of the data dependencies among the various processes;and are easy to read and understand.

Disanvantages:The diagrams can be aggravatingly ambiguous to a software developer who is less familiar with the problem being modeled.

 

In all,DFDs are best used by users who are familiar with the application domain being modeled,and as early models of a problem,when details are less important.

6.需求的文档(需求定义和需求描述)区别与联系

6.Requiremnet Documentation

Steps of Writing Requirements Definition

1.              outline the general purpose and scope of the system,including relevant benefits,objectives,and goals.

2.              Describe the background and the rationale behind the proposal for a new system

3.              Describe the essential characteristics of an acceptable solution.

4.              Describe the environment in which the system will operate.

5.              Outline a description of the proposal.

6.              List any assumptions we make about how the environment behaves.

 

Steps of Requirements Specification

1.       Describe all inputs and outputs in detail.

2.       Restate the required functionality in terms of the interfaces’s inputs and outputs.

3.       Devise fit criteria for each of the customer’s quality requirements

联系:

两者覆盖相同的范围:

①简述系统的综合目的;

②描述系统开发的背景和目的;

③若顾客对解决问题有新提议方法,应该给出该方法的描述大纲;

④若记录问题概况则描述系统的具体特征,定义系统边界已经连接它们的接口,解释系统功能;

⑤讨论系统运行的环境。

       区别:

需求定义文档从适合顾客的角度的层次,而且要用顾客能够理解的术语撰写。

需求描述文档从适合开发人员的角度编写的。

 

 

第五章  系统设计

Chapter 5 :Designing the System

1.概念设计与技术设计区别与联系

1.Conceptual & Technical Designs

Conceptual Design or System Design: tells the customers exactly what the system will do

Technical Design: allows system builders to understand the actual hardware & software needed to solve the customers’ problem.

两个设计文档描述了同一一个系统,只不过用不同的方式。

概念设计侧重于描述系统功能(做什么);

而技术设计侧重于系统采用的方式(怎么做)。

概念设计:

用顾客的语言描写;

Witten in the customer’s language

不包括技术行话;

Constrains no technical jargon

描述系统的功能;

Describes the function of the system

独立于系统实现;

Independent of implementation

与需求文档相关。

Linked to the requirements documents

技术设计:

对主要硬件组件和功能的描述;

A description of the major hardware components and their functions

软件组件的层次和功能;

The hierarchy and function of the software components

数据结构和数据流。

The data structure and the data flow.

2.体系结构分隔

2.Architectural Styles & Strategies

Architecture: associates the system capabilities

Code Design: involves algorithms and data structures

Executable Design: discusses memory allocation,data formats,bit patterns,etc.

      

Pipes & Filters

       Pipes: streams of data for input and output.

       Filter: after the transformation of data from inout to output is begun,finishes reading the input stream.

 

Object-Oriented Design

       Two important characteristics:

              a.The object must preserve the integrity of the data representation

              b.The data representation must be hidden from other objects

 

分层

Layering

各层是分等级的,每一层为它的外层提供服务的同时又是里层的客户。

       The layers are hierarchical;each layer provides services to the one outside it and acts as a client to the layer inside it.

 

过程控制

Process Control

a.反馈系统(feedback system)

Measures a controlled variable,and adjust the process accordingly to keep the controlled variable near or at the set point

b.前馈系统

Tries to anticipate future effects on the controlled variable by measuring other process variable that may be good indicators.

控制循环的三个独立部分:

Three part of the control loop:

⑴将过程和控制策略分离的计算元素。

(1)    Computational elements,separating the process from the control policy.

The process definition should include mechanisms for changing process variables.

The control algorithms should explain how to decide when and how to make these changes

过程:包括改变过程变量的机制。

控制算法:解释如何决定,什么时候,如何做出这些变动。

⑵数据元素

(2)Data elements,includeing the process variables,set point ,and the sensors to be used

⑶控制循环配置:开环或闭环,反馈或前馈。

                     (3)The control loop scheme:open-loop or closed,feedback or feedforward.

3.内聚与耦合(cohesive and couple)

A).耦合度(couple)

当两个构件有大量依赖关系的时候,称为高度耦合,否则为松散耦合。

Highly coupled: great deal of dependence

Loosely coupled: interconnections are weak

Uncoupled: no interconnections at all

非耦合 - 数据耦合 - 标记耦合 - 控制耦合 - 公共耦合 - 内容耦合

内容耦合(content coupling):一个构件修改了另一个构件的内部数据项。

Modified component is completely dependent on the modifying one.

公共耦合(common coupling):通过公共存储读取数据。

Make change to the common data,which means tracing back to all dependence is called access those data to evaluate the effect of the change

控制耦合(control coupling):某个构件通过传递参数来控制另外一个构件的活动。

One component passes parameters to control the activity of another component

标记耦合(stamp coupling):用一个数据结构来从一个构件到另一个构件传送信息,并且传递的是该数据结构本身。

                                       A data structure is used to pass information from one component to another,and the data structure itself is passed

数据耦合(data coupling):(接着标记耦合的读)如果传递的只是数据,则为数据耦合。

                                   Only data are passed.

Windforce总结:The lower the better.

B).内聚度(cohesive)

指构件内部的“粘合程度”。

巧合内聚 - 逻辑内聚 - 时态内聚 - 过程内聚 - 通信内聚 - 顺序内聚 - 功能内聚

巧合内聚(coincidental):构件各个部分互不相关。

                                   A component whose parts are unrelated to one another.

逻辑内聚(Logical):几个逻辑相关的功能或数据放在同一个构件中,元素间并不功能相关。

                            Several logically related function or data elements are placed in the same component.

时态内聚(temporal):当一个构件用来初始化某个系统或一组变量的。这样的构件顺序执行若干个功能,但是各功能只和涉及的时间相关。

                            Functions are related only by the timing involved.

过程内聚(procedurally):通常,必须按照某个确定的顺序执行一系列功能,构件中的功能组合在一起只是为了确保这个顺序。

                                   Functions are grouped together in a component just to ensure this order.

通信内聚(communicationally):(在过程内聚的基础上)或许,还可以把某些功能关联起 来,因为它们操作或生成是同一个数据集的。

                                          Unrelated data are fetched together because the fetch can be done with only one disk or tape access.

顺序内聚(sequential):一个构件的某部分的输出正好是下一部分的输入。

                              Output from one part of a component is input to the next part.

功能内聚(functional):每一个处理元素对于执行单个功能来说都是必需的,并且在一个构件包含了所有必需的元素。

                                Every processing element is essential to the performance of a single function,and all essential elements are contained in one component.

 

 

第七章  编码

Chapter 7 : Writing the Programs

1.Using a Data Structure to Determine a Program Structure

Recursive: if a data structure is defined by identifying an initial element and then generating successive elements as a function of those previously defined.

Rooted Tree: is a graph composed of nodes and lines so that the following condition hold: 1.Exactly one node of the tree is designed as the root.2.If the lines emanating from the root are erased,the resulting graph is a set of nonintersecting graphs,each of which is a rooted tree.

Windforce提示:Page343的纳税例子及Table7.1老师多次提到(即“嵌套判断变表格”),请仔细看。

2.内部文档(注释)

2.Internal Documentation

①头注释块(Header Comment Block)

Must include:

       Component name

       Component writer

       Component’s fit place

       Written and revised time of component

       Why the Component exists

       How the component use its data structures,algolrithms,and control

Should include(if more detailed information is required):

       name,type,and propose of each major data structure and variable

       brief description of the logic flow,algorithms,and error handling

       expected input and possible output

       aids to testing and how to use them

       expected extensions or revisions

②其他程序注释(Other Program Comments)

③有意义的变量名和声明标示(Meaningful Variable Names and Statement Labels)

④增进理解的格式(Formatting to Enhance Understanding)

⑤记录数据(Documenting Data)

3.External Documentation

Describing the Problem

Describing the Algorithms

Describing the Data

 

4.The Programming Process

Programming as Problem-Solving

1.         Understanding the Problem

2.         Devising a plan

3.         Carrying out the plan

4.         Looking back

Extreme Programming

1.         Define the features that the programmers will implement,using stories to describe the way the system will work

2.         Describe detailed tests that they will run when the software is ready,to verify that the stories were implemented properly

3.         Assign priorities to the stories and their tests

Pair Programming

                     One person is the driver or pilot,contolling the computer and actually writing the code.The other person is the navigator,reviewing the driver’s code and providing feedback.

 

第八章      测试程序

Chapter 8 :Testing the Programs

1.测试步骤(顺序)

单元测试(unit testing)--> 集成测试(integration testing)--> 功能测试(function test)--> 验收测试(acceptance test) --> 安装测试(installation test)

2.错误类型(types of Faults)

算法故障(Algorithmic Fault)

计算故障和精度故障(Computation & Precision Fault)     

文档故障(Documentation Fault)  

压力故障/过载故障(Stress or Overload Fault)

能力故障/边界故障(Capacity or boundary Fault)      

计时故障/协调故障(Timing or Coordination Fault)   

吞吐量故障/性能故障(Throughput or Performance Fault)

可修复故障(Recovery Fault)

硬件和系统故障(Hardware & System Fault)            

标准和过程故障(Standards & Procedure Fault)

3.白盒测试(White Box)

白盒测试(White Box):一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

 

白盒的测试需要做到:

       ·保证一个模块中的所有独立路径至少 被使用一次

·对所有逻辑值均需测试 true 和 false

·在上下边界及可操作范围内运行所有循环 

·检查内部数据结构以确保其有效性

              白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。   

白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。   

白盒测试的实施步骤: 1.测试计划阶段:根据需求说明书,制定测试进度。 2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。 3.测试执行阶段:输入测试用例,得到测试结果。 4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

语句覆盖: 语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。

判定覆盖(分支覆盖): 它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。

条件覆盖: 要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。  

判定条件覆盖: 设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

组合覆盖: 要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

路径覆盖: 设计足够的测试用例,覆盖程序中所有可能的路径。

 

   

4.单元测试(Unit Testing)

单元测试又称模块测试,是针对软件设计的最小单位 ─ 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。
单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元测试的内容
• 在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。 

边界测试(Boundary Testing)
•注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。
•如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。
 
2. 单元测试的步骤

First.Examine code by reading through it,try to spot algorithm,data,and syntax faults.

Next.Compile the code and eliminate any remaining syntax faults

Finally.Develop test cases to show if the input is properly converted to the desired output.
•模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。
–驱动模块 (driver)
–桩模块 (stub) ── 存根模块   
•如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。
•对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试

 

5.集成测试(Integration Testing)

A)自底向上集成(Bottom-Up Integration)

最底层先测试,接着测试那些调用了前面测试过的构件的构件,如此一直到所有的构件都测试完毕。

Each component at the lowest of the system hierarchy is tested individually first.Then, the next component to be tested are those that call the previously tested ones.

Component Driver: is a routine that calls a particular component and passes a test case to it.

B)自顶向下集成(Top-Down Integration)

基本和自底向上相反,有一点注意:在调用没测试过的构件时,我们要写一个桩(stub)用于模拟缺少构件时的活动。

This method is the reverse of button-up in many ways.usually one controlling component is tested by itself.Then, all components called by the tested component(s) are combined and tested as a larger unit.

C)Big-Bang Integration,Windforce总结:since it has many disadvantages,it is not recommended for any system,so I don’t want to waste pages here.I guess it won’t appear on our exam paper ^_^

              D)三明治集成(Sandwich Integration)

                     The system is viewed as three layers:

the target layer is in the middle

the levels above the target

       use top-down integration

the levels below the target.

       Use button-up integration

                    

 

第九章  系统测试

Chapter 9 : Testing the System

1.因果图(Cause-and-Effect Graphs Page432)

A Boolean graph reflecting relationships of inputs & outputs/transformations

2.性能测试的种类(Types of Performance Tests)

强度测试(Stress Test)   

       Evaluate the system when stressed to its limits over a short period of time.

容量测试(Volume Test)

       Address the handling of large amounts of data in the system.

配置测试(Configuration test)      

       Analyze the various software and hardware configurations specified in the requirements

兼容性测试(Compatibility Test)

       Find out whether the interface functions perform according to the requirements.

回归测试(Regression Test)   

       Guarantee that the new system’s performance is at least as good as that of the Old

安全性测试(Security Test)

       Ensure that the security requirements are met.

计时测试(Timing Test) 

       Evaluate the requirements dealing with time to respond to a user and time to perform a function.

环境测试(Environment Test)

       Look at the system’s ability to perform at the installation site,

质量测试(Quality Test) 

       Evaluate the system’s reliability,maintainability and availability.

恢复测试(Recovery Test)     

       Address response to the presence of faults or to the loss of data,power,devices, or services.

维护测试(Maintenance Test)

       Address the need for diagnostic tools and procedures to help in finding the source of problems.

文档测试(Documentation Test)    

       Ensure that we have written the required documents

人为因素测试(Human Factors Test)

       Investigate requirements dealing with the user interface to the system.

3.可靠性,可用性与可维护性

3.Reliability,Availability,& Maintainability

可靠性:一个系统在给定条件下,给定时间间隔内无失效运作的概率

              The probability that a system will operate without failure under given conditions for given time interval.

可用性:一个系统在给定时间点上根据规格说明正确工作的可能性

              The probability that a system is operating successfully according to specification at a given point in time.

可维护性:在给定使用条件下,在指定时间间隔内,使用指定的过程和资源来完成                       维护的可能性

              The probability that,for a given condition of use,a maintenance activity can be carried out within a stated time interval and using stated procedures and resources.

如何度量(Measuring)?

平均失效等待时间(MTTF)

平均修复时间(MTTR)

平均失效间隔时间(MTBF)

可靠性度量 R = MTTR / (MTTR + 1)

可用性度量 A = MTBF / (MTBF + 1)

可维护性度量 M = 1 / (MTTR + 1)

4.验收性测试的种类

①     基准测试(Benchmark Test)

The customer prepares a set of test cases that represent typical conditions under which the system will operate when actually installed.          

②     实验性测试(Pilot Test)  

Installs the system on an experimental basis

③     并行测试(Parallel Test)

The new system operates in parallel with the previous version.

 

Chapter 11 : Maintaining the System

       1.Types of Systems

S-system: which is formally defined by and are derivable from a specification

P-system: describe the problem in an abstract way and then write the system’s requirement from our abstract view.

E-system: is embedded in the real world and change as the world does.

 

2.Types of Maintenance

Corrective Maintenance: to control the day-to-day system functions.

Adaptive Maintenance: is the implementation of these secondary changes

Performance Maintenance: Examine documents,design code,and test, looking for opportunities for improvement.Make changes to improve some aspect of the system,even when the changes are not suggested by faults.

Preventive Maintenance: changes some aspect of the system to prevent failures.

 

3.计算程序复杂度

计算方法:
节点是程序中代码的最小单元,边代表节点间的程序流。如果一个模块流程图有e条边n个节点,它的圈复杂度V(G)=e-n+2,典型的V(G)max=10

Windforce提示:详见Page521



阅读28709次 评论6条 个人主页 扔小纸条 文件夹: Elles
收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论


  • 女孩—爬阳台
    2008-01-06 22:48:13 匿名 222.90.*.*

    :-)辛苦了。。。


  • FnGs
    2008-01-08 16:04:50 匿名 124.114.*.*

    太强大了


  • 2008-01-08 18:24:48 匿名 124.114.*.*

    十分感谢……

  • 2008-01-09 21:37:55 http://eonjolily.ycool.com/


  • nanu
    2008-01-12 12:08:23 匿名 125.77.*.*

    再膜拜一次!
    强啊!
    不过,我都看不懂

  • 盏
    2008-01-25 10:37:09 http://babyhai.ycool.com/

    我也看不懂,我的计算机是白学了.

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定