大学实用计算机英语教程翻译-吕云翔-Unit 5
- 格式:pdf
- 大小:331.38 KB
- 文档页数:3
Unit 1A computer system consists of hardware system and software system. The hardware of the computer is usually divided into three major parts or three primary subsystems: the CPU, the memory subsystem, and the I/O subsystem.The CPU performs many operations and controls computer. The memory subsystem is used to store program being executed by the CPU, along with the program’s data. The I/O subsystem allows the CPU to interact with input and output devices such as the keyboard and monitor of a personal computer. The components of the computer are connected to the buses.The part of the computer that performs the bulk of data processing operations is called the central processing unit and is referred to as the CPU. In microcomputer, it is often called the microprocessor. The CPU is made up of three major parts: control unit, ALU, and register set.Memory is also known as internal memory or main memory. It refers to the circuits in the computer that hold whatever programs and data are available for immediate use by the CPU.I/O subsystem includes I/O devices and interface. There are a wide variety of I/O devices, such as mouse, printer, sensor, disk, and so on. Input-output interface provides a method for transferring information between internal storage and external I/O devices. Peripherals connected to a computer need special communication links for interfacing them with the CPU. The purpose of the communication link is to resolve the differences that exist between the central computer and each peripheral.Unit 3(a) A program is a list of instructions or statements for directing the computer to perform a required data processing task. Programming is a multistep process for creating that list of instructions.(b) It is important to understand the difference between a class and an object of that class. A class is simply a specification for creating objects. Thus, a single class may create multiple objects.(c) Java is an object-oriented, network-friendly high-lever programming language that allows programmers to build applications that can run on almost any operating system.(e) Programming involves a great deal of creativity. The design is guide to the function or purpose of each component, but the programmer has great flexibility in implementing the design as code. No matter what language is used, each program component involves at least three major aspects: control structures, algorithms, and data structures.Unit 4The software system can be divided into two broad categories: application software and system software. Application software consists of the program for performing tasks particular to the machine’s utilization. In contrast to application software, system software comprises a large number of programs. These programs start up the computer and function as the principle coordinator of all hardware components and application software. Without system software loaded into RAM of your computer, your hardware and application software are useless.System software can be grouped into three basic parts: operating system, utility software, and language translators. The majority of an installation’s utility software consists of programs for performing activities that are fundamental to computer installations yet not included in the operating system. In a sense, utility software consists of software units that extend the capabilities of the operating system.A computer’s OS is the main collection of programs that manage its activities. The primary chores of an OS are management and control. The OS ensures that all actions requested by a user are valid and processed in an orderly fashion. It also manages the computer system’s resources to perform these operations with efficiency and consistency.Application software is the software designed to help you solve problems specific to business or perform specific business tasks. Application software then is the layer of software closest to you. Basically, there are four categories of application software: productivity software, business and specialty software, entertainment software and education/reference software.Unit 5A computer network is often classified as being either a local area network (LAN), a metropolitan area network (WAN), or a wide area network (WAN). The connection of two or more networks is called an internetwork. The worldwide Internet is a well-known example of an internetwork.LANs are privately owned networks within a single building or campus of up to a few kilometers in size. They are widely used to connect personal computers and workstations in company offices and factories to share resources and exchange information.In general, a given LAN will use only one type of transmission medium. Various topologies are possible for LANs. The most common LAN topologies are bus, ring and star.A MAN is basically a bigger version of a LAN and normally uses similar technology. MAN is designed to extend over an entire city. It may be a single network such as a cable television network, or it may be a means of connecting a number of LANs into a large network so that resources may be shared LAN-to-LAN as well as device-to-device. For example, a company can use a MAN to connect the LANs in all of its offices throughout a city.A WAN spans a large geographical area that may comprise a country, a continent, or even the world. It provides long-distance transmission of data, voice, image, and video information over large geographical area.In contrast to LANs, WANs may utilize public leased, or private communication devices, usually in combinations, and can therefore span an unlimited number of miles.Unit 6Transmission media are used to transfer messages over a network. For instance, the transmission media used in a network may be a privately owned set of cables, the public phone lines, or a satellite system. Transmission media can either be wired or wireless.The three types of wired media most commonly used to carry messages are twisted-pair wire, coaxial cable, and fiber-optic cable. One of the most successful developments in transmission media in recent years has been fiber optics. Fiber-optic cable is commonly used for the high-speed backbone lines of a network, or for Internet infrastructure.Wireless transmission media have become especially popular in recent years. They support communications in situations in which physical wiring is impractical or inconvenient, as well as facilitate mobility. Wireless media are commonly used to connect devices to a network, to share information between computers, to connect wireless mice to a computer, and for handheld PCs, wireless phones, and other mobile devices. Radio signals transferred through the air are the heart of most types of wireless media. In addition to conventional broadcast radio application, the microwave, cellular, and satellite transmission media also use radio signals to transmit data.Radio transmissions require the use of a transmitter to send the radio signals through the air. A receiver (usually containing some type of antenna) accepts the date at the other end. When a device functions as both a receiver and transmitter, it is commonly called a transceiver or transmitter-receiver.Unit 7(a) Since many database systems users are not computer trained, developers hide the complexity from users through several levels of abstraction, to simplify user’s int eractions with the system: physical level, logical level, and view level.(b) A database schema is specified by a set of definitions expressed by a special language called a data-definition language (DDL). The result of compilation of DDL statements is a set of tables that is stored in a special file called data dictionary, or data directory.(c) The structured query language (SQL) is the most widely used and standard query language for relational database management systems. It is a kind of non-procedural language.(d) An entity is a “thing” or “object” in the real world that is distinguishable from other objects. For example, each person is an entity, and bank accounts can be considered to be entities. Entities are described in a database by a set of attributes.(e) Data warehouse is one of the newest and hottest buzzwords and concepts in the IT field and the business environment.A data warehouse is a logical collection of information——gathered from many different operational databases——that supports business analysis activities and decision-making tasks.Unit 9(a) AI is currently being applied in business in the form of knowledge systems, which use human knowledge to solve problems. The most popular type of knowledge-based system is the expert system. An expert system is a computer program that attempts to represent the knowledge of human experts in the form of heuristics. The term heuristic is derived from the same Greek root as the word eureka, which means “to discover”.(b) The user interface enables the manager to enter instructions and information into the expert system and to receive information from it. The instructions specify the parameters that guide the expert system through its reasoning processing. The information is in the form of values assigned to certain variables.(c) The knowledge base contains both facts that describe the problem area and knowledge representation techniques that describe how the facts fit together in a logical manner. The term problem domain is used to describe the problem area.(d) An expert system, also called a knowledge-based system, is an artificial intelligence system that applies reasoning capabilities to reach a conclusion. Expert systems are excellent for diagnostic and prescriptive problems.(e) The DSS is not intended to replace the manager. The computer can be applied to the structured portion of the problem, but the manager is responsible for the unstructured portion——applying judgment or intuition and conducting analyses.1。
第一单元启动软件项目第一部分听说A. 对话:启动软件项目(Kevin、Sharon和Jason是三名北京航空航天大学软件学院大学二年级学生。
今天,在第四个学期末暑假开始之前,他们正在参加一个班会。
)老师:大家早上好。
在这个假期中,大家将要完成一个真正的项目作为你们的课程设计,这里有一些题目,每个人可以根据自己的兴趣和经验来选择,并请在下周之内把你的决定提交给我。
Kevin:对不起,老师,请问一下,这个项目是需要每个人单独完成还是几个同学合作完成呢?老师:我推荐团队合作,因为这可以让你学习如何与你的同学携手合作,并且作为一名团队成员,怎样互相交流、分享、表达并了解互相的想法。
但是每组成员不要超过4个人。
Sharon:我感兴趣的主题是四季酒店管理信息系统,你呢,Kevin?Kevin:哦,这也正是我的想法,我想我们可以组成一个小组。
嗨,Jason,你愿意加入我们吗?Jason:哦,好的,我非常愿意!Sharon:好的,现在让我们讨论一下每个人的职责。
Jason:Kevin善于组织并具有丰富的编程经验,因此我认为他可以作为我们的团队组长或是项目经理,负责指导我们的团队和编程实践。
Sharon:我同意。
Kevin:非常感谢你们的信任。
好,我一定会尽我所能。
关于我们的项目,我觉得除了编码以外还需要构建一个数据库并实现一组用户界面。
Jason:我对数据库比较感兴趣,我愿意负责建立和管理数据库。
Sharon:我喜欢艺术设计,我认为我可以为项目做用户界面设计和文档撰写的工作。
Kevin:哦,不错,看来这是一个很棒的团队,它让我感到很有信心!现在让我们根据项目的各个阶段来大致分配一下任务。
作为组长,我来负责需求,Jason负责设计,Sharon负责测试。
Jason:接下来,我们将为我们的项目制定一个粗略的进度计划。
Kevin:我们可以根据老师提供的最初的需求文档来设计并完成用户界面操作,与此同时,Jason可以构建数据库,最后我们一起来完成编码。
第1课计算机基础计算机是一个可编程的机器(或者更准确地说,一个可编程的连续状态机器)。
计算机有两种基本类型:模拟计算机和数字计算机。
模拟计算机是模拟设备,即它们有连续的状态而不是离散的有限状态。
一个模拟计算机可以准确地表示小数或无理数,不进行舍入。
模拟计算机几乎只用于实验环境。
数字计算机是可编程的时序状态机器。
数字计算机使用离散状态。
二进制数字计算机使用两个离散状态(如正/负、高/低、通/断)来表示二进制数0和1。
1. 计算机有什么用?计算机的用途非常广泛。
数据处理是商业和金融的工作。
这包括开票、运输及收货、库存管理和类似的业务以及“电子办公”。
科学处理是用计算机支持科学。
这可以是简单地收集和分析原始数据,也可以是复杂地建立自然现象的模型(如气候模型、热力学、核能等)。
多媒体包括创建内容(创作音乐、演奏音乐、录制音乐、编辑电影和视频、特效、动画、插图、排版印刷材料等)和多媒体播放(游戏、DVD、教学材料等)。
2. 计算机的各部分可以十分粗略简单地认为计算机有三个部件:处理器、内存和I/O(输入/输出)。
这三个术语的边界是十分含糊的、不搭界的和不断变化的。
稍微更简单地可以把计算机部件分为五种:算术和逻辑子系统、控制子系统、主存、输入子系统和输出子系统。
2.1 处理器处理器是计算机实际上进行计算的部件。
有时也称作MPU(主处理器单元)或CPU(中央处理单元或中央处理器)。
处理器通常包括运算器(ALU)、控制器(包括处理器标志、标志寄存器或状态寄存器)、内部总线,有时也有一些特殊作用的单元(最常用的特殊作用单元是用于浮点算法的浮点单元)。
一些计算机有多个处理器。
这就叫做多处理计算机。
数字处理器的主要种类有:CISC、RISC、DSP以及它们的混合。
CISC代表复杂指令集计算机。
大型计算机和小型计算机有CISC处理器,厂家为了竞争提供了更有用的指令集。
大部分前两代微型处理器都用CISC。
RISC代表精简指令集计算机。
第二单元获取需求第一部分听说A. 对话:与客户沟通(Kevin、Sharon和Jason来到四季酒店,会见了酒店业务经理White先生及最终用户代表。
)White先生:欢迎来到我们酒店。
Kevin:谢谢您在您的业务需求文档中提供给我们的关于酒店管理需要的重要信息。
但恐怕还有一些我们需要弄清的问题。
为了能够按照客户的意图完成该系统,我们想向您咨询一些问题。
White先生:当然可以。
Sharon:White先生,我正在为四季酒店管理信息系统撰写规格说明书草稿,但我发现可能有一项重要的功能尚不明确。
White先生:哦,什么问题?Sharon:假如客户在酒店预订了房间,却没有按时登记,这种情况您将如何怎么退还订金呢?全部、一部分或者完全不退?这将涉及如何对退还押金的场景进行描述和建模,以及如何设计这一模块。
Kevin:是的。
这对我们在系统中定义一个明确的退还订金机制确实很重要,因为它不仅决定着这个模块本身的设计,还涉及其他模块,例如收费的总金额。
在正确定义工作流之后,我们才将能够知道在系统中如何处理它。
White先生:好的,我明白了。
退还订金确实是房间预订服务中的必要考虑的一个事项。
现在,我就向你们解释一下遇到这种情况时我们的处理办法。
通常,如果一个顾客在距离登记入住时间24小时以前或更早的时候取消了他的预订,我们将退还全部订金;如果在距离登记入住时间12小时到24小时之间取消预订,将退还一半订金;但如果在距离登记入住时间12小时以内取消,我们将不退还任何订金。
Kevin:哦,好的。
除此之外,退还订金的比率是怎样确定的呢?在贵宾和普通顾客之间,或者在旺季和淡季之间有什么差别吗?White先生:在我们酒店,贵宾和普通顾客在价格上没什么区别,但是我们在不同的季节执行不同的标准。
从每年的五月到十月是旺季,而从每年的十一月到第二年的四月是淡季,旺季取消预定的时间限制比淡季提前了12小时。
在旺季,顾客如果决定退订并想要拿回全部订金的话,就必须在距离登记入住36个小时之前取消预订;如果在距离登记入住前24小时到36小时之间取消预订,将退还一半订金;如果在24小时以内取消,将没有任何订金退还。
第三单元项目计划第一部分听说A. 对话:软件项目计划Jason:这么多工作要做啊!Kevin:我认为我们需要一个正式的项目计划作为指导。
Sharon:是的,首先是时间,这也是影响我们项目的最重要的因素之一,我们需要一个进度表,尤其是项目的最终期限。
Kevin:我们总共有40天的时间,而需求已经花了5天的时间,因此我们还有35天时间。
Jason:哦,听起来时间确实很紧张。
Sharon:我们似乎应该尽快开始编程,对吗?Jason:尽管编程是软件项目中非常重要的一个部分,但是,我认为现在最重要的事是,必须确定一个合适的时间进度表来控制我们的进度,并确保能够按时交付。
Kevin:是的,在需求阶段,我们还需要三天时间来对需求进行描述、分析和建模。
之后,我们需要三天时间来完成结构设计,五天时间完成详细设计;由于这些工作量都是用于软件设计,因此接下来的编程相对不会很难,我认为在一周内应该能完成;测试及后续的调试在十天时间内应该能完成。
Sharon:也许我们可以用甘特图来描述我们的进度表,对于项目计划来说,甘特图是一种形象生动并且实用的工具。
Kevin:好主意!Jason:事实上,测试不应该被看成是仅在编码阶段完成后才开始并仅限于以检测错误为目的。
实际上,测试计划在需求阶段的早期就应该开始了,并且测试计划和流程应该系统地、不断地改进。
我觉得,在编码阶段,我们可以同时执行单元测试,这将会节省大量时间并会获得更好的测试效果。
最后,我们可以通过与客户一起工作来进行验证测试,检查开发出的软件客户是否满意,以确保客户能够获得他们所需要的。
Sharon:另外,我们需要三台计算机,必须安装客户所要求的具有统一版本的软件作为开发工具,以Visual Studio 2005作为开发平台,以Microsoft SQL server 2005作为数据库管理系统。
Jason:我们还需要网络。
Kevin:我将尽快为大家准备开发环境,然后给每个人分配一些管理任务。
第12章计算机的未来第一部分阅读和翻译A部分移动网络1.简介移动网络指的是连接到互联网的应用程序的使用,或是基于浏览器来接入互联网的移动设备,例如智能手机或者平板电脑,连接到的一个无线网络。
传统的,网络访问都是通过固定线路服务实现的。
然而,越来越多的便携设备和无线设备接入到网络。
2008年,移动设备接入到网络的数量首次超过了台式电脑的接入网络数量,成为了固定网络到移动网络的重要里程碑。
事实上,从2007年较大尺寸的多点触控手机的兴起,以及最近2010年才兴起的多点触控平板电脑,很大程度的推动向移动网络接入时代的转变。
这两个平台都更有利于互联网接入和比以前更好的带给用户基于浏览器或基于应用的体验。
随着移动浏览器直接访问移动设备的硬件(包括加速器和GPS芯片),以及基于浏览器的应用程序的性能提高(速度和容量),预计移动网络应用程序和本地应用程序之前的区别变得越来越模糊。
持久存储和复杂的用户界面图形功能将可能进一步减少需要特定平台的本地应用程序的发展。
一旦用户无法区分本地和移动网络应用,那移动网络将一般是指移动设备的网络接入或移动设备网络应用程序的使用。
今天,移动网络依旧面临着互通性和可用性方面的问题。
互通性问题是由于移动设备、移动操作系统和浏览器的多样化。
而实用性问题则重点在于手机因素中比较小的物理尺寸的问题(有限的屏幕分辨率和用户输入/操作限制)。
2.移动互联网“移动互联网”是指从移动设备接入到互联网,例如一个智能手机或笔记本通过集成的功能或通过一个独立的设备(如USB调试解调器或PCMCIA卡)接入到互联网。
今天,USB调制解调器是HSPA(3.5G)调制解调器。
许多用户利用无线设备提供的通过3G、GPRS或CSD的网络接入,来将他们的智能手机“绑定”到笔记本或PC。
3.标准标准的发展是去实现可应用于提高互通性、实用性和围绕于移动网络使用的可介入问题的方法。
移动网络倡议(MWI)是由W3C提出的倡议,用来发展相关于移动网络的最好的实践和技术。
Unit 5Section ASoftware Design (软件设计)Design is defined in [IEEE610.12-90] as both “the process of defining the architecture,components, interfaces, and other characteristics of a system or component ” and “the result of that process.” Viewed as a process, software design is the software engineering life cycle activity in which software requirements are analyzed in order to produce a description of the software ’s internal structure that will serve as the basis for itsconstruction. More precisely, a software design (the result) must describe the software architecture -- that is how software is decomposed and organized into components -- and the interfaces between those components. It must also describe the components at a level of detail that enable their construction. Software design plays an important role indeveloping software: it allows software engineers to produce various models that form a kind of blueprint of the solution to be implemented. We can analyze and evaluate these models to determine whether or not they will allow us to fulfill the variousrequirements. We can also examine and evaluate various alternative solutions and trade-offs . Finally, we can use the resulting models to plan thesubsequent development activities, in addition to using them as input and the starting point of construction and testing.In a standard listing of software life cycleprocessed such as IEEE/EIA 12207 Software Life Cycle Processes [IEEE 12207.0-96], software design consists of two activities that fit between software requirements analysis and software construction:Software architectural design (sometimes called top level design): describing software ’s top-level structure and organization and identifying the various components.Software detailed design: describing eachcomponent sufficiently to allow for its construction.General StrategiesSoftware often-cited examples of general strategies useful in the design process aredivide-and-conquer and stepwise refinement,top-down vs. bottom-up strategies, data abstraction and information hiding, use of heuristics, use of patterns and pattern languages, use of an iterative and incremental approach.Function-Oriented (Structured) DesignThis is one of the classical methods of software design, where decomposition centers on identifying the major software functions and then elaborating and refining them in a top-down manner. Structured design is generally used after structured analysis, thus producing, among other things, data flow diagrams and associated process descriptions. Researchers have proposed various strategies (for example, transformation analysis, transaction analysis) and heuristics (for example, fan-in/fan-out, scope of effect vs. scope of control) to transform a DFD into a software architecture generally represented as a structure chart.Object-Oriented DesignNumerous software design methods based on objects have been proposed. The field has evolved from the early object-based design of the mid-1980s (noun=object; verb=method; adjective=attribute) through OO design, where inheritance and polymorphism play a key role, to the field of component-based design, where meta-information can be defined and accessed (through reflection, for example). Although OO design’s roots stem fromthe concept of data abstraction, responsibility-driven design has also been proposed as an alternative approach to OO design.Data-Structure-Centered DesignData-structure-centered design (for example, Jackson, Warnier-Orr) starts from the data structures a program manipulates rather than from the function it performs. The software engineer first describes the input and output data structures (using Jackson’s structure diagrams, for instance) andthen develops the program ’s control structure based on these data structure diagrams. Various heuristics have been proposed to deal with special cases -- for example, when there is a mismatch between the input and output structures.Component-Based Design (CBD)A software component is an independent unit, having well-defined interfaces and dependencies that can be composed and deployed independently, Component-based design addresses issues related to providing, developing, and integrating such components in order to improve reuse .Other MethodsOther interesting but less mainstreamapproaches also exist: formal and rigorous methodand transformational methods.。
第1章计算机基础第一部分阅读和翻译A部分计算机发展史1. 简介虽然计算机在现在人们的生活中起着重要的作用,但是曾经计算机并不存在于这个世界。
了解计算机的发展历史以及计算机经历了多少个发展阶段可以帮助我们更好的了解计算机究竟是多么复杂和具有创新性的一项发明。
不像大多数设备,计算机是少数几种没有一个明确发明者的发明。
在整个计算机的发展历程中,许多人将他们自己的发明创造添加进计算机的需求列表从而使得计算机可以运作。
这其中一些发明是不同类型的计算机,还有一些是使计算机可以更长远的发展。
2. 起步可能计算机的历史中最有重大意义的年份就是1936年。
就是在这一年地一台“计算机”问世了。
它是由Konrad Zuse创造并命名为Z1计算机。
这台计算机成为第一台计算机是因为它是第一个具有完全可编程性的系统。
[1] 虽然也有其它设备在这之前出现,但是没有一台设备具有使其区别于其它电子设备的计算能力。
但是直到1942年,才有一家企业看到计算机领域存在的利润和机遇。
这个公司由John Atanasoff和Clifford Berry所有和经营,名叫美国广播公司计算机ABC computers。
两年后,哈佛一号计算机问世,进一步推动了计算机科学的发展。
在接下来的几年间,全世界的发明者都开始投入更多的精力到计算机的研发以及如何提升计算机的性能中来。
这接下来的十年晶体管被提出使用并像在许多其他系统中一样成为ENIAC(电子数字积分)1型计算机内部工作器件中最重要的部分。
ENIAC1型计算机可能是最有趣的系统之一,它需要20,000真空管来运转。
它是一台笨重庞大的机器,但是它是研发使计算机更小更快的变革的开端。
计算机的时代在国际商用机器公司或称为IBM公司于1953年介入计算机工业领域后彻底地改变了。
在整个计算机历史中,这家公司都在公共和私人新型系统和服务器的发展上做出了重要的贡献。
这在计算机历史上第一次真正引入了竞争迹象,从而促使计算机更快更好地发展。
Unit 5Section ASoftware Design (软件设计)Design is defined in [IEEE610.12-90] as both “the process of defining the architecture,components, interfaces, and other characteristics of a system or component ” and “the result of that process.” Viewed as a process, software design is the software engineering life cycle activity in which software requirements are analyzed in order to produce a description of the software ’s internal structure that will serve as the basis for itsconstruction. More precisely, a software design (the result) must describe the software architecture -- that is how software is decomposed and organized into components -- and the interfaces between those components. It must also describe the components at a level of detail that enable their construction. Software design plays an important role indeveloping software: it allows software engineers to produce various models that form a kind of blueprint of the solution to be implemented. We can analyze and evaluate these models to determine whether or not they will allow us to fulfill the variousrequirements. We can also examine and evaluate various alternative solutions and trade-offs . Finally, we can use the resulting models to plan thesubsequent development activities, in addition to using them as input and the starting point of construction and testing.In a standard listing of software life cycleprocessed such as IEEE/EIA 12207 Software Life Cycle Processes [IEEE 12207.0-96], software design consists of two activities that fit between software requirements analysis and software construction:Software architectural design (sometimes called top level design): describing software ’s top-level structure and organization and identifying the various components.Software detailed design: describing eachcomponent sufficiently to allow for its construction.General StrategiesSoftware often-cited examples of general strategies useful in the design process aredivide-and-conquer and stepwise refinement,top-down vs. bottom-up strategies, data abstraction and information hiding, use of heuristics, use of patterns and pattern languages, use of an iterative and incremental approach.Function-Oriented (Structured) DesignThis is one of the classical methods of software design, where decomposition centers on identifying the major software functions and then elaborating and refining them in a top-down manner. Structured design is generally used after structured analysis, thus producing, among other things, data flow diagrams and associated process descriptions. Researchers have proposed various strategies (for example, transformation analysis, transaction analysis) and heuristics (for example, fan-in/fan-out, scope of effect vs. scope of control) to transform a DFD into a software architecture generally represented as a structure chart.Object-Oriented DesignNumerous software design methods based on objects have been proposed. The field has evolved from the early object-based design of the mid-1980s (noun=object; verb=method; adjective=attribute) through OO design, where inheritance and polymorphism play a key role, to the field of component-based design, where meta-information can be defined and accessed (through reflection, for example). Although OO design’s roots stem fromthe concept of data abstraction, responsibility-driven design has also been proposed as an alternative approach to OO design.Data-Structure-Centered DesignData-structure-centered design (for example, Jackson, Warnier-Orr) starts from the data structures a program manipulates rather than from the function it performs. The software engineer first describes the input and output data structures (using Jackson’s structure diagrams, for instance) andthen develops the program ’s control structure based on these data structure diagrams. Various heuristics have been proposed to deal with special cases -- for example, when there is a mismatch between the input and output structures.Component-Based Design (CBD)A software component is an independent unit, having well-defined interfaces and dependencies that can be composed and deployed independently, Component-based design addresses issues related to providing, developing, and integrating such components in order to improve reuse .Other MethodsOther interesting but less mainstreamapproaches also exist: formal and rigorous methodand transformational methods.。