《高级软件工程》学习资料(英文版)metrics2

Software Requirements metrics Fairly primitive and predictive power limited Function Points Count number of inputs and output, user interactions, external interfaces files used Assess each for complexity and multiply by a weighting factor Used to predict size or cost and to assess project productivity Number of requirements errors found (to assess quality) Change request frequency To assess stability of requirements Frequency should decrease over time. If not, requirements analysis may not have been done properly
Software Requirements Metrics Fairly primitive and predictive power limited. Function Points Count number of inputs and output, user interactions, external interfaces, files used. Assess each for complexity and multiply by a weighting factor. Used to predict size or cost and to assess project productivity. Number of requirements errors found (to assess quality) Change request frequency To assess stability of requirements. Frequency should decrease over time. If not, requirements analysis may not have been done properly. �

rogrammer Productivity Metrics Because software intangible, not possible to measure directly If poor quality software produced quickly, may appear to be more productive than if produce reliable and easy to maintain software (measure only over software development phase More does not always mean better May ultimately involve increased system maintenance costs Common measures Lines of source code written per programmer month object instructions produced per programmer month Pages of documentation written per programmer month Test cases written and executed per programmer month
Programmer Productivity Metrics Because software intangible, not possible to measure directly. If poor quality software produced quickly, may appear to be more productive than if produce reliable and easy to maintain software (measure only over software development phase). More does not always mean better. May ultimately involve increased system maintenance costs. Common measures: Lines of source code written per programmer month. Object instructions produced per programmer month. Pages of documentation written per programmer month. Test cases written and executed per programmer month. �

rogrammer Productivity Metrics(2 Take total number of source code lines delivered and divide by total time required to complete project What is a source line of code?(declarations? comments? macros? How treat source lines containing more than a single statement? More productive when use assembly language?( the more expressive the language, the lower the apparent productivity) All tasks subsumed under coding task although coding time represents small part of time needed to complete a project Use number of object instructions generated More objective Difficult to estimate until code actually produced Amount of object code generated dependent on high-level language programming style
Programmer Productivity Metrics (2) Take total number of source code lines delivered and divide by total time required to complete project. What is a source line of code? (declarations? comments? macros?) How treat source lines containing more than a single statement? More productive when use assembly language? (the more expressive the language, the lower the apparent productivity) All tasks subsumed under coding task although coding time represents small part of time needed to complete a project. Use number of object instructions generated. More objective. Difficult to estimate until code actually produced. Amount of object code generated dependent on high-level language programming style. �

Programmer productivity Metrics (3 Using pages of documentation penalizes writers who take time to express themselves clearly and concisely So difficult to give average figure For large, embedded system may be as low as 30 lines/programmer-month Simple business systems may be 600 lines Studies show great variability in individual productivity. Best are twenty times more productive than worst
Programmer Productivity Metrics (3) Using pages of documentation penalizes writers who take time to express themselves clearly and concisely. So difficult to give average figure. For large, embedded system may be as low as 30 lines/programmer-month. Simple business systems may be 600 lines. Studies show great variability in individual productivity. Best are twenty times more productive than worst. �

Software design Metrics · Number of parameters Tries to capture coupling between modules Understanding modules with large number of parameters will require more time and effort (assumption) Modifying modules with large number of parameters likely to have side effects on other modules Number of modules Number of modules called (estimating complexity of maintenance) Fan-in: number of modules that call a particular module Fan-out: how many other modules it calls High fan-in means many modules depend on this module High fan-out means module depends on many other modules Makes understanding harder and maintenance more time-consuming
Software Design Metrics Number of parameters Tries to capture coupling between modules. Understanding modules with large number of parameters will require more time and effort (assumption). Modifying modules with large number of parameters likely to have side effects on other modules. Number of modules. Number of modules called (estimating complexity of maintenance). Fan-in: number of modules that call a particular module. Fan-out: how many other modules it calls. High fan-in means many modules depend on this module. High fan-out means module depends on many other modules. Makes understanding harder and maintenance more time-consuming. �

Software Design Metrics(2 · Data bindings Triplet (p, x, g) where p and g are modules and x is variable within scope of both p and q Potential data binding X declared in both but does not check to see if accessed Reflects possibility that p and q might communicate through the shared variable Used data binding A potential data binding where p and q use X Harder to compute than potential data binding and requires more information about internal logic of module Actual data binding Used data binding where p assigns value to x and g references it Hardest to compute but indicates information flow from p to g
Software Design Metrics (2) Data Bindings Triplet (p,x,q) where p and q are modules and X is variable within scope of both p and q Potential data binding: - X declared in both, but does not check to see if accessed. Reflects possibility that p and q might communicate through the shared variable. - Used data binding: - A potential data binding where p and q use X. Harder to compute than potential data binding and requires more information about internal logic of module. - Actual data binding: Used data binding where p assigns value to x and q references it. - Hardest to compute but indicates information flow from p to q. - �

Software Design Metrics (3) Cohesion metric Construct flow graph for module Each vertex is an executable statement For each node, record variables referenced in statement Determine how many independent paths of the module go throug the different statements If a module has high cohesion most of variables will be used by statements in most paths Highest cohesion is when all the independent paths use all the variables in the module
Software Design Metrics (3) Cohesion metric Construct flow graph for module. - Each vertex is an executable statement. - For each node, record variables referenced in statement. Determine how many independent paths of the module go through the different statements. If a module has high cohesion, most of variables will be used by statements in most paths. - - Highest cohesion is when all the independent paths use all the variables in the module. �

Management Metrics Techniques for software cost estimation 1. Algorithmic cost modeling Model developed using historical cost information that relates some software metric(usually lines of code)to project cost Estimate made of metric and then model predicts effort required The most scientific approach but not necessarily the most accurate 2. Expert judgement 3. Estimation by analogy useful when other projects in same domain have been completed
Management Metrics Techniques for software cost estimation 1. Algorithmic cost modeling: Model developed using historical cost information that relates some software metric (usually lines of code) to project cost. Estimate made of metric and then model predicts effort required. The most scientific approach but not necessarily the most accurate. 2. Expert judgement 3. Estimation by analogy: useful when other projects in same domain have been completed. �

Management Metrics(2) 4. Parkinson 's Law: Work expands to fill the time available Cost is determined by available resources If software has to be developed in 12 months and you have 5 people available, then effort required is estimated to be 60 person months 5. Pricing to win estimated effort based on customer' s budget 6. Top-down estimation: cost estimate made by considering overall function and how functionality provided by interacting sub-functions Made on basis of logical function rather than the components implementing that function 7. Bottom-up function: cost of each component estimated and then added to produce final cost estimate
Management Metrics (2) 4. Parkinson’s Law: Work expands to fill the time available. Cost is determined by available resources If software has to be developed in 12 months and you have 5 people available, then effort required is estimated to be 60 person months. 5. Pricing to win: estimated effort based on customer’s budget. 6. Top-down estimation: cost estimate made by considering overall function and how functionality provided by interacting sub-functions. Made on basis of logical function rather than the components implementing that function. 7. Bottom-up function: cost of each component estimated and then added to produce final cost estimate. �

Algorithmic Cost Modeling Build model by analyzing the costs and attributes of completed projects Dozens of these around - most well-known is cocomo Assumes software requirements relatively stable and project will be well managed Basic CoCoMO uses estimated size of project(primarily in terms of estimated lines of code) and type of project (organic, semi-detached or embedded Effort =A* KDSI where a and b are constants that vary with type of project More advanced versions add a series of multipliers for other factors product attributes(reliability, database size, complexity) computer attributes(timing and storage constraints, volatility) personnel attributes(experience, capability) project attributes(use of tools, development schedule and allow considering system as made up oT non-nomogeneous subsystems
Algorithmic Cost Modeling Build model by analyzing the costs and attributes of completed projects. Dozens of these around -- most well-known is COCOMO. Assumes software requirements relatively stable and project will be well managed. Basic COCOMO uses estimated size of project (primarily in terms of estimated lines of code) and type of project (organic, semi-detached, or embedded). Effort = A * KDSI b where A and b are constants that vary with type of project. More advanced versions add a series of multipliers for other factors: product attributes (reliability, database size, complexity) computer attributes (timing and storage constraints, volatility) personnel attributes (experience, capability) project attributes (use of tools, development schedule) and allow considering system as made up of non-homogeneous subsystems. ���
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《高级软件工程》学习资料(英文版)cots Reuse.pdf
- 《高级软件工程》学习资料(英文版)oct20.pdf
- 《高级软件工程》学习资料(英文版)reviews.pdf
- 《高级软件工程》学习资料(英文版)sept29.pdf
- 《高级软件工程》学习资料(英文版)oct6.pdf
- 《高级软件工程》学习资料(英文版)oct13.pdf
- 《高级软件工程》学习资料(英文版)sept222.pdf
- 《高级软件工程》学习资料(英文版)sept221.pdf
- 《高级软件工程》学习资料(英文版)sept14.pdf
- 《高级软件工程》学习资料(英文版)What about software.pdf
- 《高级软件工程》学习资料(英文版)Is there a problem.pdf
- 《数据库原理》SS2K3AccessMeth.ppt
- 《数据库原理》第10章 数据库管理.doc
- 《数据库原理》第9章 数据库设计.doc
- 《数据库原理》第8章 数据依赖和关系模式规范化.doc
- 《数据库原理》第7章 数据库安全及完整性约束.doc
- 《数据库原理》第6章 事务管理.doc
- 《数据库原理》第5章 查询处理与优化.doc
- 《数据库原理》第4章 数据库管理系统引论.doc
- 《数据库原理》第4章(图4).doc
- 《高级软件工程》学习资料(英文版)metrics1.pdf
- 《高级软件工程》学习资料(英文版)Can programming language influence correctness?.pdf
- 《高级软件工程》学习资料(英文版)A Model of Team development.pdf
- 《高级软件工程》学习资料(英文版)types of Characteristics.pdf
- 《高级软件工程》学习资料(英文版)Programming Languages.pdf
- 《高级软件工程》学习资料(英文版)Software System Safety.pdf
- 《Microsoft Project 2002 教学手册》讲义.pdf
- 《计算机软件技术基础》ppt电子课件.ppt
- 陕西国防学院:《电子商务概论》序言.pps
- 陕西国防学院:《电子商务概论》第二章 网络技术基础.pps
- 陕西国防学院:《电子商务概论》第五章 物流管理.pps
- 陕西国防学院:《电子商务概论》第三章 电子商务的应用框架与交易模式.pps
- 陕西国防学院:《电子商务概论》第一章 电子商务概述.pps
- 陕西国防学院:《电子商务概论》第七章 电子商务在其他领域的应用.pps
- 陕西国防学院:《电子商务概论》第四章 电子商务支付系统.pps
- 陕西国防学院:《电子商务概论》第八章 电子商务的法律规范.pps
- 陕西国防学院:《电子商务概论》第九章 电子商务安全.pps
- 陕西国防学院:《电子商务概论》第六章 网络营销.pps
- 陕西国防学院:《电子商务概论》第十章 电子商务系统的建设.pps
- 哈尔滨工业大学:《网络应用开发》英文版 NAD-chapter1.pdf