软件工程课件(翻译外国教材)
软件工程(9v)(30+10)双语 讲义 大纲模式

《软件工程(双语)》1.1参考教材:《Software engineering》9th Edition Ian Sommervile,Pearson Education, 机械工业出版社,20111.2参考书目:1、Software Engineering Theory and Practice(Second Edition影印版), Shari Lawrence Pfleeger,Pearson Education, 20012、《软件工程》第四版张海藩清华大学出版社,20073、软件工程,王忠群主编中国科学技术大学出版社 2009-11-14、Software engineering : a practitioner's approach / Roger S. Pressman. 6th ed. Pressman, Roger S. China Machine Press, 20081.3说明:斜体部分是可选讲授内容, 带星号的习题为可选。
1.4课程地位1.5双语背景1.6教材特点1.7联系方式Chapter 1(1) Introduction●Getting started with software engineering1.1Topics coveredA.1Professional software developmentWhat is meant by software engineeringA.2Software engineering ethicsA brief introduction to ethical issues that affect software engineering.1.2Importance of Software engineering●The economies of ALL developed nations are dependent on software.●More and more systems are software controlled●Expenditure on software represents a significant fraction of GNP (gross National product) inall developed countries.( GNP与GDP的关系是:GNP等于GDP加上本国投在国外的资本和劳务的收入再减去外国投在本国的资本和劳务的收入。
软件工程专业英文介绍PPT

methods and tools for professional software development. Expenditure on software represents a significant fraction of GNP in all developed countries.
An Introduction to Software Engineering
©Ian Sommerville 2006
Software Engineering, 8th edition. Chapter 1
Slide 1
Objectives
To introduce software engineering and to explain le 2006
Software Engineering, 8th edition. Chapter 1
Slide 5
FAQs about software engineering
What is software? What is software engineering? What is the difference between software
©Ian Sommerville 2006
Software Engineering, 8th edition. Chapter 1
Slide 3
Software engineering
The economies of ALL developed nations are dependent on software.
软件工程(外文翻译文献)

外文文献资料1、Software EngineeringSoftware is the sequences of instructions in one or more programming languages that comprise a computer application to automate some business function. Engineering is the use of tools and techniques in problem solving. Putting the two words together, software engineering is the systemtic application of tools and techniques in the development of computer-based applications.The software engineering process describes the steps it takes to deelop the system. We begin a development project with the notion that there is a problem to be solved via automation. The process is how you get from problem recognition to a working solution. A quality process is desirable because it is more likely to lead to a quality product. The process followed by a project team during the development life cycle of an application should be orderly, goal-oriented, enjoyable, and a learning experience.Object-oriented methodology is an approach to system lifecycle development that takes a top-down view of data objects, their allowable actions, and the underlying communication requirement to define a system architecture. The data and action components are encapsulated, that is , they are combined together, to form abstract data types Encapsulation means that if I know what data I want ,I also know the allowable processes against that data. Data are designed as lattice hierarchies of relationships to ensure that top-down, hierarchic inheritance and side ways relationships are accommodated. Encapsulated objects are constrained only to communicate via messages. At a minimum, messages indicate the receiver and action requested. Messages may be more elaborate, including the sender and data to be acted upon.That we try to apply engineering discipline to software development does not mean that we have all the answers about how to build applications. On the contrary, we still build systems that are not useful and thus are not used. Part of the reason for continuing problems in application development, is that we are constantly trying to hita moving target. Both the technology and the type of applications needed by businesses are constantly changing and becoming more complex. Our ability to develop and disseminate knowledge about how to successfully build systems for new technologies and new application types seriously lags behind technological and business changes.Another reason for continuing problems in application development is that we aren’t always free to do what we like and it is hard to change habits and cultures from the old way of doing things, as well as get users to agree with a new sequence of events or an unfamiliar format for documentation.You might ask then, if many organizations don’t use good software engineering practices, why should I bother learning them? There are two good answers to this question. First, if you never know the right thing to do, you have no chance of ever using it. Second, organizations will frequently accept evolutionary, small steps of change instead of revolutionary, massive change. You can learn individual techniques that can be applied without complete devotion to one way of developing systems. In this way, software engineering can speed changee in their organizations by demonstrating how the tools and techniques enhance th quality of both the product and the process of building a system.2、Data Base System1、IntroductionThe development of corporate databases will be one of the most important data-processing activities for the rest of the 1970s. Date will be increasingly regarded as a vital corporate resource, which must be organized so as to maximize their value. In addition to the databases within an organization, a vast new demand is growing for database services, which will collect, organize, and sell data.The files of data which computers can use are growing at a staggering rate. The growth rate in the size of computer storage is greater than the growth in the size or power of any other component in the exploding data processing industry. The more data the computers have access to, the greater is their potential power. In all walks of life and in all areas of industry, data banks will change the areas of what it is possiblefor man to do. In the end of this century, historians will look back to the coming of computer data banks and their associated facilities as a step which changed the nature of the evolution of society, perhaps eventually having a greater effect on the human condition than even the invention of the printing press.Some most impressive corporate growth stories of the generation are largely attributable to the explosive growth in the need of information.The vast majority of this information is not yet computerized. However, the cost of data storage hardware is dropping more rapidly than other costs in data processing. It will become cheaper to store data on computer files than to store them on paper. Not only printed information will be stored. The computer industry is improving its capability to store line drawing, data in facsimile form, photo-graphs, human speech, etc. In fact, any form of information other than the most intimate communications between humans can be transmitted and stored digitally.There are two main technology developments likely to become available in the near future. First, there are electromagnetic devices that will hold much more data than disks but have much longer access time. Second, there are solid-state technologies that will give microsecond access time but capacities are smaller than disks.Disks themselves may be increased in capacity somewhat. For the longer term future there are a number of new technologies which are currently working in research labs which may replace disks and may provide very large microsecond-access-time devices. A steady stream of new storage devices is thus likely to reach the marketplace over the next 5 years, rapidly lowering the cost of storing data.Given the available technologies, it is likely that on-line data bases will use two or three levels of storage. One solid-state with microsecond access time, one electromagnetic with access time of a fraction of a second. If two ,three ,or four levels of storage are used, physical storage organization will become more complex ,probably with paging mechanisms to move data between the levels; solid-state storage offers the possibility of parallel search operation and associativememory.Both the quantity of data stored and the complexity of their organization are going up by leaps and bounds. The first trillion bit on-line stores are now in use . in a few year’s time ,stores of this size may be common.A particularly important consideration in data base design is to store the data so that the can be used for a wide variety of applications and so that the way they can be changed quickly and easily. On computer installation prior to the data base era it has been remarkably difficult to change the way data are used. Different programmers view the data in different ways and constantly want to modify them as new needs arise modification , however ,can set off a chain reaction of changes to existing programs and hence can be exceedingly expensive to accomplish .Consequently , data processing has tended to become frozen into its old data structures .To achieve flexibility of data usage that is essential in most commercial situations . Two aspects of data base design are important. First, it should be possible to interrogate and search the data base without the lengthy operation of writing programs in conventional programming languages. Second ,the data should be independent of the programs which use them so that they can be added to or restructured without the programs being changed .The work of designing a data base is becoming increasing difficult , especially if it is to perform in an optimal fashion . There are many different ways in which data can be structured ,and they have different types of data need to be organized in different ways. Different data have different characteristics , which ought to effect the data organization ,and different users have fundamentally different requirements. So we need a kind of data base management system(DBMS)to manage data.Data base design using the entity-relationship model begins with a list of the entity types involved and the relationships among them. The philosophy of assuming that the designer knows what the entity types are at the outset is significantly different from the philosophy behind the normalization-based approach.The entity-relationship(E-R)approach uses entity-relationship diagrams. The E-Rapproach requires several steps to produre a structure that is acceptable by the particular DBMS. These steps are:(1) Data analysis(2) Producing and optimizing the entity model.(3) Logical schema development(4) Physical data base design process.Developing a data base structure from user requirements is called data bases design. Most practitioners agree that there are two separate phases to the data base design process. The design of a logical database structure that is processable by the data base management system(DBMS)d escribes the user’s view of data, and is the selection of a physical structure such as the indexed sequential or direct access method of the intended DBMS.Current data base design technology shows many residual effects of its outgrowth from single-record file design methods. File design is primarily application program dependent since the data has been defined and structured in terms of individual applications to use them. The advent of DBMS revised the emphasis in data and program design approaches.There are many interlocking questions in the design of data-base systems and many types of technique that one can use is answer to the question so many; in fact, that one often sees valuable approaches being overlooked in the design and vital questions not being asked.There will soon be new storage devices, new software techniques, and new types of data bases. The details will change, but most of the principles will remain. Therefore, the reader should concentrate on the principles.2、Data base systemThe conception used for describing files and data bases has varied substantially in the same organization.A data base may be defined as a collection of interrelated data stored together with as little redundancy as possible to serve on or more applications in an optimal fashion; the data are stored so that they are independent of programs which use thedata; a common and controlled approach is used in adding new data and in modifying and retrieving existing data within the data base. One system is said to contain a collection of data bases if they are entirely separate in structure.A data base may be designed for batch processing, real-time processing, or in-line processing. A data base system involve application program, DBMS, and data base.One of the most important characteristics of most data bases is that they will constantly need to change and grow. Easy restructuring of the data base must be possible as new data types and new applications are added. The restructuring should be possible without having to rewrite the application program and in general should cause as little upheaval as possible. The ease with which a data base can be changed will have a major effect on the rate at which data-processing application can be developed in a corporation.The term data independence is often quoted as being one of the main attributes of a data base. It implies that the data and the application programs which use them are independent so that either may be changed without changing the other. When a single set of data items serves a variety of applications, different application programs perceive different relationships between the data items. To a large extent, data-base organization is concerned with the representation of relationship between data items and records as well as how and where the data are stored. A data base used for many applications can have multiple interconnections between the data item about which we may wish to record. It can describes the real world. The data item represents an attribute, and the attribute must be associated with the relevant entity. We design values to the attributes, one attribute has a special significance in that it identifies the entity.An attribute or set of attribute which the computer uses to identify a record or tuple is referred to as a key. The primary key is defined as that key used to uniquely identify one record or tuple. The primary key is of great importance because it is used by the computer in locating the record or tuple by means of an index or addressing algorithm.If the function of a data base were merely to store data, its organization would be simple. Most of the complexities arise from the fact that is must also show the relationships between the various items of data that are stored. It is different to describe the data in logical or physical.The logical data base description is referred to as a schema .A schema is a chart of the types of data that one used. It gives the names of the entities and attributes, and specifics the relations between them. It is a framework into which the values of the data-items can be fitted.We must distinguish between a record type and a instance of the record. When we talk about a “personnel record”,this is really a record type.There are no data values associated with it.The term schema is used to mean an overall chart of all of the dataitem types and record types stored in a data he uses. Many different subschema can be derived from one schema.The schema and the subschema are both used by the data-base management system, the primary function of which is to serve the application programs by executing their data operations.A DBMS will usually be handing multiple data calls concurrently. It must organize its system buffers so that different data operations can be in process together. It provides a data definition language to specify the conceptual schema and most likely, some of the details regarding the implementation of the conceptual schema by the physical schema. The data definition language is a high-level language, enabling one to describe the conceptual schema in terms of a “data model” .The choice of a data model is a difficult one, since it must be rich enough in structure to describe significant aspects of the real world, yet it must be possible to determine fairly automatically an efficient implementation of the conceptual schema by a physical schema. It should be emphasized that while a DBMS might be used to build small data bases, many data bases involve millions of bytes, and an inefficient implementation can be disastrous.We will discuss the data model in the following.3、Three Data ModelsLogical schemas are defined as data models with the underlying structure of particular database management systems superimposed on them. At the present time, there are three main underlying structures for database management systems. These are :RelationalHierarchicalNetworkThe hierarchical and network structures have been used for DBMS since the 1960s. The relational structure was introduced in the early 1970s.In the relational model, the entities and their relationships are represented by two-dimensional tables. Every table represents an entity and is made up of rows and columns. Relationships between entities are represented by common columns containing identical values from a domain or range of possible values.The last user is presented with a simple data model. His and her request are formulated in terms of the information content and do not reflect any complexities due to system-oriented aspects. A relational data model is what the user sees, but it is not necessarily what will be implemented physically.The relational data model removes the details of storage structure and access strategy from the user interface. The model provides a relatively higher degree of data. To be able to make use of this property of the relational data model however, the design of the relations must be complete and accurate.Although some DBMS based on the relational data model are commercially available today, it is difficult to provide a complete set of operational capabilities with required efficiency on a large scale. It appears today that technological improvements in providing faster and more reliable hardware may answer the question positively.The hierarchical data model is based on a tree-like structure made up of nodes and branches. A node is a collection of data attributes describing the entity at that point.The highest node of the hierarchical tree structure is called a root. The nodes at succeeding lower levels are called children .A hierarchical data model always starts with a root node. Every node consists of one or more attributes describing the entity at that node. Dependent nodes can follow the succeeding levels. The node in the preceding level becomes the parent node of the new dependent nodes. A parent node can have one child node as a dependent or many children nodes. The major advantage of the hierarchical data model is the existence of proven database management systems that use the hierarchical data model as the basic structure. There is a reduction of data dependency but any child node is accessible only through its parent node, the many-to –many relationship can be implemented only in a clumsy way. This often results in a redundancy in stored data.The network data model interconnects the entities of an enterprise into a network. In the network data model a data base consists of a number of areas. An area contains records. In turn, a record may consist of fields. A set which is a grouping of records, may reside in an area or span a number of areas. A set type is based on the owner record type and the member record type. The many-to many relation-ship, which occurs quite frequently in real life can be implemented easily. The network data model is very complex, the application programmer must be familiar with the logical structure of the data base.4、Logical Design and Physical DesignLogical design of databases is mainly concerned with superimposing the constructs of the data base management system on the logical data model. There are three mainly models: hierarchical, relational, network we have mentioned above.The physical model is a framework of the database to be stored on physical devices. The model must be constructed with every regard given to the performance of the resulting database. One should carry out an analysis of the physical model with average frequencies of occurrences of the grou pings of the data elements, with expected space estimates, and with respect to time estimates for retrieving and maintaining the data.The database designer may find it necessary to have multiple entry points into a database, or to access a particular segment type with more than one key. To provide this type of access; it may be necessary to invert the segment on the keys. Thephysical designer must have expertise in knowledge of the DBMS functions and understanding of the characteristics of direct access devices and knowledge of the applications.Many data bases have links between one record and another, called pointers. A pointer is a field in one record which indicates where a second record is located on the storage devices.Records that exist on storage devices is a given physical sequence. This sequencing may be employed for some purpose. The most common pupose is that records are needed in a given sequence by certain data-processing operations and so they are stored in that sequences.Different applications may need records in different sequences.The most common method of ordering records is to have them in sequence by a key —that key which is most commonly used for addressing them. An index is required to find any record without a lengthy search of the file.If the data records are laid out sequentially by key, the index for that key can be much smaller than they are nonsequential.Hashing has been used for addressing random-access storages since they first came into existence in the mid-1950s. But nobody had the temerity to use the word hashing until 1968.Many systems analysis has avoided the use of hashing in the suspicion that it is complicated. In fact, it is simple to use and has two important advantages over indexing. First, it finds most records with only one seek and second, insertion and deletions can be handled without added complexity. Indexing, however, can be used with a file which is sequential by prime key and this is an overriding advantage, for some batch-pro-cessing applications.Many data-base systems use chains to interconnect records also. A chain refers to a group of records scatters within the files and interconnected by a sequence of pointers. The software that is used to retrive the chained records will make them appear to the application programmer as a contiguous logical file.The primary disadvantage of chained records is that many read operations areneeded in order to follow lengthy chains. Sometimes this does not matter because the records have to be read anyway. In most search operations, however, the chains have to be followed through records which would not otherwise to read. In some file organizations the chains can be contained within blocked physical records so that excessive reads do not occur.Rings have been used in many file organizations. They are used to eliminate redundancy. When a ring or a chain is entered at a point some distance from its head, it may be desirable to obtain the information at the head quickly without stepping through all the intervening links.5、Data Description LanguagesIt is necessary for both the programmers and the data administrator to be able to describe their data precisely; they do so by means of data description languages. A data description language is the means of declaring to data-base management system what data structures will be used.A data description languages giving a logical data description should perform the folloeing functions:It should give a unique name to each data-item type, file type, data base and other data subdivision.It should identify the types of data subdivision such as data item segment , record and base file.It may define the type of encoding the program uses in the data items (binary , character ,bit string , etc.)It may define the length of the data items and the range of the values that a data item can assume .It may specify the sequence of records in a file or the sequence of groups of record in the data base .It may specify means of checking for errors in the data .It may specify privacy locks for preventing unauthorized reading or modification of the data .These may operate at the data-item ,segment ,record, file or data-base level and if necessary may be extended to the contents(value) of individual data items .The authorization may , on the other hand, be separate defined .It is more subject to change than the data structures, and changes in authorization proceduresshould not force changes in application programs.A logical data description should not specify addressing ,indexing ,or searching techniques or specify the placement of data on the storage units ,because these topics are in the domain of physical ,not logical organization .It may give an indication of how the data will be used or of searching requirement .So that the physical technique can be selected optimally but such indications should not be logically limiting.Most DBMS have their own languages for defining the schemas that are used . In most cases these data description languages are different to other programmer language, because other programmer do not have the capability to define to variety of relationship that may exit in the schemas.附录 B 外文译文1、软件工程软件是指令的序列,该指令序列由一种或者多种程序语言编写,它能使计算机应用于某些事物的运用自动化。
软件工程(中英对照课件精品)第九章

Techniques used in system testing系统测试使用的技术
Build or spin plan for gradual testing构建或螺 旋化渐进测试计划 Configuration management配置管理
versions and releases版本和发布 production system vs. development system产 品系统与开发系统 deltas, separate files and conditional compilation差别文件、单独文件和条件编译 change control变动控制
Separate the requirement into five ―cause‖这些需求分成5 种“原因” 1. 函数名为 “LEVEL‖ 2. 参数体“(A, B)‖ 3. 函数值= LOW 4. 函数值= SAFE 5. 函数值= HIGH Three ―effects‖三种“结果” 1. 显示 “LEVEL = SAFE‖ 2. 显示 “LEVEL = HIGH‖ 3. 显示 “INVALID SYNTAX‖ 为函数体的语法检查增加两个中间节点 1. The command is syntactically valid命令是合法的 2. The operands are syntactically valid操作数是合法的
Function testing功能测试: does the integrated system perform as promised by the requirements specification系统能按需求规格说 明的要求运行吗? Performance testing性能测试: are the nonfunctional requirements met是需求说明中的非 功能需求? Acceptance testing验收测试: is the system what the customer expects是客户所希望的系 统? Installation testing安装测试: does the system run at the customer site(s)系统能运行在客户的 环境吗?
《软件工程》(全)PPT课件

Born in 1968, Because of Software Crisis (high costs, slow delivery, low quality)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1
What is software engineering? (什么是软件工程)
Software engineering is an engineering discipline which is concerned with all aspects of software production(涉及软件所有方面的工程原则)
Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software
Computer science theories are currently insufficient to act as a complete underpinning for software engineering
计算机科学是基础理论,支撑软件工程
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 8
Bilingual language teaching
双语教学(中英,中俄,中韩) 板书、讲授、作业、考试采用两种语言的混杂,
软件工程英文教程.ppt

only THE class itself can use the features symbol -
Protected
only subclasses of THE class can use the features (attributes and operations)
symbol #
stages of the system design
To transform the requirements captured in the Use Case model
and Activity model on to a design of data structure for the software system
Frame
several sub-rooms
Building
1 1..*
Room
0..*
1..*
no more than one object at a time can have lifetime responsibility for another object
How to identify classes, attributes, operations, relationships?
description of the problem situation
Discard candidate which are inappropriate for the following
reasons
redundant : the same class is given more than one name vague : cannot tell unambiguously what is meant by a noun an event or an operation : where noun refers to something which
CH08 Software Prototyping 软件工程讲义英语版 教学课件

©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 8
Slide 11
Approaches to prototyping
Establish prototype objectives
Prototyping plan
Define prototype functionality
The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood
A working system is available early in the process
The prototype may serve as a basiscation
The system can support user training and system testing
Based on techniques which allow rapid system iterations
Verification is impossible as there is no specification. Validation means demonstrating the adequacy of the system
Develop prototype
Prototyping plan
Outline definition
Executable prototype
软件工程 双语课程 第九章

9.5 ACCEPTANCE TESTING
Purpose and Roles(目标与任务)
The purpose of acceptance testing is to enable the customers and users to determine if the system we built really meets their needs and expectations. Thus, acceptance tests are written, conducted(实施的), and evaluated by the customers, with assistance(协 助) from the developers only when the customer requests an answer to a technical question.
Describe how system testing differs from unit and integration testing. Classify tests as function testing, performance(性能) testing, acceptance testing or installation testing. Understand the purposes and roles of function testing, performance testing, acceptance testing, and installation testing. Define software reliability(可靠性), maintainability and availability(可用性,有效 性). Describe different techniques for measuring reliability, maintainability and availability. List the different types of test documentation and know what items belong in test documentation. Understand the special problems associated(相关的,结合的) with testing safetycritical(临界的,决定性的) systems. Describe the principles(原理) of Cleanroom(净室) and how it differs from conventional(常规的) testing.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3
11
3.5
6
2.7
0 结束 0
3.6 7
• 通信线路的增长是很快的 如果在项目中有n个人,就有n(n-1)/2条通信 线路
• 包括最早和最晚开始日期的信息 • 星号表示关键路径
例子:建立一个通信软件的跟踪进度
建立通信软件
系统计划(1.0)
系统设计(2.0) 顶层设计(2.1) 原型构造(2.2) 用户界面(2.3) 详细设计(2.4)
不同的人 分配不同的任务的巨大优势
3.2项目人员
选择人员
完成工作的能力
对工作的兴趣
经验
类似的应用
类似的工具、语言或技术
类似的发展环境
培训
与人沟通能力
共同承担责任的能力 管理技能
3.2项目人员
工作方式
性格外向的人:告诉他们思想 性格内向的人:征求意见 直觉:基于感觉做决定 理性:基于事实做决定
3.2项目人员
工作方式
• 水平轴:沟通方式 • 垂直轴:决策风格
直觉
直觉 内向: 询问别人知识的感觉 内 向 理性 内向: 询问别人逻辑性的 决定 理性
直觉 外向: 告诉别人知识的感觉 理性 外向: 告诉别人逻辑性的决 定 外 向
3.2项目人员
工作方式
工作方式确定通信方式 了解工作方式 帮助你变灵活 给一些其他优先事项的信息 影响顾客、开发者和用户之间的互动
设备:硬件、办公家具、电话等等 方法和工具:软件、设计软件的工具(计算机辅助 软件工程或者CASE) 人员:开销最大的部分
3.3工作量估算
反复估算
• 项目早期的不确定性影响成本和大小 的估计精度
3.3工作量估算
估算方法的类型
• 专家判断
• 自上而下或自下而上 – 类推: 悲观因素(x), 乐观因素(y), 最可能的猜测 (z); 如(x + 4y + z)/6估算 – Delphi 技术: 基于“机密的”专家判断的平均值 – Wolverton模型: 老的 (mid 70’s)
编码(3.0)
测试(4.0)
交付(5.0)
审查规范(1.1) 审查预算(1.2) 审查进度(1.3) 开发计划(1.4)
• 并行显示活动
-有助于了解哪些活动可以同时执行的
3.2项目人员
关键活动需要的人员
需求分析 系统设计 程序设计
方案实施
测试 培训
维护
质量保证
项目开发可以被划分为一系列步骤组成的 阶段,这些步骤由活动组成
1.1. 测量完毕 1.2. 通过许可 1.3. 挖掘完工 1.4. 原材料到手 2.1. 地基铺设完毕 25. 室外墙板完工 2.6. 室外粉刷完工 2.7. 门及固定装置完成 2.8. 屋顶完工 3.1. 室内管道完工 3.2. 室内电路施工完成 3.3. 室内墙板安装成功 3.4. 室内粉刷完成 3.5. 地板铺设完成 3.6. 门及固定装置安装完成
• 计算方法: E = (a + bSc) m(X)
– Walston模型 和 Felix模型: E = 5.25S – Bailey模型 和 Basili模型: E = 5.5 + 0.73S1.16
0.91
3.3工作量估算
专家判断: Wolverton模型
导致困难的两个因素 问题是老的(O)还是新的(N) 是简单的(E)还是适中的(M)
安装外门 和设施 2.7
3.4 3.6
3.5
安装内门 和设施
3.1 跟踪进度
完成进度评估
在每个活动的活动图中添加估计时间,来告诉我们更多关 于项目的进度 开始
15
1.2
3
1.1
10
1.3
10
1.4
15
2.1
10
8
2.3 2.4 2.5
10
20
2.2
12
3.1
15
3.2
9 9
2.8 0
5
2.6
0
18
3.2项目人员
设计机构
取决于
小组成员的背景和工作方式 小组的人数 客户和开发人员的管理方式
例子:
核心程序员组:一个人对一个系统的设计与开 发的全部责任
无私方法:每个人的责任相等
3.3 工作量估算
项目成本估算是项目计划和管理重要的一个 方面 成本估算在项目生命周期中尽可能早的完成 开销的类型
建造房子的活动图
开始 请求许可 1.2 勘测 1.1 挖掘 1.3 买材料 1.4 打地基 2.1 建造外墙 2.2
安装内部管 道
安装外 部电力 安装外 墙板 粉刷外墙
2.3 2.4 2.5 2.6
安装外部管 道
3.1 3.2
安装内 部电力
安装屋顶
2.8 结束
安装内 墙板 3.3 安装 粉刷 地板 内墙
12. 在特殊请求下开放的获得发展的计算机
13. 访问开发计算机关闭 14. 分类的安全环境的计算机和至少25%的程序和数 据 15. 使用结构化程序设计
难度
软件的类型
控制 输入/输出 前置/后置处理器 算法 数据管理 时序要求严格
OE 21 17 16 15 24 75
OM 27 24 23 20 31 75
OH 30 27 26 22 35 75
NE 33 28 28 25 37 75
NM 40 35 34 30 46 75
NH 49 43 42 35 57 75
3.3工作量估算
计算方法: Watson模型和Felix模型 生产指数包含在等式中 影响生产率的29个因素 提高生产率则为1 降低生产率则为0
3.3工作量估算
Watson模型和Felix模型生产率系数
1. 用户接口复杂度 2. 用户参与的要求定义 3. 程序变化起源于用户 4. 顾客在应用领域的经验 5. 全部人员的经验 6. 程序员开发参与功能规格设计的百分比 7. 运作电脑早先的经验 8. 编程语言早先的经验 9. 与类似大小与复杂性的应用经验 10. 员工的平均大小项目持续时间比 11. 并行硬件开发 16. 设计和代码审查的使用 17. 自上而下开发的使用 18. 主要开发团队的使用 19. 代码的整体复杂度 20. 应用处理的复杂度 21. 程序流程的复杂度 22. 程序开发的总体约束 23. 对程序主存储器约束的设计 24. 项目设计时序约束 25. 在实时或交互操作或严峻时间限制下的代码 26. 代码提交率