Estimating Software Development Effort based on Use Cases

合集下载

软件项目计划英语作文

软件项目计划英语作文

软件项目计划英语作文英文回答:Software project planning is a crucial aspect of software development that involves defining the scope, objectives, and roadmap for a software project. It helps ensure that the project is completed on time, within budget, and meets the client's requirements. Here are some keysteps involved in software project planning:1. Define the project scope: This involves clearly outlining the goals, objectives, functionalities, and deliverables of the software project. It is important to define the scope of the project explicitly to avoid any misunderstandings or changes in requirements later on.2. Estimate project timeline: Once the project scope is defined, the next step is to estimate the time it will take to complete the project. This involves breaking down the project into smaller tasks, estimating the effort requiredfor each task, and creating a project timeline or schedule.3. Resource allocation: This involves determining the resources needed to complete the project, such as personnel, hardware, software, and infrastructure. It is important to ensure that the necessary resources are available when needed to avoid delays.4. Risk assessment: Software projects can be risky, and it is important to identify and assess potential risks that could impact the project's success. This involves analyzing the risks, their potential impact on the project, and developing mitigation strategies to minimize their impact.5. Project communication: A communication plan is essential for any software project to ensure that all stakeholders are on the same page and informed about the project's progress. This plan should define the communication channels, frequency, and responsibilities for communication.6. Project monitoring and control: Once the project isunderway, it is important to monitor its progress and make adjustments as needed. This involves tracking the project's progress against the plan, identifying any deviations, and taking corrective actions to bring the project back on track.Effective software project planning is critical for project success. By following these steps, you can increase the chances of delivering a successful software projectthat meets the client's requirements.中文回答:软件项目计划是软件开发过程中至关重要的一环,涉及对软件项目的范围、目标和路线图的定义。

软件工程的发展历程英语作文

软件工程的发展历程英语作文

软件工程的发展历程英语作文English Answer.The development of software engineering can be broadly divided into six distinct phases:1. The Early Years (1940s-1950s)。

This phase was characterized by the emergence of the first computers and the development of basic programming languages. Software development was largely ad-hoc and unstructured, with little attention paid to software quality or reliability.2. The Mainframe Era (1950s-1960s)。

The introduction of mainframe computers led to a more structured approach to software development. The use of structured programming techniques and the development of operating systems and compilers improved the quality andreliability of software.3. The Minicomputer Era (1960s-1970s)。

The emergence of minicomputers made it possible for more organizations to develop and use their own software. This led to the development of new software development methodologies, such as structured analysis and design, and the adoption of software engineering principles.4. The Microcomputer Revolution (1970s-1980s)。

迭代方案英文

迭代方案英文

Iteration PlanIntroductionThe iteration plan is a document that outlines the approach to be followed in an iterative software development process. This plan provides a roadmap for completing each iteration and achieving the project goals. It ensures that the project team, stakeholders, and clients are on the same page regarding the deliverables, timelines, and resources required for each iteration.Iteration GoalsThe goals of each iteration are defined to ensure that the project progresses in a structured and measurable manner. These goals must align with the overall project objectives and contribute to the successful completion of the final product. The iteration goals may include:1.Develop and test specific features or functionalities.2.Address any outstanding bug fixes or issues from previousiterations.3.Collaborate with stakeholders to gather feedback andvalidate requirements.4.Analyze and evaluate the project’s progress and makenecessary adjustments.5.Continuously refine and improve the project’s quality andperformance.Iteration TimelineThe timeline for each iteration is crucial to ensure that the project stays on track and meets the specified deadlines. The iteration timeline includes the start and end dates for the iteration, as well as milestones and checkpoints to monitor progress. The timeline should be realistic and consider factors such as the complexity of the work, avlable resources, and dependencies on other tasks or teams.Iteration PhasesEach iteration typically follows a series of phases, including planning, development, testing, and review. These phases may overlap with each other, and their durations may vary depending on the project’s scope and complexity. It is essential to have clear guidelines and expectations for each phase to mntn consistency and optimize productivity.Planning PhaseDuring the planning phase, the project team collaborates to define the work to be done in the iteration. This includes:•Identifying the user stories or requirements to be implemented.•Breaking down the user stories into smaller, manageable tasks.•Estimating the effort and resources required for each task.•Assigning tasks to team members and setting deadlines.Development PhaseIn the development phase, the team starts working on the tasks assigned to them. They follow the defined coding standards and best practices to develop the required functionality. The development phase also includes activities like:•Regular code reviews to ensure code quality and adherence to standards.•Continuous integration and automated testing to identify issues early.•Collaborating with other team members on interdependent tasks.•Mntning proper documentation and version control.Testing PhaseThe testing phase is essential for ensuring the quality and reliability of the developed features. It involves various types of testing, such asunit testing, integration testing, regression testing, and acceptance testing. The testing phase includes:•Designing and executing test cases to validate the functionality.•Reporting and tracking defects or issues found during testing.•Collaborating with developers to resolve any reported issues.•Retesting the fixed issues to ensure proper resolution.Review PhaseThe review phase is critical for evaluating the progress and outcomes of the iteration. It involves assessing the completed tasks agnst the defined goals and criteria. The review phase includes: •Demonstrating the developed features to stakeholders or clients.•Gathering feedback on the implemented functionality and its usability.•Assessing the overall quality and meeting the acceptance criteria.•Identifying any necessary refinements or improvements for future iterations.ResourcesThe resources required for each iteration should be identified and allocated accordingly. These resources may include human resources, such as developers, testers, designers, and project managers. Additionally, it may include tangible resources like hardware, software, licenses, and infrastructure. Proper resource allocation is essential to ensure productivity, efficiency, and timely completion of the iteration.Risks and MitigationIdentifying and managing risks is crucial for successfully executing each iteration. Potential risks may include scope creep, inadequate resources, dependencies, technological challenges, and changing requirements. It is essential to have a proactive approach to risk management and define mitigation strategies. This may involve: •Regularly reviewing and assessing potential risks.•Developing contingency plans to address any identified risks.•Collaborating with stakeholders to minimize or mitigate risks.•Monitoring and adjusting the plan as needed to address emerging risks.ConclusionThe iteration plan serves as a roadmap for software development, allowing teams to work in a structured and iterative manner. By defining goals, timelines, phases, resources, and risk strategies, the iteration plan ensures a project’s successful progression. It promotes effective collaboration, enables continuous improvement, and helps deliver high-quality software products on time and within budget.。

软件项目计划英语作文

软件项目计划英语作文

软件项目计划英语作文Title: Software Project Planning。

In today's digital era, software projects play apivotal role in various industries, ranging from finance to healthcare. Efficient planning is the cornerstone of successful software development endeavors. This essay delineates the key aspects of software project planning, elucidating its significance, phases, and best practices.Significance of Software Project Planning。

Software project planning is paramount as it sets the project's trajectory, ensuring alignment withorganizational goals and client requirements. A meticulously crafted plan serves as a roadmap, guiding the development team through various stages while mitigating risks and uncertainties. Moreover, it facilitates resource allocation, budget estimation, and timeline management, thereby enhancing project transparency and stakeholdersatisfaction.Phases of Software Project Planning。

《风险评价技术及方法》3._Hazard_Analysis_Types_and_Techniques

《风险评价技术及方法》3._Hazard_Analysis_Types_and_Techniques

Chapter 3Hazard Analysis Typesand Techniques3.1TYPES AND TECHNIQUESHazard analyses are performed to identify hazards,hazard effects,and hazard causal factors.Hazard analyses are used to determine system risk and thereby ascertain the significance of hazards so that safety design measures can be established to eliminate or mitigate the hazard.Analyses are performed to systematically examine the system,subsystem,facility,components,software,personnel,and their interrelationships.There are two categories of hazard analyses:types and techniques.Hazard analy-sis type defines an analysis category (e.g.,detailed design analysis),and technique defines a unique analysis methodology (e.g.,fault tree analysis).The type estab-lishes analysis timing,depth of detail,and system coverage.The technique refers to a specific and unique analysis methodology that provides specific results.System safety is built upon seven basic types,while there are well over 100different tech-niques available.1In general,there are several different techniques available for achieving each of the various types.The overarching distinctions between type and technique are summarized in Table 3.1.Hazard analysis type describes the scope,coverage,detail,and life-cycle phase timing of the particular hazard analysis.Each type of analysis is intended to provide a time-or phase-dependent analysis that readily identifies hazards for a particular design phase in the system development life cycle.Since more detailed design 1Refer to the System Safety Analysis Handbook published by the System Safety Society.31Hazard Analysis Techniques for System Safety ,by Clifton A.Ericson,IICopyright #2005John Wiley &Sons,Inc.and operation information is available as the development program progresses,so in turn more detailed information is available for a particular type of hazard analysis.The depth of detail for the analysis type increases as the level of design detail progresses.Each of these analysis types define a point in time when the analysis should begin,the level of detail of the analysis,the type of information available,and the analysis output.The goals of each analysis type can be achieved by various analysis techniques.The analyst needs to carefully select the appropriate techniques to achieve the goals of each of the analysis types.There are seven hazard analysis types in the system safety discipline:1.Conceptual design hazard analysis type (CD-HAT)2.Preliminary design hazard analysis type (PD-HAT)3.Detailed design hazard analysis type (DD-HAT)4.System design hazard analysis type (SD-HAT)5.Operations design hazard analysis type (OD-HAT)6.Health design hazard analysis type (HD-HAT)7.Requirements design hazard analysis type (RD-HAT)An important principle about hazard analysis is that one particular hazard analy-sis type does not necessarily identify all the hazards within a system;identification of hazards may take more than one analysis type (hence the seven types).A corollary to this principle is that one particular hazard analysis type does not necessarily identify all of the hazard causal factors;more than one analysis type may be required.After performing all seven of the hazard analysis types,all hazards and causal factors should have been identified;however,additional hazards may be discovered during the test program.Figure 3.1conveys the filter concept behind the seven hazard analysis types.In this concept,each hazard analysis type acts like a filter that identifies certain types of hazards.Each successive filter serves to identify hazards missed by the pre-vious filter.The thick dark arrows at the top of the filter signify hazards existing in the system design.When all of the hazard analysis types have been applied,the onlyTABLE 3.1Hazard Analysis Type vs.TechniqueTypeTechnique .Establishes where,when,and what to analyze..Establishes how to perform the analysis..Establishes a specific analysis task at specific time in program life cycle..Establishes a specific and unique analysis methodology..Establishes what is desired from the analysis..Provides the information to satisfy the intent of the analysis type..Provides a specific design focus.32HAZARD ANALYSIS TYPES AND TECHNIQUESknown hazards remaining have been reduced to an acceptable level of risk,denoted by the smaller thin e of all seven hazards analysis types is critical in iden-tifying and mitigating all hazards and reducing system residual risk.Each hazard analysis type serves a unique function or purpose.For a best practice system safety program (SSP),it is recommended that all seven of these hazard analysis types be applied;however,tailoring is permissible.If tailoring is utilized,the specifics should be spelled out in the system safety management plan (SSMP)and /or the system safety program plan (SSPP).Figure 3.2depicts the relationship between hazard types and techniques.In this relationship,the seven hazard analysis types form the central focus for SSP hazard analysis.There are many different analysis techniques to select from when perform-ing the analysis types,and there are many different factors that must go into the hazard analysis,such as the system life-cycle stages of concept,design,test,manu-facture,operation,and disposal.The system modes,phases,and functions must be considered.The system hardware,software,firmware,human interfaces,and environmental aspects must also be considered.Some textbooks refer to the seven types as preliminary hazard list (PHL),pre-liminary hazard analysis (PHA),subsystem hazard analysis (SSHA),system hazard analysis (SHA),operating and support hazard analysis (O&SHA),health hazard analysis (HHA),and safety requirement /criteria analysis (SRCA).These names are,however,the same names as the basic hazard analysis techniques established by MIL-STD-882,versions A,B,and C.The concept of analysis types is a good concept,but having types and techniques with the same name is somewhat confus-ing.The approach recommended in this book ensures there are no common names between types and techniques,thus avoiding muchconfusion.HAZARDSFigure 3.1Hazard filters.3.1TYPES AND TECHNIQUES 333.2DESCRIPTION OF HAZARD ANALYSIS TYPES 3.2.1Conceptual Design Hazard Analysis Type (CD-HAT)The CD-HAT is a high-level (low level of detail)form of hazard analysis that identifies top-level hazards that can be recognized during the conceptual design phase.The CD-HAT is the first analysis type performed and is the starting point for all subsequent hazard analyses.The CD-HAT provides a basis for initially estimating the overall SSP effort.The purpose of the CD-HAT is to compile a list of hazards very early in the pro-duct or system development life cycle to identify potentially hazardous areas.These hazardous areas identify where management should place design safety emphasis.The CD-HAT searches for hazards that may be inherent in the design or operational concept.It is a brainstorming,“what-if”analysis.A hazard list is generated from the brainstorming session,or sessions,where everything conceivable is considered and documented.The topics include review of safety experience on similar systems,hazard checklists,mishap /incident hazard tracking logs,safety lessons learned,and so forth to identify possible hazards.The key to a successful SSP is involvement early in the development program,beginning during conceptual design.The CD-HAT is started when the concept definition for a product or system begins and carries into the preliminary design phase.It is performed early in the program life cycle in order to influence design con-cepts and decisions for safety as early as possible.The CD-HAT is the first analysis type performed and precedes the PD-HAT since it provides input for the PD-HAT.Preliminary Hazard List (PHL)Preliminary Hazard Analysis (PHA)Safety Requirements/Criteria Analysis (SRCA)Subsystem Hazard Analysis (SSHA)System Hazard Analysis (SHA)Operations & Support Hazard Analysis (O&SHA)Health Hazard Assessment (HHA)Fault Tree Analysis (FTA)Failure Modes and Effects Analysis (FMEA)Fault Hazard Analysis (FaHA)Functional Hazard Analysis (FuHA)Sneak Circuit Analysis (SCA)Software Sneak Circuit Analysis (SWSCA)Petri Net Analysis (PNA)Markov Analysis (MA)Barrier Analysis (BA)Bent Pin Analysis (BPA)Threat Hazard Assessment (THA)Hazard and Operability Study (HAZOP)Cause Consequence Analysis (CCA)Common Cause Failure Analysis (CCFA)Management Oversight and Risk T ree (MORT)Software Hazard Assessment (SWHA) •••Analysis TechniquesAnalysis Types CD-HAT PD-HA T DD-HAT SD-HA T OD-HAT HD-HAT RD-HATFigure 3.2Type–technique relationship.34HAZARD ANALYSIS TYPES AND TECHNIQUES3.2DESCRIPTION OF HAZARD ANALYSIS TYPES35If the CD-HAT is not performed during concept definition,it should be per-formed prior to,and as part of,any PD-HAT effort since it is an essential precursor to the PD-HAT.Once the initial CD-HAT is completed and documented,it is rarely updated as additional hazard identification analysis is achieved via the PD-HAT.In general,the CD-HAT supports the system design review(SDR),and CD-HAT effort ends at the start of the PD-HAT.The following are the basic requirements of a comprehensive CD-HAT:1.Will be applied during the design concept phase of system development.2.Will be a high-level analysis(low level of detail)based on conceptual designinformation.3.Will identify system hazards and potential mishaps.4.Will consider hazards during system test,manufacture,operation,mainten-ance,and disposal.5.Will consider system hardware,software,firmware,human interfaces,andenvironmental aspects.Input information for the CD-HAT analysis type includes everything that is avail-able during conceptual design.Experience has shown that generally the CD-HAT can be performed utilizing the following types of information:1.Design concept2.Statement of work(SOW),specification,drawings(if available)3.Preliminary(conceptual)indentured equipment list4.Preliminary(conceptual)functions list5.Energy sources in the system6.Hazard checklists(generic)7.Lessons learned(similar systems)The primary purpose of the CD-HAT is to generate a list of system-level hazards, which can be used as an initial risk assessment and as the starting point for the sub-sequent hazard analysis types.As such,the following information is typically output from the CD-HAT analysis:1.System hazards2.Top-level mishaps(TLMs)rmation to support the PD-HAT analysis3.2.2Preliminary Design Hazard Analysis Type(PD-HAT)The PD-HAT is a preliminary level form of analysis that does not go into extensive detail;it is preliminary in nature.The PD-HAT is performed to identify system-level hazards and to obtain an initial risk assessment of a system design.It is performed36HAZARD ANALYSIS TYPES AND TECHNIQUESearly,during the preliminary design phase,in order to affect design decisions as early as possible to avoid future costly design changes.The PD-HAT is the basic hazard analysis that establishes the framework for all of the follow-on hazard analyses.It provides a preliminary safety engineering evalu-ation of the design in terms of potential hazards,causal factors,and mishap risk. The intent of the PD-HAT is to recognize the hazardous system states and to begin the process of controlling hazards identified by the CD-HAT.As the design progresses in detail,more detailed analyses are performed to facilitate the elimin-ation or mitigation of all hazards.Identification of safety critical functions(SCFs)and TLMs is a key element of the PD-HAT.The specific definition of what constitutes classification as safety critical (SC)is generally program specific,as different types of systems may warrant differ-ent definitions based on the hazardous nature of the system.The PD-HAT should be started during the design conceptual stage(after the CD-HAT)and continued through preliminary design.If the PD-HAT is not initiated during conceptual design,it should be initiated with the start of preliminary design. It is important that safety considerations identified in the PD-HAT are included in trade studies and design alternatives as early as possible in the design process.Work on the PD-HAT usually concludes when the DD-HAT is initiated.In gen-eral,the PD-HAT supports all preliminary design reviews.The PD-HAT may also be used on an existing operational system for the initial examination of proposed design changes to the system.The following are the basic requirements of a comprehensive PD-HAT:1.Will be applied during the design concept and preliminary design phases ofsystem development.2.Will focus on all system hazards resulting from the preliminary designconcept and component selection.3.Will be a high-to medium-level analysis(low to medium level of detail)thatis based on preliminary design information.4.Will identify hazards,potential mishaps,causal factors,risk,and SCFs.It willidentify applicable safety guidelines,requirements,principles,and precepts to mitigate hazards.It will also provide recommendations to mitigate hazards.5.Will consider hazards during system test,manufacture,operation,mainten-ance,and disposal.6.Will consider system hardware,software,firmware,human interfaces,andenvironmental aspects.Input information for the PD-HAT consists of the preliminary design information that is available during the preliminary design development phase.Typically the following types of information are available and utilized in the PD-HAT:1.Results of the CD-HAT analysis2.SOW3.2DESCRIPTION OF HAZARD ANALYSIS TYPES373.System specification4.Design drawings and sketches5.Preliminary indentured equipment list6.Functionalflow diagrams of activities,functions,and operations7.Concepts for operation,test,manufacturing,storage,repair,and transportation8.Energy sources9.Hazard checklists(generic)10.Lessons learned from experiences of similar previous programs or activities11.Failure modes review12.Safety guidelines and requirements from standards and manualsThe primary purpose of the PD-HAT is to perform a formal analysis for identify-ing system-level hazards and evaluating the associated risk levels.As such,the following information is typically output from the PD-HAT:1.System-level hazards2.Hazard effects and mishaps3.Hazard causal factors(to subsystem identification)4.SCFs5.TLMs6.Safety design criteria,principles,and precepts for design guidance in hazardmitigation7.Risk assessment(before and after design safety features for hazardmitigation)8.Safety recommendations for eliminating or mitigating the hazardsrmation to support DD-HAT,SD-HAT,and OD-HAT analyses3.2.3Detailed Design Hazard Analysis Type(DD-HAT)The DD-HAT is a detailed form of analysis,performed to further evaluate hazards from the PHA with new detailed design information.The DD-HAT also evaluates the functional relationships of components and equipment comprising each sub-system.The analysis will help identify all components and equipment whose performance degradation or functional failure could result in hazardous conditions. Of particular concern is the identification of single-point failures(SPFs).The DD-HAT is also used to identify new hazards that can be recognized from the detailed design information that is available and to identify the hazard causal factors of specific subsystems and their associated risk levels.The DD-HAT is an analysis of the detailed design and can therefore run from the start of detailed design through completion offinal manufacturing drawings.Once the initial DD-HAT is completed and documented,it is not generally updated and enhanced,except for the evaluation of design changes.38HAZARD ANALYSIS TYPES AND TECHNIQUESThe following are the basic requirements of a comprehensive DD-HAT analysis:1.Will be a detailed analysis at the subsystem and component level.2.Will be applied during the detailed design of the system.3.Will identify hazards,resulting mishaps,causal factors,risk,and SCFs.It willalso identify applicable safety recommendations for hazard mitigation.4.Will consider hazards during system test,manufacture,operation,mainten-ance,and disposal.5.Will consider system hardware,software,firmware,human interfaces,andenvironmental aspects.Input information for the DD-HAT analysis consists of all detailed design data. Typically the following types of information are available and utilized in the DD-HAT:1.PD-HAT analysis results2.System description(design and functions)3.Detailed design information(drawings,schematics,etc.)4.Indentured equipment list5.Functional block diagrams6.Hazard checklistsThe primary purpose of the DD-HAT is to evaluate the detailed design for hazards and hazard causal factors and the associated subsystem risk levels.As such,the following information is typical output from the DD-HAT:1.Subsystem hazards2.Detailed causal factors3.Risk assessment4.Safety critical subsystem interfaces5.Safety design recommendations to mitigate hazards6.Special detailed analyses of specific hazards using special analysis techniquessuch as fault tree analysis(FTA)rmation to support the RD-HAT and SD-HAT analyses3.2.4System Design Hazard Analysis Type(SD-HAT)The SD-HAT assesses the total system design safety by evaluating the integrated system design.The primary emphasis of the SD-HAT,inclusive of both hardware and software,is to verify that the product is in compliance with the specified safety requirements at the system level.This includes compliance with acceptable mishap risk levels.The SD-HAT examines the entire system as a whole by integrating the essential outputs from the DD-HAT analyses.Emphasis is placed on the interactions and the interfaces of all the subsystems as they operate together.3.2DESCRIPTION OF HAZARD ANALYSIS TYPES39The SD-HAT provides determination of system risks in terms of hazard severity and hazard probability.System hazards are evaluated to identify all causal factors, including hardware,software,firmware,and human interaction.The causal factors may involve many interrelated fault events from many different subsystems.Thus, the SD-HAT evaluates all the subsystem interfaces and interrelationships for each system hazard.The SD-HAT is system oriented,and therefore it usually begins during prelimi-nary design and is complete by the end offinal design,except for closure of all hazards.The SD-HAT isfinalized at completion of the test program when all hazards have been tested for closure.SD-HAT documentation generally supports safety decisions for commencement of operational evaluations.The SD-HAT should be updated as a result of any system design changes,including software andfirm-ware design changes to ensure that the design change does not adversely affect system mishap risk.The following are the basic requirements of a comprehensive SD-HAT analysis:1.Will be applied primarily during the detailed design phase of system develop-ment;it can be initiated during preliminary design.2.Is a detailed level of analysis that provides focus from an integrated systemviewpoint.3.Will be based on detailed andfinal design information.4.Will identify new hazards associated with the subsystem interfaces.5.Will consider hazards during system test,manufacture,operation,mainten-ance,and disposal.6.Will consider system hardware,software,firmware,human interfaces,andenvironmental aspects.Typically the following types of information are available and utilized in the SD-HAT analysis:1.PD-HAT,DD-HAT,RD-HAT,OD-HAT,and other detailed hazard analyses2.System design requirements3.System description(design and functions)4.Equipment and function indenture lists5.System interface specifications6.Test dataThe primary purpose of the SD-HAT analysis is to perform a formal analysis for identifying system-level hazards and evaluating the associated risk levels.As such, the following information is typically output from the SD-HAT:1.System interface hazards2.System hazard causal factors(hardware,software,firmware,human inter-action,and environmental)40HAZARD ANALYSIS TYPES AND TECHNIQUES3.Assessment of system risk4.Special detailed analyses of specific hazards using special analysis techniquessuch as FTArmation to support the safety assessment report(SAR)3.2.5Operations Design Hazard Analysis Type(OD-HAT)The OD-HAT analysis evaluates the operations and support functions involved with the system.These functions include use,test,maintenance,training,storage, handling,transportation,and demilitarization or disposal.The OD-HAT analysis identifies operational hazards that can be eliminated or mitigated through design fea-tures and through modified operational procedures when necessary.The OD-HAT analysis considers human limitations and potential human errors(human factors). The human is considered an element of the total system,receiving inputs and initiating outputs.The OD-HAT analysis is performed when operations information becomes avail-able and should start early enough to provide inputs to the design.The OD-HAT should be completed prior to the conduct of any operating and support functions.The following are the basic requirements of a comprehensive OD-HAT analysis:1.Will be performed during the detailed design phases of system developmentwhen the operating and support procedures are being written.2.Will focus on hazards occurring during operations and support.3.Will provide an integrated assessment of the system design,related equip-ment,facilities,operational tasks,and human factors.4.Will be a detailed analysis based onfinal design information.5.Will identify hazards,potential mishaps,causal factors,risk and safetycritical factors,applicable safety requirements,and hazard mitigation recommendations.6.Will consider hazards during system use,test,maintenance,training,storage,handling,transportation,and demilitarization or disposal.The following types of information are utilized in the OD-HAT:1.PD-HAT,DD-HAT,SD-HAT,and any other applicable hazard analyses2.Engineering descriptions/drawings of the system,support equipment,andfacilities3.Available procedures and operating manuals4.Operational requirements,constraints,and required personnel capabilities5.Human factors engineering data and reports6.Lessons learned,including human factors7.Operational sequence diagrams3.2DESCRIPTION OF HAZARD ANALYSIS TYPES41The OD-HAT focus is on operating and support tasks and procedures.The following information is typically available from the OD-HAT:1.Task-oriented hazards(caused by design,software,human,timing,etc.)2.Hazard mishap effect3.Hazard causal factors(including human factors)4.Risk assessment5.Hazard mitigation recommendations and derived design safety requirements6.Derived procedural safety requirements7.Cautions and warnings for procedures and manuals8.Input information to support the SD-HAT analysis3.2.6Human Design Hazard Analysis Type(HD-HAT)The HD-HAT analysis is intended to systematically identify and evaluate human health hazards,evaluate proposed hazardous materials,and propose measures to eliminate or control these hazards through engineering design changes or protective measures to reduce the risk to an acceptable level.The HD-HAT assesses design safety by evaluating the human health aspects involved with the system.These aspects include manufacture,use,test, maintenance,training,storage,handling,transportation,and demilitarization or disposal.The HD-HAT concentrates on human health hazards.The HD-HAT is started during preliminary design and continues to be performed as more information becomes available.The HD-HAT should be completed and system risk known prior to the conduct of any of the manufacturing,test,or operational phases.The following are the basic requirements of a comprehensive HD-HAT analysis:1.Will be applied during the preliminary and detailed design phases of systemdevelopment.2.Will focus on the human environment within the system.3.Will be a detailed analysis based on system design and operational tasksaffecting the human environment.4.Will identify hazards,potential mishaps,causal factors,risk and safety criticalfactors,and applicable safety requirements.5.Will consider human health hazards during system test,manufacture,oper-ation,maintenance,and demilitarization or disposal.Consideration should include,but is not limited to,the following:a.Materials hazardous to human health(e.g.,material safety data sheets)b.Chemical hazardsc.Radiological hazardsd.Biological hazards42HAZARD ANALYSIS TYPES AND TECHNIQUESe.Ergonomic hazardsf.Physical hazardsTypically the following types of information are available and utilized in the HD-HAT analysis:1.CD-HAT,PD-HAT,DD-HAT,SD-HAT,OD-HAT,and any other applicabledetailed hazard analyses2.Materials and compounds used in the system production and operation3.Material safety data sheets4.System operational tasks and procedures,including maintenance procedures5.System designThe following information is typically available from the HD-HAT analysis:1.Human health hazards2.Hazard mishap effects3.Hazard causal factors4.Risk assessment5.Derived design safety requirements6.Derived procedural safety requirements(including cautions,warnings,andpersonal protective equipment)7.Input information for the Occupational Safety and Health Administration(OSHA)and environmental evaluationsrmation to support the OD-HAT and SD-HAT analyses3.2.7Requirements Design Hazard Analysis Type(RD-HAT)The RD-HAT is a form of analysis that verifies and validates the design safety requirements and ensures that no safety gaps exist in the requirements.The RD-HAT applies to hardware,software,firmware,and test requirements.Since the RD-HAT is an evaluation of design and test safety requirements,it is performed during the design and test stages of the development program.The RD-HAT can run from mid-preliminary design through the end of testing.Safety design requirements are generated from three sources:(1)the system specification,(2)generic requirements from similar systems,subsystems,and processes,and(3)requirements derived from recommendations to mitigate ident-ified system-unique hazards.The intent of the RD-HAT is to ensure that all of the appropriate safety requirements are included within the design requirements and that they are verified and validated through testing,analysis,or inspection.Appli-cable generic system safety design requirements are obtained from such sources as federal,military,national,and industry regulations,codes,standards,specifica-tions,guidelines,and other related documents for the system under development.3.2DESCRIPTION OF HAZARD ANALYSIS TYPES43The RD-HAT supports closure of identified hazards.Safety requirements levied against the design to mitigate identified hazards must be verified and validated before a hazard in the hazard tracking system can be closed.The RD-HAT provides a means of traceability for all safety requirements,verifying their implementation and validating their success.The RD-HAT is an evolving analysis that is performed over a period of time, where it is continually updated and enhanced as more design and test information becomes available.The RD-HAT is typically performed in conjunction with the PD-HAT,DD-HAT,SD-HAT,and OD-HAT analyses.The RD-HAT should be complete at the end of testing.The following are the basic requirements of a comprehensive RD-HAT analysis:1.Will be applied from the preliminary design phases through testing of thesystem.2.Will focus on safety requirements intended to eliminate and/or mitigateidentified hazards.3.Will be a detailed analysis based on detailed design requirements and designinformation.4.Will ensure that all identified hazards have suitable safety requirements toeliminate and/or mitigate the hazards.5.Will ensure that all safety requirements are verified and validated throughanalysis,testing,or inspection.Typically the following types of information are available and utilized in the RD-HAT:1.Hazards without mitigating safety requirements2.Design safety requirements(hardware,software,firmware)3.Test requirements4.Test results5.Unverified safety requirementsThe primary purposes of the RD-HAT are to establish traceability of safety requirements and to assist in the closure of mitigated hazards.The following infor-mation is typically output from the RD-HAT:1.Traceability matrix of all safety design requirements to identified hazards2.Traceability matrix of all safety design requirements to test requirements andtest results3.Identification of new safety design requirements and tests necessary to covergaps discovered by items1and2above4.Data supporting closure of hazards。

敏捷测试流程的8个步骤

敏捷测试流程的8个步骤

敏捷测试流程的8个步骤Agile testing is an iterative software development methodology that focuses on delivering high-quality software quickly and efficiently. 敏捷测试是一种迭代的软件开发方法论,重点是快速高效地交付高质量的软件。

The first step in the agile testing process is to define the scope of the testing effort. This involves identifying the features and functionality that need to be tested, as well as any specific requirements or constraints that need to be taken into account. 敏捷测试流程的第一步是定义测试工作的范围。

这包括识别需要进行测试的功能和功能,以及需要考虑的任何特定要求或约束。

Once the scope has been defined, the next step is to plan the testing effort. This involves creating a testing strategy, identifying the resources and tools that will be needed, and developing a test plan that outlines the specific tests that need to be conducted. 一旦范围已经确定,下一步是规划测试工作。

这包括制定测试策略,确定需要的资源和工具,并制定一个测试计划,概述需要进行的具体测试。

软件项目估算指南CMMI5

软件项目估算指南CMMI5

. .. .工程估算指南Version 1.1文档名称:1目的22围23术语、缩写词24估算过程24.1简要说明24.2流程图3自顶向下的方法3自底向上的方法34.3估算规程34.4裁剪指南45估算方法45.1UCP估算算法4估算UUCP4估算TCF调整因子5估算EF调整因子6估算UCP7估算工作量7估算进度7估算本钱76附录76.1生产率数据来源76.2进度估算数据来源8工程估算指南1目的本文用于估算软件工程的规模、进度、工作量、本钱,以指导工程作出合理的估算。

2围本文件包括软件工程估算的各个方面,包括规模、进度、工作量、本钱,并包括其在工程的中的分布估算。

本文件适用于公司所有工程。

3术语、缩写词UCPUse Case Point,用例点4估算过程4.1简要说明准确的估算是最大可能加快开发速度的根底,没有准确的进度估算,再有效的进度方案也无从谈起。

不切实际的估算、不正确的期望是带来工程问题的主要原因。

估算是一个不断改良的过程,只有当详细地理解了每个功能,你才有可能准确估算出软件开发的进度和本钱。

因此,能够提前做出的决策越多,估算的准确度就越高。

准确的估算可以更好的控制工程的规模、进度、本钱。

工作量和进度估算通常在提交建议书及制定工程方案时进展,在工程实施过程中,也可能要对工作量和进度重新估计。

对于软件规模的估算主要有三种方法:代码行,功能点,用例点。

本公司现在主要使用用例点方法。

对于工作量的估计,主要有两种方法:⏹自顶向下的方法〔Top-down approach〕,用一个简单的方程从估计的规模求出估计的总工作量,各阶段的工作量可以根据它们占总工作量的百分比而得到。

在需求不太明确时,规模估计比拟困难,这时估算的误差会比拟大。

⏹自底向上的方法〔Bottom-up approach〕,首先获得工程各局部估计的规模,然后得到整个工程估计的规模。

在这种方法主要依据WBS来估算,首先将工程进展分解,列出主要工作,然后估计每件工作的工作量,汇总就可以得到整个工程的工作量。

功能点的A型-2模糊逻辑框架(IJISA-V5-N3-8)

功能点的A型-2模糊逻辑框架(IJISA-V5-N3-8)

I.J. Intelligent Systems and Applications, 2013, 03, 74-82Published Online February 2013 in MECS (/)DOI: 10.5815/ijisa.2013.03.08A Type-2 Fuzzy Logic Based Framework forFunction PointsAnupama KaushikDept. of IT, Maharaja Surajmal Institute of Technology, GGSIP University, Delhi, Indiaanupama@msit.inA.K. SoniDept. of IT, School of Engineering and Technology, Sharda University, Greater Noida, Indiaak.soni@sharda.ac.inRachna SoniDept. of Computer Science and Applications, DAV College, Yamuna Nagar, Haryana, Indiasonirachna67@Abstract —Software effort estimation is very crucial in software project planning. Accurate software estimation is very critical for a project success. There are many software prediction models and all of them utilize software size as a key factor to estimate effort. Function Points size metric is a popular method for estimating and measuring the size of application software based on the functionality of the software from the user‘s point of view. While there is a great advancement in software development, the weight values assigned to count standard FP remains the same. In this paper the concepts of calibrating the function point weights using Type-2 fuzzy logic framework is provided whose aim is to estimate a more accurate software size for various software applications and to improve the effort estimation of software projects. Evaluation experiments have shown the framework to be promising.Index Terms —Project management, Software Effort Estimation, Type-2 Fuzzy Logic System, Function Point AnalysisI.IntroductionSoftware development has become an important activity for many modern organizations. Software engineers have become more and more concerned about accurately predicting the cost and quality of software product under development. Consequently, many models for estimating software cost have been proposed such as Constructive Cost Model(COCOMO) [1],Constructive Cost Model II (COCOMO II) [2], Software Life Cycle Management (SLIM) [3] etc. These models identify key contributors to effort and use historical organizational projects data to generate a set of mathematical formulae that relates these contributors to effort. Such a set of mathematical formulae are often referred to as parametric model because alternative scenarios can be defined by changing the assumed values of a set of fixed coefficients (parameters) [4]. All these models use the software size as the major determinant of effort. Function Points is an ideal software size metric to estimate cost since it can be used in the early development phase, such as requirement, measures the software functional size from user‘s view, and is programming language independent [5].Today the scenario of software industry has changed from what it has many years ago. Now-a-days the object oriented paradigm has incorporated into the software development which leads to the creation of object oriented function points [6]. All the traditional cost estimation models are limited by their inability to cope with vagueness and imprecision in the early stages of the software life cycle. So, a number of soft computing approaches like fuzzy logic (FL), artificial neural networks (ANN), evolutionary computation (EC) etc. are incorporated to make rational decisions in an environment of uncertainty and vagueness. The first realization of the fuzziness of several aspects of COCOMO was that of Fei and Liu [7] called F-COCOMO. Jack Ryder [8] investigated the application of fuzzy modelling techniques to COCOMO and the Function Points models, respectively. Venkatachalam [9] investigated the application of artificial neural network (ANN) to software cost estimation. Many researchers have applied the evolutionary computation approach towards cost estimation [10, 11].1.1 Background and related workOsias de Souza Lima Junior et al. [12] have worked on trapezoidal fuzzy numbers to model function point analysis for the development and enhancement projectassessment. Ho Leung [13] has presented a case study for evaluation of function points. Finnie et al. [14] provided the combination of machine learning approach with FP. They compared the three approaches i.e. regression analysis, artificial neural networks and case based reasoning using FP as an estimate of software size. The authors observed that both artificial neural networks and case based reasoning performed well on the given dataset in contrast to regression analysis. They concluded that case based reasoning is appealing because of its similarity to the expert judgement approach and for its potential in supporting human judgement. Al-Hajri et al. [15] establish a new FP weight system using artificial neural network. Lima et al. [16] proposed the concepts and properties from fuzzy set theory to extend FP analysis into a fuzzy FP analysis and the calibration was done using a small database comprised of legacy systems developed mainly in Natural 2, Microsoft Access and Microsoft Visual Basic. Yau and Tsoi [17] introduced a fuzzified FP analysis model to help software size estimators to express their judgement and use fuzzy B-spline membership function to derive their assessment values. The weak point of their work is that they use limited in-house software to validate the model. Abran and Robillard‘s empirical study [18] demonstrates the clear relationship between FPA‘s primary component and work-effort. Kralj et al. [19] identified the function point analysis method deficiency of upper boundaries in the rating complexity process and proposed an improved FPA method. Wei Xia et al. [20] proposed a Neuro-Fuzzy calibration approach for function point complexity weights. Their model provided an equation between Unadjusted Function Points and work effort which is used to train the neural network and estimated the effort. Moataz A. Ahmed and Zeeshan Muzaffar [4] provided an effort prediction framework that is based on type-2 fuzzy logic to allow handling imprecision and uncertainty present in the effort prediction. Mohd. Sadiq et al. [21] developed two different linear regression models using fuzzy function point and non fuzzy function point in order to predict the software project effort.The above researches have concluded that the combination of soft computing approaches and the traditional cost estimation models yields a more accurate prediction of software costs and effort. All the earlier work on software cost estimation using fuzzy logic incorporated type-1 or type-2 fuzzy framework for effort prediction. This paper proposes an improved FPA method by calibrating the function point‘s weight using type-2 fuzzy logic framework.1.2 Function Point Analysis: A short description Function point analysis is a process used to calculate the software size from the user‘s point of view, i.e. on the basis of what the user requests and receives in return from the system. Allan J Albrecht [22] of IBM proposed Function Point Count (FPC) as a size measure in the late 1970s. Albrecht had taken up the task of arriving at size measures of software systems to compute a productivity measure that could be used across programming languages and development technologies. The current promoter of Albrecht‘s function point model is the International Function Point User‘s Group (IFPUG). IFPUG evolves the FPA method and periodically releases the Counting Practices Manual for consistent counting of function points across different organizations. In FPA, a system is decomposed into five functional units: Internal Logical Files (ILF), External Interface Files (EIF), External Inputs (EI), External Outputs (EO) and External Inquiry (EQ). These functional units are categorized into data functional units and transactional function units. All the functions do not provide the same functionality to the user. Hence, the function points contributed by each function varies depending upon the type of function (ILF, EIF, EI, EO or EQ) and complexity (Simple, Average or Complex) of the function. The data functions complexity is based on the number of Data Element Types (DET) and number of Record Element Types (RET). The transactional functions are classified according to the number of file types referenced (FTRs) and the number of DETs. The complexity matrix for all the five components is given in Table 1, Table 2 and Table 3. Table 4 illustrates how each function component is then assigned a weight according to its complexity.The actual calculation process of FPA is accomplished in three stages: (i) determine the unadjusted function points (UFP); (ii) calculate the value adjustment factor (VAF); (iii) calculate the final adjusted function points.The Unadjusted Function Points (UFP) is calculated using ―(1)‖, where W ij are the complexity weights and Z ij are the counts for each function component.∑∑ (1) The second stage, calculating the value adjustment factor (VAF), is derived from the sum of the degree of influence (DI) of the 14 general system characteristics (GSCs). The DI of each one of these characteristics ranges from 0 to 5 as follows: (i) 0 – no influence; (ii) 1 –incidental influence; (iii) 2 –moderate influence; (iv) 3 – average influence; (v) 4 – significant influence; and (vi) 5 – strong influence.The general characteristics of a system are: (i) data communications; (ii) distributed data processing; (iii) performance; (iv) heavily used configuration; (v) transaction rate; (vi) online data entry; (vii) end-user efficiency; (viii) on-line update; (ix) complex processing; (x) reusability; (xi) installation ease; (xii) operational ease; (xiii) multiple sites; and (xiv) facilitate change. VAF is then computed using ―(2)‖:∑ (2)x i is the Degree of Influence (DI) rating of each GSC. Finally, the adjusted function points are calculated as given in ―(3)‖.(3)Table 1: Complexity Matrix of ILF/EIFTable 2: Complexity Matrix of EITable 3: Complexity Matrix of EO/EQTable 4: Functional Units with weighting factorsII.Type 2 Fuzzy Logic SystemsFuzzy Logic is a methodology to solve problems which are too complex to be understood quantitatively. It is based on fuzzy set theory and introduced in 1965 by Prof. Zadeh in the paper fuzzy sets [23]. It is a theory of classes with unsharp boundaries, and considered as an extension of the classical set theory [24]. The membership µA(x) of an element x of a classical set A, as subset of the universe X, is defined by:µA(x) = {That is, x is a member of set A (µA (x) = 1) or not (µA (x) = 0). The classical sets where the membership value is either zero or one are referred to as crisp sets. Fuzzy sets allow partial membership. A fuzzy set A is defined by giving a reference set X, called the universe and a mapping;µA : X []called the membership function of the fuzzy set A µA(x), for x X is interpreted as the degree of membership of x in the fuzzy set A. A membership function is a curve that defines how each point in the input space is mapped to a membership value between 0 and 1. The higher the membership x has in the fuzzy set A, the more true that x is A. The membership functions (MFs) may be triangular, trapezoidal, Gaussian, parabolic etc.Fuzzy logic allows variables to take on qualitative values which are words. When qualitative values are used, these degrees may be managed by specific inferential procedures. Just as in fuzzy set theory the set membership values can range (inclusively) between 0 and 1, in fuzzy logic the degree of truth of a statement can range between 0 and 1 and is not constrained to the two truth values {true, false} as in classic predicate logic.Fuzzy Logic System (FLS) is the name given to any system that has a direct relationship with fuzzy concepts. The most popular fuzzy logic systems in the literature may be classified into three types [25]: pure fuzzy logic systems, Takagi and Sugeno‘s fuzzy system and fuzzy logic system with fuzzifier and defuzzifier also known as Mamdani system. As most of the engineering applications use crisp data as input and produce crisp data as output, the Mamdani system [26] is the most widely used one where the fuzzifier maps crisp inputs into fuzzy sets and the defuzzifier maps fuzzy sets into crisp outputs.Zadeh [27], proposed more sophisticated kinds of fuzzy sets, called type-2 fuzzy sets (T2FSs). A type-2 fuzzy set lets us incorporate uncertainty about the membership function into fuzzy set theory. In order to symbolically distinguish between a type-1 fuzzy set and a type-2 fuzzy set, a tilde symbol is put over the symbol for the fuzzy set; so, A denotes a type-1 fuzzy set, whereas à denotes the comparable type-2 fuzzy set. Mendel and Liang [28, 29] characterized T2FSs using the concept of footprint of uncertainty (FOU), and upper and lower MFs. To depict the concept, let us consider type-1 gauss MF shown in ―Fig. 1‖.As can be seen from the figure type-1 gaussian membership function is constrained to be in between 0 and 1 for all x X, and is a two dimensional function. These types of membership don‘t carry any uncertainty. There exists a clear membership value for every input data point.If the Gaussian function in ―Fig.1‖ is blurred ―Fig. 2‖can be obtained. The FOU represents the bounded region obtained by blurring the boundaries of type-1 MF. The upper and lower MFs represent the upper and lower boundaries of the FOU, respectively. In this case, for a specific input value, there is no longer a single certain value of membership; instead the MF takes on values wherever the vertical line intersects the blur. Those values do not have to be all weighted the same; hence, an amplitude distribution can be assigned to those points. Doing this for all input values x, a three dimensional MF is created, which is a type-2 MF. In this, the first two dimensions allow handlingimprecision via modelling the degree of membership of x; while the third dimension allows handling uncertainty via modelling the amplitude distribution of the degree of membership of x. Here also, like in type-1 MFs the degree of membership along the second dimension and the amplitude distribution values along the third dimension is always in the interval [0, 1]. Clearly, if the blur disappears; then a type-2 MF reduces to a type-1 MF.A general architecture of type-2 fuzzy logic system (T2FL) as proposed by Mendel is depicted in ―Fig. 3‖.Fig. 1: A Gaussian Type-1 membership functionFig. 2: A Gaussian Type-2 membership functionFig. 3: A typical type-2 fuzzy logic system [29]Table 5: Example on FP complexity classificationT2FL systems contain five components –rules, fuzzifier, inference engine, type reducer, and defuzzifier. Rules are the heart of a T2FL system, and may be provided by experts or can be extracted from numerical data. These rules can be expressed as a collection of IF-THEN statements. The IF part of a rule is its antecedent, and the THEN part of the rule is its consequent. Fuzzy sets are associated with terms that appear in the antecedents or consequents of rules, and with inputs to and output of the T2FL system. The inference engine combines rules and gives mapping from input type-2 fuzzy sets to output type-2 fuzzy set. The fuzzifier converts inputs into their fuzzy representation. The defuzzifier converts the output of the inference engine into crisp output. The type reducer transforms the type-2 fuzzy output set into type-1 fuzzy set to be processed by the defuzzifier. A T2FL system is very similar to a T1FL system; the major difference being that the output processing block of T1FL system is just a defuzzifier while the output processing block of a T2FL system contains the type reducer as well. III.Problem Description and AnalysisIn cost estimation process, the primary input is the software size and the secondary inputs are the various cost drivers. There is a significant relationship between the software size and cost. There are mainly two types of software size metrics: lines of code (LOC) and Function Point (FP). Size estimation is best done when there is complete information about the system; but this is not available till the system is actually built. The challenge for the estimator is therefore to arrive at a reasonable estimate of the size of the system with partial information.LOC is usually not available until the coding phase, so FP has gained popularity because it can be used at an earlier stage of software development.In our work, we are using type-2 based fuzzy logic approach to calibrate the function point weight values which provides an improvement in the software size estimation process. There are 15 parameters in the FP complexity weight system to calibrate. These parameters are low, average and high values of External Inputs, External Outputs, Internal Logical Files, External Interface Files and External Inquiries respectively. A fuzzy based approach is chosen since it can capture human‘s judgement with ease and instead of giving an exact number to all 15 function points parameters we can define fuzzy linguistic terms and assign a fuzzy set within numeric range. This provides an ability to cope up with the vagueness and imprecision present in the earlier stages of software development.In Function Point Analysis (FPA) method each component is classified to a complexity level determined by the number of its associated files such as DET, RET or FTR as given in Table 4. If we determine the FPA complexity of a particular software application, in some cases it may not correctly reflect the complexity for its components.Table 5 shows a software project with three EIF‘s A, B and C. According to the complexity matrix, A and B are classified as having the same complexity and are assigned the same weight value of 10. However, A has 19 more DET than B and is certainly more complex. But both of them are assigned the same complexity. Also, EIF C is having only one DET less than EIF B and it is classified as average and assigned a weight value of 7. From the above example it is concluded that there is a huge scope of improvement in the FPA complexity classification. Processing the number of FP component associated files such as DET, RET and FTR using fuzzy logic can provide an exact complexity degree.IV.Fuzzy Logic calibration to improve FPAType-2 fuzzy inference system is developed for all the five FPA components (ILF, EIF, EI, EO, EQ) using the Mamdani approach. We define three new linguistic terms: small, medium and large, to express the inputs qualitatively. Also we use linguistic terms: simple, average and complex for the output. To fuzzify the inputs and outputs, we define fuzzy sets to represent the linguistic terms [30]. The fuzzy membership grade is captured through the membership functions of each fuzzy set. The inputs and outputs are represented using gaussian igaussstype2 membership which is represented in ―Fig. 4‖. It has certain mean m, and an uncertain standard deviation that takes on values in [σ1, σ2]. The shaded area represents the FOU. Using interval type-2 Gaussian MF‘s makes it easier to build T2FL systems since the mathematics behind the corresponding inferential procedures and training algorithms are less complicated [29]. ―Fig.5 (a)‖and ―Fig.5 (b)‖ shows how the inputs of EIF are assigned the membership functions and represented using linguistic variables of fuzzy sets. ―Fig. 6‖ depicts the output of EIF using membership functions. After representing the inputs and output of EIF using membership functions nine fuzzy rules are defined using rule editor based on the original complexity matrices and illustrated in Table 6. Each rule has two parts in its antecedent linked with an ‗AND‘ operatorand one part in its consequence. These fuzzy rules define the connection between the input and output fuzzy variables. A fuzzy rule has the form: IF <Antecedent> THEN <Consequent>, where antecedent is a compound fuzzy logic expression of one or more simple fuzzy expressions connected with fuzzy operators; and the consequent is an expression that assigns fuzzy values to output variables. The inference system evaluates all the rules of the rule base and combines the weights of the consequents of all relevantrules in one fuzzy set using the aggregate operation. Finally, the output fuzzy set is defuzzified to a crisp single number.Fig. 4: FOU for Gaussian MFFig. 5 (a): Input fuzzy set DET for EIFFig. 5 (b): Input fuzzy set RET for EIFFig. 6: Output fuzzy set Complexity for EIFTable 6: Truth table of fuzzy logic rule setFig. 7: Type-2 Fuzzy Inference process of Function Points Model Table 7: Calibration using type-2 fuzzy logicAn example of the complete fuzzy inference process is shown in ―Fig. 7‖. Input values are set to DET 51 and RET 5. These are represented using the antecedent part of the fuzzy rules. Finally, the consequent part isdefuzzified and the output is achieved as a single value of 7.63.A fuzzy logic system for each FPA element (ILF, EIF, EI, EO, EQ) is constructed. A fuzzy complexity measurement system that takes into account all five Unadjusted Function Points function components is built after the fuzzy logic system for each function component is established as shown in ―Fig. 8‖. The calibrated values for EIF A, EIF B and EIF C is listed in Table 7 and it is found that these calibrated weight values are more convincing than the original weight values.Fig. 8: Fuzzy complexity measurement system for Type-2 Fuzzyfunction points modelTable 8: Calculation of t2UFFP and UFP for ILFV.Experimental Methodology and ResultsWe have conducted some experiments to develop a type-2 fuzzy system for function points analysis using our framework as depicted in ―Fig. 8‖. Our model has been implemented in Matlab(R2008a). As it is the case with validating any prediction model, real industrial data necessary to use our framework to develop and tune the parameters of prediction models were not available. To get around this data scarcity problem for the sake of showing the validity of our framework for the industry where organizations have their own data available, we generated artificial datasets consisting of 20 projects. A complexity calculation for all the five components for each project is done using the type-2 fuzzy framework. The Tables (8, 9, 10, 11, 12) lists the complexity values for all the five components for the first project using type-2 fuzzy framework (t2UFFP) and conventional method i.e.UFP.Using ―(1)‖ total unadjusted function points from the type-2 technique and the conventional technique is calculated and listed in Table 13. It is found that the type-2 technique is at par than the conventional technique.Table 9: Calculation of t2UFFP and UFP for EIFTable 10: Calculation of t2UFFP and UFP for EITable 11: Calculation of t2UFFP and UFP for EOTable 12: Calculation of t2UFFP and UFP for EQTable 13: Comparison of t2UFFP and UFPTable 14: Comparison of type-2 fuzzy FP and conventional FPIn order to compute the value of the conventional function point and type-2 fuzzy function point, we have treated all the 14 general system characteristics as average. Using ―(2)‖and ―(3)‖VAF and FPA is calculated and listed in Table 14.From the above results it is concluded that the calibrated function points using type-2 fuzzy yields better results than conventional function points.VI.ConclusionsFP as a software size metric is an important topic in the software engineering domain. The use of type2 fuzzy logic to calibrate FP weight values further improves the estimation of FP. This in turn will improve the cost estimation process of software projects. Empirical evaluation has shown that T2FL is promising. But there are potentials for improvements when the framework is deployed in practice. As all the experiments were conducted using artificial datasets, a need to evaluate the prediction performance of the framework on real data still persists. Some future work can be directed towards developing inferential procedures using various other membership functions present in type-2 fuzzy systems. This work can also be extended using Neuro Fuzzy approach. AcknowledgementThe authors would like to thank the anonymous reviewers for their careful reading of this paper and for their helpful comments.References[1] B.W. Boehm. Software Engineering Economics.Prentice Hall, Englewood Cliffs, NJ, 1981.[2] B. Boehm, B. Clark, E. Horowitz, R. Madachy, R.Shelby, C. Westland. Cost models for future software life cycle processes: COCOMO 2.0.Annals of Software Engineering, 1995.[3]L.H. Putnam. A general empirical solution to themacro software sizing and estimation problem.IEEE Transactions on Software Engineering, vol.4, 1978, pp 345-361.[4]Moataz A. Ahmed, Zeeshan Muzaffar. Handlingimprecision and uncertainty in software development effort prediction: A type-2 fuzzylogic based framework. Information and Software Technology Journal. vol. 51, 2009, pp. 640-654. [5]Function Point Counting Practices Manual, fourthedition, International Function Point Users Group, 2004.[6]G. Antoniol, C. Lokan, G. Caldiera, R. Fiutem. Afunction point like measure for object oriented software. Empirical Software Engineering. vol. 4, 1999, pp. 263-287.[7]Fei. Z, X. Liu. f-COCOMO-Fuzzy ConstructiveCost Model in Software Engineering. Proceedings of IEEE International Conference on Fuzzy System. IEEE Press, New York, 1992, pp. 331-337.[8]J. Ryder. Fuzzy Modeling of Software EffortPrediction. Proceedings of IEEE Information Technology Conference. Syracuse, NY, 1998. [9] A.R. Venkatachalam. Software Cost Estimationusing artificial neural networks. Proceedings of the International Joint Conference on Neural Networks, 1993, pp. 987-990.[10]K.K. Shukla. Neuro-genetic Prediction ofSoftware Development Effort. Journal of Information and Software Technology, Elsevier.vol. 42, 2000, pp. 701-713.[11]Alaa.F.Sheta. An Estimation of the COCOMOmodel parameters using the genetic algorithms for the NASA project parameters. Journal of Computer Science, vol. 2, 2006, pp.118 -123. [12]Osias de Souza Lima Junior, Pedro PorfirioMuniaz Parias, Arnaldo Dias Belchior. A fuzzy model for function point analysis to development and enhancement project assessement. CLEI Electronic Journal, vol. 5, 1999, pp. 1-14.[13]Ho Leung, TSOI. To evaluate the function pointanalysis: A case study. International Journal of computer, Internet and management vol. 13, 2005, pp. 31-40.[14]G.R. Finnie, G.E. Wittig, J.M. Desharnais. Acomparison of software effort estimation techniques: using function points with neural networks, case-based reasoning and regression models. Journal of Systems Software, Elsevier.vol. 39, 1977, pp. 281-289.[15]M.A. Al-Hajri, A.A.A Ghani, M.S. Sulaiman,M.H. Selamat. Modification of standard function point complexity weights system. Journal of Systems and Software, Elsevier,vol. 74, 2005, pp.195-206.[16]O.S. Lima, P.F.M. Farias, A.D. Belchior. Fuzzymodeling for function point analysis. Software Quality Journal, vol. 11, 2003, pp. 149-166. [17]C. Yau, H. L. Tsoi. Modelling the probabilisticbehavior of function point analysis. Journal ofInformation and Software Technology, Elsevier.vol. 40, 1998, pp. 59-68.[18]A. Abran, P. Robillard. Function Points Analysis:An empirical study of its measurement processes.IEEE Transactions on Software Engineering, vol.22, 1996, pp.895-910.[19]T. Kralj, I. Rozman, M. Hericko, A. Zivkovic.Improved standard FPA method- resolving problems with upper boundaries in the rating complexity process. Journal of Systems and Software, Elsevier, vol. 77, 2005, pp. 81-90. [20]Wei Xia, Luiz Fernando Capretz, Danny Ho,Faheem Ahmed. A new calibration for function point complexity weights. Journal of Information and Software Technology, Elsevier. vol. 50, 2008 pp.670-683.[21]Mohd. Sadiq, Farhana Mariyam, Aleem Ali,Shadab Khan, Pradeep Tripathi. Prediction of Software Project Effort using Fuzzy Logic.Proceedings of IEEE International Conference on Fuzzy System, 2011, pp. 353-358.[22]A. Albrecht. Measuring application developmentproductivity. Proceedings of the Joint SHARE/GUIDE/IBM Application Development Symposium, 1979, pp. 83-92.[23] L. A. Zadeh. Fuzzy Sets. Information and Control,vol. 8, 1965, pp. 338-353.[24]M. Wasif Nisar, Yong-Ji Wang, Manzoor Elahi.Software Development Effort Estimation using Fuzzy Logic – A Survey. Fifth International Conference on Fuzzy Systems and Knowledge Discovery, 2008, pp 421-427.[25]L. Wang. Adaptive Fuzzy System and Control:Design and Stability Analysis. Prentice Hall, Inc., Englewood Cliffs, NJ 07632, 1994.[26]E.H. Mamdani. Applications of fuzzy algorithmsfor simple dynamic plant. Proceedings of IEEE, vol. 121, 1974, pp. 1585-1588.[27]L. A. Zadeh. The Concept of a Linguistic Variableand Its Application to Approximate Reasoning–1. Information Sciences, vol. 8, 1975, pp. 199-249.[28]J.M. Mendel, Q. Liang. Pictorial comparison ofType-1 and Type-2 fuzzy logic systems.Proceedings of IASTED International Conference on Intelligent Systems and Control, Santa Barbara, CA, October 1999.[29]J.M. Mendel. Uncertain Rule-Based Fuzzy LogicSystems, Prentice Hall, Upper Saddle River, NJ 07458, 2001.[30]E.H. Mamdani. Application of fuzzy logic toapproximate reasoning using linguistic synthesis.IEEE transactions on computers, vol. 26, 1977, pp.1182-1191. Anupama Kaushik is an Assistant Professor at Maharaja Surajmal Institute of Technology, New Delhi, India. Her research area includes Software Engineering, Object Oriented Software Engineering and Soft Computing.Dr. A.K Soni has done his Ph.D. and M.S.(Computer Science) both from Bowling Green State University in Ohio, USA . He is the Professor and Head, Department of Information Technology, Sharda University, Greater Noida, India. His research area includes Software Engineering, Datamining, Database Management Systems and Object Oriented Systems.Dr. Rachna Soni did her M. Phil from IIT Roorkee and Ph.D. from Kururukshetra University, Kurukshetra. She is the Associate Professor and Head, Dept. of Computer Science and Applications, D.A.V. College, Yamunanagar, India. Her area of interest includes Software Risk Management, Project Management, Requirement Engineering, Simulation and Component based Software Engineering.。

pm

pm

Chapter 1:1)Project:A finite endeavor that:Has a definite beginning and definite endIs uniqueConsumes resource2) The main differences between a program and a project are that a programachieves a strategy or mission, is realized through multiple projects and ongoing activity, and has a scope that might either be broadly defined or be specific.3) Project Management is the management of:KnowledgeSkillsToolsTechniques4) The four important PM factors are:ScopeTimeCostResources5) Project Lifecycle:Projects are usually divided into phases(阶段)Collectively, the phases are called the project lifecycleProject lifecycles are often similar but rarely identical6) PMI (Project Management Institute),the worldwide project management organization, defined the project management process with 5 process groups and9 knowledge areas such as Integration,Scope, Time, Cost, Quality, Human resource, Communication, Risk and Procurement.7) Why the need to study project management?Often IT project came in behind schedule, over budget, or not at all.The compression of product life cycles.Global competitionKnowledge explosionCorporate downsizing –“right” sizing8) Advantages of Using Formal Project ManagementBetter control of financial, physical, and human resourcesImproved customer relationsShorter development timesLower costsHigher quality and increased reliabilityHigher profit marginsImproved productivityBetter internal coordinationHigher worker morale9) Attributes of a projectA project has a unique purpose.A project is temporary.A project requires resources, often from various areas.A project should have a primary sponsor or customer.A project involves uncertainty.10) Every project is constrained in different ways by itsScope goals: What is the project trying to accomplish?Time goals: How long should it take to complete?Cost goals: What should it cost?11)12) Project ManagerA project manager acts as the single point of contact on the project13) A project manager is the individual responsible for:Planning and organizing the workManaging the day-to-day activities of a projectDelivering the project deliverables to the clientIdentifying potential stakeholders(受项目影响的人)Planning the projectTechnical activitiesProject management activitiesManaging the triple constraint to the Project Sponsor’s satisfaction ScheduleCostScopeOrganizing the project:Forming the project teamSetting up systems to document and communicate the project objectives and statusEstablishing project plans and the processes by which the project will be controlledManaging or directing the project by:Tracking the technical performance of the project schedule and cost Tracking the financial performance of the projectAssessing and managing the project’s RisksDealing with issues and problems that occur during the projectTracking suppliers’ performance against their contractsBuilding and maintaining the morale of the project teamCommunicating with all stakeholdersTracking team member performanceUsing a change control process to manage scope14) Project Stakeholders:Stakeholders are the people involved in or affected by project activities Stakeholders include:The project sponsor(赞助者)and project teamExecutivesCustomersContractors(合约商)Functional managerssupport staffuserssuppliersopponents to the project15) Project Manager's ValueA project manager enhances the probability that a project will:Produce quality productsStay on scheduleComplete within budgetSatisfy the client's requirementsLead to follow-on businessAchieve success16) Project Management Knowledge Areas Classification4 core knowledge areas lead to specific project objectives (scope, time, cost,and quality)4 facilitating knowledge areas are the means through which the project objectivesare achieved (human resources, communication, risk, and procurementmanagement)1 knowledge area (project integration management) affects and is affected byall of the other knowledge areasChapter 5 Time:1) Developed in the 1950’s, Project network diagrams are the preferredtechnique for showing activity sequencing2) The critical path is the longest path through the network diagram andhas the least amount of slack or floatA critical path for a project is the series of activities that determines the earliesttime by which the project can be completedCPM is a project network analysis technique used to predict total project duration3)4)5)Total Float = LS - ES or LF - EFFree Float = ES (Successor) - EF (Predecessor)6)1. Calculate the forward and backward pass2. Calculate the float for each path3. Find the critical path7) PERT(Program Evaluation and Review Technique ) is a networkanalysis technique used to estimate project duration when there is a high degree of uncertainty about the individual activity durationestimates.PERT weighted average formula:(optimistic time + 4X most likely time + pessimistic time)/6According to normal distribution, the probability of completing the project within ±σ(ie. Between 47.304 days and 54.696 days) is 68%the probability of completing the project within ±2σ(ie. Between 43.608 days and58.393 days) is 95%the probability of completing the project within ±3σ(ie. Between 39.912 days and62.088 days) is 99%By checking the normal distribution table, you can determine the probability ofcompleting the project within a specific time:For example,if the customer requests to finish the project within 60 days, theprobability is:Chapter 5 cost:1)Project cost management includes the processes required to ensure thatthe project is completed within an approved budget(法定预算)2) Project Cost Management Processes:Resource planning: determining what resources and quantities of them shouldbe usedCost estimating: developing an estimate of the costs and resources needed tocomplete a projectCost budgeting: allocating the overall cost estimate to individual work items toestablish a baseline for measuring performanceCost control: controlling changes to the project budget3) Life cycle costing(寿命周期价格)is estimating the cost of a project plusthe maintenance costs(维修费用)of the products it produces4) Cash flow analysis is determining the estimated annual costs(年成本)and benefits for a project5) Items to Include in an EstimateT he scope of the work that is included in the estimateThe assumptions that were usedResources, such as staff, facilities, and material; consider the durationProject management should be includedExpenses, both direct and indirectRisk and the cost of managing it to acceptable levelsDocumentation, which is critically important6) Keep in mind that the time it takes to complete a task depends on bothavailability and productivity7) Estimating Formulas:Cost = (Effort/Productivity) x Unit CostDuration = (Effort/Productivity)/Availability8) Types of Cost EstimatesROM is a top-down approach used during the formation of the project for initialevaluation and during the concept phaseBudget is developed from more detailed project analysisDefinitive is a bottom-up (task-by-task) approach prepared from well-defineddata and specifications9) One reason for creating a project budget estimate is to provide a basis fortracking and managing project costs; specific tasks within the estimating process are cost estimating and cost budgetingCost estimating - consists of determining the cost of all of the elements neededto complete the projectCost budgeting - is the allocation of the determined cost estimates to individualproject components so that those costs can be measured and managed as theproject is executed10) B arry Boehm helped develop the COCOMO (构造性成本模型)models forestimating software development costs▪COCOMO II is a computerized model available on the Web▪Boehm suggests that only parametric models do not suffer from the limits of human decision-making11) P roject cost control includesmonitoring cost performance(控制成本效益)ensuring that only appropriate project changes are included in a revised costbaselineinforming project stakeholders of authorized changes to the project that will affect costs12) E arned value analysis is an important tool for cost control13) W hat is Earned ValueIt is a way of looking at how much of the expected value of the project has beenearned, at a particular point in time.It provides:A method for measuring project performanceA view of how much work has been done relative to how much was plannedto be done, at a point in timeA view of how much of the budget should have been spent to accomplish thework done so farA view of how what's required to complete the project (cost & schedule) basedon actual performance14) E arned Value Analysis TermsThe planned value (PV),(计划工作预算成本)formerly called the budgeted cost of work scheduled (BCWS), also called the budget, is that portion of the approvedtotal cost estimate planned to be spent on an activity during a given periodActual cost (AC)(已完成工作实际成本), formerly called actual cost of workperformed (ACWP), is the total of direct and indirect costs incurred inaccomplishing work on an activity during a given periodThe earned value (EV)(完成工作预算成本), formerly called the budgeted cost of work performed (BCWP), is an estimate of the value of the physical work actually completedSV - Schedule Variance(进度偏差), SV = EV - PVSPI - Schedule Performance Index(进度绩效指数), SPI = EV/PVCV - Cost Variance(成本偏差), CV = EV - ACCPI - Cost Performance Index, CPI = EV/ACBAC – Budget at CompletionEAC - Estimate At CompletionAre we ahead of or behind schedule? (SV)How efficiently are we using our time? (SPI)When is the project likely to be completed? (EAC)Are we under or over our budget? (CV)How efficiently are we using our resources? (CPI)How efficiently must we use our remaining resources? (TCPI)What is the entire project likely to cost? (EAC)How much are we under or over budget? (VAC)What is the remaining work likely to cost? (ETC)BAC: Budget At CompletionSum of all budges (PV). Your original budget.EAC: Estimate At CompletionForecast total cost at completionEAC = ((BAC – EV)/CPI) + AC or BAC/CPIUnfinished work divided by CPI added to sunk costIf CPI < 1, EAC will be > BACCR: Critical RatioSPI x CPI1: everything on track> .9 and < 1.2 okCan be charted▪Negative numbers for cost and schedule variance indicate problems in those areas. The project is costing more than planned or taking longer than planned ▪CPI and SPI less than 100% indicate problemsChapter 7 quantity:1)Project Quality Management processes include all the activities of the performing organization that determine quality policies, objectives, and responsibilities so that the project satisfies the needs for which it was undertaken2)A project quality management system that includes processes such as quality planning, quality assurance, and quality control i s established▪Quality planning: identifying which quality standards are relevant to the project and how to satisfy them▪Quality assurance: evaluating overall project performance to ensure the project will satisfy the relevant quality standards▪Quality control: monitoring specific project results to ensure that they comply with the relevant quality standards while identifying ways to improve overall quality3)Quality Control:Some tools and techniques include:▪Pareto analysis✓Pareto analysis involves identifying the vital few contributors that account for the most quality problems in a system✓Also called the 80-20 rule, meaning that 80% of problems are often due to 20% of the causes✓Pareto diagrams are histograms(柱状图)that help identify and prioritize problem areas▪statistical sampling(统计抽样)▪Six Sigma(标准差)目标在于每百万个中有少于4个的错误。

软件成本估算方法及应用

软件成本估算方法及应用

E-mail: jos@ Tel/Fax: +86-10-62562563
软件成本估算方法及应用

பைடு நூலகம்
李明树 1,2+, 何 梅 1,3, 杨 达 1,3, 舒风笛 1, 王 青 1
1 2 3
(中国科学院 软件研究所 互联网软件技术实验室,北京 (中国科学院 研究生院 ,北京 100049)
ISSN 1000-9825, CODEN RUXUEW Journal of Software, Vol.18, No.4, April 2007, pp.775−795 DOI: 10.1360/jos180775 © 2007 by Journal of Software. All rights reserved.
776
Journal of Software 软件学报 Vol.18, No.4, April 2007
随着软件系统规模的不断扩大和复杂程度的日益加大,从 20 世纪 60 年代末期开始,出现了以大量软件项 目进度延期、预算超支和质量缺陷为典型特征的软件危机,至今仍频繁发生.根据 Standish 组织在 1995 年公布 的 CHAOS 报告显示,在来自 350 个组织的 8 000 个项目中,只有 16.2%是 “成功的(succeeded)”,即能在预算和限 期内完成 ;31.1%是 “失败的 (failed)”, 即未能完成或者取消 ; 其余 52.7% 被称为 “被质疑的 (challenged)”, 虽然完成 但平均预算超支 89%[1].2004 年,该组织的统计项目数累计达到 50 000 多个,结果显示,成功项目的比例提升到 29%,而被质疑的项目比例仍有 53%[2](如图 1 所示).虽然有些研究认为,CHAOS 报告中关于预算超支 89%的数 据被夸大了 , 实际情况应该平均在 30%~40%[3]. 但有一点却能够取得共识 :人们经常对软件成本估算不足 . 它与 需求不稳定并列,是造成软件项目失控最普遍的两个原因[4].

计算机四级笔试1_真题-无答案

计算机四级笔试1_真题-无答案

计算机四级笔试1(总分104,考试时间90分钟)一、选择题下列各题A)、B)、C)、D) 四个选项中,只有一个选项是正确的。

1. 某二叉树的后序序列为B,D,C,A,F,G,E,对称序序列为A,B,C,D,E,F,G,则该二叉树的前序序列为A. E,G,F,A,C,D,BB. E,A,C,B,D,G,FC. E,A,G,C,F,B,DD. E,G,A,C,D,F,B2. 文件系统的主要目的是A. 实现按名存取B. 实现虚拟存储器C. 提高外部设备的输入输出效率D. 用于存储系统文档3. Software Engineering Economy is an effective part of software engineering. Which of the following content is the research content of software engineering economy? Ⅰ. Estimation of software development cost Ⅱ. Earn & Cost analysis of software development Ⅲ. Adjustment of software development progressA. Ⅲ onlyB. Ⅱ and ⅢC. Ⅰ and ⅡD. all4. 不属于冯?诺依曼计算机特点的是A. 使用单一处理部件来完成计算、存储及通信工作B. 存储空间的单元是直接寻址的C. 对计算进行集中的顺序的控制D. 采用16进制编码5. Which of the following statements is true regarding simple sort techniques?A. exchange sort if frequently referred to as a bubble sorB. exchange sort is the least expensivC. if random data are in an array that is to be sorted ,an insertion sort will give then best performance for large elements with small sort itemD. both insertion sort an selection sort require O( move6. 能体现层次数据模型的主要特征、表示实体类型和实体间联系的形式是A. 关键字B. 图标C. 指针链D. 表格7. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是A. 用户模式B. 逻辑模式C. 外模式D. 内模式8. In HDLC Protocol, when Supervisory Frame&#39;s type code is &#39;00&#39;. About the following statements, which is correct.A. Receive ReadyB. Receive not ReadyC. RejectD. Selective Reject9. 设无向树T有7片树叶,其余顶点度数均为3,则T中度为3的顶点的个数是A. 3B. 4C. 5D. 610. 局部性原理为下面的某个页面替换算法提供了合理的策略,它是A. FIFO算法B. LRU算法C. OPT算法D. 以上都不对11. 假设将某系统的某一部件的处理速度加快到10倍,但该部件的原处理时间仅为整个运行时间的30%,则采用加快措施后能使整个系统的性能提高A. 0.37B. 1.37C. 2.37D. 3.3712. DOS下应用FoxPro建立的应用程序和数据:Ⅰ.Windows Ⅱ.Macintosh Ⅲ.UNIX 不需改变就可以在其系统中运行的是A. Ⅰ、Ⅱ和ⅢB. 只有Ⅰ和ⅡC. 只有Ⅰ和ⅢD. 只有Ⅰ13. 两个局域网互连,除它们的传输层协议不同之外,其他层协议均相同,则连接两个局域网的设备是A. 中继器B. 透明网桥C. 源站网桥D. 网关14. 在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计阶段的是A. 需求分析B. 逻辑设计C. 概念设计D. 结构设计15. 堆栈存储器存取数据的方式是A. 先进先出B. 随机存取C. 先进后出D. 前三种方式都不是16.D17. The main goals of Network are **puter resources .The resources include hardware, data andA. gatewayB. routerC. softwareD. server18. There are two styles in the evolution of instruction set, that is CISC and RISC. Which chip belongs to the CISC?A. SOARB. V AX-11/780C. CDC6600D. IBM RTPC19. How many equal valuable relation does set E process? E= {0,1,2}A. 3B. 4C. 5D. 620. 软件设计将涉及软件的结构、过程和模块的设计,其中软件过程是指A. 软件开发过程B. 模块的操作细节C. 软件层次结构D. 模块间的关系21. 在目前流行的大多数PC机中,硬盘一般是通过硬盘接口电路连接到A. CPU局部总线B. PCI总线C. ISA总线D. 存储器总线22. What is the decimal value of the following 8-bit two&#39;s complement number? 1111 1001A. -7B. -3C. 3D. 723. 在请求页式存储管理中,如产生缺页中断,是因为查找的页不在A. 内存B. 外存C. 虚存D. 地址空间24. 公式的前束范式为A.B.C.D.25. 按逻辑结构划分,文件主要分为A. 系统文件、用户文件B. 临时文件、永久文件C. 流式文件、记录文件D. 索引文件、顺序文件26. 在HDLC协议中,传输过程由主站启动、从站用于接受命令,且只能在收到主站命令后,才可以作出应答的方式是A. 正常响应方式NRMB. 异常响应方式ARMC. 异步平衡方式ABMD. 非平衡数据链路操作方式27. What operation on relations R and S produces the relation shown below?A. UnionB. DifferenceC. IntersectionD. Division28. 处于就绪状态的进程,是指已经获得所有运行所需资源,除了A. 存储器B. CPUC. 外设D. 磁盘空间29. Which traversal method for a binary tree does the following Pascal code illustrate? procedure traverse (p:pointer); begin if pnil then begin traverse(p ↑ .left); process(p); traverse(p ↑ .right); end end;A. preorderB. postorderC. reorderD. inorder30. 在高速并行结构中,速度最慢但通用性最好的是A. 相联处理机B. 多处理机系统C. 阵列处理机D. 专用多功能单元31. 一个进程被唤醒意味着A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至就绪队列队首D. 进程变为就绪状态32. According to covering scope, which three classes **puter network be divided ?A) PSN, LAN, WANB) MAN, LAN, WAN C) PSN, FAST Ethernet, LAN D) PSN, FAST Ethernet, MANA. Receive ReadyB. Receive not ReadyC. RejectD. Selective Reject33. 程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具时应该注意A. 考虑控制流程B. 考虑信息隐蔽C. 遵守结构化设计原则D. 支持逐步求精34. 网络中进行数据交换必须遵守网络协议,一个网络协议主要由三个要素组成:语法、语义和A. 时序B. 软件C. 原语D. 数据35. 判定表和判定树是数据流图中用以描述加工的工具,它常描述的对象是A. 操作条目B. 层次分解C. 逻辑判断D. 组合条件36. There are several periods in a computer, the longest period isA. Instruction periodB. Machine periodC. Beat periodD. CPU period37. 在软件结构设计中,好的软件结构设计应该力求做到A. 顶层扇出较少,中间扇出较高,底层模块低扇入B. 顶层扇出较高,中间扇出较少,底层模块高扇入C. 顶层扇入较少,中间扇出较高,底层模块高扇入D. 顶层扇出较高,中间扇出较少,底层模块低扇入38. 设有两个散列函数H1(K)=K mod 13和H2(K)=K mod 11+1,散列表为T[0…12],用二次散列法解决冲突。

信息化项目软件开发费用测算规范

信息化项目软件开发费用测算规范
I
DBXX/ XXXXX—XXXX
前言
本标准按照GB/T 1.1-2009的规则起草。 本标准由北京经济和信息化委员会提出并归口。 本标准由北京经济和信息化委员会组织实施。 本标准的主要起草单位: 北京软件和信息服务交易所有限公司、北京软件行业协会过程改进分会、 北京宇信易诚科技有限公司、中科宇图天下科技有限公司、北京国铁华晨通信信息技术有限公司、北京 中科汇联信息技术有限公司、北京合力金桥系统集成技术有限公司、远光软件股份有限公司、北京云星 宇交通工程有限公司。 本标准主要起草人:王海青、王钧、代寒玲、杨少梁、胡才勇、刘东华、李世欣、刘俊、罗志强、 刘先佰、熊世萍、黄建元、徐志斌、张超辉、麻妮娜。
(报批稿)
(本稿完成日期:2013-5-6)
- XX - XX 发布
- XX - XX 实施ຫໍສະໝຸດ 北京市质量技术监督局 发 布
DBXX/ XXXXX—XXXX
目次
前言.................................................................................III 1 范围 .............................................................................. 1 2 规范性引用文件 .................................................................... 1 3 术语、定义和缩略语 ................................................................ 1
3.1 术语和定义 .................................................................... 1 3.2 缩略语 ........................................................................ 4 4 软件开发费用构成 .................................................................. 4 4.1 费用构成 ...................................................................... 4 4.2 直接人力成本构成 .............................................................. 5 4.3 直接非人力成本构成 ............................................................ 5 4.4 间接人力成本构成 .............................................................. 5 4.5 间接非人力成本构成 ............................................................ 5 4.6 毛利润构成 .................................................................... 5 5 软件开发费用测算 .................................................................. 5 5.1 软件开发费用测算过程 .......................................................... 5 5.2 规模测算 ...................................................................... 6 5.3 工作量测量 .................................................................... 7 5.4 工期测算 ...................................................................... 8 5.5 费用测算 ...................................................................... 8 附录 A(规范性附录) 功能点计数基本规则 ............................................. 10 附录 B(规范性附录) 参数表 ......................................................... 13 附录 C(资料性附录) 常用模板样例 ................................................... 15 附录 D(资料性附录) 测算示例 ....................................................... 19 参考文献 ............................................................................ 22

实证软件工程方法 英文

实证软件工程方法 英文

实证软件工程方法英文Empirical Software Engineering (ESE) Methods.Empirical Software Engineering (ESE) is a research discipline within Software Engineering that focuses on the use of empirical methods to validate and improve software engineering processes, methods, tools, and theories. It provides a systematic and objective approach to software engineering that is based on the collection and analysis of data. ESE methods are used to evaluate the effectiveness of different software engineering practices and to identify areas for improvement.There are a variety of ESE methods that can be used to evaluate software engineering practices. These methods can be classified into two main categories:Observational methods: These methods involve observing the behavior of software engineers and software systems without interfering with their operations. Observationalmethods can be used to collect data on a variety of topics, such as the time it takes to develop software, the number of defects that are introduced into software, and the satisfaction of software users.Experimental methods: These methods involve manipulating the variables that affect software engineering practices in order to measure the impact of those changes. Experimental methods can be used to compare the effectiveness of different software engineering practices, to identify the factors that lead to software defects, and to develop new software engineering tools and methods.ESE methods have been used to evaluate a wide range of software engineering practices, including:Agile development methods: ESE methods have been used to compare the effectiveness of agile development methods to traditional software development methods.Code review: ESE methods have been used to evaluate the effectiveness of code review practices.Defect tracking: ESE methods have been used to evaluate the effectiveness of defect tracking systems.Software testing: ESE methods have been used to evaluate the effectiveness of software testing techniques.Software quality: ESE methods have been used to evaluate the quality of software products.ESE methods have made a significant contribution to the field of software engineering. These methods have provided valuable insights into the effectiveness of different software engineering practices and have helped to identify areas for improvement. As the field of software engineering continues to evolve, ESE methods will continue to play an important role in the development of new and improved software engineering practices.Here are some specific examples of how ESE methods have been used to improve software engineering practices:A study by Kitchenham et al. (2001) found that agile development methods were more effective than traditional software development methods in terms of productivity, quality, and customer satisfaction.A study by Fenton and Pfleeger (2008) found that code review practices were effective in reducing the number of defects in software products.A study by Graves et al. (2009) found that defect tracking systems were effective in helping software engineers to identify and fix defects.A study by Begel and Zimmermann (2010) found that software testing techniques were effective in identifying defects in software products.A study by Basili et al. (2012) found that software quality models were effective in predicting the quality of software products.These are just a few examples of the many ways that ESEmethods have been used to improve software engineering practices. As the field of software engineering continues to evolve, ESE methods will continue to play an important role in the development of new and improved software engineering practices.## Benefits of Using ESE Methods.There are many benefits to using ESE methods to evaluate software engineering practices. These benefits include:Increased objectivity: ESE methods provide a more objective way to evaluate software engineering practices than traditional methods, such as expert opinion or intuition.Greater accuracy: ESE methods can provide more accurate results than traditional methods, because they are based on data that has been collected and analyzed in a systematic way.Improved decision-making: ESE methods can help software engineers to make better decisions about which software engineering practices to use, because they provide objective evidence about the effectiveness of different practices.Increased efficiency: ESE methods can help software engineers to be more efficient in their work, because they can identify areas for improvement and focus their efforts on the most effective practices.Enhanced customer satisfaction: ESE methods can help software engineers to develop software products that are of higher quality and that meet the needs of customers, because they provide objective evidence about the effectiveness of different software engineering practices.## Conclusion.ESE methods are a valuable tool for improving software engineering practices. These methods provide a systematic and objective approach to evaluating software engineeringpractices and identifying areas for improvement. ESE methods have been used to evaluate a wide range of software engineering practices, and they have made a significant contribution to the field of software engineering. As the field of software engineering continues to evolve, ESE methods will continue to play an important role in the development of new and improved software engineering practices.。

软件测试专业英语

软件测试专业英语

常见专业术语:组织过程定义控制程序process for organizational process definition 软件生命周期模型software life cycle model组织标准过程集合描述description of organization's set of standard process.组织标准过程裁剪指南tailoring guideline for organizational standard process过程数据库使用规范usage specification for process metrics library过程财富度量报告measurement report for process asserts项目生命周期模型选择工作单sheet for selecting project software lifecycle model组织过程焦点控制程序process for organizational process focus EPG工作章程EPG charterEPG工作考核细则performance appraisal rules for EPG member过程改进建议处理控制程序process for handling process improvement proposal过程定义文件配置管理规范configuration management specification for process definition document过程行动组(PAT)工作记录process action team (PAT) working record过程定义文件试验结果评定表evaluation form for pilot result of process definition document过程状态季度报告模板process status quarterly report template过程行动计划process action plan过程推广计划process promotion plan过程试验计划process pilot plan公司年度过程评估计划organizational process assessment annual plan 公司过程改进总体要求 General objectives for organizational process improvement会议记录meeting minutes过程改进建议和意见汇总表summary form of comments and suggestions of PI过程改进实践状态清单 status list for process improvement practice EPG工作度量epg metrics程序文件评审讨论问题记录表issue record of process document review过程改进总体计划General plan for process improvement过程改进工作度量报告 metrics report for process improvement过程豁免申请单 process exempt application过程改进任务列表 process improvement tasks list组织级培训过程控制程序organization- level training process兼职讲师管理规定part-time instructor management regulation 免修规程training waiver procedure培训课程开发规程training course development procedure外购培训管理规程outsourcing training management procedure培训效果评估规定training effectiveness evaluation procedure 培训效果跟踪表 training effectiveness tracking record员工培训计划申请表application for employee training plan员工外训学习申请表application for employee external training 免修培训申请表application for training waiver战略培训需求表demands form for strategic training需求管理控制程序requirement management process需求变更控制规程requirement change control procedure变更影响分析控制规程 Impact analysis procedure of change确定项目已定义过程规程procedure for establishing project's defined process项目协调与沟通规程project communication & negotiation procedure 风险管理控制程序risk management process风险管理指导书risk management guidebook风险管理计划risk management plan风险列表risk list商业现货软件产品选择控制程序COTS product selection process COTS软件产品评价准则COTS product evaluation criteriaCOTS软件产品评价报告COTS product evaluation report供应商合作通知单cooperation notification to supplier第三方产品评估表the 3rd party's product evaluation form商业现货采购控制程序 COTS product procurement process软件子合同管理控制程序software sub-contract management process子合同评审规程sub-contract review procedure子合同开发监管规程sub-contract development monitoring procedure子合同配置管理规程sub-contract Configuration Management procedure子合同配置监督计划模版sub-contract configuration monitoring plan template子合同QA审核规程sub-contract QA audit procedure软件子承包商评定标准 sub-contractor evaluation criteria直真软件开发子合同模板(商务) contract template (business) for ZZ's software sub-contract子合同开发过程监控报告sub-contract development monitoring report子合同开发过程监控计划sub-contract development monitoring plan子合同工作计划sub-contract working plan产品(项目)子合同申请单application form for product( project ) sub-contract候选子承包商评估报告 candidate sub-contractor evaluation report 软件子合同评审记录software sub-contract review record项目策划控制程序project planning process规模估计规程size estimation procedure工作量估计规程effort estimation procedure编制进度规程schedule generation procedure项目策划计划plan for project planningPDSP文档PDSP document项目环境列表project's environment list项目的任务WBS列表project's task WBS list产品规模估计表product size estimation form工作量估计表effort estimation form关键计算机资源表CCR list外来工作产品清单out-sourcing work product list主要工作产品清单main work product list交付工作产品清单deliverable work product list人力资源需求表HR demands form人力资源评估表HR evaluation form项目人员计划表project's HR plan项目预算工时表project's budget/ effort form项目需增加硬件、软件成本预算表Budget form for hardware & software added共利益者协调计划表stakeholder negotiation plan资料管理计划表materials management plan开发计划development plan项目培训计划project training plan项目进度表project schedule项目总体进度表abstract project schedule合同项目立项报告initiating report for contract project研发项目立项报告initiating report for R&D project项目跟踪监控程序SPTO process研发中心例会管理规定 Review meeting procedure for R&D center研发项目组例会管理规定Review meeting procedure for R&D project team项目关闭控制程序project closure process里程碑评审规程milestone review procedure软件开发计划变更规程 Software development plan revise procedure 对外承诺变更控制规程 External commitment change procedure测量与分析控制程序 measurement & analysis process度量项定义规程measurement item definition procedure测量目标选择表measurement goal selection list项目测量数据集合project's metrics set项目度量周报project's metrics weekly report测量规格说明书metrics specification度量报告metrics report项目度量计划project's measurement plan决策分析与解决方案控制程序discussion analysis and resolution processDAR运用指南DAR practice guideline决策方案评价准则desiccation resolution evaluation criteria 过程与产品质量保证控制程序process& product quality assurance process不符合问题处理规程non-compliance issue handle procedure项目过程活动评审规程 project's process activity review procedure 项目工作产品审核规程 project's work product audit procedure质量保证活动策划规程 SQA planning procedure不符合问题等级标准non-compliance issue grade standard评价工作产品任务集合 work product evaluation tasks set评价过程活动任务集合 process activity evaluation tasks set不符合问题报告表non-compliance issue report不符合问题跟踪记录表 non-compliance issue tracking record工作产品审核记录表work product audit record过程活动评审记录表process activity review record项目QA计划进度表project's QA planned schedule 外部专家审核报告external expert audit report跨项目QA报告QA report across projects项目QA报告project QA report项目QA计划project QA plan软件配置管理控制程序 software configuration management process配置管理标准configuration management standard测试阶段CI变更规程CI change procedure in testing phase产品出库规程product check-out procedure产品入库规程product check-in procedure产品发布管理规程product release management procedure产品日常备份规程product daily backup procedure配置变更分析规程configuration change impact analysis procedure配置变更管理子过程configuration change management sub-process 配置审核管理规程configuration audit management procedure产品库管理规程product library management procedure配置项状态报告CI status report功能配置审核报告模板 FCA report template物理配置审核报告模板 FCA report template基线配置审核报告模板 baseline configuration audit report template 软件送测单delivering software to testing form日常备份记录daily backup record配置项清单CI list产品发布通知product release notification产品发布报告product release report配置管理计划模版CM plan template配置管理任务列表CM tasks list配置审核问题跟踪记录表configuration audit issues tracking record文件归档申请单application form for document archiving项目SCM任务单project's SCM task list最终产品规模测量记录final product size metrics record销售管理控制程序sales management control process售前支持控制程序pre-sales support control process售前技术支持计划pre-sales technical support plan售前技术申请pre-sales technical application产品定义过程控制程序 product definition process需求调研规程requirement investigation procedure软件需求分析控制程序 software requirement analysis process面向对象需求分析规程 O-O requirement analysis procedure需求分析方法工具指南 guideline for methods /tools of requirement analysis需求缺陷分类标准standard of requirement defect types需求规格说明Checklist checklist for requirement specification需求分析计划跟踪表requirement analysis plan and tracking record 需求不一致项跟踪记录表requirement defect tracking record 产品(产品构件)需求product ( product component) requirement产品(产品构件)需求规格说明书-By Object product ( product component) requirement specification template -by object产品(产品构件)需求规格说明书-By Feature product ( productcomponent) requirement specification template -by feature产品(产品构件)需求规格说明书-By User Class product( product component) requirement specification template -by user class产品(产品构件)需求规格说明书-By Fun Hierarchy product( product component) requirement specification template -by Fun Hierarchy软件概要设计控制程序 software preliminary design process软件详细设计控制程序 software detailed design process概要设计说明书模板一(面向对象) PD document template (OO)概要设计说明书模板PD document template软件开发计划模版SDP template数据库设计说明书模板 database design document template用户界面设计说明书user interface design document详细设计说明书模板DD document template产品实现控制程序-代码实现product realization process-coding设计问题跟踪记录表tracking record for design issuesC++编码规范C++ coding specificationJAVA编程规范JAVA coding specification产品构件实现清单product component realization list产品构件实现方法和计划product component realization method and plan产品实现控制程序-支持文档实现product realization process- supportive document realization产品集成控制程序product integration process接口管理规程interface management procedure集成产品评价规程integrated product evaluation procedure《产品集成策略》模版 product integration strategy template《产品集成评价报告》模版product integration evaluation report template接口跟踪表interface tracking record接口不一致项列表interface non-compliance list部件测试控制程序component testing process产品集成测试控制程序product integration testing process系统测试控制程序system testing processFIRST OFF测试控制程序FIRST OFF testing processBUG管理系统使用规范bug management system usage specification BUG确认规程Bug confirmation procedure正式评审规程formal review procedure同级评审指导书PR guidebook技术评审规程technical review procedure同级评审策划规程PR planning procedure正式评审申请表formal review application技术评审申请表technical review application评审工作分析报告review analysis report评审工作表review working form评审准备数据表review preparation metric form同级评审计划PR plan评审记录和缺陷跟踪表 review record and defect tracking record系统测试数据和测试环境设计system testing metrics and testing environment design部件测试数据和测试环境设计component testing metrics and testing environment design部件测试用例component testing use-case系统测试用例system testing use-case系统测试方案system testing scheme部件测试方案component testing scheme接受系统测试检查单 system testing checklist接受产品集成测试检查单 product integration testing checklist接受部件测试检查单 component testing checklist接受First off测试检查单 FIRST OFF testing checklistFirst off测试计划Fist Off testing plan测试计划testing plan产品集成测试计划product integration testing plan测试问题记录表testing issue record单个自由产品测试总结 independent product testing summary测试报告testing report测试总结testing summary产品集成测试报告product integration testing report代码走查规程code walk-through procedure单元测试规程unit testing procedure制定确认策划规程validation planning procedure确认规程validation procedure需求确认方法描述requirement validation methods description 产品确认方法描述product validation methods description确认计划书模板validation plan template产品验收控制程序product acceptance processFIRST OFF规程Fist off procedure产品发布规程product release procedure产品移交规程product delivery procedure系统集成控制程序system integration process系统集成项目测试验收规程acceptance procedure for system integration project testing系统集成项目维护规程 maintenance procedure for system integration project售后服务控制程序post-sales service control process客户服务请求处理表handle form for customer service application 客户服务请求解决情况统计表statistics for closure status of customer service application客户满意度调查表customer satisfaction questionnaire客户满意度统计分析报告statistics analysis report for customer satisfaction客户满意改进方案customer satisfaction improvement plan售后客户档案(原有文件) post-sales customer profile ( original documents)维护项目控制程序maintenance project control process一级维护任务单the 1st level maintenance tasks form维护项目立项报告initiating report for maintenance project 维护项目工作计划working plan for maintenance project现场服务记录on-site service record现场培训记录on-site training record维护项目总结报告summary report for maintenance project二级任务单the 2nd tasks form项目结束通知单project closure notification项目决算报告project settlement report软件维护控制程序software maintenance control process维护需求记录表maintenance demands record软件维护申请表software maintenance application软件维护记录单software maintenance formAcceptance Testing--可接受性测试一般由用户/客户进行的确认是否可以接受一个产品的验证性测试. actual outcome--实际结果被测对象在特定的条件下实际产生的结果.Ad Hoc Testing--随机测试测试人员通过随机的尝试系统的功能,试图使系统中断.algorithm--算法(1)一个定义好的有限规则集,用于在有限步骤内解决一个问题;(2)执行一个特定任务的任何操作序列.algorithm analysis--算法分析一个软件的验证确认任务,用于保证选择的算法是正确的、合适的和稳定的,并且满足所有精确性、规模和时间方面的要求.Alpha Testing--Alpha测试由选定的用户进行的产品早期性测试.这个测试一般在可控制的环境下进行的.analysis--分析(1)分解到一些原子部分或基本原则,以便确定整体的特性;(2)一个推理的过程,显示一个特定的结果是假设前提的结果;(3)一个问题的方法研究,并且问题被分解为一些小的相关单元作进一步详细研究.anomaly--异常在文档或软件操作中观察到的任何与期望违背的结果.application software--应用软件满足特定需要的软件.architecture--构架一个系统或组件的组织结构.ASQ--自动化软件质量(Automated Software Quality)使用软件工具来提高软件的质量.assertion--断言指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件.assertion checking--断言检查用户在程序中嵌入的断言的检查.audit--审计一个或一组工作产品的独立检查以评价与规格、标准、契约或其它准则的符合程度.audit trail--审计跟踪系统审计活动的一个时间记录.Automated Testing--自动化测试使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多.Backus-Naur Form--BNF范式一种分析语言,用于形式化描述语言的语法baseline--基线一个已经被正式评审和批准的规格或产品,它作为进一步开发的一个基础,并且必须通过正式的变更流程来变更.Basic Block--基本块一个或多个顺序的可执行语句块,不包含任何分支语句.basis test set--基本测试集根据代码逻辑引出来的一个测试用例集合,它保证能获得100%的分支覆盖.behavior--行为对于一个系统的一个函数的输入和预置条件组合以及需要的反应.一个函数的所有规格包含一个或多个行为.benchmark--标杆/指标/基准一个标准,根据该标准可以进行度量或比较.Beta Testing--Beta测试在客户场地,由客户进行的对产品预发布版本的测试.这个测试一般是不可控的.big-bang testing--大锤测试/一次性集成测试非渐增式集成测试的一种策略,测试的时候把所有系统的组件一次性组合成系统进行测试.Black Box Testing--黑盒测试根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子.bottom-up testing--由低向上测试渐增式集成测试的一种,其策略是先测试底层的组件,然后逐步加入较高层次的组件进行测试,直到系统所有组件都加入到系统.boundary value--边界值一个输入或输出值,它处在等价类的边界上.boundary value coverage--边界值覆盖通过测试用例,测试组件等价类的所有边界值.boundary value testing--边界值测试通过边界值分析方法来生成测试用例的一种测试策略.Boundary Value Analysis--边界值分析该分析一般与等价类一起使用.经验认为软件的错误经常在输入的边界上产生,因此边界值分析就是分析软件输入边界的一种方法.branch--分支在组件中,控制从任何语句到其它任何非直接后续语句的一个条件转换,或者是一个无条件转换.branch condition--分支条件branch condition combination coverage--分支条件组合覆盖在每个判定中所有分支条件结果组合被测试用例覆盖到的百分比. branch condition combination testing--分支条件组合测试通过执行分支条件结果组合来设计测试用例的一种方法.branch condition coverage--分支条件覆盖每个判定中分支条件结果被测试用例覆盖到的百分比.branch condition testing--分支条件测试通过执行分支条件结果来设计测试用例的一种方法.branch coverage--分支覆盖通过测试执行到的分支的百分比.branch outcome--分支结果见判定结果(decision outcome)branch point--分支点branch testing--分支测试通过执行分支结果来设计测试用例的一种方法.Breadth Testing--广度测试在测试中测试一个产品的所有功能,但是不测试更细节的特性.bug--缺陷capture/playback tool--捕获/回放工具参考capture/replay toolCapture/Replay Tool--捕获/回放工具一种测试工具,能够捕获在测试过程中传递给软件的输入,并且能够在以后的时间中,重复这个执行的过程.这类工具一般在GUI测试中用的较多. CASE--计算机辅助软件工程(computer aided software engineering) 用于支持软件开发的一个自动化系统.CAST--计算机辅助测试在测试过程中使用计算机软件工具进行辅助的测试.cause-effect graph--因果图一个图形,用来表示输入(原因)与结果之间的关系,可以被用来设计测试用例.certification--证明一个过程,用于确定一个系统或组件与特定的需求相一致.change control--变更控制一个用于计算机系统或系统数据修改的过程,该过程是质量保证程序的一个关键子集,需要被明确的描述.code audit--代码审计由一个人、组或工具对源代码进行的一个独立的评审,以验证其与设计规格、程序标准的一致性.正确性和有效性也会被评价.Code Coverage--代码覆盖率一种分析方法,用于确定在一个测试套执行后,软件的哪些部分被执行到了,哪些部分没有被执行到.Code Inspection--代码检视一个正式的同行评审手段,在该评审中,作者的同行根据检查表对程序的逻辑进行提问,并检查其与编码规范的一致性.Code Walkthrough--代码走读一个非正式的同行评审手段,在该评审中,代码被使用一些简单的测试用例进行人工执行,程序变量的状态被手工分析,以分析程序的逻辑和假设. code-based testing--基于代码的测试根据从实现中引出的目标设计测试用例.coding standards--编程规范一些编程方面需要遵循的标准,包括命名方式、排版格式等内容. Compatibility Testing--兼容性测试测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等.complete path testing--完全路径测试completeness--完整性实体的所有必须部分必须被包含的属性.complexity--复杂性系统或组件难于理解或验证的程度.Component--组件一个最小的软件单元,有着独立的规格Component Testing--组件测试computation data use--计算数据使用一个不在条件中的数据使用. computer system security--计算机系统安全性计算机软件和硬件对偶然的或故意的访问、使用、修改或破坏的一种保护机制.condition--条件一个不包含布尔操作的布尔表达式,例如:Acondition coverage--条件覆盖通过测试执行到的条件的百分比.condition outcome--条件结果条件为真为假的评价.configuration control--配置控制配置管理的一个方面,包括评价、协调、批准、和实现配置项的变更. configuration management--配置管理一套技术和管理方面的原则用于确定和文档化一个配置项的功能和物理属性、控制对这些属性的变更、记录和报告变更处理和实现的状态、以及验证与指定需求的一致性.conformance criterion--一致性标准判断组件在一个特定输入值上的行为是否符合规格的一种方法. Conformance Testing--一致性测试测试一个系统的实现是否和其基于的规格相一致的测试.consistency--一致性在系统或组件的各组成部分和文档之间没有矛盾,一致的程度. consistency checker--一致性检查器一个软件工具,用于测试设计规格中需求的一致性和完整性.control flow--控制流程序执行中所有可能的事件顺序的一个抽象表示.control flow graph--控制流图通过一个组件的可能替换控制流路径的一个图形表示.conversion testing--转换测试用于测试已有系统的数据是否能够转换到替代系统上的一种测试. corrective maintenance--故障检修用于纠正硬件或软件中故障的维护.correctness--正确性软件遵从其规格的程度.correctness--正确性软件在其规格、设计和编码中没有故障的程度.软件、文档和其它项满足需求的程度.软件、文档和其它项满足用户明显的和隐含的需求的程度. coverage--覆盖率用于确定测试所执行到的覆盖项的百分比.coverage item--覆盖项作为测试基础的一个入口或属性:如语句、分支、条件等.crash--崩溃计算机系统或组件突然并完全的丧失功能.criticality--关键性需求、模块、错误、故障、失效或其它项对一个系统的操作或开发影响的程度.criticality analysis--关键性分析需求的一种分析,它根据需求的风险情况给每个需求项分配一个关键级别. cyclomatic complexity--循环复杂度一个程序中独立路径的数量.data corruption--数据污染违背数据一致性的情况.data definition--数据定义一个可执行语句,在该语句上一个变量被赋予了一个值.data definition C-use coverage--数据定义C-use覆盖在组件中被测试执行到的数据定义C-use使用对的百分比.data definition C-use pair--数据定义C-use使用对一个数据定义和一个计算数据使用,数据使用的值是数据定义的值.data definition P-use coverage--数据定义P-use覆盖在组件中被测试执行到的数据定义P-use使用对的百分比.data definition P-use pair--数据定义P-use使用对一个数据定义和一个条件数据使用,数据使用的值是数据定义的值.data definition-use coverage--数据定义使用覆盖在组件中被测试执行到的数据定义使用对的百分比.data definition-use pair--数据定义使用对一个数据定义和一个数据使用,数据使用的值是数据定义的值.data definition-use testing--数据定义使用测试以执行数据定义使用对为目标进行测试用例设计的一种技术.data dictionary--数据字典(1)一个软件系统中使用的所有数据项名称,以及这些项相关属性的集合.(2)数据流、数据元素、文件、数据基础、和相关处理的一个集合. data flow analysis--数据流分析一个软件验证和确认过程,用于保证输入和输出数据和它们的格式是被适当定义的,并且数据流是正确的.data flow coverage--数据流覆盖测试覆盖率的度量是根据变量在代码中的使用情况.data flow diagram--数据流图把数据源、数据接受、数据存储和数据处理作为节点描述的一个图形,数据之间的逻辑体现为节点之间的边.data flow testing--数据流测试根据代码中变量的使用情况进行的测试.data integrity--数据完整性一个数据集合完全、正确和一致的程度.data use--数据使用一个可执行的语句,在该语句中,变量的值被访问.data validation--数据确认用于确认数据不正确、不完整和不合理的过程.dead code--死代码在程序操作过程中永远不可能被执行到的代码.Debugging--调试发现和去除软件失效根源的过程.decision--判定一个程序控制点,在该控制点上,控制流有两个或多个可替换路由. Decision condition--判定条件判定内的一个条件.decision coverage--判定覆盖在组件中被测试执行到的判定结果的百分比.decision outcome--判定结果一个判定的结果,决定控制流走哪条路径.decision table--判定表一个表格,用于显示条件和条件导致动作的集合.Depth Testing--深度测试执行一个产品的一个特性的所有细节,但不测试所有特性.比较广度测试. design of experiments--实验设计一种计划实验的方法,这样适合分析的数据可以被收集.design-based testing--基于设计的测试根据软件的构架或详细设计引出测试用例的一种方法.desk checking--桌面检查通过手工模拟软件执行的方式进行测试的一种方式.diagnostic--诊断检测和隔离故障或失效的过程.dirty testing--肮脏测试参考负面测试(negative testing)disaster recovery--灾难恢复一个灾难的恢复和重建过程或能力.documentation testing--文档测试测试关注于文档的正确性.domain--域值被选择的一个集合.domain testing--域测试参考等价划分测试(equivalence partition testing)dynamic analysis--动态分析根据执行的行为评价一个系统或组件的过程.Dynamic Testing--动态测试通过执行软件的手段来测试软件.embedded software--嵌入式软件软件运行在特定硬件设备中,不能独立于硬件存在.这类系统一般要求实时性较高.emulator--仿真一个模仿另一个系统的系统或设备,它接受相同的输入并产生相同的输出. End-to-End testing--端到端测试在一个模拟现实使用的场景下测试一个完整的应用环境,例如和数据库交互,使用网络通信等.entity relationship diagram--实体关系图描述现实世界中实体及它们关系的图形.entry point--入口点一个组件的第一个可执行语句.Equivalence Class--等价类组件输入或输出域的一个部分,在该部分中,组件的行为从组件的规格上来看认为是相同的.equivalence partition coverage--等价划分覆盖在组件中被测试执行到的等价类的百分比.equivalence partition testing--等价划分测试根据等价类设计测试用例的一种技术.Equivalence Partitioning--等价划分组件的一个测试用例设计技术,该技术从组件的等价类中选取典型的点进行测试.error--错误IEEE的定义是:一个人为产生不正确结果的行为.error guessing--错误猜测根据测试人员以往的经验猜测可能出现问题的地方来进行用例设计的一种技术.error seeding--错误播种/错误插值故意插入一些已知故障(fault)到一个系统中去的过程,目的是为了根据错。

NUS-ISS EBAC硕士入学考试试卷样本

NUS-ISS EBAC硕士入学考试试卷样本

NUS-ISS Master of TechnologyEntrance Test Sample QuestionsSECTION A: General for Enterprise Business Analytics& Intelligent Systems (20 Questions)•Mathematical•Reasoning•Logical Capabilities1. A man on tour travelling on the Tour de France initially travels 80 km at 32 km/hr andthen the next 160 km at 40 km/hr. The average speed for the first 160 km of the tour is:A.25 km/hrB.34.2 km/hrC.35.56 km/hrD.40 km/hrE.44.2 km/hr2.NUS organised a special IT careers fair 40% of the local students and 50% of theforeign students participated in the same. What fraction of the total number of students took part in the fair?A.40%.B.45%C.50%.D.55%E.It is not possible to make an estimate3.Which of the below words is most likely to be the opposite to “passive”A.ImpassiveB.ReceptiveC.UnresponsiveD.EnthusiasticE.Active4. A fire which breaks out in the floor of a building and then subsequently spreads to allfloors of the building is best described as?A.An accidentB.A disasterC.A conflagrationD.A blazeE.An Incident5.“Agile software development describes a set of values and principles for softwaredevelopment under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams; It advocates adaptive planning,evolutionary development, early delivery, and continuous improvement, and itencourages rapid and flexible response to change”- Wikipedia, the free encyclopedia Based on the above description; what techniques or approaches are not employed in Agile SoftwareA.Evolutionary DevelopmentB.Teams with members coming from different business areasC.Adherence to challenging timescales and detailed plansD.Early delivery of working softwareE.Managing evolving requirementsSECTION B: Enterprise Business Analytics (30 Questions)•Basic Statistics•Data Visualisation1.The difference between the largest and the smallest data values is theA. SkewnessB. Interquartile rangeC. RangeD, Coefficient of variationE. Kurtosis2.What is the Mean, Median and Mode of the following data: 34, 34, 36, 30, 32, 28, 30, 30?A. 32.15, 31, 31B. 31.55, 30, 30C. 32, 30, 31D, 31.75, 31 ,30E. 31.55, 31 ,303. A clothing shop in the USA that specializes in warm outdoor clothing has experiencedhigher sales during months of October, November and December. Monthly sales patterns for this shop over the year are an example of which component of time series.?A.TrendB.SeasonalC.CyclicalD.IrregularE.Disruptive4.Two events, A and B, are mutually exclusive.•The probability of A occurring = P(A); (0 < P(A) <1)•The probability of B occurring = P(B); (0 < P(B) <1)Suppose event A occurs, then the probability of the occurrence of event B is?F.0G. 1H.P(B)I.P(A) * P(B)J.P(B)/P(A)5.The following statements are made:•Some Lawyers are fools.•Some fools are poor.Which of the below statements are true?K.“Some Lawyers are poor”L.“Some poor people are Lawyers”M.“Some Lawyers are poor” or “Some poor people are Lawyers”N.Neither “Some Lawyers are poor” and “Some poor people are Lawyers”O. Both “Some Lawyers are poor” and “Some poor people are Lawyers”SECTION B: Intelligent Systems (30 Questions)•Problem-solving skills•Computation abilities1.Which of the following pseudo code blocks will be executed by the following pseudocode?noSides := 4sidesEqual := Trueangles90 := TrueIf noSides = 3 Then// I am a triangleElse noSides = 5 Then// I am a pentagonElse If sidesEqual = True and angles90 = False Then//I am a rhombusElse If sidesEqual = False Then//I am a rectangleElse If angles90 = True Then//I am a squareend Ifend Ifend Ifend Ifend IfA. I am a triangle.B. I am a pentagon.C. I am a rhombus.D. I am a rectangle.E. I am a square.2.The payoff (X) for buying a $1 lottery ticket has the following probability distribution.Payoff ProbabilityX=Win $100 0.1%X= = Lose $0 99,9%What is the expected value of X?A.$50B.$10C.$1D.$0.1E.$0.013. A private educational advisor has guaranteed that any high school student who is taught byhim well have a 90% chance of entering the prestigious National University. Two high school students are currently being taught by the advisor. Assuming each student’s results are independent what is the probability that at least one of them will be successful inentering the National University?A.0.5B.0.65C.0.88D.0.9E.0.994..Peter walks south for 20 m, turns right and walks another 10 m.He then turns left and walks slowly for 10 m. Then he turns right, and runs 20m and stops.In which direction is he with respect to his initial position?A.South-EastB.North-EastC.North-WestD.South-WestE.South5.What is the next number in the series: 42, 41, 39, 36, 35, 33…?A.32B.31C.30D.29E.28Software Engineering (1 section, 42 questions) •Mathematical/Reasoning/Logical capabilities•General IT knowledge•Programming•Software development practices•Basic software technology (mobile/web)•Basic project management1.A man on tour travelling on the Tour de France initially travels 80 km at 32 km/hr and then the next 160 km at 40 km/hr. The average speed for the first 160 km of the tour is:A. 25 km/hrB. 34.2 km/hrC. 35.56 km/hrD. 40 km/hrE. 44.2 km/hr2.Which of the below words is most likely to be the opposite to “passive”A. ImpassiveB. ReceptiveC. UnresponsiveD. EnthusiasticE. Active3.“Agile software development describes a set of values and principles for softwaredevelopment under which requirements and solutions evolve through thecollaborative effort of self-organizing cross-functional teams; It advocatesadaptive planning, evolutionary development, early delivery, and continuousimprovement, and it encourages rapid and flexible response to change”-Wikipedia, the free encyclopaediaBased on the above description; what techniques or approaches are not employed in Agile SoftwareA. Evolutionary DevelopmentB. Teams with members coming from different business areasC. Adherence to challenging timescales and detailed plansD. Early delivery of working softwareE. Managing evolving requirements4. One of the tasks involved in preparing a project plan is Precedence Analysis . Which of the below is a major reason for carrying out precedence analysis A. Estimating the Effort required to perform the tasks in the project plan B. Determining the resources required to carry out the tasks in the project plan C. Determine the links between the various tasks in the project plan D. Identifying the major requirements for the project E. All of the above are major reasons for carrying out precedence analysis5. Which example below represents the ‘Object Composition’ relationship? A.B.C.D.6. Which of the following statements is true about Version Control of software? A. It improves the quality of the software B. It restricts the number of versions of the software C. It is a mechanism to enable team members to work on the same copy of the source code D. It can only be used with source code and not on any other form of artefacts7.Inspect the code-snippets for the classe shown below.public class InterestRateComputer {public double interest (double amount) {double interest = 0;if (balance > MIN_BALANCE) {//compute the regular interestreturn interest;}else {//compute interest for below min balancereturn interest;}return -1;}}Which one of the following code-smells can you identify?A.Dead codeB.Duplicate codeC.Temporary FieldD.There is no code smell8.Which GoF design pattern is best represented by the following design?A.ObserverB.SingletonC.PrototypeD.Facade。

可行性测试的流程

可行性测试的流程

可行性测试的流程Feasibility testing is an essential step in the software development process. It involves evaluating whether a project is technically, economically, and operationally feasible before committing resources to it. This process helps to ensure that the proposed project is viable and achievable within the given constraints. 可行性测试是软件开发过程中至关重要的一步。

它涉及在投入资源之前评估项目在技术、经济和操作上是否可行。

这个过程有助于确保所提出的项目在给定的约束条件下可行和实现。

From a technical perspective, feasibility testing helps to identify any potential technical limitations or challenges that may arise during the development phase. By conducting thorough testing, developers can assess whether the proposed project can be implemented using existing technologies and infrastructure. 从技术的角度来看,可行性测试有助于识别在开发阶段可能出现的任何技术限制或挑战。

通过进行彻底的测试,开发人员可以评估是否可以使用现有技术和基础设施实施所提出的项目。

Economically, feasibility testing helps to determine the financial viability of a project. By estimating costs and potential returns on investment, stakeholders can make informed decisions about whether or not to proceed with the project. This analysis is crucial in ensuring that the project is financially sustainable and aligned with business goals. 从经济的角度来看,可行性测试有助于确定项目的财务可行性。

hou

hou

8、which of the following is a functional testing technique?()A、stress testingB、execution testingC、recovery testingD、regression testing9、which testing is used when there is high risk of a recent change affecting unchanged areas of the application software?()A、parallel testingB、control testingC、requirement testingD、regression testing10、which of the following statement holds true for a test bed?()A、a test bed is the key to quality and stability in a software testing processB、a test bed captures the input of test processC、a test bed helps define a test script in exact terms by defining the hardeare and software requirementsD、a test bed executes a test case on time简答题1、what os the henefits of early testing?Answer:Reduces the possibility of introducing errors when making changes.Reduces the prssibility of forgetting design decidions and conditions.Saves the time required to reanalyze designs and code.Reduces the possibilyty of similar errors by providing early feedback.Reduces the number of defects that leak through various phases of SDLC.2、which activities that the test planning phase includes?Answer:Performing requirements traceabilityEstimating test effortScheduling the test iterationsPlanning resourcesIdentifying testing approachesDefining test quality control3、what is the relationship between a defect and a fault?Answer:A defect is related to a fault in a way such that the fault is a defect that has not yet been identified.4、which four majior purposes that Defects are recorded for? Answer:To correct the defectTo report the status of the applicationTo gather statistices,used to develop defect resolutions,in future applicationsTo further improve hte software development process名词解释1、Quality Control is the process by which the quality of a product id compared whth specific standards,and action id taken if the quality does not match the applicable standards2、Validation:It is the process of wvaluating a software at the end of the SDLCto ensure that the software product complies whth software requirements.3、Regression testing:it is the process of retesting the software after the fixes to ensure that no or liaked defects are present in the software.计算题The following table lists the failures recorded for a software applicationMonth DatesMay 2ndJune 5ndJuly 4nd,28ndAugust 4nd,28nd1)Calculate the MTTF for June?2)Calculate the MTTF over four months?实践题Problem statement:The testing team for the online banking application tested the Account Summary module and found the following defects:The user name dose not match tha specificationsThe print Statement tab does not work.Give your solution to the problem?Answer:。

loc翻译

loc翻译

loc翻译"LOC" 是一个英文缩写,代表"Lines of Code",即代码行数。

它是用来衡量软件项目中代码量的一种常用度量单位。

LOC可以用于评估软件的复杂性、开发进度和资源投入等方面。

下面是一些关于LOC的用法和中英文对照例句:1. LOC的计算方法有多种。

常见的方法包括统计源代码文件中的物理行数,或者只统计非空白行。

There are multiple methods to calculate LOC. Common methods include counting the physical lines in the source code files or only counting non-blank lines.2. 项目的LOC数量可以用来评估软件的规模和复杂性。

The number of LOC in a project can be used to evaluate the scale and complexity of the software.3. LOC也可以用来衡量开发团队的工作量和进度。

LOC can also be used to measure the workload and progress of a development team.4. 一些软件开发过程模型(如函数点分析)可以将LOC作为估算项目开发时间和资源的依据。

Some software development process models, such as function point analysis, can use LOC as a basis for estimatingproject development time and resources.5. 增加LOC并不一定代表增加了软件的价值。

有时候,简洁的代码可能更易于维护和理解。

Increasing LOC does not necessarily mean increasing the value of the software. Sometimes, concise code may be easier to maintain and understand.6. 开发人员应该尽量遵守编码规范,以确保代码的可读性和可维护性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Estimating Software Development Effort based on Use Cases –Experiences from IndustryBente Anda1, Hege Dreiem2, Dag I.K. Sjøberg1,3and Magne Jørgensen1,31Department of InformaticsUniversity of OsloP.O. Box 1080 BlindernN-0316 OsloNORWAY{bentea,dagsj,magnej}@ifi.uio.no2Mogul Norway ASDrammensveien 134N-0277 OsloNORWAY{hege.dreiem@}3Simula Research LaboratoryP.O. Box 1080 BlindernN-0316 OsloNORWAYAbstract. Use case models are used in object-oriented analysis for capturing anddescribing the functional requirements of a system. Several methods for estimatingsoftware development effort are based on attributes of a use case model. This paperreports the results of three industrial case studies on the application of a method foreffort estimation based on use case points. The aim of this paper is to provideguidance for other organizations that want to improve their estimation processapplying use cases. Our results support existing claims that use cases can be usedsuccessfully in estimating software development effort. The results indicate that theguidance provided by the use case points method can support expert knowledge inthe estimation process. Our experience is also that the design of the use case modelshas a strong impact on the estimates.Keywords Use cases, estimation, industrial experience1. IntroductionUse case modelling is a popular and widely used technique for capturing and describing the functional requirements of a software system. The designers of UML recommend that developers follow a use case driven development process where the use case model is used as input to design, and as a basis for verification, validation and other forms of testing [11].A use case model defines the functional scope of the system to be developed. The functional scope subsequently serves as a basis for top-down estimates1. A method for using use case models as a basis for estimating software development effort was introduced by Karner [13]. This method is influenced by the function points method and is based on analogous use case points. The use of an adapted version of the use case points method is reported in [3] where it was found that attributes of a use case model are reliable indicators of the size of the resulting functionality. Use case models have also been found well suited as a basis for the estimation and planning of projects in a software improvement project [16]. However, we have been unable to find studies that describe the use case points estimation process in details. This paper describes a pilot study on three system development projects. The aim of this paper is to provide a detailed description of the method used and experiences from applying it.Our study was conducted in a software development company located in Norway, Sweden and Finland. The company has a total of 350 employees; 180 are located in Norway. Its primary areas of business are solutions for e-commerce and call-centers, in particular within banking and finance. The company uses UML and RUP in most of their software development projects, but currently there is neither tool nor methodological support in place to help the estimation process. The company wishes to improve the process of estimating software development effort. This is the origin of the process improvement initiative reported in this paper.We compared estimates based on use case points for three development projects with estimates obtained by experts, in this case senior members of the development projects, and actual effort. Our results support findings reported elsewhere [3,13,16] in that use case models may be suitable as a basis for effort estimation models. In addition to supporting other studies, we have experienced that the guidance provided by the use case points method appears to reduce the need for expert knowledge in the estimation process.UML does not go into details about how the use case model should be structured nor how each use case should be documented [17]. Therefore, use case models can be structured and documented in several alternative ways [19]. An experiment described in [2] indicated that the understandability of a use case model is influenced by its structure, 1In general, a top-down estimate is produced applying an estimation method to factors believed to influence the effort necessary to implement a system. The estimation method gives the total software development effort, which may then be divided on the different activities in the project according to a given formula. Adding up expected effort for all the activities planned in a project, on the contrary, produces a bottom-up estimate.and our results show that the structure of the use case model has a strong impact on the precision of the estimates. In particular, we experienced that the following aspects of the structure had an impact:•the use of generalization between actors2•the use of included and extending use cases3•the level of detail in the use case descriptionsAn important prerequisite for applying a use case based estimation method is that the use cases of the system under construction have been identified at a suitable level of detail. The use case model may be structured with a varying number of actors and use cases. These numbers will affect the estimates. The division of the functional requirements into use cases is, however, outside the scope of this paper.The remainder of this paper is organized as follows. Section 2 gives an overview of the use case points method. Section 3 describes related work and presents alternative methods and tools for estimation based on use cases. Section 4 describes the three development projects that were used as case studies and how data was collected from them. Our results are reported in Section 5. Lessons learned are reported in Section 6. Section 7 discusses threats to the validity of our results. Section 8 concludes and suggests directions for future work.2. The Use Case Points MethodThis section gives a brief overview of the steps in the use case points method as described in [18]. This estimation method requires that it should be possible to count the number of transactions in each use case. A transaction is an event occurring between an actor and the system, the event being performed entirely or not at all.4 The four steps of the use case points method are as follows:1.The actors in the use case model are categorized as simple, average or complex. Asimple actor represents another system with a defined API; an average actor is another system interacting through a protocol such as TCP/IP; and a complex actor may be a person interacting through a graphical user interface or a web-page. A weighting factor is assigned to each actor category:2Two actors can be generalized into a superactor if there is a large description that is common between those two actors.3Common behaviour is factored out in included use cases. Optional sequences of events are separated out in extending use cases [17].4Appendix A shows a use case from one of the development projects used in this study. The basic flow of events in the use case consists of 7 transactions. The use case is documented according to a template used throughout the company. The template ressembles those recommended in [6].•Simple: Weighting factor 1•Average: Weighting factor 2•Complex: Weighting factor 3The total unadjusted actor weight (UAW) is calculated counting the number of actors in each category, multiplying each total by its specified weighting factor, and then adding the products.2.The use cases are also categorized as simple, average or complex, depending on thenumber of transactions, including the transactions in alternative flows. Included or extending use cases are not considered. A simple use case has 3 or fewer transactions;an average use case has 4 to 7 transactions; and a complex use case has more than 7 transactions. A weighting factor is assigned to each use case category:•Simple: Weighting factor 5•Average: Weighting factor 10•Complex: Weighting factor 15The unadjusted use case weights (UUCW) is calculated counting the number of use cases in each category, multiplying each category of use case with its weight and adding the products. The UAW is added to the UUCW to get the unadjusted use case points (UUPC).3.The use case points are adjusted based on the values assigned to a number of technicalfactors (Table 1) and environmental factors (Table 2).Table 1. Technical complexity factors Factor Description Wght T1Distributed system2T2Response or throughputperformance objectives2T3End-user efficiency1T4Complex internal processing1T5Reusable code1T6Easy to install0.5T7Easy to use0.5T8Portable2T9Easy to change1T10Concurrent1T11Includes security features1T12Provides access for thirdparties1T13Special user trainingfacilities are required 1Table 2. Environmental factorsFactor Description WghtF1Familiar with RationalUnified Process1.5F2Application experience0.5F3Object-orientedexperience1F4Lead analyst capability0.5F5Motivation1F6Stable requirements2F7Part-time workers-1F8Difficult programminglanguage-1Each factor is assigned a value between 0 and 5 depending on its assumed influence on the project. A rating of 0 means the factor is irrelevant for this project; 5 means it is essential.The Technical Factor (TCF) is calculated multiplying the value of each factor (T1 –T13) in Table 1 by its weight and then adding all these numbers to get the sum called the TFactor. Finally, the following formula is applied:TCF = 0.6 + (.01*TFactor)The Environmental Factor (EF) is calculated accordingly by multiplying the value of each factor (F1 – F8) in Table 2 by its weight and adding all the products to get the sum called the Efactor. The formula below is applied:EF = 1.4+(-0.03*EFactor)The adjusted use case points (UCP) are calculated as follows:UCP = UUCP*TCF*EF4.Karner [13] proposed a factor of 20 staff hours per use case point for a project estimate,while Sparks states that field experience has shown that effort can range from 15 to 30 hours per use case point [21]. Schneider and Winters recommend that the environmental factors should determine the number of staff hours per use case point[18]. The number of factors in F1 through F6 that are below 3 are counted and added tothe number of factors in F7 through F8 that are above 3. If the total is 2 or less, use 20 staff hours per UCP; if the total is 3 or 4, use 28 staff hours per UCP. If the number exceeds 4, they recommend that changes should be made to the project so the number can be adjusted. Another possibility is to increase the number of staff hours to 36 per use case point.3. Related WorkThis section reports two experiences with estimation based on use case points. Two alternative methods and one tool for estimation based on use cases are described. Finally, use case points are compared to function points.3.1 Reported Experiences with Estimation Based on Use CasesArnold and Pedross reported experiences from using use case points to measure the size of 23 large-scale software systems [3]. Their method for counting use case points was inspired by, but not identical to, Karner’s method. Their experience was that the use case points method is a reliable indicator of the size of the delivered functionality. However, they observed that the analyzed use case models differed much in the degree of details and believed that the measured size may have differed according to this degree. They also found that free textual use case descriptions were insufficient to measure the software size.Martinsen and Groven reported a software process improvement experiment aimed at improving the estimation process using a use case model in estimating a pilot project [16]. Before the improvement project, the requirements specification was only loosely coupled with the effort and cost estimates. The requirement specification was written in natural language, which was found too informal to be a good basis for the necessary revision of the cost estimate or for restricting the implementation within the cost estimate. Adopting use case modelling, the customer and developers had a common, documented understanding of the requirements. The pilot project experienced an overrun on the estimates, but the overrun was smaller than the average for previous, similar projects. Hence, they found use cases useful as a basis for estimation and planning.3.2 Methods and Tools for Use Case EstimationAlternative methods for estimation based on use cases are described in [7] and [20]. In [7] the use case model is a basis for counting function points, which in turn may be used to obtain an estimate of effort. In [20] the use case model is used to estimate the number oflines of code (LOC) in the finished system. This number of LOC is subsequently used as the basis for an estimate.These two methods appear more complex than the one we have used as they respectively make assumptions on the relationship between use cases and function points, and between use cases and the number of LOC in the finished system. These assumptions have not been tested. The advantage of these methods, however, is that they may exploit the extensive experience with estimation using function points or lines of code.Optimize [22] is a tool that provides estimates based on use case models. Optimize measures the size of the problem counting and classifying scope elements in a project. The set of use cases in the project’s use case model is one kind of scope element. Other possibilities are, for example, the project’s classes, components and web-pages. Qualifiers are applied to each scope element. The complexity qualifier defines each scope element as simple or complex. The tool provides a set of default metrics, extrapolated from experience on more than 100 projects. The user can also customize metric data to produce estimates calibrated for an organization. Optimize organizes the scope elements and metric data to compute an estimate of effort and cost. We intend to evaluate this tool more thoroughly. So, far we have only tried it briefly on data from one of the development projects. Our impression is that the tool requires calibration to the particular organization to provide a reasonable estimate. Moreover, the cost of purchase and training makes it less accessible than the method with associated spreadsheet that we have used.3.3 Use Case Points and Function PointsThe number of function points measures the size of a software application in terms of its user required functionality [1]. Although the calculation of use case points has been strongly influenced by function points, there are several important differences leading to different strengths and weaknesses:•The function point standards do not require that the input documents follow a particular notation. Use case points are based on the use case model. This means that it is easier to develop estimation tools that automatically count use case points; the counting is based on available documents (use case models). This is an important difference, since counting function points frequently requires much effort and skill.•There are international standards on how to count function points. The concept of use case points, on the other hand, has not yet reached the level of standardization.Without a standard describing the appropriate level of detail in the requirement description, i.e., the use case model, there may be very large differences in how different individuals and organizations count use case points. Hence, it may currently be difficult to compare use case point values between companies. As reported in [12;14], even with a counting standard there may be significant differences in how people count function points.4. Data CollectionTable 3 shows some characteristics of the three software development projects used in our case studies.Table 3. Characteristics of three software development projects Characteristic Project A Project B Project CSize7 months elapsed time,4000 staff hours 3 months elapsed time,3000 staff hours4 months elapsed time,3000 staff hoursSoftware architecture Three-tier, establishedbefore the projectThree-tier, known, butnot established inadvanceAs project BProgramming environment Java (Visual Café andJBuilder), Web LogicMS Visual Studio Java (Jbuilder), WebLogicProject members 6 developers with 0 to17 years experience 6 developers with 0 to12 years experience5 developers with 2 to10 years experience, 4consultants wereinvolved part time.Application domain Finance CRM (Customerrelationship manage-ment within banking),part of a larger solutionBanking (support forsale of credit cards)Our research project was conducted in parallel with project A during a period of seven months. Projects B and C, on the other hand, were finished before the start of our research. We collected information about the requirements engineering process and about how the expert estimates were produced. We also collected information about the use case models and actual development effort.Data from project A was collected from the project documents, i.e., the use case model, iteration plan and spreadsheets with estimates and effort, and from several interviews with project members. Data from project B was collected from project documents, and from e-mail communication with people who had participated in the project. In this project the available documentation consisted of a detailed requirements specification with several use case diagrams and textual descriptions of use cases, project plan and time sheets recording the hours worked on the project. Data from project C was collected from project documents, including a requirements specification with brief textual descriptions of each use case, a use case model in Rational Rose with sequence diagrams for each use case, project plan and initial estimates, and from an interview with two of the project members. The collected data is shown in Table 4.Table 4. Data collection in the three development projects Data element Project A Project B Project CRequirements engineering 600 hours spent onrequirements specifi-cation. Relatively stablethroughout the project.Effort not available.Some serious changes inthe requirements duringthe project.Effort not available.Stable requirementsthroughout the project.Expert estimate Produced by a seniordeveloper with 17 yearsexperience. The esti-mation process wasinfluenced by thefunction points method;effort was estimated perscreen.Produced by a seniordeveloper with 7 yearsexperience.Produced by threedevelopers with between6 months and 9 yearsexperience.The use case model No included orextending use cases.Example of a use case inAppendix A. Thecustomer reviewed theuse case model and readthrough the use cases.Included many small usecases (containing only 1or 2 transactions).Contained manyincluded and extendinguse cases as and a largenumber of actors.Contained manyincluded and extendinguse cases. Each use casewas described by a brieftextual description and asequence diagram.The use case estimation process A senior member of theproject team countedand assessed actors anduse cases and assignedvalues to the technicaland environmentalfactors. Values wereinserted into a spread-sheet to produce anestimate. The estimationprocess took approxi-mately one hour whenthe use case model wascompleted and wellunderstood by theperson performing theestimation.The senior developerwho had produced theinitial expert estimatecounted and assessedactors and use cases andassigned values to thetechnical and environ-mental factors. Analternative estimate wasproduced by the firstauthor counting andassessing actors and usecases based on thetextual requirementsdocuments. A spread-sheet was used in theestimation.1The project managerassigned values to thetechnical and environ-mental factors and alsoassessed the complexityof each actor. The firstauthor counted use casesfrom the requirementsdocument and a RationalRose Model andassessed theircomplexity. A spread-sheet was used toproduce an estimate.Time sheets Actual effort wascomputed from timesheets. The time sheetswere structured toenable registering efforton each use case.Hours were recordedaccording to somepredefined activities.Actual effort was calcu-lated adding up all theactivities in the project.As project B1Two different estimates were produced due to different interpretation on how to count actors and usecases.5. ResultsThe results are shown in Table 5. Despite of no customisation of the method to this particular company, the use case estimates are fairly close to the estimates produced by the experts.Table 5. Expert estimate, use case estimate and effort (in hours) Project Expert estimate Use case estimate Actual effort A273025503670B2340332027302860C210020802740In projects A and C, the use case estimate ended up only slightly below the expert estimate but a bit below the actual effort. The use case estimate for project B is close to actual effort and somewhat higher than the expert estimate.The first use case based estimate for project B (3320) was produced by the authors with information about actors and use cases given by the senior developer in the project. This estimate was very much higher than the original expert estimate, and it was also higher than the actual effort. We believe that this is because trivial actors were counted, such as printer and fax, and also included and extending use cases. We therefore decided to calculate a second estimate where actors and use cases were counted from the use case model. The actors that provided input to the system or received output from it were generalized into two superactors. Only those two were counted, not the individual actors. This reduced the number of actors from 13 to 6. The included and extending use cases were omitted. We used the same technical and environmental factors in the second estimate as in the first estimate. This resulted in an estimate of 2730 hours, which is very close to the actual effort on the project (2860 hours).One reason why the use case estimate for project C ended up a bit below the actual effort may be that the project manager assigned too high values to the environmental factors regarding experience and capabilities of the team. For example, he assigned higher values than did the project manager of project B even though the two projects were conducted with similar teams regarding size and experience with software development. Using the same environmental factors as for project B, project C would get a use case estimate of 2597 hours which is very much closer to the actual effort.The use case estimates for projects B and C were made after the completion of the projects. It was therefore easier to assess values for the technical and environmental factors than in a normal situation because the choice of values could be based on experience with the actual project. This indicates that the technical and environmental factors in the method are appropriate for this company, although there may be a need for some, but not extensive adjustments.We consider these results promising for the use case points method. The expert estimates were produced by very competent senior developers with good knowledge ofboth the technology and the application domain. The results were obtained without any particular calibraton of the method, so it is likely that the use case estimates can be improved. Independent of the method used for estimation, we must expect inaccuracies. Boehm states that these inaccuracies range up to 60 percent or more during the requirements phase [4]. The use case estimate for project A, the project with the largest difference, is 30 percent below actual effort.Table 5 indicates a relationship between the use case estimate for a project and the effort needed to implement it. Based on this, we would expect a relationship between the size of each use case, measured in number of transactions and the actual effort on implementing the use case. The result of investigating this relationship is shown in Table 6.Table 6. Size and effort for each use case in project AUse case Number oftransactions Use casepointsDeve-loperIteration ExpertestimateActualeffort1.Fetch application1615A0 and 142 h224 h2.Simulateapplication2215B 1 and 264 h301 h3.Automatic scoring1115C 1 and 286 h267 h4.Change application1315C2124 h144 h5.Assess credit-worthiness31152170 h6.Produce documents710 B + D 1 and 3152 h122 h7.Register newapplication1415All 2 and 3936 h647 h8.Notification ofapplication5103132 h9.Transfer applicationto new responsible915382 hFor each use case, Table 6 shows the number of transcations, the number of use case points, the developer (anonymized), in which iteration the use case was developed, the expert estimate and the actual effort. The system was developed in four iterations, in the first iteration (iteration 0) the architecture was established and in the subsequent iterations the system was constructed. The realization of the use cases was divided on these iterations.The functionality described in use cases 5, 7, 8 and 9 was realized as one unit. The total corresponding effort was registered on use case 7. Hence, six cells in the table are empty.The use cases contain between 5 and 31 transactions. The number of use case points for each use case is calculated according to the description in Section 2. Use cases 1 through 4 were implemented by a single developer; use case 6 was implemented by two developers; and all the developers participated on use case 7. For most of the use cases, the basic flow was implemented in one iteration. Those use cases were then completed by the implementation of alternative flows in a later iteration. Originally, the expert hadestimated effort per screen, but the screens were associated with use cases, so he managed to re-organize the estimates in order to show expected effort per use case. Actual effort shows effort on analysis, design and implementation for each use case and was calculated from the time sheets.The sum of effort registered on the use cases is smaller than the total effort registered on the project because much of the effort was registered on activities that were not related to a particular use case.Table 6 shows no relationship between the size of each use case measured as the number of transcations and the effort necessary to implement it. Possible reasons are:•Estimates based only on the number of use cases, or on a division into simple and complex use cases, are equally precise to counting all the transactions. One way of investigating this further is to compare the size of each use case with the number of classes or lines of code necessary to implement it.•Many factors influenced the registered effort for each use case, for example: -There were different levels of experience among the members of the project.-The use cases implemented in the last iterations could reuse design and code.-The structure of the time sheets was new to the project members, and they did experience some difficulties in registering effort exactly as intended.With relatively few data, we are unable to correct for these confounding factors. Therefore, we need more data to further investigate the relationship between the size of a use case and the required effort to implement it.6. Lessons LearnedThis section presents a number of lessons learned from applying the use case points method.6.1 The Impact of the Structure of a Use Case ModelWhen we applied the use case points method to the three projects, we experienced that the following aspects of the structure of a use case model had an impact on the estimates:•The use of generalization between actors. The number of actors in a use case model affects the estimate. Our experience is that if the descriptions of two or more actors have a lot in common, the precision of the estimate is increased by generalizing the actors into a superactor and hence counting the actors only once.•The use of included and extending use cases. Karner recommends that included and extending use cases should not be counted. Omitting such use cases for project B resulted in an estimate that was closer to the expert estimate and to the actual effort than if they were included. However, in project C we found it necessary to count the。

相关文档
最新文档