Assessing Design Quality from a Software Architectural Perspective

合集下载

Chapter 6 Software Design

Chapter 6 Software Design
The precise manner in which new ideas are generated cannot be codified.
1. What is Software Design?
----Characteristics of design situations (2)
Constraint satisfaction An initial need determines the most basic constraints and requirements on a design situation. In general, more constraints are eventually discovered during the design work itself. The constraints that apply both to the designed artifact and to the processes and participants involved during the design activity.
Abstract Elaboration
General Styles of Design Theory
Modularization Information Hiding
Specific Styles of Software Design
Encapsulation
Outcomes of idea generation
Design situations start with a need and require intention
RE is needed before software design
Finding the problems, defining the requirements

Accessibility Designing for All

Accessibility Designing for All

Accessibility Designing for AllDesigning for accessibility is a crucial consideration in today's world. It encompasses creating products, services, and environments that are usable by all people, regardless of their age, ability, or status. This includes individuals with disabilities, elderly people, and those with temporary impairments. Accessibility is not just a legal requirement, but also a moral and ethical responsibility to ensure that everyone has equal access to information, services, and opportunities. In this response, we will explore the importance of accessibility design from various perspectives and discuss the challenges and opportunities associated with it.From a social perspective, accessibility design is essential for promoting inclusivity and diversity. By making products and services accessible to all, we create a more equitable society where everyone has the opportunity to participate and contribute. This is particularly important for individuals with disabilities, who often face barriers to full participation in various aspects of life. By designing with accessibility in mind, we can help break down these barriers and create a more inclusive society where everyone is valued and respected.From a business perspective, accessibility design can also offer significant benefits. By making products and services accessible to a wider range of users, businesses can tap into new markets and customer segments. This can lead to increased sales and customer loyalty, as well as a positive brand image as a socially responsible and inclusive company. Additionally, designing for accessibility can also lead to cost savings in the long run, as it can reduce the need for costly retrofits or legal fees associated with non-compliance.From a legal perspective, accessibility design is not just a good practice, but also a legal requirement in many countries. Legislation such as the Americans with Disabilities Act (ADA) in the United States and the Equality Act in the United Kingdom mandates that public and private entities must ensure equal access to their goods and services. Failure to comply with these laws can result in legal action and financial penalties. Therefore, it is in the best interest of organizations to prioritize accessibility design to avoid potential legal repercussions.From a personal perspective, accessibility design can have a profound impact on the lives of individuals with disabilities. It can mean the difference between being able to independently access a building, use a product, or access information, or being excluded and dependent on others for assistance. For example, a person with a visual impairment may rely on screen reader technology to access digital content, so designing websites and applications with proper coding and alternative text can make a significant difference in their ability to navigate and interact with the digital world.From a technological perspective, advancements in technology have opened up new possibilities for accessibility design. For example, the development of assistive technologies such as screen readers, speech recognition software, and alternative input devices has made it easier for individuals with disabilities to access and interact with digital content. Additionally, the use of universal design principles, which aim to create products and environments that are usable by all people, regardless of their abilities, has become more prevalent in the design and development of products and services.Despite the importance of accessibility design, there are still many challenges that need to be addressed. One of the main challenges is the lack of awareness and understanding of accessibility issues among designers, developers, and decision-makers. Many people may not fully understand the needs and experiences of individuals with disabilities, leading to the exclusion of these users in the design process. This can result in products and services that are not fully accessible and do not meet the needs of all users.Another challenge is the perception that designing for accessibility is costly and time-consuming. Some organizations may be hesitant to invest in accessibility design, fearing that it will require significant resources and impact their bottom line. However, research has shown that the cost of implementing accessibility features is often much lower than the potential costs of legal fees, lost sales, and negative publicity associated with non-compliance. Additionally, many accessibility features can also benefit a wider range of users, such as older adults or individuals with temporary impairments.Furthermore, the rapidly evolving nature of technology presents a challenge for accessibility design. New technologies and platforms are constantly emerging, and it can be difficult to ensure that accessibility features are integrated into these new developments. This requires ongoing education and training for designers and developers to stay updated on best practices and standards for accessibility design.In conclusion, designing for accessibility is a multifaceted issue that requires consideration from various perspectives. It is not only a social and moral imperative but also a legal requirement and a business opportunity. By prioritizing accessibility design, we can create a more inclusive and equitable society, tap into new markets and customer segments, and avoid potential legal repercussions. However, there are still challenges that need to be addressed, such as the lack of awareness and understanding of accessibility issues, the perception of cost and time constraints, and the rapidly evolving nature of technology. It is crucial for organizations to prioritize accessibility design and work towards creating products, services, and environments that are usable by all people, regardless of their abilities.。

社会科学研究方法与论文写作智慧树知到期末考试章节课后题库2024年北京第二外国语学院

社会科学研究方法与论文写作智慧树知到期末考试章节课后题库2024年北京第二外国语学院

社会科学研究方法与论文写作智慧树知到期末考试答案章节题库2024年北京第二外国语学院1.What are key components of research design? ()答案:Timeframe.###Sampling Strategy.###Data Collection Methods.2.The following aspects of informed consent that are essential in researchethics include ().答案:Researchers explaining potential risks andbenefits.###Participants being allowed to withdraw from the study.3.When should all authors be included in the in-text citation, according to theAPA style? ()答案:When there are two authors.###When there are three to fiveauthors.4.What are some essential tips for writing an effective abstract? ()答案:Use keywords###Emphasize points differently from thepaper.###Use passive verbs5.Which statements are suggested solutions for improving the Methodologysection? ()答案:Eliminate the use of first-person pronouns.###Provide a clearrationale for the chosen methods.6.What's the difference between methodology and method? ()答案:Methodology encompasses the broader theoretical framework and guiding philosophy of the research process.###Methods encompass the specific techniques and procedures employed for data collection andanalysis.###Methodology is presented as a distinct section in aresearch thesis, explaining the overall approach and rationale.7.What are the downsides of mere listing in a literature review? ()答案:It does not present themes or identify trends.###It often indicatesa lack of critical synthesis.8.The common problems to be aware of in thesis writing include().答案:Excessive reliance on qualitative data###Lack of theoreticalsupport###Failure to integrate theory and practice.###Misuse of tense ponents that are typically embedded in the structure of an academicpaper, especially the journal article, include ()答案:Introduction###Results and Discussion10.Which of the following examples are misconducts? ()答案:Facilitating academic dishonesty.###Unauthorizedcollaboration###Misuse of Patients11.What are the three main elements of a definition, as mentioned in the lecture?()答案:Term, Category, and Features.12.In the Methods section, why is it important to detail the tools or materials fordata collection? ()答案:To explain how instruments to be used to answer researchquestions.13.Which is the method suggested to avoid plagiarism when summarizinginformation from sources? ()答案:Summarize immediately after reading without referring back tothe source.14.The purpose of control variables in research is ().答案:To keep certain factors constant and prevent them frominfluencing the dependent variable.15.What is the purpose of using sampling techniques in research? ()答案:To draw conclusions about the population based on data collected from the sample.16.According to Wallwork’s tips for the final check, what is one way to ensureyour paper is as good as possible before submission? ()答案:Anticipate referees’ comments.17.What does external validity assess? ()答案:The extent to which research findings can be applied orgeneralized to other situations and populations.18.Which of the following expressions are correctly used in the Methods Section?()答案:"We conducted the experiment in a controlled environment."19.Which of the following is NOT a recommended guideline for using tables in aresearch paper? ()答案:Using as many tables as possible to provide comprehensiveinformation.20.What does a structured abstract typically include to make it more readable?()答案:Eye-catching font for the title21.What is the main function of the preparation stage in writing a literaturereview? ()答案:To locate relevant literature and prepare for writing.22.The primary focus of academic integrity is ().答案:Fostering honesty and responsible behavior.23.The act of using someone else’s ideas and writings as your own can beconsidered as ().答案:Plagiarism24.Which step is NOT part of the suggested three-step approach for revisingyour paper? ()答案:Rewrite the entire paper.25.Which is not the reason for an overly broad title being problematic? ()答案:It encourages depth in the study.26. A good thesis or dissertation should tell the reader not just “what I havedone,” but “why what I have done matters.” ()答案:对27.Coherence in academic writing refers to the clarity of the thesis statementand the organization of the paper. ()答案:对28.The research methods section helps readers and reviewers gauge thetransparency, validity, and reliability of the research. ()答案:对29.Research papers are published to share new, original results and ideas withthe academic community. ()答案:对30.Relying solely on secondary sources ensures the originality of researchfindings. ()答案:错31.In introduction writing, it is recommended to delve into an exhaustive reviewof the entire field to provide comprehensive context. ()答案:错32.The Background Method in introduction writing kicks off by presenting aproblem and then addressing the solution. ()答案:错33.Multiculturalism seeks to enhance the self-esteem and identities ofmarginalized groups. ()答案:对34. A Doctoral-level literature review is typically less comprehensive than aMaster's-level literature review. ()答案:错35."Hoaxing" involves deliberately publishing false information with theintention of deceiving others. ()答案:对36.Reflecting on the research process at the end is essential for evaluating itsstrengths and limitations. ()答案:对37. A well-crafted title should engage a wide audience effectively. ()答案:对38.In order to avoid plagiarism, it is suggested to avoid citing references. ()答案:错39.Predicting difficulties and providing countermeasures in a research proposalis essential to show the depth of thinking and enlist expected guidance. ()答案:对40.Conducting a literature review is not necessary when selecting a researchtitle. ()答案:错41.What can authors do to ensure a timely publication in a journal that reviewspapers for job hunting purposes?()答案:Submit the manuscript without checking for errors###Seekinformation from editors about review times###Be efficient in making revisions42.When preparing a manuscript for publication, it is crucial to focus on ethicalstandards.()答案:对43.Why do researchers want to publish their papers?()答案:To share new results and ideas44.How can you identify an appropriate journal for publication? ()答案:Look for journals that publish work similar to your research.45.The editor-in-chief makes the final decision on whether a submitted paper isaccepted or rejected in the review process.()答案:对ing cut and paste extensively is recommended during the final check tosave time.()答案:错47.Exchanging texts with another student for proofreading is encouraged to findcareless errors in your own work.()答案:对48.What is the key idea that should be remembered by the audience from yourtalk?()答案:The key idea of your research49.Why is it important to avoid errors that may distort meaning in your writtenwork? ()答案:To enhance the quality of your writing###To ensure clarity ofcommunication50.What is the main purpose of doing a presentation?()答案:To engage, excite, and provoke the audience51.Making academic writing more tentative involves avoiding over-generalizations and using linguistic hedges and tentative phrases.()答案:对52.What is the purpose of the checklist questions provided for paper revision?()答案:To help improve the writing53.Which of the following are strategies for achieving cohesion in academicwriting? ()答案:Organizing the paper logically###Using transitional words andphrases###Employing reference words54.Redundancy and colloquialisms are considered desirable features ofconciseness in academic writing. ()答案:错55.What should you do when revising your paper writing to improve clarity andspecificity? ()答案:Be self-contained56.What are the characteristics of informative abstracts? ()答案:They may replace the need for reading the full paper###Theycommunicate specific information about the paper###They provide aconcise summary of the paper’s content57.Structured abstracts may have clear subheadings to mark different sections.()答案:对58.What is the recommended maximum word limit for a conference abstract?()答案:250 words59.Which tense is often used when writing an abstract? ()答案:Present tense60.The primary purpose of an informative abstract is to indicate the subjectsdealt with in a paper. ()答案:错61.What are some reasons for using citations in academic writing? ()答案:To show you are a member of a particular disciplinarycommunity###To acknowledge the intellectual property rights ofauthors###To avoid plagiarism62.Self-plagiarism is not considered an ethical concern in academic writing.()答案:错63.What is the primary purpose of citation in academic writing? ()答案:To acknowledge the intellectual property rights of authors64.What is self-plagiarism? ()答案:Presenting one's own previously published work as new65.All sources cited in the text must be documented in the References section.()答案:对66.Which type of conclusion is more common in research papers and theses andfocuses on summarizing research outcomes and aligning them with the initial thesis? ()答案:Thesis-oriented Conclusion67.What are the four sections typically found in the Conclusion section of aresearch paper, according to the material? ()答案:Summary of findings, implications, limitations, further studies68.What is one of the purposes of the conclusions chapter? ()答案:To forestall criticisms by identifying limitations of the research69.Which of the following are types of conclusions discussed in the material? ()答案:Summary type###Field-oriented conclusion###Evaluation type of conclusion###Recommendation type of conclusion70.The conclusion section in academic papers typically follows a uniformstructure across all disciplines.()答案:错71.What is one of the purposes of making comparisons with previous studies inacademic writing? ()答案:To justify the methods or procedures followed72.Which of the following is NOT mentioned as a common type of graphicalfigure in the material? ()答案:Map illustrations73.What can we do in demonstrating our research results in paper? ()答案:Use figures and tables to summarize data###Show the results ofstatistical analysis74.In which field are Qualitative Research methods often used?()答案:Liberal Arts and Social Sciences75.What factors should be considered when choosing research methods for athesis? ()答案:Traditional approaches.###Research questions andobjectives.###Nature of the subject matter.76.What does "Research Design" refer to in the research process?()答案:The overall plan guiding the research study.77.All the following moves are included in the method section except ().答案:Describing the commonly used methods in certain field.78.The research methods section in a thesis is often presented as a distinctsection, separate from the literature review.()答案:对79.What are the two core abilities essential for writing an effective literaturereview? ()答案:Information seeking and critical appraisal.80.Where can a literature review be placed in a research paper or thesis? ()答案:In different places depending on research goals and fieldconventions.81.Which type of literature review focuses on organizing literature aroundspecific research questions?()答案:Question-oriented review.82.The purpose of creating a visual representation, such as a literature map, isto replace the need for drafting concise summaries.()答案:错83.What are the recommended tenses to use when discussing the content of thesources in a literature review? ()答案:Simple Past.###Present Perfect.###Simple Present.84.What is the role of the Problem Statement in the Introduction? ()答案:Justify the importance of the research.85.Which is NOT one of the three methods could be used to write anintroduction? ()答案:Reference Method86.The location and structure of the introduction are standardized across alltypes of research theses. ()答案:错87.In Metadiscourse research, what is the recommended way for a researcher torefer to themselves in the introduction?()答案:Refer to themselves as "this thesis" or a specific section.88.What are the key elements included in Move 2 of the "Create a ResearchSpace" (CARS) framework?()答案:Identifying gaps in prior research.###Indicating a gap.89.What role do Research Grant Proposals play?()答案:Both securing financial support and convincing funding agencies.90.What questions does a research proposal eloquently answer? ()答案:How are you going to do it?###What do you plan toaccomplish?###Why do you want to do it?91.The "Aims/Purposes" section in a research proposal outlines the centralissues to be tackled in the study. ()答案:对92.To whom is a research proposal usually submitted for approval and support?()答案:Funding agencies, academic institutions, or research supervisors.93.What is the purpose of predicting difficulties and providing countermeasuresin the research proposal?()答案:To show the depth of thinking and enlist expected guidance.94.The recency of sources is crucial in research, and older sources are alwayspreferred for their depth.()答案:错95.Which database is specifically mentioned for searching Master's and DoctoralDissertations? ()答案:CNKI96.When conducting a critique of a study, what should be considered about themethods used?()答案:The validity for studying the problem.97.What is the primary characteristic of primary sources in research materialcollection? ()答案:They offer synthesized information from various perspectives. 98.What are common approaches to collecting primary source materialsmentioned in the lecture? ()答案:Surveys and questionnaires###Controlled experiments###One-on-one interviews99.What are potential mistakes in the title selection process? ()答案:Having unclear titles that do not convey the subjectmatter.###Using contemporary language to make the title appearoutdated.100.How does the researcher balance the focus of a research title?()答案:By clearly defining the scope of the study.101.What is the purpose of conducting a comprehensive literature review in the title selection process? ()答案:To identify gaps, controversies, or areas requiring furtherexploration.102.An overly narrow title might limit the potential impact and relevance of the research. ()答案:对103.What is the significance of a well-chosen title? ()答案:It significantly enhances the academic value of the work.104.What are key characteristics of deconstruction in literary theory? ()答案:Highlighting textual undecidability and paradoxes.###Challenging traditional assumptions about language and meaning.###Questioning binary oppositions.105.What distinguishes quantitative data from qualitative data in research? ()答案:Quantitative data are numerical, while qualitative data can bedescribed in words.106.What is the primary goal of case studies in applied linguistics? ()答案:To enhance understanding of a phenomenon, process, person, or group.107.Case studies use a single data source, such as interviews, to explore particular phenomena. ()答案:错108.What are the three types of cultural studies? ()答案:New historicism, postcolonialism, American multiculturalism. 109.The dependent variable in a study investigating the effects of different study methods on exam performance is ().答案:Exam performance110.What role does a moderating variable play in a research study? ().答案:It influences the strength or direction of the relationship between independent and dependent variables.111.External validity assesses the extent to which research findings can be applied to populations, settings, or conditions beyond the specific study. ()答案:对112.How does deduction differ from induction in research? ()答案:Deduction is the process of reasoning from general principles tospecific predictions.113.The purposes of research include ()答案:Solving real-world problems###Testing existingtheories###Meeting graduation requirements###Advancingknowledge114.The potential academic consequences for students who engage in academic dishonesty include ().答案:Monetary fines、Academic suspension and Expulsion from theInstitute115.The three key principles that experimental researchers need to carefully consider and implement before, during and after recruiting researchparticipants are ().答案:Anonymity###Informed consent###Confidentiality116.It is unethical to conduct research which is badly planned or poorly executed.()答案:对117.The primary focus of academic integrity in the context of research ethics is ().答案:Fostering responsibility and trustworthiness in academic work 118.The pillars of academic integrity include all the aspects except ()答案:Excellence119.The primary purpose of literature reviews in research articles is ().答案:To evaluate previously published material120.Methodological articles typically present highly technical materials, derivations, proofs, and details of simulations within the main body of thearticle. ()答案:对121.In a research article, many different sections can be found in empirical studies, including ().答案:Method###Literature review###Introduction###Discussion 122.According to the lecture, which step in the procedures of thesis writing involves drafting a title and abstract? ()答案:Step 1: Choice of Topic123.The primary use of case studies is ().答案:To illustrate a problem or shed light on research needs。

Autodesk Quantity Takeoff软件说明书

Autodesk  Quantity Takeoff软件说明书

Autodesk®Quantity TakeoffQuestions and AnswersAutodesk® Quantity Takeoff software helps cost estimators keep everything digital and up-to-date with fast, detailed materials reports. Autodesk Quantity Takeoff enables cost estimators to easily bring together design data, high-quality images, and precise design information from design applications such as AutoCAD® software, Autodesk® Revit® Architecture software, and AutoCAD® Civil 3D® software, as well as other CAD data and image formats. With Autodesk Quantity Takeoff, estimators can take advantage of accurate property data to automatically or manually measure, count, and price building objects such as walls, doors, and windows. The results can then be printed, exported to Microsoft® Excel® software, or published to DWF™ file format.Contents1.What are the main benefits of Autodesk Quantity Takeoff software? (2)2.Is the user interface similar to other Autodesk products? (2)3.Does Autodesk Quantity Takeoff provide tools for manual takeoff of images?. 24.What is the significance of architectural objects and cost estimation? (2)5.Does Autodesk Quantity Takeoff use 3D? (2)6.Does Autodesk Quantity Takeoff work with other Autodesk products? (2)1. What are the main benefits of Autodesk Quantity Takeoff software?For starters, estimators can utilize precise property data to automatically or manually measure, count, and price building objects such as walls, doors, and windows. All results can then be printed, exported to Microsoft Excel, or published to DWF file format. All of this means that Autodesk Quantity Takeoff scrupulously supports the smoothest workflow, from design to cost estimation.More than that, with the integration of 2D and 3D design data, Autodesk Quantity Takeoff brings drawings and data together in a way that has never before been possible. The software addresses key requirements for cost estimators by giving users more flexibility than stand-alone design documents, databases, or spreadsheets. And with a completely open architecture as its foundation, Autodesk Quantity Takeoff is flexible enough to meet the needs of the multitude of disciplines involved in estimating construction costs.2. Is the user interface similar to other Autodesk products?Quantity Takeoff is actually based on Autodesk® Design Review software, which provides a complete and all-digital way to view, print, measure, mark up, and review 2D and 3D designs without the original design creation software. Creating precise and timely cost estimates of 2D and 3D digital design content has never been this easy.3. Does Autodesk Quantity Takeoff provide tools for manual takeoff of images?Yes. Although architects are starting to provide building information models built in Autodesk Revit Architecture, it is often up to cost estimators to perform takeoffs based on digital images from the design. For this reason, Autodesk Quantity Takeoff has a full set of intuitive manual takeoff tools, enabling you to perform on screen takeoff of design data such as walls, doors and windows on common non-CAD file formats such as .pdf, .tiff and .jpg.4. What is the significance of architectural objects and cost estimation?Autodesk Quantity Takeoff takes advantage of intelligent architectural objects created in Autodesk design applications such as Autodesk Revit Architecture, AutoCAD Architecture, and Autodesk Civil 3D. By utilizing the data within intelligent objects, Autodesk Quantity Takeoff enables cost estimators to quickly and easily search for and count similar items across an entire project using the search takeoff feature.5. Does Autodesk Quantity Takeoff use 3D?Yes,Autodesk Quantity Takeoff works with both 2D and 3D digital design information. Working in 3D, estimators can perform intuitive, interactive walkthroughs for precise examination and estimation of all object details. Object visibility and transparency is adjustable according to building section or component type. By utilizing 3D DWF files imported from the Autodesk Revit® product line, cost estimators can perform an entire model takeoff of all 3D design objects with a single click.6. Does Autodesk Quantity Takeoff work with other Autodesk products?Yes, Autodesk Quantity Takeoff software enables cost estimators to easily bring together design data, high-quality images, and precise design information from intelligent design application such as AutoCAD, Autodesk Revit Architecture, and Autodesk Civil 3D, as well as “non-intelligent” CAD data and image formats.Autodesk, AutoCAD, Civil 3D, DWF, and Revit are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliatesin the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reservesthe right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographicalor graphical errors that may appear in this document.© 2011 Autodesk, Inc. All rights reserved.。

Sofetware Engineering-CHAP-4(软件工程第四章)

Sofetware Engineering-CHAP-4(软件工程第四章)

► ► ► ►
A good design should capture all the functionalities of the system correctly. It should be easily understandable. It should be efficient. It should be easily amenable to change.

► ► ► ►
Different modules required to implement the design solution. Control relationship among the identified modules. Interface among different modules. Data structures of the individual modules. Algorithms required to implement the individual modules.
Importance of Design
Design provides the basic framework that guides how the program codes are to be written and how personnel are to be assigned to tasks. Design errors outweigh coding errors. They take more time to detect and correct, and are therefore costlier, than coding. The following makes a comparison between design and coding errors based on a study of 220 errors. Design provides a basis for monitoring the progress and rewarding the developers.

Tracking the impact of design changes during software development”, EDSER-3

Tracking the impact of design changes during software development”, EDSER-3

Tracking the Impact of Design ChangesDuring Software DevelopmentFrank PadbergFakult¨a t f¨u r InformatikUniversit¨a t Karlsruhe,Germanypadberg@a.deAbstractDesign changes occur frequently during software development.Currently,there is a lack of empirical,quantitative data about the extent and impact of such design changes.In this paper,we present a methodology for collecting design change data systematically and thoroughly as adevelopment project proceeds.The methodology is easy to apply and works for any kind of softwareproject.The resulting database can be used to support design decisions and project planning.1IntroductionIt’s an everyday experience in software development that the design of some part of the software changes.As a software product grows towards completion,design changes are made to implement requirements or tofix design problems.In a sense,a software development project is a series of design changes.The design of a software product and its development project are closely connected,see[18].In particular,changes to the design have a strong impact on the progress of the development project. Since the components of a software are coupled,design changes in one component often cause changes and rework in other components.For example,when an interface offered by some component gets extended,all components which use that interface must be reworked.The impact of a design change need not be limited to reworking some of the components.A change can make some components more complicated or introduce additional components into the software.Design changes in many cases increase the total development effort and delay the project completion.Early software design decisions often are benefit-driven.For example,designing a software to work over the Internet,even if this will increase the development cost,is a strategic design decision which may be required by the customer to strengthen the market position of the company in the future. Once the strategic design decisions have been made,a number of design decisions must be made which are cost-driven,aiming at reaching the benefits at the lowest possible cost.In particular,software designers and project managers must consider that design changes will occur frequently during the project.For a given early design of a software,designers and managers must address a number of questions,for example:•How many design changes must be expected to occur during the project when using that design?•Which components are likely to undergo frequent design changes?1•How much rework effort must be planned for?•Which components are likely to cause much rework in other components when they are changed?•Which components should be developed early so as to minimize the overall rework effort caused by design changes?The last question points out that design decisions can’t be completely separated from scheduling considerations.To evaluate a given software design with respect to the impact of possible design changes,the com-ponents in the design must be compared with the components in past projects.For example,tofind out how likely it is that a particular component will undergo design changes,one must study how often comparable components in past projects have undergone design changes.Two components are comparable when they have a similar degree of programming difficulty.In addition,the components must be coupled to their respective neighbor components with a similar strength,because the coupling between the components in a software plays a major role in the propagation of changes.To compare a design with the designs in past projects we must have a detailed database describing the design history in past projects.The design changes during software development and their impact on the software’s architecture and the development effort have not been studied empirically and systematically so far(there is some work in software maintenance,see the section on related work below).Although it is immediate that design changes have a strong impact on the progress of a development project,we lack reliable,empirical, quantitative data about the extent and impact of design changes in software projects.How often have design changes occured in past projects?How many components had to be reworked because of design changes?How much rework effort has been caused by design changes?We also lack empirical data about why the design changes were made and how the different design changes in a project were related.Reconstructing the design history of a software product after its development project has been com-pleted is practically ually,we are left with some description of the requirements and high-level design,the deltas of the source code,and the developers’knowledge of what happened dur-ing the project.The developers’knowledge about the project is informal and fades away with time. The code deltas are recorded at the level of source statement changes and do not provide the logical links between the individual changes of the code.Therefore,we need a methodology for collecting design change data systematically and thoroughly as a development project proceeds.The methodology must tell what data to collect,how to collect the data,and how to evaluate the data.In this paper,we present a methodology for building a database of design changes during software development projects.With each design change,the methodology documents what is changed,why it is changed,and how much effort the change causes.Design changes in different parts of the software (or at different points in time)which are logically related are linked in the ing the database,one can reconstruct at any time how the design of the software evolved during the project. The methodology is easy to apply and works for any kind of software development project.22Collecting DataFiling and approving formal change requests,as is done in software maintenance,is much too rigid for most software development.Therefore,the methodology aims at consistently documenting the changes which are applied to a software’s design.Whenever a developer applies a design change to the software,he creates an entry in a design change database to describe the change.We’ll show the format of a database entry in a moment.The database is shared by all developers in a project.Every design change results in a number of development activities to implement the change.To permit measuring the impact of a design change on the development effort,the developers also create entries in the database to describe the development activities corresponding to a change and the effort spent on the activities.Typically,the activities are documented on a daily basis.A design change can occur at different design levels.The change can be at the level of the architecture of the software,involving several components;at the level of a single component,involving several modules(or classes)of that component;or,at the level of a single module.In most cases,a change will imply other changes at”lower”levels.For example,to implement some requirement it might be necessary to change the architecture by introducing an additional component but also to extend some modules in existing components to connect with the new component.Therefore,changes are naturally organized into coherent sets.To permit measuring the”span”of a design change,all changes belonging to the same coherent set are linked in the database by refering to the same identification number.This is similar to software maintenance where changes are linked to modification requests.Here is a description of thefields contained in a database entry:•Identification Number.Each coherent set of design changes gets an identification number.All changes in a coherent set refer to the same identification number.•Description.The purpose and content of the change.For thefirst change of a coherent set (”triggering change”)the description indicates whether the change is made to implement some (possibly new)requirement or tofix some design problem.•Changed Item.The name of the component,module,function,or shared variable whose design is changed.The name must be unique.Thus,the naming scheme”component.module.function”is used.•Type of Change.One of the four categories Changed,Extended,New,Dropped.•Date.The day and month when the entry was made.For most entries,this will be the date of some development activity performed to implement the change.•Activity Times.For each development activity performed on the day specified in the Datefield to implement the change,the time spent on the activity is recorded.The activities belong to the five categories Designing,Coding,Testing,Documenting,Other.•Developer.The name of the developer who made the entry.Each developer who spent some time on a change must make his own entries for that change in the database.In most cases,a particular change results in multiple entries in the database.The entries correspond to different times at which a developer worked on implementing the change and different developers3implementing the change.For example,a developer might spend a total of40minutes of designing, 20minutes of coding,and10minutes of testing for some change on one day,and an additional10 minutes of coding and30minutes of testing for the same change on the next day.That would lead to two entries in the database for the change.It also is natural that a component or module occurs in the Changed Itemfield of database entries which belong to different coherent sets of changes,for example,whenfixing a design error made during some earlier design change.Partial entries in the database can and should be made as soon as some components and modules are known to surely be affected by a change.Partial entries will include the names of the components and modules,but no effort data.Recording such information helps to get an overview of the extent of a change and maintain a list of tasks yet to be accomplished to implement the change.In particular, looking at the functions and shared variables which are affected by a change helps to identify which other parts of the software will be affected by the change.Thefirst entries for a project should be made when the initial high-level design has stabilized.3Related WorkCurrently,tracking design changes and their impact during software development is not well supported. Version control systems record changes at the level of source code statements and not at the design level.In addition,it is difficult to properly link version control data to time sheet data,see[3,12]. Bug trackers,such as Bugzilla[10],Gnats[11],and Jitterbug[13],are limited in scope.Changes are well documented in software maintenance using formal modification requests.In[4], a methodology for collecting change data during maintenance is presented which includes collecting effort data.That approach is similar to ours,and the lessons learned about the data collection process are valuable.Recent work in design metrics for object-oriented software provides empirical evidence that the strength of the coupling between classes has a large impact on the fault-proneness of the classes [6,7,8,9]and on the effort to correct faulty classes in maintenance[7].Earlier work studied the suitability of source code metrics as predictors for the effort to correct faulty components[1,5,14]. Practical guidelines how to design a software to minimize faults and rework effort are scarce.How should components be designed and coupled to limit the propagation of changes?A qualitative ap-proach for analyzing the tradeoffs in a software’s design has been presented in[2,15].We have outlined a quantitative approach in[18].For the purpose of project effort estimation,a quantitative model for software projects is required which takes the software’s design as input and reflects the impact of design changes on the progress of a project.We have already presented such a model in[16,17,18,19].A design change database,as the database presented here,yields part of the input data needed for the project estimation model.4DiscussionIt does not make much sense to collect data about each minor change or bugfix,especially while coding and unit testing.The emphasis with the methodology is on documenting significant changes.4In particular,changes which require coordination among the developers or which affect more than one component are documented.Deciding whether a design change is implied by some other change or spans a new coherent set of changes(with its own identification number)may be somewhat subjective and pose some difficulty in practice.In particular,when documenting changes to changes the question is similar to deciding whetherfixing some bug is still part of one and the same cycle of coding and unit testing,or not. Fortunately,developers usually can tell with good confidence whether a change is an immediate con-sequence of some other change or is different.The amount of time which has passed between two changes plays a role here.Practical experience with the methodology will show whether properly organizing the design changes into coherent sets really poses a problem in practice.Although documenting the design changes places some extra work on the developers,they will also benefit from the data.Systematically describing the changes they apply will help them to identify all consequences of their changes.The database also helps with communicating changes to the other developers and partially covers the usual requests for design and code documentation.The data collected has some overlap with the usual time data collected for accounting purposes.The overhead caused by the data collection process can be minimized using a suitable tool.Such a tool might be integrated with version control.It should offer intelligent defaults and menues to the developer for somefields when creating a database entry.For example,the tool should”know”which components and modules currently are part of the software and offer a menue with a list of their names when a developerfills out the Changed Itemfield.The tool should also support intelligent search in the database.Tofix our ideas,we have developed two paper forms for data collection.One form documents the purpose and level of the design changes and the other form documents the activities and effort caused by the changes.We have used the forms during our university programming classes.Based on the experiences gained,we are currently merging the forms into a web-based tool.∗The next steps will be to use the tool in industrial software development environments and to integrate the tool with version control systems.References1.Almeida,Lounis,Melo:”An Investigation on the Use of Machine Learned Models for Estimating CorrectionCosts”,Proceedings ICSE20(1998)473-4762.Asundi,Kazman,Klein:”An Architectural Approach to Software Economic Modeling”,EDSER-2(2000)3.Atkins,Ball,Graves,Mockus:”Using Version Control Data to Evaluate the Impact of Software Tools”,Proceedings ICSE21(1999)324-3334.Basili,Briand,Condon,Kim,Melo,Valett:”Understanding and Predicting the Process of Software Main-tenance Releases”,Proceedings ICSE18(1996)464-4745.Basili,Condon,El Emam,Hendrick,Melo:”Characterizing and Modeling the Cost of Rework in a Libraryof Reusable Software Components”,Proceedings ICSE19(1997)282-291∗A prototype of the tool will be available at the time of the workshop.56.Benlarbi,Melo:”Polymorphism Measures for Early Risk Prediction”,Proceedings ICSE21(1999)334-3447.Binkley,Schach:”Validation of the Coupling Dependency Metric as a Predictor of Run-Time Failures andMaintenance Measures”,Proceedings ICSE20(1998)452-4558.Briand,Devanbu,Melo:”An Investigation into Coupling Measures for C++”,Proceedings ICSE19(1997)412-4219.Briand,W¨u st,Ikonomovski,Lounis:”Investigating Quality Factors in Object-Oriented Designs:An In-dustrial Case Study”,Proceedings ICSE21(1999)345-35410.Bugzilla,/bugzilla/11.Gnats,/gnats/12.Graves,Mockus:”Inferring Change Effort from Configuration Management Databases”,Fifth Interna-tional Symposium on Software Metrics(1998)267-27313.Jitterbug,/14.Jorgensen:”Experience with the Accuracy of Software Maintenance Task Effort Prediction Models”,IEEETSE21:8(1995)674-68115.Kazman,Barbacci,Klein,Carriere,Woods:”Experience with Performing Architecture TradeoffAnalysis”,Proceedings ICSE21(1999)54-6316.Padberg:”A Fresh Look at Cost Estimation,Process Models and Risk Analysis”,EDSER-1(1999)17.Padberg:”A Probabilistic Model for Software Projects”,Proceedings ESEC/FSE7,Springer LectureNotes in Computer Science1687(1999)109-12618.Padberg:”Linking Software Design with Business Requirements–Quantitatively”,EDSER-2(2000)19.Padberg:”Estimating the Impact of the Programming Language on the Development Time of a SoftwareProject”,Proceedings International Software Development and Management Conference ISDM/AP-SEPG (2000)287-2986。

软件工程实践者的研究方法chapter13

软件工程实践者的研究方法chapter13

5
Statistical SQA
Product & Process
Collect information on all defects Find the causes of the defects Move to provide fixes for the process
measurement
... an understanding of how to improve quality ...
Everybody is for it. (Under certain conditions, of course.)
Everyone feels they understand it. (Even though they wouldn't want to explain it.)
Everyone thinks execution is only a matter of following natural inclinations. (After all, we do get along somehow.)
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Design quality. Every element of the design model should be assessed by the software team to ensure that it exhibits high quality and that the design itself conforms to requirements.

软件测试词汇(英语)

软件测试词汇(英语)

AAcceptance Testing:T esting conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.Accessibility Testing:Verifying a product is accessible to the people having disabilities (deaf, blind, mentally disabled etc.).Ad Hoc Testing:A testing phase where the tester tries to 'break' the system by randomly trying the system's functionality. Can include negative testing as well. See also Monkey Testing.Agile Testing:Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm. See also T est Driven Development.Application Binary Interface (ABI):A specification defining requirements for portability of applications in binary forms across defferent system platforms and environments. Application Programming Interface (API):A formalized set of software calls and routines that can be referenced by an application program in order to access supporting system or network services.Automated Software Quality (ASQ):The use of software tools, such as automated testing tools, to improve software quality.Automated Testing:•Testing employing software tools which execute tests without manual intervention.Can be applied in GUI, performance, API, etc. testing.•The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.BBackus-Naur Form:A metalanguage used to formally describe the syntax of a language. Basic Block:A sequence of one or more consecutive, executable statements containing no branches.Basis Path Testing:A white box test case design technique that uses the algorithmic flow of the program to design tests.Basis Set:The set of tests derived using basis path testing.Baseline:The point at which some deliverable produced during the software engineering process is put under formal change control.Beta Testing:Testing of a rerelease of a software product conducted by customers. Binary Portability Testing:Testing an executable application for portability across system platforms and environments, usually for conformation to an ABI specification.Black Box Testing:Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well thecomponent conforms to the published requirements for the component.Bottom Up Testing:An approach to integration testing where the lowest level components are tested first, then used to facilitate the testing of higher level components. The process is repeated until the component at the top of the hierarchy is tested. Boundary Testing:T est which focus on the boundary or limit conditions of the software being tested. (Some of these tests are stress tests).Bug:A fault in a program which causes the program to perform in an unintended or unanticipated manner.Boundary Value Analysis:BVA is similar to Equivalence Partitioning but focuses on "corner cases" or values that are usually out of range as defined by the specification. his means that if a function expects all values in range of negative 100 to positive 1000, test inputs would include negative 101 and positive 1001.Branch Testing:Testing in which all branches in the program source code are tested at least once.Breadth Testing:A test suite that exercises the full functionality of a product but does not test features in detail.CCAST:Computer Aided Software Testing.Capture/Replay Tool:A test tool that records test input as it is sent to the software under test. The input cases stored can then be used to reproduce the test at a later time. Most commonly applied to GUI test tools.CMM:The Capability Maturity Model for Software (CMM or SW-CMM) is a model for judging the maturity of the software processes of an organization and for identifying the key practices that are required to increase the maturity of these processes.Cause Effect Graph:A graphical representation of inputs and the associated outputs effects which can be used to design test cases.Code Complete:Phase of development where functionality is implemented in entirety; bug fixes are all that are left. All functions found in the Functional Specifications have been implemented.Code Coverage:An analysis method that determines which parts of the software have been executed (covered) by the test case suite and which parts have not been executed and therefore may require additional attention.Code Inspection:A formal testing technique where the programmer reviews source code with a group who ask questions analyzing the program logic, analyzing the code with respect to a checklist of historically common programming errors, and analyzing its compliance with coding standards.Code Walkthrough:A formal testing technique where source code is traced by a group with a small set of test cases, while the state of program variables is manually monitored, to analyze the programmer's logic and assumptions.Coding:The generation of source code.Compatibility Testing:T esting whether software is compatible with other elements of a system with which it should operate, e.g. browsers, Operating Systems, or hardware. Component:A minimal software item for which a separate specification is available.Component Testing:See Unit Testing.Concurrency Testing:Multi-user testing geared towards determining the effects of accessing the same application code, module or database records. Identifies and measures the level of locking, deadlocking and use of single-threaded code and locking semaphores.Conformance Testing:The process of testing that an implementation conforms to the specification on which it is based. Usually applied to testing conformance to a formal standard.Context Driven Testing:The context-driven school of software testing is flavor of Agile Testing that advocates continuous and creative evaluation of testing opportunities in light of the potential information revealed and the value of that information to the organization right now.Conversion Testing:T esting of programs or procedures used to convert data from existing systems for use in replacement systems.Cyclomatic Complexity:A measure of the logical complexity of an algorithm, used in white-box testing.DData Dictionary:A database that contains definitions of all data items defined during analysis.Data Flow Diagram:A modeling notation that represents a functional decomposition of a system.Data Driven Testing:Testing in which the action of a test case is parameterized by externally defined data values, maintained as a file or spreadsheet. A common technique in Automated Testing.Debugging:The process of finding and removing the causes of software failures. Defect:Nonconformance to requirements or functional / program specification Dependency Testing:Examines an application's requirements for pre-existing software, initial states and configuration in order to maintain proper functionality.Depth Testing:A test that exercises a feature of a product in full detail.Dynamic Testing:T esting software through executing it. See also Static Testing.EEmulator:A device, computer program, or system that accepts the same inputs and produces the same outputs as a given system.Endurance Testing:Checks for memory leaks or other problems that may occur with prolonged execution.End-to-End testing:Testing a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.Equivalence Class:A portion of a component's input or output domains for which the component's behaviour is assumed to be the same from the component's specification. Equivalence Partitioning:A test case design technique for a component in which test cases are designed to execute representatives from equivalence classes.Exhaustive Testing:Testing which covers all combinations of input values and preconditions for an element of the software under test.Functional Decomposition:A technique used during planning, analysis and design; creates a functional hierarchy for the software.Functional Specification:A document that describes in detail the characteristics of the product with regard to its intended features.Functional Testing:See also Black Box Testing.•Testing the features and operational behavior of a product to ensure they correspond to its specifications.•Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions.GGlass Box Testing:A synonym for White Box Testing.Gorilla Testing:Testing one particular module,functionality heavily.Gray Box Testing:A combination of Black Box and White Box testing methodologies: testing a piece of software against its specification but using some knowledge of its internal workings.HHigh Order Tests:Black-box tests conducted once the software has been integrated.IIndependent Test Group (ITG):A group of people whose primary responsibility is software testing,Inspection:A group review quality improvement process for written material. It consists of two aspects; product (document itself) improvement and process improvement (of both document production and inspection).Integration Testing:T esting of combined parts of an application to determine if they function together correctly. Usually performed after unit and functional testing. This type of testing is especially relevant to client/server and distributed systems.Installation Testing:Confirms that the application under test recovers from expected or unexpected events without loss of data or functionality. Events can include shortage of disk space, unexpected loss of communication, or power out conditions.JKLLoad Testing:See Performance Testing.Localization Testing:This term refers to making software specifically designed for a specific locality.Loop Testing:A white box testing technique that exercises program loops.MMetric:A standard of measurement. Software metrics are the statistics describing the structure or content of a program. A metric should be a real objective measurement of something such as number of bugs per lines of code.Monkey Testing:Testing a system or an Application on the fly, i.e just few tests here and there to ensure the system or an application does not crash out.NNegative Testing:T esting aimed at showing software does not work. Also known as "test to fail". See also Positive Testing.OPPath Testing:Testing in which all paths in the program source code are tested at least once.Performance Testing:Testing conducted to evaluate the compliance of a system or component with specified performance requirements. Often this is performed using an automated test tool to simulate large number of users. Also know as "Load Testing". Positive Testing:Testing aimed at showing software works. Also known as "test to pass". See also Negative Testing.QQuality Assurance:All those planned or systematic actions necessary to provide adequate confidence that a product or service is of the type and quality needed and expected by the customer.Quality Audit:A systematic and independent examination to determine whether quality activities and related results comply with planned arrangements and whether these arrangements are implemented effectively and are suitable to achieve objectives.Quality Circle:A group of individuals with related interests that meet at regular intervals toconsider problems or other matters related to the quality of outputs of a process and to the correction of problems or to the improvement of quality.Quality Control:The operational techniques and the activities used to fulfill and verify requirements of quality.Quality Management:That aspect of the overall management function that determines and implements the quality policy.Quality Policy:The overall intentions and direction of an organization as regards quality as formally expressed by top management.Quality System:The organizational structure, responsibilities, procedures, processes, and resources for implementing quality management.RRace Condition:A cause of concurrency problems. Multiple accesses to a shared resource, at least one of which is a write, with no mechanism used by either to moderate simultaneous access.Ramp Testing:Continuously raising an input signal until the system breaks down.Recovery Testing:Confirms that the program recovers from expected or unexpected events without loss of data or functionality. Events can include shortage of disk space, unexpected loss of communication, or power out conditions.Regression Testing:Retesting a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made.Release Candidate:A pre-release version, which contains the desired functionality of the final version, but which needs to be tested for bugs (which ideally should be removed before the final version is released).S<>Sanity Testing:Brief test of major functional elements of a piece of software to determine if its basically operational. See also Smoke Testing.<>Scalability Testing:Performance testing focused on ensuring the application under test gracefully handles increases in work load.<>Security Testing:T esting which confirms that the program can restrict access to authorized personnel and that the authorized personnel can access the functions available to their security level.<>Smoke Testing:A quick-and-dirty test that the major functions of a piece of software work. Originated in the hardware testing practice of turning on a new piece of hardware forthe first time and considering it a success if it does not catch on fire.<>Soak Testing:Running a system at high load for a prolonged period of time. For example, running several times more transactions in an entire day (or night) than would be expected in a busy day, to identify and performance problems that appear after a large number of transactions have been executed.<>Software Requirements Specification:A deliverable that describes all data, functional and behavioral requirements, all constraints, and all validation requirements for software/<>Software Testing:A set of activities conducted with the intent of finding errors in software.<>Static Analysis:Analysis of a program carried out without executing the program.Static Analyzer:A tool that carries out static analysis.<>Static Testing:Analysis of a program carried out without executing the program.Storage Testing:T esting that verifies the program under test stores data files in the correct directories and that it reserves sufficient space to prevent unexpected termination resulting from lack of space. This is external storage as opposed to internal storage. Stress Testing:Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. Often this is performance testing using a very high level of simulated load.Structural Testing:T esting based on an analysis of internal workings and structure of a piece of software. See also White Box Testing.System Testing:Testing that attempts to discover defects that are properties of the entire system rather than of its individual components.Testability:The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met.Testing:•The process of exercising software to verify that it satisfies specified requirements and to detect errors.The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs), and to evaluate the features of the software item (Ref. IEEE Std 829).•The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component.Test Automation:See Automated Testing.Test Bed:An execution environment configured for testing. May consist of specifichardware, OS, network topology, configuration of the product under test, other application or system software, etc. The Test Plan for a project should enumerated the test beds(s) to be used.Test Case:•Test Case is a commonly used term for a specific test. This is usually the smallest unit of testing. A Test Case will consist of information such as requirements testing, test steps, verification steps, prerequisites, outputs, test environment, etc.• A set of inputs, execution preconditions, and expected outcomes developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.Test Driven Development:Testing methodology associated with Agile Programming in which every chunk of code is covered by unit tests, which must all pass all the time, in an effort to eliminate unit-level and regression bugs during development. Practitioners of TDD write a lot of tests, i.e. an equal number of lines of test code to the size of the production code.Test Driver:A program or test tool used to execute a tests. Also known as a Test Harness. Test Environment:The hardware and software environment in which tests will be run, and any other software with which the software under test interacts when under test including stubs and test drivers.Test First Design:Test-first design is one of the mandatory practices of Extreme Programming (XP).It requires that programmers do not write any production code until they have first written a unit test.Test Harness:A program or test tool used to execute a tests. Also known as a Test Driver. Test Plan:A document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning. Ref IEEE Std 829.Test Procedure:A document providing detailed instructions for the execution of one or more test cases.Test Script:Commonly used to refer to the instructions for a particular test that will be carried out by an automated test tool.Test Specification:A document specifying the test approach for a software feature or combination or features and the inputs, predicted results and execution conditions for the associated tests.Test Suite:A collection of tests used to validate the behavior of a product. The scope of a Test Suite varies from organization to organization. There may be several T est Suites for a particular product for example. In most cases however a Test Suite is a high level concept, grouping together hundreds or thousands of tests related by what they are intended to test. Test Tools:Computer programs used in the testing of a system, a component of the system, or its documentation.Thread Testing:A variation of top-down testing where the progressive integration of components follows the implementation of subsets of the requirements, as opposed to theintegration of components by successively lower levels.Top Down Testing:An approach to integration testing where the component at the top of the component hierarchy is tested first, with lower level components being simulated by stubs. Tested components are then used to test lower level components. The process is repeated until the lowest level components have been tested.Total Quality Management:A company commitment to develop a process that achieves high quality product and customer satisfaction.Traceability Matrix:A document showing the relationship between Test Requirements and Test Cases.UUsability Testing:T esting the ease with which users can learn and use a product.Use Case:The specification of tests that are conducted from the end-user perspective. Use cases tend to focus on operating software as an end-user would conduct their day-to-day activities.Unit Testing:Testing of individual software components.VValidation:The process of evaluating software at the end of the software development process to ensure compliance with software requirements. The techniques for validation is testing, inspection and reviewing.Verification:The process of determining whether of not the products of a given phase of the software development cycle meet the implementation steps and can be traced to the incoming objectives established during the previous phase. The techniques for verification are testing, inspection and reviewing.Volume Testing:T esting which confirms that any values that may become large over time (such as accumulated counts, logs, and data files), can be accommodated by the program and will not cause the program to stop working or degrade its operation in any manner.WWalkthrough:A review of requirements, designs or code characterized by the author of the material under review guiding the progression of the review.White Box Testing:Testing based on an analysis of internal workings and structure of a piece of software. Includes techniques such as Branch Testing and Path T esting. Also known as Structural Testing and Glass Box Testing. Contrast with Black Box Testing. Workflow Testing:Scripted end-to-end testing which duplicates specific workflows which are expected to be utilized by the end-user.。

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

1Assessing Design Quality From a SoftwareArchitectural PerspectiveJeromy Carrièr Proceedings of the OOPSLA Workshop on Object-Oriented Design Quality (c) ACM 1997e, Rick KazmanSoftware Engineering Institute, Carnegie Mellon UniversityPittsburgh, PA 15213{sjc, kazman}@Abstract:In this paper, we take the position that good object oriented designs accrue from attention to both the design of objects and classes and to the architectural framework which defines how instances of those classes interact. We argue that an architecture should be assessed for conceptual integrity, and describe tool support for making such an assessment.1What Makes a Good Object Oriented Design?At the Software Engineering Institute, we are regularly asked to assess the design of large soft-ware intensive systems. We have gathered and documented a considerable amount of expertise aimed at answering the question of what makes a good design, object oriented or otherwise ([1],[2]). We have also produced and widely applied a method for investigating the “goodness” of de-signs [4]. So, what has this wealth of experience taught us?In our experience, design goodness flows from the ability to do architectural reasoning. This ap-pears to merely replace one question with another, for what factors contribute to the ability to do architectural reasoning? We will discuss two of these factors (a more complete discussion can be found in [2]):•the existence of an architecture,on top of any object/class design•the internal regularity (sometimes called pattern-based simplicity or conceptual integrity [3]) of the architectural designFor example, Figure 1 shows the software architecture of VANISH, a medium-sized (about 50,000lines of code) system for prototyping visualizations, written in C++. VANISH provides a program-ming environment for creating visualizations, and a means of easily integrating new domains to be visualized and new interaction toolkits.VANISH’s software architecture follows the Arch metamodel [7], which divides an interactive ap-plication into 5 layers: Functional Core (the system’s core functionality or purpose), Functional Core Adapter (which mediates between the dialogue and functional core by providing a unified,generic view of the functional core to the dialogue), Dialogue (a programmable mediator between domain specific and presentation specific functions), Logical Interaction (a virtual interaction tool-kit layer), and Presentation (which contains the toolkits that implement the physical interaction be-tween the user and the computer).2We claim that VANISH’s design is “good” because we can reason about it at the architectural level.At this level, we do not see individual objects or classes. In particular, we can reason about wheth-er the high-level clusters of components—the layers—exhibit conceptual integrity, and whether the links between the layers are semantically consistent. Given that we can do this reasoning, it then follows that we can identify architectural violations : areas of the architecture that do not follow the rules of the architecture, and hence to not exhibit conceptual integrity.At these areas we, as designers, can choose to fix the violation, document the violation as an al-lowable exception, or change the architectural description.2How is a Good Design Achieved?Having established the characteristics of a good design, we present an infrastructure (or work-bench ) that provides an environment for assessing a system’s design based on its implementa-tion. There are four steps involved in such an assessment:1.extraction of a source model from the system’s implementation2.identification of a set of design rules specifying a view of the system’sarchitectural design3.visualization of the architectural design4.evaluation of the architectural designSource model extraction is a necessary first step for an assessment of this type; unfortunately, it is also a step that frequently requires a great deal of effort. Parsing is the most well-known method for extracting static (as opposed to dynamic or run-time) elements from source code. However,implementing a parser is difficult and time consuming. We have explored the use of an alternative for static extraction: lightweight lexical extraction using regular expression-based patterns [6]. This technique does not purport to be a fully-accurate one: there are a number of particular types ofFigure 1: The Software Architecture of VANISHabc dsource elements that it is not effective at extracting. One such type of element is calls through vir-tual functions.The next step in the assessment process is creation of a set of design rules describing a view of the system’s architectural design. These rules are intended to concisely describe how elements of the source model (such as functions, classes and files) are related to architectural components. We have found that queries over an SQL database storing the source model are an effective rep-resentation of the these types of relationships.Visualization of the system’s architecture as it evolves from the source model provides useful guid-ance in determining the value of the design rules. Evaluating how a given rule transforms the mod-el is important: each rule should attempt to maintain semantic consistency within the model. Rigi provides an appropriate environment for the iterative process of developing design rules and visu-alizing a system’s architecture.Finally, once a system’s architecture has been constructed from design rules, the architecture it-self can be evaluated. The overall model can be evaluated for consistency and conceptual integ-rity. This is a type of conformance testing—how well does the system match the architectural model that has been developed for it? When the system exhibits deviations from the architectural model, these deviations can be identified as acceptable (the architectural description need not be altered to accomodate the deviation), as exceptions (the architectural description should be al-tered to incorporate the deviation) or as opportunities for improvement (the implementation should be modified to remove the devation).Referring to Figure 1, we can assess how well the implementation of VANISH conforms to its ar-chitectural design. The Arch-Slinky metamodel is strictly layered: a component should only have “connections” to its immediate neighbors. We can immediately observe in the figure that this con-straint is violated in four places (labelled a,b,c and d). These violations are easily classified as described above by examining the nature of the links between the layers:•a represents the instantiation by the Dialogue of classes that are part of thePresentation. This is an acceptable deviation imposed by the nature of theprogramming language.•b represents the calls by the Dialogue to the constructors of the classes whoseinstantiation makes up a. For the same reasons as a,b is an acceptabledeviation.•c is similar in nature to b: it represents the calls by the Dialogue to constructorsof classes in the Functional Core. For the same reasons as a and b,c is anacceptable deviation.•d represents calls by the Functional Core to member functions of classes in theDialogue. These calls bypass the intent of the Functional Core Adapter,exposing the Functional Core to the details of the Dialogue. This is anopportunity for improvement. (Note: because the Dialogue does not maintaininstances of classes in the Functional Core, there is no analogue of a betweenthese two layers).33References[1]G. Abowd, L. Bass, P. Clements, R. Kazman, L. Northrop, A. Zaremski, “Recommended Best Industrial Practice for Software Architecture Evaluation”, Software Engineering Institute Technical Report, CMU/SEI-96-TR-025, 1996.[2]L. Bass, P. Clements, R. Kazman,Software Architecture in Practice, Addison-Wesley, 1997 (in press).[3]F. Brooks,The Mythical Man-Month—Essays on Software Engineering, Addison-Wesley, 1975.[4]R. Kazman, G. Abowd, L. Bass, P. Clements, “Scenario-Based Analysis of Software Architec-ture”,IEEE Software, Nov. 1996, pp. 47-55.[5]R. Kazman, J. Carrière, “An Adaptable Software Architecture for Rapidly Creating Information Visualizations”,Proceedings of Graphics Interface ‘96, (Toronto, ON), May 1996, pp. 17-27.[6]G. Murphy, D. Notkin, “Lightweight Lexical Source Model Extraction“,ACM Transactions on Software Engineering and Methodology, Vol. 5, No. 3, July 1996, p. 262-292.[7]UIMS Tool Developers Workshop, “A Metamodel for the Runtime Architecture of an Interactive System”,SIGCHI Bulletin, 24(1), January 1992, pp32-37.4。

相关文档
最新文档