Chapter 2. The Software Development Process
fisa ii用户手册说明书
What you will learn from this chapter .................................. 1 About the package ................................................................ 1 System requirements............................................................. 1 Installing and starting FiSAT II............................................. 2 The graphic user interface..................................................... 4
FiSAT II was developed mainly for the analysis of lengthfrequency data, but also enables related analyses, of size-atage, catch-at-age, selection and others.
This User's Guide is an update of the previous version (Gayanilo, Sparre and Pauly, 1996). In addition to the printed document, a compact disk is provided with the software.
The errors and bugs in the software detected during the workshop, as well as those that were discovered during the later testing phase were corrected by Pedro de Barros, Professor at the University of Algarve.
psp11
The Process Script -Postmortem
Complete all the actual entries in the Project Plan Summary form. Finally Record the time spent by this phase and calculate the total development time and other calculations.
Student Program Instructor Mr.liu Student x Date Program # Language 03/19/04 9 java
Summary Minutes/LOC LOC/Hour Defects/KLOC Yield A/FR Program Size (LOC): Total new and changed Maximum Size Minimum Size
2
Why we use Processes?
A process is a defined set of steps for doing a job.
Each step or phase has specific(明确的) entry criteria satisfied before starting Each step or phase has specific exit criteria satisfied before completing
Logical Diagram---P191 17.7 Pseudo code---P193 17.7 UML Use case
10
The Process scripts--Coding
Implement the design by coding in the selected programming language. Use a consistent coding format and follow the coding standards. formats and standards (list in table 14.9 in Page 157) as a reference.
天津大学软件工程课程教学大纲
2. Course Description This course presents an introduction to the basic concepts of software, objects of
software engineering, traditional procedure-oriented soft development methods and object-oriented soft development methods, so students can master the method to develop high quality software. By learning the software develop process and process management techniques, students can understand how to conduct software metrics and management, how to take quality assurance activities, so the students can plan and manage software development activities effectively.
《软件工程——理论与实践(第三版)》,Pfleeger.S.L,Atlee.J.M.著,高等教 育出版社,2006 年 9 月。
制定人: 审核人: 批准人: 批准日期:
年月日
TU Syllabus for Software Engineering
Code:
2160288
Semester Hours: 56
Chapter 2 Software Process Software Process Model Component-Based Development Process RUP CMM
2.Software developement process_47
4
Fig 2.1 identifies a few of the abstract pieces that you may not have considered.
5
Software is …
• • • • • • requirements specification documents design documents source code test suites and test plans interfaces to hardware and software operating environment • internal and external documentation • executable programs and their persistent data
1. 2. 3. 4. 5. Software Architecture Data flow diagram State transition diagram Flowchart Commented code
13
1. Software Architecture
• describes the overall design of the software, including
3
Product Components
• software product is (P23-24) – a program that we download from the Internet or install from a DVD that runs on our computer. • In reality, many hidden pieces go into making that software. • many pieces that "come in the box" should not be ignored. • They're all testable pieces and can all have bugs.
Chapter 2 modeling the process and life cycle
Chapter 2 Modeling the Process and life cycle
需求分析
系统设计 程序设计 编码 单元测试和集成测试
《SRS》
系统设计文档如软件结构图 模块功能算法和数据描述文档 源程序和注释 单元测试报告
系统测试
验收测试 运行与维护
系统测试报告
验收测试报告 维护报告
13
一些新东西很累,也没有时间,如果你能直接链接扫描
仪,我只要学会你的软件就行了,我愿意多支付一些费 用……,还有,我想建一个图片库,你知道,我工作时需要 上百个图片,经常找不到,最好还带模糊查询。
5
实际情况2(续)
S:………………..!!!!! C:还有一些,现在一时想不起来,我想起来的话会再跟
你联系,时间上可以长一些。
备注: 因为软件规模小,这里的原型已经分不清是需求原型、 原界面、还是设计原型等。 问题1: 下一个项目如果规模比较大且复杂,将采用什么方法呢? 问题2: 是否需要对采用的“开发过程”本身得有更详细的界定
7
和理解,积累更多经验以应对更复杂的情况呢?
Chapter 2 Modeling the Process and life cycle
Chapter 2 Modeling the Process and life cycle
improvement(对瀑布模型的改进) A: prototyping (原型化): a subprocess of making prototype (see fig2.3) prototype(原型): 一种部分开发的产品,用来让用户和 开发者共同研究,提出意见,为最终 产品定型(see P51) B: advantage(原型化的优点): X: prototyping requirement or design enable improving Y: alternative solutions enable selecting the difference between Validation and Verification Validation(核准): check <SRS> Verification(检验): check ―design description‖
《计算机英语》课后习题答案
《计算机英语》参考答案Chapter 11.(1) 中央处理器(Central Processing Unit)(2) 随机访问内存(Random-access Memory)(3) 美国国际商用机器公司(International Business Machine)(4) 集成电路(Integrated Circuit)(5) 大规模集成电路(Large Scale Integration)(6) 超大规模集成电路(Very Large Scale Integration)(7) 个人数字助理(Personal Digital Assistant)(8) 图形用户界面(Graphical User Interface)2.(1) data(2) software(3) IC(4) ENIAC(5) supercomputer(6) superconductivity3.(1) F (ENIAC is the second digital computer after Atanasoff-Berry Computer)(2) T(3) F (Data is a unorganized)(4) T(5) T(6) T4.(1) 人工智能(2) 光计算机(3) 神经网络(4) 操作系统(5) 并行处理(6) vacuum tube(7) integrated circuit(8) electrical resistance(9) silicon chip(10) minicomputer5.数据是未经组织的内容的集合,数据可以包括字符、数字、图形和声音。
计算机管理数据,并将数据处理生成信息。
向计算机输入的数据称为输入,处理的结果称为输出。
计算机能在某一个称为存储器的地方保存数据和信息以备后用。
输入、处理、输出和存储的整个周期称为信息处理周期。
与计算机交互或使用计算机所产生信息的人称为用户。
1.(1) 发光二极管(Light-Emitting Diode)(2) 静态随机存储器(Static Random Access Memory)(3) 只读存储器(Read Only Memory)(4) 运算器(Arithmetic and Logical Unit)(5) 阴极射线管(Cathode Ray Tube)(6) 视频显示单元(Visual Display Unit)(7) 可编程只读存储器(Programmable Read Only Memory)(8) 液晶显示屏(Liquid Crystal Display)2.(1) CPU(2) peripheral(3) memory(4) modem(5) control unit(6) byte3.(1) T(2) T(3) F (RAM is volatile memory because the information within the computer chips is erased as soon as the computer is powered off whereas ROM is nonvolatile)(4) T(5) T(6) F (Microphones and digital cameras are input devices)4.(1) 寄存器组(2) 主机(3) 二进制的(4) 算法(5) 光盘(6) CD-RW(7) logic operation(8) barcode(9) peripheral device(10) volatile memory5.计算机的内存可被视为一系列的单元,可以在单元中存取数字。
软件开发英语怎么说词组是什么
软件开发英语怎么说词组是什么软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
那么,你知道软件开发的英语怎么说吗?软件开发的英文释义:software developmentsoftware engineering软件开发的英文例句:软件测试作为软件开发过程的重要环节,是保证软件质量,提高软件可靠性的重要手段,软件开发技术的发展,也必然会带动软件测试技术的发展。
As an important part in the software engineering, software testing is the primary instrumentality to guarantee the quality and reliability of the software.摘要软件复用技术对提高软件开发效率与质量、降低软件开发成本及缩短软件开发周期有着极其重要的作用。
The technology of software reuse plays an important role in improving efficiency and quality, reducing the cost and shortening the cycle of software development.方法,与其它敏捷软件开发方法一样,强调软件开发过程的自适应性和以人优先的价值观[1],这与传统的重量级软件开发方法强调对开发过程的控制相反。
Extreme Programming is the most popular method among all the Agile Software Development methods, which are characterized by the self-adaptive nature and people-first orientation[1].每一个软件开发人员开发包括Windows,MacOSX开发或移动设备软件开发类型的邀请。
1 绪论
Bugs a.k.a. …
• • • • • • • Defect Fault Problem Error Incident Anomaly Variance
• Failure • Inconsistency • Product Anomaly • Product Incidence • Feature :-)
软件测试的内涵与外延
软件测试狭义与广义之分
• 狭义的软件测试指通过执行软件的方式确定 软件的正确性。 • 广义的软件测试不仅包含狭义的软件测试方 法,还包括对软件正确性验证的所有手段, 此外对软件进行验证的特性也进行了扩展, 如安全性、性能、可移植性等等。 • 软件正确性验证的其他手段
– Are their technical barriers that make this impossible? – Is it just a question of time before we can do this? – Are we missing technology or processes?
– 代码的走读和审查; – 模型检验Model checking; – 程序正确性证明;
为什么会出现软件缺陷
• Requirements Definition: Erroneous, incomplete, inconsistent requirements. • Design: Fundamental design flaws in the software. • Implementation: Mistakes in chip fabrication, wiring, programming faults, malicious code. • Support Systems: Poor programming languages, faulty compilers and debuggers, misleading development tools.
软件项目计划英语作文范文
软件项目计划英语作文范文Chapter 1: Introduction1.1 BackgroundThe increasing importance of software in various industries has led to a surge in software development projects. These projects not only play a crucial role in the success of organizations but also contribute significantly to the overall growth of the software industry. However, the success of software projects is often hindered by various challenges such as scope creep, budget overruns, and missed deadlines. Therefore, it is crucial to have a well-defined software project plan in order to successfully execute and complete software projects.1.2 ObjectivesThe objective of this software project plan is to provide a comprehensive and systematic approach for the successful delivery of the software project. It aims to outline the project scope, objectives, deliverables, timeline, resource requirements, risk management, and quality assurance processes.Chapter 2: Project Scope and Objectives2.1 Scope DefinitionThe scope of this project includes the development of a user-friendly and efficient software solution for managing inventory and sales in a retail environment. The software should have features to track inventory, generate sales reports, manage customer information, and facilitate communication between different departments.2.2 ObjectivesThe objectives of this project are as follows:- Develop a software solution that meets the specific requirements of the retail industry.- Improve inventory management processes and reduce stockouts. - Increase sales efficiency by streamlining the sales process.- Enhance customer satisfaction by providing accurate and timely information.- Reduce manual effort and paperwork through automation. Chapter 3: Project Planning3.1 Project LifecycleThe project will follow a standard software development lifecycle, including the phases of requirements gathering, design, development, testing, deployment, and maintenance.3.2 TimelineThe project will be completed in 12 months, with specific milestones and deliverables defined for each phase. A Gantt chart will be used to visualize the project timeline and dependencies between tasks.3.3 Resource RequirementsThe project team will consist of a project manager, software developers, testers, and database administrators. The project manager will be responsible for overall coordination and communication, while the developers will handle the coding and implementation tasks. The testers will ensure the quality and functionality of the software, and the database administrators will handle the database setup and maintenance.Chapter 4: Risk Management and Quality Assurance4.1 Risk Identification and MitigationPotential risks and challenges, such as project delays, resource unavailability, and software bugs, will be identified and documented. Mitigation plans will be put in place to minimize the impact of these risks, including regular communication, contingency planning, and proactive bug tracking and fixing.4.2 Quality Assurance ProcessesTo ensure the quality of the software, a comprehensive testing plan will be implemented. This plan will include unit testing, integration testing, system testing, and user acceptance testing. Regular code reviews and quality audits will also be conducted throughout the development process to identify and address any quality issues.In conclusion, this software project plan provides a roadmap forthe successful execution and completion of the software project.By following the defined scope, objectives, and project planning strategies, the project team can mitigate risks, ensure software quality, and deliver a user-friendly and efficient software solution for managing inventory and sales in a retail environment.我们生活在一个高度发达的科技时代,科技已经贯穿我们的生活的方方面面。
计算机专业英语-1-8英语翻译
Chapter 11.multi-core processor(多核处理器)------It is a single computing component with two or more independent actual processing units called “cores”, which are the units that read and execute program instructions.它是集成了两个或两个以上称为“核”的处理单元的计算部件,具有读取和执行程序指令的单元。
2.graphics processing unit(GPU)(图形处理单元)------A graphics processing unit, also occasionally called visual processing unit(VPU),is a specialized processor. It is designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display.它是一个图形处理单元,有时也被称为视觉处理单元VPU,一个专门的处理器。
它的设计目的是快速地操作和改变内存,以加速在帧缓冲区中创建图像,以便显示输出。
3.Wearable computer(可穿戴电脑)------A wearable computer, also known as a body-borne computer or wearable ,is a miniature electronic device that is worn by the bearer under, with or on top of clothing.穿戴式电脑,也被称为人体电脑或穿戴电脑,是一种微型电子设备,由持有者佩戴在身上或者衣服上。
《计算机专业英语》电子教程讲义资料
计算机专业英语
1-5
Chapter 1 The History and Future of Computers
4. 了解科技英语的特点,掌握科技英语翻译要点
计算机专业英语
1-3
Chapter 1 The History and Future of Computers
Chapter 1 The History and Future of Computers
1.1 The Invention of the Computer
1.1 The Invention of the Computer
1.1.1 The ENIAC
While working on the ENIAC, Eckert and Mauchly were joined by a brilliant mathematician, John von Neuman. Together, they developed the idea of a stored program computer. This machine, called the Electronic Discrete Variable Automatic Computer, or EDVAC, was the first machine whose design included all the characteristics of a computer. It was not completed, however, until 1951.
第二章 编写简单Python程序(Chapter02_Writing Simple Programs)
Python Programming, 3/e
10
Example Program: Temperature Converter
Analysis – the temperature is given in Celsius, user wants it expressed in degrees Fahrenheit. Specification
18
Elements of Programs
Some identifiers are part of Python itself. These identifiers are known as reserved words (or keywords). This means they are not available for you to use as a name for a variable, etc. in your program. and, del, for, is, raise, assert, elif, in, print, etc. For a complete list, see Table 2.1 (p. 32)
Python Programming: An Introduction to Computer Science
Chapter 2 Writing Simple Programs
Python Programming, 3/e
1
Objectives
To know the steps in an orderly software development process. To understand programs following the input, process, output (IPO) pattern and be able to modify them in simple ways. To understand the rules for forming valid Python identifiers and expressions.
《IT职业英语教程》二级软件各章文档重点句子翻译
《IT职业英语教程》二级软件各章文档重点句子翻译总结此可行性研究报告意在为行星跟踪软件寻找可行的设计方案。
可行性研究报告是由通用电脑公司的101团队于2005年6月15日至2005年6月21日内编制。
This document is a report on the feasibility study conducted on the proposedsolutions for the Planet Tracking Software. The feasibility study was conducted between June15th, 2005 and June 21st, 2005 by Group 101, GCC Corporation.实施可行性研究考查的是软件如何变换风险承担者和用户的角色,以及新的工作流程和组织结构能否被用户和风险承担者所接受。
An operational feasibility study examines how the software will change theroles of the stakeholders and the users and whether the new workflow andorganizational structure will be accepted by the users and stakeholders技术可行性研究考查的是在现有团队和环境的技术条件下,将用于行星跟踪软件中的提议的设计方案是否可行。
A technical feasibility study checks to see if the proposed solution is feasiblegiven the skills of our group and the environment the software is expected to bedeployed in the Planet Tracking Software.时间可行性研究考查提议的设计方案能否在某种意义上确保满足宇宙工程公司要求的和其他客户要求的最终期限。
Chapter 2 Software 计算机系统概论(双语课件)专业英语课件
• If you want to use it beyond the trial period, you must pay a registration fee.
A site license is priced at a flat rate – for example , $5,000 per site.
Shareware
• Shareware is copyrighted software marketed under a “Try before you buy” policy.
They are • Single-User License • Multiple-User License • Concurrent-Use License • Site License
• Single-User License: This type of license limits the use of the software to only one user at a time. Most commercial software is distributed with single user license. Eg: Oracle , Win 98 OS
Categories of the system software
• Operating system • Utilities • Device drivers & • Computer programming languages
Operating system
Supervised by
a dissertation submitted to the department of computer science, faculty of science at the university of cape town in fulfillment of the requirements for the degree of master of science
By Justin George Templemore-Finlayson April 1998 Supervised by Prof P.S. Kritzinger
Abstract
This dissertation concerns the speci cation and description of complex communicating systems using Formal Description Techniques. Speci cally, it proposes a standard graphical representation for the Formal Description Techhnique Estelle, a well-developed textual language. A graphical notation would combine the advantages of a visually descriptive language with existing textually-based analysis tools. Existing graphical Estelle tools are surveyed and where possible, features of the syntaxes used are preserved in the proposed standard. Other graphical description techniques are also examined (and plundered!), particularly the similar Speci cation and Description Language, for accepted conceptual representations. Since formal descriptions are usually the basis of extensive computer-based analysis, it is useful to be able to store the graphical description in a processable electronic form. Consequently, part of the work of this thesis has been to develop an editor capable of interpreting speci cations in the graphical form. This editor maps the graphical description to the textual, which can be processed further by existing tools. The Estelle editor is described in detail, and a real-life protocol speci ced using the graphical notation and editor
外文翻译---软件和软件工程
外文翻译:Software and software engineering ----the software appearance and enumeratesAs the decade of the 1980s began, a front page story in business week magazine trumpeted the following headline:” software: the new driving force.”software had come of age—it had become a topic for management concern. during the mid-1980s,a cover story in foreune lamented “A Growing Gap in Software,”and at the close of the decade, business week warned managers about”the Software Trap—Automate or else.”As the 1990s dawned , a feature story in Newsweek asked ”Can We Trust Our Software? ”and The wall street journal related a major software company’s travails with a front page article entitled “Creating New Software Was an Agonizing Task …” these headlines, and many others like them, were a harbinger of a new understanding of the importance of computer software ---- the opportunities that it offers and the dangers that it poses.Software has now surpassed hardware as the key to the success of many computer-based systems. Whether a computer is used to run a business, control a product, or enable a system , software is the factor that differentiates . The completeness and timeliness of information provided by software (and related databases) differentiate one company from its competitors. The design and “human friendliness” of a software product differentiate it from competing products with an otherwise similar function .The intelligence and function provided by embedded software often differentiate two similar industrial or consumer products. It is software that can make the difference.During the first three decades of the computing era, the primary challenge was to develop computer hardware that reduced the cost of processing and storing data .Throughout the decade of the 1980s,advances in microelectronics resulted in more computing power at increasingly lower cost. Today, the problem is different .The primary challenge during the 1990s is to improve thequality ( and reduce the cost ) of computer-based solutions- solutions that are implemented with software.The power of a 1980s-era mainframe computer is available now on a desk top. The awesome processing and storage capabilities of modern hardware represent computing potential. Software is the mechanism that enables us to harness and tap this potential.The context in which software has been developed is closely coupled to almost five decades of computer system evolution. Better hardware performance, smaller size and lower cost have precipitated more sophisticated computer-based syst ems. We’re moved form vacuum tube processors to microelectronic devices that are capable of processing 200 million connections per second .In popular books on “the computer revolution,”Osborne characterized a “new industrial revolution,” Toffer called the advent of microelectronics part of “the third wave of change” in human history , and Naisbitt predicted that the transformation from an industrial society to an “information society” will have a profound impact on our lives. Feigenbaum and McCorduck suggested that information and knowledge will be the focal point for power in the twenty-first century, and Stoll argued that the “ electronic community” created by networks and software is the key to knowledge interchange throughout the world . As the 1990s began , Toffler described a “power shift” in which old power structures( governmental, educational, industrial, economic, and military) will disintegrate as computers and software lead to a “democratization of knowledge.”Figure 1-1 depicts the evolution of software within the context of. computer-based system application areas. During the early years of computer system development, hardware underwent continual change while software was viewed by many as an afterthought. Computer programming was a "seat-of-the-pants" art for which few systematic methods existed. Software development was virtually unmanaged--until schedules slipped or costs began to escalate. During this period, abatch orientation was used for most systems. Notable exceptions were interactive systems such as the early American Airlines reservation system and real-time defense-orientedsystems such as SAGE. For the most part, however, hardware was dedicated to the union of, a single program that in turn was dedicated to a specific application.Evolution of softwareDuring the early years, general-purpose hardware became commonplace. Software, on the other hand, was custom-designed for each application and had a relatively limited distribution. Product software(i.e., programs developed to be sold to one or more customers) was in its infancy . Most software was developed and ultimately used by the same person or organization. You wrote it, you got it running , and if it failed, you fixed it. Because job mobility was low , managers could rest assured that you’d be there when bugs were encountered.Because of this personalized software environment, design was an implicit process performed in one’s head, and action was often nonexistent. During the early years we learned much about the implementation of computer-based systems, but relatively little about computer system engineering .In fairness , however , we must acknowledge the many outstanding computer-based systems that were developed during this era. Some of these remain in use today and provide landmark achievements that continue to justify admiration.The second era of computer system evolution (Figure 1.1) spanned the decade from themid-1960s to the late 1970s. Multiprogramming and multiuse systems introduced new concepts of human-machine interaction. Interactive techniques opened a new world of applications and new levels of hardware and software sophistication . Real-time systems could collect, analyze, and transform data form multiple sources , thereby controlling processes and producing output in milliseconds rather than minutes . Advances in on-line storage led to the first generation of database management systems.The second era was also characterized by the use of product software and the advent of "software houses." Software was developed for widespread distribution in a multidisciplinary market. Programs for mainframes and minicomputers were distributed to hundreds and sometimesthousands of users. Entrepreneurs from industry, government, and academia broke away to "develop the ultimate software package" and earn a bundle of money.As the number of computer-based systems grew, libraries of computer software began to expand. In-house development projects produced tens of thousands of program source statements. Software products purchased from the outside added hundreds of thousands of new statements. A dark cloud appeared on the horizon. All of these programs--all of these source statements-had to be corrected when faults were detected, modified as user requirements changed, or adapted to new hardware that was purchased. These activities were collectively called software maintenance. Effort spent on software maintenance began to absorb resources at an alarming rate.Worse yet, the personalized nature of many programs made them virtually unmentionable. A "software crisis" loomed on the horizon.The third era of computer system evolution began in the mid-1970s and continues today. The distributed system--multiple computers, each performing functions concurrently and communicating with one another- greatly increased the complexity of computer-based systems. Global and local area networks, high-bandwidth digital communications, and increasing demands for 'instantaneous' data access put heavy demands on software developers.The third era has also been characterized by the advent and widespread use of microprocessors, personal computers, and powerful desk-top workstations. The microprocessor has spawned a wide array of intelligent products-from automobiles to microwave ovens, from industrial robots to blood serum diagnostic equipment. In many cases, software technology is being integrated into products by technical staff who understand hardware but are often novices in software development.The personal computer has been the catalyst for the growth of many software companies. While the software companies of the second era sold hundreds or thousands of copies of their programs, the software companies of the third era sell tens and even hundreds of thousands of copies. Personal computer hardware is rapidly becoming a commodity, while software provides the differentiating characteristic. In fact, as the rate of personal computer sales growth flattened during the mid-1980s, software-product sales continued to grow. Many people in industry and at home spent more money on software than they did to purchase the computer on which the software would run.The fourth era in computer software is just beginning. Object-oriented technologies (Chapters 8 and 12) are rapidly displacing more conventional software development approaches in many application areas. Authors such as Feigenbaum and McCorduck [FEI83] and Allman [ALL89] predict that "fifth-generation" computers, radically different computing architectures, and their related software will have a profound impact on the balance of political and industrial power throughout the world. Already, "fourth-generation" techniques for software development (discussed later in this chapter) are changing the manner in which some segments of the software community build computer programs. Expert systems and artificial intelligence software has finally moved from the laboratory into practical application for wide-ranging problems in the real world. Artificial neural network software has opened exciting possibilities for pattern recognition and human-like information processing abilities.As we move into the fourth era, the problems associated with computer software continue to intensify:Hardware sophistication has outpaced our ability to build software to tap hardware's potential.Our ability to build new programs cannot keep pace with the demand for new programs.Our ability to maintain existing programs is threatened by poor design and inadequate resources.In response to these problems, software engineering practices--the topic to which this book is dedicated--are being adopted throughout the industry.An Industry PerspectiveIn the early days of computing, computer-based systems were developed usinghardware-oriented management. Project managers focused on hardware because it was the single largest budget item for system development. To control hardware costs, managers instituted formal controls and technical standards. They demanded thorough analysis and design before something was built. They measured the process to determine where improvements could be made. Stated simply, they applied the controls, methods, and tools that we recognize as hardware engineering. Sadly, software was often little more than an afterthought.In the early days, programming was viewed as an "art form." Few formal methods existed and fewer people used them. The programmer often learned his or her craft by trial and error. The jargon and challenges of building computer software created a mystique that few managers cared to penetrate. The software world was virtually undisciplined--and many practitioners of the clay loved it!Today, the distribution of costs for the development of computer-based systems has changed dramatically. Software, rather than hardware, is often the largest single cost item. For the past decade managers and many technical practitioners have asked the following questions: Why does it take so long to get programs finished?Why are costs so high?Why can't we find all errors before we give the software to our customers?Why do we have difficulty in measuring progress as software is being developed?These, and many other’ questions, are a manifestation of the concern about software and the manner in which it is developed--a concern that has tend to the adoption of software engineering practices.译文:软件和软件工程——软件的出现及列举在二十世纪八十年代的前十年开始的时候, 在商业周刊杂志里一个头版故事大声宣扬以下标题:“软件,我们新的驱动力!”软件带来了一个时代------它成为了一个大家关心的主题。
Nsight Eclipse Plugins Edition DG-06450-001 _v9.1
Getting Started GuideTABLE OF CONTENTS Chapter 1. Introduction (1)1.1. About Nsight Eclipse Plugins Edition (1)Chapter 2. Using Nsight Eclipse Edition (2)2.1. Installing Nsight Eclipse Edition (2)2.1.1. Installing CUDA T oolkit (2)2.1.2. Configure CUDA T oolkit Path (2)2.2. Nsight Eclipse Main Window (4)2.3. Creating a New Project (5)2.4. Importing CUDA Samples (6)2.4.1. cuHook Sample (6)2.5. Configure Build Settings (7)2.6. Debugging CUDA Applications (8)2.7. Remote development of CUDA Applications (10)2.8. Debugging Remote CUDA Applications (12)2.9. Profiling CUDA applications (18)2.10. Importing Nsight Eclipse Projects (19)2.11. More Information (21)LIST OF FIGURESFigure 1 Nsight main window after creating a new project (5)Figure 2 Debugging CUDA application (9)Figure 3 Debugging CUDA application (10)Figure 4 Debugging remote CUDA application (18)Figure 5 Profiling CUDA Application (19)This guide introduces Nsight Eclipse Plugins Edition and provides instructions necessary to start using this tool. Nsight Eclipse is based on Eclipse CDT project. Fora detailed description of Eclipse CDT features consult the integrated help "C/C++ Development User Guide" available from inside Nsight (through Help->Help Contents menu).1.1. About Nsight Eclipse Plugins EditionNVIDIA® Nsight™ Eclipse Edition is a unified CPU plus GPU integrated development environment (IDE) for developing CUDA® applications on Linux and Mac OS X for the x86, POWER and ARM platforms. It is designed to help developers on all stages of the software development process. Nsight Eclipse Plugins can be installed on vanilla Eclipse 4.4 or later using the standard Help->Install New Software.. Menu. The principal features are as follows:‣Edit, build, debug and profile CUDA-C applications‣CUDA aware source code editor – syntax highlighting, code completion and inline help‣Graphical user interface for debugging heterogeneous applications‣Profiler integration – Launch visual profiler as an external application with the CUDA application built in this IDE to easily identify performance bottlenecksFor more information about Eclipse Platform, visit 2.1. Installing Nsight Eclipse EditionNsight Eclipse Plugins archive is part of the CUDA Toolkit. Nsight Eclipse Plugins archive can be installed using the Help -> Install New Software... Menu on Eclipse 4.4 or later2.1.1. Installing CUDA T oolkitTo install CUDA Toolkit:1.Visit the NVIDIA CUDA Zone download page:/object/cuda_get.html2.Select appropriate operating system. Nsight Eclipse Edition is available in Mac OS X and Linux toolkit packages.3.Download and install the CUDA Driver.4.Download and install the CUDA Toolkit.5.Follow instructions to configure CUDA Driver and Toolkit on your system.2.1.2. Configure CUDA T oolkit PathTo get started, CUDA Toolkit path must be configured in Eclipse with Nsight Plugins:1.Open the Preferences page, Window > Preferences.2.Go to CUDA toolkit section.3.Select the CUDA toolkit path to be used by Nsight. CUDA tookits that are installed in the default location will automatically appear.4.CUDA toolkit path can be also specified in the project properties page in order to use different toolkit for a project.5.For QNX: When QNX is selected as Target OS, a dialog will be displayed to set theQNX_HOST and QNX_TARGET environment variables if they were not already set.QNX_HOST environment variable identifies the directory that holds the host-related components:QNX_TARGET environment variable identifies the directory that holds the target-related components:2.2. Nsight Eclipse Main WindowOn the first run Eclipse will ask to pick a workspace location. The workspace is a folder where Nsight will store its settings, local files history and caches. An empty folder should be selected to avoid overwriting existing files.The main Nsight window will open after the workspace location is selected. The main window is divided into the following areas:‣Editor - displays source files that are opened for editing.‣Project Explorer - displays project files‣Outline - displays structure of the source file in the current editor.‣Problems - displays errors and warnings detected by static code analysis in IDE or bya compiler during the build.‣Console - displays make output during the build or output from the running application.2.3. Creating a New Project1.From the main menu, open the new project wizard - File > New... > C/C++ Project2.Specify the project name and project files location.3.Specify the project type like executable project.4.Specify the CUDA toolchain from the list of toolchains.5.Specify the project configurations on the next wizard page.plete the wizard.The project will be shown in the Project Explorer view and source editor will be opened.7.Build the project by clicking on the hammer button on the main toolbar.Figure 1 Nsight main window after creating a new project2.4. Importing CUDA SamplesThe CUDA samples are an optional component of the CUDA Toolkit installation. Nsight provides a mechanism to import these samples and work with them easily: Samples that use the CUDA driver API (suffixed with "Drv") are not supported byNsight.1.From the main menu, open the new project wizard - File > New... > C/C++ Project2.Specify the project name and project files location.3.Select Import CUDA Sample under Executable in the Project type tree.4.Select CUDA toolchain from the Toolchains option. location.5.On the next wizard page select project sample you want to import. Also select the target CPU architecture. Press Next...6.Specify the project parameters on the next wizard page.plete the wizard.The project will be shown in the Project Explorer view and source editor will be opened.8.Build the project by clicking on the hammer button on the main toolbar.2.4.1. cuHook SamplecuHook sample builds both the library and the executable. cuHook sample should be imported as the "makefile" project using the following steps.1.From the main menu, open the new project wizard - File > New... > C/C++ Project2.Select project type "Makefile project" and choose "Empty Project"3.Specify the project name and project files location.plete the wizard.The project will be shown in the Project Explorer view.5.Right click on the project - Import... > General > File System6.On the next wizard page, select the location of cuHooksample(Samples/7_CUDALibraries/cuHook)7.Select all the source files and makefile and Finish the wizard8.Build the project by clicking on the hammer button on the main toolbar.9.To run the sample, from the main menu - Run > Run Configurations... > Select the executable > Go to Environment tab > New... > enter Name=LD_PRELOAD, Value=./ libcuhook.so.1 > Run will execute the sample2.5. Configure Build SettingsTo define build settings: In the C/C++ Projects view, right-click your project, and select Properties. Select C/C++ Build, Settings from the list.The following are the categories of Nvcc linker settings that can be configured for the selected project.All options field in the main page is not editable and it's the collection of options setin the child categories.‣Libraries - Configure library search path(-L) and to include linker libraries(-l). When you are cross compiling for different target os, the library search path should point to the appropriate location where the target os libraries are present.‣Miscellaneous - Set additional linker options and option to link with OpenGL libraries.‣Shared Library Settings - Set option to build a shared library.The following are the categories of Nvcc Compiler settings that can be configured for the selected project.All options field in the main page is not editable and it's the collection of options set‣Dialect - Select the language standard and dialect options.‣Preprocessor - Add the defined and undefined symbols for the preprocessor.‣Includes - Set include paths and include files for the compiler.‣Optimization - Set the compiler optimization level.‣Debugging - Set the options to generate debug information.‣Warnings - Set inhibit all warning messages.‣CUDA - Generate code for different real architectures with the PTX for the same vitrual architectures.2.6. Debugging CUDA ApplicationsNsight must be running and at least one project must exist.1.In the Project Explorer view, select project you want to debug. Make sure the project executable is compiled and no error markers are shown on the project.2.Right click on the project and go to Debug As > NVIDIA CUDA GDB Debugger menu.3.You will be offered to switch perspective when you run debugger for the first time. Click "Yes".Perspective is a window layout preset specifically designed for a particular task.4.Application will suspend in the main function. At this point there is no GPU code running.5.Add a breakpoint in the device code. Resume the application.Debugger will break when application reaches the breakpoint. You can now explore your CUDA device state, step through your GPU code or resume the application.Figure 2 Debugging CUDA applicationAdditional debugger options can be set in the debug configuration dialog through Run > Debug Configurations .. menu..Figure 3 Debugging CUDA application2.7. Remote development of CUDA ApplicationsNsight Eclipse Edition also supports remote development of CUDA application starting with CUDA Toolkit 6.0. The picture below shows how Nsight Eclipse Edition can beused for local as well as remote development:For remote development you do not need any NVIDIA GPU on your host system. The remote target system can be a Linux x86 or POWER system with an NVIDIA GPU or an Tegra-based ARM system. Nsight IDE and UI tools can only be hosted on x86 and POWER systems.Nsight Eclipse Plugins supports the cross compilation mode for remote devices.In the cross compilation mode the project resides on the host system and the cross compilation is also done on the host system. The cross compilation mode is only supported on an Ubuntu x86 host system.To cross compile select the target cross compile architecture in CPU architecture dropdown in the project properties page:2.8. Debugging Remote CUDA Applications Remote debugging is available starting with CUDA Toolkit 5.5. A dedicated GPU is not required to use Nsight remote debugging UI. A dedicated GPU is still required on the debug target. Only Linux targets are supported. Debug host and target may run different operating systems or have different CPU architectures. The remote machine must be accessible via SSH and CUDA Toolkit must be installed on both machines.If there is a firewall between the host and the target, it must be set up to let RSP1.Select the project and right click then go to Debug As...>NVIDIA CUDA GDBDebugger(Remote) menu item.2.Type the full path to a local executable or select one using the Local file... button.3.Select a remote connection from a drop-down list or press the Add connection... button to create a new one.4.If you are creating a new remote connection, select the SSH Only connection type, press Next, and type the host name(or IP address) as well as the connection name anddescription (both are optional) and then press Finish.5.For Android devices: To configure the remote connection using Android debug bridge, select the Android debug bridge from the Remote Connection drop-downlist, Android device must be connected to the host system using USB port.Press Manage button, and enter or select the path to adb utility. You need to install Android SDK platform tools to use Android debug bridge. press Detect button tofind the android device available through ADB.6.Optional: Press Connect to verify the selected remote connection.7.Press the Next button.8.Type the full path to cuda-gdbserver on the remote system or select one using theBrowse... button.9.Click on "Add new path" or on the Browse... button to specify the path to the shared libraries the remote application depends on.10.C lick on the Finish button to finish the new debug configuration wizard and start debugging the application.11.Y ou will be offered to switch perspective when you run the debugger for the first time. Click Yes.Perspective is a window layout preset specifically designed for a particular task. The debugger will stop at the application main routine. You can now set breakpoints, orresume the application.Figure 4 Debugging remote CUDA application2.9. Profiling CUDA applicationsNsight must be running and at least one project must exist. Profiler cannot be used when debugging session is in progress.Nsight Eclipse Edition profiling features are based on the NVIDIA Visual Profiler ( nvvp ) code. Nsight Eclipse Plugins Edition will launch the Visual Profiler as an external tool with the executable and other information from the selected project.1.In the Project Explorer view, select project you want to profile. Make sure the project executable is compiled and no error markers are shown on the project.2.Select the project and right click and go to Profile As>NVIDIA Visual Profiler menu.Nsight Eclipse will launch the Visual Profiler to specify extra profiler options with the executable information already passed from the selected project.Figure 5 Profiling CUDA Application2.10. Importing Nsight Eclipse ProjectsThe projects that are created with Nsight Eclipse Edition can be imported into the Eclipse workbench with Nsight Eclipse plugins.1.Open Nsight Eclipse edition and select the project that needs to be exported.2.Right click on the Nsight Eclipse project and go to - Export > C/C++ > C/C++ Project Settings > Next menu.3.Select the project and settings to export.4.Specify the "Export to file" location.5.Settings will be stored in the given XML file.6.Go to Eclipse workbench where the project settings needs to be imported.7.Create a C/C++ Project from the main menu File > New > C/C++ Project8.Specify the project name and choose Empty project type with CUDA toolchains.9.Right click on the project to import the source files. Import > General > File System >(From directory) or copy the source files from the existing project.10.I mport the project settings like include paths and symbols using the following right click menu Import > C/C++ > C/C++ Project Settings >Next...11.S elect the location of the project settigns file and select the project and configurationon the next wizard page.12.C omplete the wizard.The project settings will be imported from the file exported from Nsight Eclipse Edition.13.B uild the project by clicking on the hammer button on the main toolbar.2.11. More InformationMore information about the Eclipse CDT features and other topics is available in the Help contents. To access Help contents select Help->Help Contents from the Nsight main menu.More information about CUDA, CUDA Toolkit and other tools is available on CUDAweb page at /cudaNoticeALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATEL Y, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSL Y DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation.TrademarksNVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright© 2007-2018 NVIDIA Corporation. All rights reserved.。
ADOBE DIRECTOR 11.5 说明书
ADOBE® DIRECTOR®Scripting Dictionary© 2009 Adobe Systems Incorporated. All rights reserved.Adobe® Director® 11.5 Scripting DictionaryIf this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement.The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide.Please remember that existing artwork or images that you may want to include in your project may be protected under copyright law. The unauthorized incorporation of such material into your new work could be a violation of the rights of the copyright owner. Please be sure to obtain any permission required from the copyright owner.Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any actual organization.This work is licensed under the Creative Commons Attribution Non-Commercial 3.0 License. To view a copy of this license, visit/licenses/by-nc-sa/3.0/us/Adobe, the Adobe logo, Director, Flash, and Shockwave, are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.Microsoft and Windows are registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners.Bitstream is a trademark or a registered trademark of Bitstream Inc.This product contains either BSAFE and/or TIPEM software by RSA Security, Inc.This product includes software developed by the Apache Software Foundation ().Adobe Flash 9 video compression and decompression is powered by On2 TrueMotion video technology. © 1992-2005 On2 Technologies, Inc. All Rights Reserved. .Portions of this product contain code that is licensed from Gilles Vollant.Portions of this product contain code that is licensed from Nellymoser, Inc. ()Sorenson Spark™ video compression and decompression technology licensed from Sorenson Media, Inc.Copyright © 1995-2002 Opera Software ASA and its supplier. All rights reserved.MPEG Layer-3 audio coding technology licensed from Fraunhofer IIS and Thomson. mp3 Surround audio coding technology licensed from Fraunhofer IIS, Agere Systems and Thomson. mp3PRO audio coding technologies licensed from Coding Technologies, Fraunhofer IIS and Thomson Multimedia.PhysX is a trademark or registered trademark of NVIDIA Corporation in the United States and/or other countries.Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at 48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference.iii ContentsChapter 1: IntroductionIntended audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 What’s new with Director scripting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 What’s new in this documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Finding information about scripting in Director . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Chapter 2: Director Scripting EssentialsTypes of scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Scripting terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Scripting syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Literal values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Conditional constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Events, messages, and handlers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Linear lists and property lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 JavaScript syntax arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Chapter 3: Writing Scripts in DirectorChoosing between Lingo and JavaScript syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Scripting in dot syntax format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Introducing the Director objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Object model diagrams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Top-level functions and properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Introduction to object-oriented programming in Director . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Object-oriented programming with Lingo syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Object-oriented programming with JavaScript syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Writing scripts in the Script window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Chapter 4: Debugging Scripts in DirectorAbout debugging scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Good scripting habits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Basic debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Debugging in the Script window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Debugging in the Message window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Debugging in the Object inspector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Debugging in the Debugger window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Debugging projectors and Shockwave movies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Advanced debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Chapter 5: Director Core ObjectsCast Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Member. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Mixer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Movie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Player. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Sound Channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Sprite Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Chapter 6: Media TypesAnimated GIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Bitmap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 ByteArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Color Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 DVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Film Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Flash Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Flash Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Linked Movie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 MP4Media/FLV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 QuickTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 RealMedia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Shockwave 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Shockwave Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Vector Shape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Windows Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Chapter 7: Scripting ObjectsAudio filters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ByteArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Fileio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 MUI Xtra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 NetLingo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 SpeechXtra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 XML Parser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 XML Xtra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Chapter 8: 3D ObjectsAbout 3D Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Light. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Member. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Model Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Renderer Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Shader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Chapter 9: Constants" (string). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 BACKSPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 EMPTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 ENTER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 FALSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 QUOTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 RETURN (constant) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 SPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 TAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 TRUE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 VOID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Chapter 10: Events and Messageson activateApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 on activateWindow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 on beginSprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 on closeWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 on cuePassed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 on deactivateApplication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 on deactivateWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 on DVDeventNotification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 on endSprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 on enterFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 on EvalScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 on exitFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 on getBehaviorDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 on getBehaviorTooltip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 on getPropertyDescriptionList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 on hyperlinkClicked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 on idle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196。
大学实用计算机英语教程翻译-吕云翔-Unit 2
Unit 2Section ASoftware Requirements (软件需求)The main goal of the requirements phase is to produce the software requirements specification (SRS ), which accurately captures the client’srequirements and which forms the basis of software development and validation. The basic reason for the difficulty in specifying software requirements comes from the fact that there are three interested parties -- the client, the end users, and the software developer. The requirements document has to be such that the client and users can understand it easily and the developers can use it as a basis for software development. Due to the diverse parties involved in software requirements specification, a communication gap exists. This makes the task of requirements specification difficult.There are three basic activities in the requirements phase. The first is problem orrequirements analysis. The goal of this activity is to understand such different aspects as therequirements of the problem, its context , and how it fits within the client’s organization. The second activity is requirements specification, during which the understood problem is specified or written, producing the SRS. And the third activity isrequirements validation, which is done to ensure that the requirements specified in the SRS are indeed what are desired .There are three main approaches to analyze. Unstructured approaches rely on interactionbetween the analyst, customer, and user to reveal all the requirements (which are then documented ). The second is the modeling-oriented approach, in which a model of the problem is built based on the available information. The model is useful indetermining if the understanding is correct and in ensuring that all the requirements have beendetermined. Modeling may be function-oriented or object-oriented . The third approach is theprototyping approach in which a prototype is built tovalidate the correctness and completeness ofrequirements.To satisfy its goals, a SRS should possess characteristics like completeness, consistency , unambiguous, verifiable , modifiable, etc. A good SRS should specify all the functions the software needs to support, performance of the system, the design constraints that exist, and all the external interfaces.One method for specifying the functionalspecifications that has become popular is the use case approach. With this approach the functionality of the system when a user interacts with it for achieving some goal. Each use case contains a normal scenario, as well as mangy exceptional scenarios, thereby providing the complete behavior of the system. Though use cases are meant for specification, as they are natural and story-like, by expressing them at different levels of abstraction they can also be used for problem analysis.For validation, the most commonly used method is reviewing or inspecting the requirements. Inrequirements inspections, the team of reviewers also includes a representative of the client to ensure thatall requirements are captured.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chapter 2. The Software Development ProcessIN THIS CHAPTER∙Product Components∙Software Project Staff∙Software Development Lifecycle ModelsTo be an effective software tester, it's important to have at least a high-level understanding of the overall process used to develop software. If you write small programs as a student or hobbyist, you'll find that the methods you use are much different from what big companies use to develop software. The creation of a new software product may involve dozens, hundreds, even thousands of team members all playing different roles and working together under tight schedules. The specifics of what these people do, how they interact, and how they make decisions are all part of the software development process.The goal of this chapter isn't to teach you everything about the software development processthat would take an entire book! The goal is to give you an overview of the all the pieces that go into a software product and a look at a few of the common approaches in use today. With this knowledge you'll have a better understanding of how best to apply the software testing skills you learn in the later chapters of this book.The highlights of this chapter include∙What major components go into a software product∙What different people and skills contribute to a software product ∙How software progresses from an idea to a final productProduct ComponentsWhat exactly is a software product? Many of us think of it as simply a program that we download from the Internet or install from a DVD that runs on our computer. That's a pretty good description, but in reality, many hidden pieces go into making that software. There are also many pieces that "come in the box" that are often taken for granted or might even be ignored. Although it may be easy to forget about all those parts, as a software tester, you need to be aware of them, because they're all testable pieces and can all have bugs.What Effort Goes Into a Software Product?First, look at what effort goes into a software product. Figure 2.1 identifies a few of the abstract pieces that you may not have considered.Figure 2.1. A lot of hidden effort goes into a software product.So what are all these things, besides the actual code, that get funneled into the software? At first glance they probably seem much less tangible than the program listing a programmer creates. And they definitely aren't something that can be viewed directly from the product's CD-ROM. But, to paraphrase a line from an old spaghetti sauce commercial, "they're in there." At least, they should be.The term used in the software industry to describe a software product component that's created and passed on to someone else is deliverable. The easiest way to explain what all these deliverables are is to organize them into major categories.Customer RequirementsSoftware is written to fulfill some need that a person or a group of people has. Let's call them the customer. To properly fill that need, the product development team must find out what the customer wants. Some teams simply guess, but most collect detailed information in the form of surveys,feedback from previous versions of the software, competitive product information, magazine reviews, focus groups, and numerous other methods, some formal, some not. All this information is then studied, condensed, and interpreted to decide exactly what features the software product should have.SpecificationsThe result of the customer requirements studies is really just raw data. It doesn't describe the proposed product, it just confirms whether it should (or shouldn't) be created and what features the customers want. The specifications take all this information plus any unstated but mandatory requirements and truly define what the product will be, what it will do, and how it will look.The format of specifications varies greatly. Some companiesespecially those developing products for the government, aerospace, financial, and medical industriesuse a very rigorous process with many checks andbalances. The result is an extremely detailed and thorough specification that's locked down, meaning that it can't change except under very extreme conditions. Everyone on the development team knows exactly what they are creating.There are development teams, usually ones creating software forless-critical applications, who produce specifications on cocktail napkins, if they create them at all. This has the distinct advantage of being very flexible, but there's lots of risk that not everyone is "on the same page." And, what the product finally becomes isn't known until it's released.SchedulesA key part of a software product is its schedule. As a project grows in size and complexity, with many pieces and many people contributing to the product, it becomes necessary to have some mechanism to track its progress. This could range from simple task lists to Gantt charts (see Figure 2.2) to detailed tracking of every minute task with project management software.Figure 2.2. A Gantt chart is a bar chart that shows a project's tasksagainst a horizontal timeline.The goals of scheduling are to know which work has been completed, howmuch work is still left to do, and when it will all be finished. Software Design DocumentsOne common misconception is that when a programmer creates a program, he simply sits down and starts writing code. That may happen in some small, informal software shops, but for anything other than the smallest programs, there must be a design process to plan out how the software will be written. Think about this book, which required an outline before the first words were typed, or a building, which has blueprints drawn before the first concrete is poured. The same planning should happen with software.The documents that programmers create vary greatly depending on the company, the project, and the team, but their purpose is to plan and organize the code that is to be written.Here is a list of a few common software design documents: ∙Architecture. A document that describes the overall design of thesoftware, including descriptions of all the major pieces and how they interact with each other.∙Data Flow Diagram. A formalized diagram that shows how data moves through a program. It's sometimes referred to as a bubble chart because it's drawn by using circles and lines.∙State Transition Diagram. Another formalized diagram that breaks the software into basic states, or conditions, and shows the means for moving from one state to the next.∙Flowchart. The traditional means for pictorially describing a program's logic. Flowcharting isn't very popular today, but when it's used, writing the program code from a detailed flowchart isa very simple process.∙Commented Code. There's an old saying that you may write code once, but it will be read by someone at least 10 times. Properly embedding useful comments in the software code itself is extremely important, so that programmers assigned to maintain the code can more easily figure out what it does and how.Test DocumentsTest documentation is discussed in detail in Chapters 1720 but is mentioned here because it's integral to what makes up a software product. For the same reasons that programmers must plan and document their work,software testers must as well. It's not unheard of for a software test team to create more deliverables than the programmers.Here's a list of the more important test deliverables:∙The test plan describes the overall method to be used to verify that the software meets the product specification and the customer's needs. It includes the quality objectives, resource needs,schedules, assignments, methods, and so forth.∙Test cases list the specific items that will be tested and describe the detailed steps that will be followed to verify the software.∙Bug reports describe the problems found as the test cases are followed. These could be done on paper but are often tracked in a database.∙Test tools and automation are described in detail in Chapter 15, "Automated Testing and Test Tools." If your team is using automated methods to test your software, the tools you use, either purchased or written in-house, must be documented.∙Metrics, statistics, and summaries convey the progress being made as the test work progresses. They take the form of graphs, charts, and written reports.What Parts Make Up a Software Product?So far in this chapter you've learned about the effort that goes into creating a software product. It's also important to realize that when the product is ready to be boxed up and shipped out the door, it's not just the code that gets delivered. Numerous supporting parts go along with it (see Figure 2.3). Since all these parts are seen or used by the customer, they need to be tested too.Figure 2.3. The software CD-ROM is just one of the many pieces thatmake up a software product.It's unfortunate, but these components are often overlooked in the testing process. You've surely attempted to use a product's built-in help file and found it to be not so helpful orworsejust plain wrong. Or, maybe you've checked the system requirements on a sticker on the side of a software box only to find out after you bought it that the software didn't work on your PC. These seem like simple things to test, but no one probably even gave them a second look before the product was okayed for release. You will.Later in this book you'll learn about these non-software pieces and how to properly test them. Until then, keep this list in mind as just a sampling of what more there is to a software product than just the code:Help files User's manualSamples and examples Labels and stickersProduct support info Icons and artError messages Ads and marketing materialSetup and installation Readme fileSoftware Project StaffNow that you know what goes into a software product and what ships with one, it's time to learn about all the people who create software. Of course, this varies a great deal based on the company and the project, but for the most part the roles are the same, it's just the titles that are different.The following lists, in no particular order, the major players and what they do. The most common names are given, but expect variations and additions:∙Project managers, program managers, or producers drive the project from beginning to end. They're usually responsible for writing the product spec, managing the schedule, and making the criticaldecisions and trade-offs.∙Architects or system engineers are the technical experts on the product team. They're usually very experienced and therefore are qualified to design the overall systems architecture or design for the software. They work very closely with the programmers.∙Programmers, developers, or coders design and write software and fix the bugs that are found. They work closely with the architects and project managers to create the software. Then, they work closely with the project managers and testers to get the bugs fixed.∙Testers or QA (Quality Assurance) Staff are responsible for finding and reporting problems in the software product. They work veryclosely with all members of the team as they develop and run their tests, and report the problems they find. Chapter 21, "Software Quality Assurance," thoroughly covers the differences betweensoftware testing and software quality assurance tasks.∙Technical writers, user assistance, user education, manual writers, or illustrators create the paper and online documentation that comes with a software product.∙Configuration management or builder handles the process of pulling together all the software written by the programmers and all the documentation created by the writers and putting it together intoa single package.As you can see, several groups of people contribute to a software product. On large teams there may be dozens or hundreds working together. To successfully communicate and organize their approach, they need a plan, a method for getting from point A to point B. That's what the next section is about.Software Development Lifecycle ModelsA running joke in the computer industry is that three things should never be seen in the process of being created: laws, sausage, and software. Their creation process is so messy and disgusting that it's best to just wait and see the final result. That may or may not be totally true, but with most old sayings, there is a grain of truth behind the words. Some software is developed with the rigor and discipline of a fine craftsman, some software with tightly controlled chaos, and other software is stuck together with duct tape and chewing gum. Usually, in the end, it's apparent to the customer what process was used. The process used to create a software product from its initial conception to its public release is known as the software development lifecycle model.As discussed previously, there are many different methods that can be used for developing software, and no model is necessarily the best for a particular project. There are four frequently used models, with most others just variations of these:∙Big-Bang∙Code-and-Fix∙Waterfall∙SpiralEach model has its advantages and disadvantages. As a tester, you will likely encounter them all and will need to tailor your test approach to fit the model being used for your current project. Refer to these model descriptions as you read the rest of this book and think about how you would apply the various testing techniques you learn under each of them.Big-Bang ModelOne theory of the creation of the universe is the big-bang theory. It states that billions of years ago, the universe was created in a single huge explosion of nearly infinite energy. Everything that exists is the result of energy and matter lining up to produce this book, DVDs, and Bill Gates. If the atoms didn't line up just right, these things might all be just quivering masses of goop.The big-bang model for software development shown in Figure 2.4 follows much the same principle. A huge amount of matter (people and money) is put together, a lot of energy is expendedoften violentlyand out comes theperfect software product…or it doesn't.Figure 2.4. The big-bang model is by far the simplest method ofsoftware development.The beauty of the big-bang method is that it's simple. There is little if any planning, scheduling, or formal development process. All the effort is spent developing the software and writing the code. It's a process that is used if the product requirements aren't well understood and the final release date is completely flexible. It's also important to have very flexible customers, too, because they won't know what they're getting until the very end.Notice that testing isn't shown in Figure 2.4. In most cases, there is little to no formal testing done under the big-bang model. If testing does occur, it's squeezed in just before the product is released. It's a mystery why testing is sometimes inserted into this model, but it's probably to make everyone feel good that some testing was performed.If you are called in to test a product under the big-bang model, you have both an easy and a difficult task. Because the software is already complete, you have the perfect specificationthe product itself. And, because it's impossible to go back and fix things that are broken, your job is really just to report what you find so the customers can be told about the problems.The downside is that, in the eyes of project management, the product isready to go, so your work is holding up delivery to the customer. The longer you take to do your job and the more bugs you find, the more contentious the situation will become. Try to stay away from testing in this model.Code-and-Fix ModelThe code-and-fix model shown in Figure 2.5 is usually the one that project teams fall into by default if they don't consciously attempt to use something else. It's a step up, procedurally, from the big-bang model, in that it at least requires some idea of what the product requirements are.Figure 2.5. The code-and-fix model repeats until someone gives up.A wise man once said, "There's never time to do it right, but there's always time to do it over." That pretty much sums up this model. A team using this approach usually starts with a rough idea of what they want, does some simple design, and then proceeds into a long repeating cycle of coding, testing, and fixing bugs. At some point they decide that enough is enough and release the product.As there's very little overhead for planning and documenting, a project team can show results immediately. For this reason, the code-and-fix model works very well for small projects intended to be created quickly and then thrown out shortly after they're done, such as prototypes and demos. Even so, code-and-fix has been used on many large and well-known software products. If your word processor or spreadsheet software has lots of little bugs or it just doesn't seem quite finished, it was likely created with the code-and-fix model.Like the big-bang model, testing isn't specifically called out in the code-and-fix model but does play a significant role between the codingand the fixing.As a tester on a code-and-fix project, you need to be aware that you, along with the programmers, will be in a constant state of cycling. As often as every day you'll be given new or updated releases of the software and will set off to test it. You'll run your tests, report the bugs, and then get a new software release. You may not have finished testing the previous release when the new one arrives, and the new one may have new or changed features. Eventually, you'll get a chance to test most of the features, find fewer and fewer bugs, and then someone (or the schedule) will decide that it's time to release the product.You will most likely encounter the code-and-fix model during your work as a software tester. It's a good introduction to software development and will help you appreciate the more formal methods.Waterfall ModelThe waterfall method is usually the first one taught in programming school. It's been around forever. It's simple, elegant, and makes sense. And, it can work well on the right project. Figure 2.6 shows the steps involved in this model.Figure 2.6. The software development process flows from one step tothe next in the waterfall model.A project using the waterfall model moves down a series of steps starting from an initial idea to a final product. At the end of each step, the project team holds a review to determine if they're ready to move to the next step. If the project isn't ready to progress, it stays at that level until it's ready.Notice three important things about the waterfall method:∙There's a large emphasis on specifying what the product will be. Note that the development or coding phase is only a single block!∙The steps are discrete; there's no overlap.∙There's no way to back up. As soon as you're on a step, you need to complete the tasks for that step and then move onyou can't go back.[1][1]Variations of the waterfall model loosen the rules a bit, allowingsome overlap of the steps and the ability to back up one step if necessary.This may sound very limiting, and it is, but it works well for projects with a well-understood product definition and a disciplined development staff. The goal is to work out all the unknowns and nail down all thedetails before the first line of code is written. The drawback is that in today's fast moving culture, with products being developed on Internet time, by the time a software product is so carefully thought out and defined, the original reason for its being may have changed.From a testing perspective, the waterfall model offers one huge advantage over the other models presented so far. Everything is carefully and thoroughly specified. By the time the software is delivered to the test group, every detail has been decided on, written down, and turned into software. From that, the test group can create an accurate plan and schedule. They know exactly what they're testing, and there's no question about whether something is a feature or a bug.But, with this advantage, comes a large disadvantage. Because testing occurs only at the end, a fundamental problem could creep in early on and not be detected until days before the scheduled product release. Remember from Chapter 1, "Software Testing Background," how the cost of bugs increases over time? What's needed is a model that folds the testing tasks in earlier to find problems before they become too costly.Spiral ModelIt's not quite utopia, but the spiral model (see Figure 2.7) goes a long way in addressing many of the problems inherent with the other models while adding a few of its own nice touches.Figure 2.7. The spiral model starts small and gradually expands as the project becomes better defined and gains stability.The spiral model was introduced by Barry Boehm in 1986 in his Association for Computing Machinery (ACM) paper, "A Spiral Model of Software Development and Enhancement." It's used fairly often and has proven to be an effective approach to developing software.The general idea behind the spiral model is that you don't define everything in detail at the very beginning. You start small, define your important features, try them out, get feedback from your customers, and then move on to the next level. You repeat this until you have your final product.Each time around the spiral involves six steps:1. Determine objectives, alternatives, and constraints.2. Identify and resolve risks.3. Evaluate alternatives.4. Develop and test the current level.5. Plan the next level.6. Decide on the approach for the next level.Built into the spiral model is a bit of waterfall (the steps of analysis, design, develop, test), a bit of code-and-fix (each time around the spiral), and a bit of big-bang (look at it from the outside). Couple this with the lower costs of finding problems early, and you have a pretty good development model.If you're a tester, you'll like this model. You'll get a chance to influence the product early by being involved in the preliminary design phases. You'll see where the project has come from and where it's going. And, at the very end of the project, you won't feel as rushed to perform all your testing at the last minute. You've been testing all along, so the last push should only be a validation that everything is okay.SummaryYou now have an understanding of how software products are createdboth what goes into them and the processes used to put them together. As you can see, there's no definitive approach. The four models presented here are just examples. There are many others and lots of variations of these. Each company, each project, and each team will choose what works for them. Sometimes they will choose right, sometimes they will choose wrong. Your job as a software tester is to work the best you can in the development model you're in, applying the testing skills you learn in the rest of this book to create the best software possible.QuizThese quiz questions are provided for your further understanding. See Appendix A, "Answers to Quiz Questions," for the answersbut don't peek!1:Name several tasks that should be performed before a programmer starts writing the first line of code.2:What disadvantage is there to having a formal, locked-down specification?3:What is the best feature of the big-bang model of software development?4:When using the code-and-fix model, how do you know when the software is ready to release?5:Why can the waterfall method be difficult to use?6:Why would a software tester like the spiral model better than the others?。