软件开发中英文对照外文翻译文献
- 格式:doc
- 大小:220.63 KB
- 文档页数:13
毕业设计(论文)外文文献翻译文献、资料中文题目:软件开发概念和设计方法文献、资料英文题目:文献、资料来源:文献、资料发表(出版)日期:院(部):专业:班级:姓名:学号:指导教师:翻译日期: 2017.02.14外文资料原文Software Development Concepts and DesignMethodologiesDuring the 1960s, ma inframes and higher level programming languages were applied to man y problems including human resource s yste ms,reservation s yste ms, and manufacturing s yste ms. Computers and software were seen as the cure all for man y bu siness issues were some times applied blindly. S yste ms sometimes failed to solve the problem for which the y were designed for man y reasons including:•Inability to sufficiently understand complex problems•Not sufficiently taking into account end-u ser needs, the organizational environ ment, and performance tradeoffs•Inability to accurately estimate development time and operational costs •Lack of framework for consistent and regular customer communications At this time, the concept of structured programming, top-down design, stepwise refinement,and modularity e merged. Structured programming is still the most dominant approach to software engineering and is still evo lving. These failures led to the concept of "software engineering" based upon the idea that an engineering-like discipl ine could be applied to software design and develop ment.Software design is a process where the software designer applies techniques and principles to produce a conceptual model that de scribes and defines a solution to a problem. In the beginning, this des ign process has not been well structured and the model does not alwa ys accurately represent the problem of software development. However,design methodologies have been evolving to accommo date changes in technolog y coupled with our increased understanding of development processes.Whereas early desig n methods addressed specific aspects of thedevelop ment process, current methods atte mpt to address the entire scope of software development. Software design methods are often classified in reference to the peri od in which the y were introduced and the problems at that time. Driven b y coding and testing problems, tools and methods were developed. Early methods focused on modularity a nd top-down development, and information hiding through abstraction. This led to t he development of structured languages, structured analysis, and data flow analysis.In the last decade or so, the expense involved in automation has shifted from hardware to people. Therefore, the software engineering community has been focused on object oriented (O-O) design and the concept of re-usable code in order to reduce the human cost component. Inefficient designs and develop ment methodologies have been addressed with Computer Aided Software Engineering (CASE) tools, and fourth generation design l anguages. This has been done in an attempt replace the traditional waterf all life c ycle process model under which most existing software has been developed.一、Software Design FundamentalsSoftware design meth ods all aim to provide the software designer wi th a s yste m blueprint. This blueprint usually has three aspects: data, architectural, and procedural.•Data design refers to the data's organization, relationships, access and processing methods.•Architectural design defines the components of the sys tem a nd their relationships.•Procedural design builds on the data and architectural design phases to describe the processing details of the s yste m.Even though there are numerous design methodologies, their basic concepts are ver y similar-All software design methods partition the problem and software into smaller pieces in order to reduce complexity. They all strive to identif y data structures and functions, and provide measur ements for software quality. Some of the common principles in software design include: stepwise refinement, s oftware architecture, program structure, data structure,software procedures, mo d u la r i t y,a b s tr a c t io n,a n d in f o r ma t io n h i d i n g.二、M o d e r n D e s i g n M e t h o d o l o g i e sC o n ve n t io n a l s o f t wa r e d e ve l o p me n t p r a c t ic e s c a n g e n e r a l l y b ema p p e d o n to t h e tr a d i t io n a l l i f e-c y c l e p h a s e s o f a n a l ys i s,f u n c t i o n a ls p e c i f i c a t i o n,d e s i g n,i mp l e me n t a t i o n,t e s t i n g,a n d m a i n t e n a n c e.T h i st h o u g h t p r o c e s s i s i n a d e q u a t e f o r t o d a y's c o m p l e x i n f o r m a t i o n s y s t e m s.As the demand for software is growing much faster than the number of developers, adhering to conventional techniques such as the waterfall method requires too much time, too many people, and is difficult to ma nage. Hence, many new software development technologies have arisen. N e wl y d e ve lo p e d p r a c tic e s a n d mo d e ls d o n o t a tte mp t to s e p a r a te p h a s e s o f s o f twa r e development, such as specification and implementation, but instead focus on the concept of program transformation through stepwise refinement and iteration.1、O b j e c t-O r i e n t e d Te c h n o l o g yObject-Oriented (O-O) software design technology is fundamentally different from the traditional methods described above. With traditional methods, each module is recognized a major step in the overall process and the process goes from one step to the next. On the other hand, O-O design is structured around a model of objects and the functions they perform.O-O programming can be traced to the simulation language SIMULA, a hig h level language developed in the late 60's that introduced object classes as a method to encapsulate data. Later, in the 1970s, Smalltalk was introduced as a complete grapgh design and coding as detail is added to the design. This provides a common language throughout each stage in development. O-O is best applied with specifically designed O-O development tools, but it is important to remember that as a methodology is it not specific to any programming language. Many different programming languages can be used to implement 0-0 technology and design methodologies.Instead of procedures and functions passing data back and forth, in object oriented design, the system is viewed as a collection of objects with messages passed from object to object. Each object has its own set of associated operations.Object-oriented design is based on the idea of information hiding and modularization of both data and processing. It is best used when neither data structure nor processing operations are well defined ahead of time. This is quite useful in today's business environment where requirements are always changing and not very well defined. Thus, it has become quite popular! The concept of objects performing services is a natural way of thinking for both developers and customers. This facilitates understanding the problem domain and a more natural design. In addition, there are many benefits of object-oriented development. These include:•I n h e r i t a n c e c a p i t a l i z e s o n t h e c o m m o n a l t y o f a t t r i b u t e s a n d s e r v i c e s a l l o w i n g c o d e a n d objects to be re-used..I n f o r m a t i o n h i d i n g m a k e s s y s t e m s m o r e s t a b l e b y l o c a l i z i n g c h a n g e s t o o b j e c t s a n d t h e r e b y m a k i n g t h e m r e u s a b l e..T h e o b j e c t-o r i e n t e d d e v e l o p m e n t p r o c e s s i s c o n s i s t e n t f r o m a n a l y s i s,t h r o u g h d e s i g n, t o c o d i n g.More information on Object Oriented Programming principles can be found in Chapter 4-Organization of Programming Languages and Programming Concepts.2、P r o t o t y p i n gPrototyping was invented because end users participating in the development phase found it difficult to understand requirement specifications and conceptual models. However, when it first began being used in the 1980s, most conventional life c ycle developers considered it expensive and time consuming.S i n c e t h a t t i m e,u s e r s a n d d e v e l o p e r s h a v e u s e d p r o t o t y p e s s u c c e s s f u l l y a s a communications tool to demonstrate system requirements. After several prototype iterations, developers have a better understanding of user requirements and users have a better idea of how the system will eventually work, look, and l.T h e n u mb e r o f t i me s th e p r o to t yp e is in c r e me n t a l l y r e f in e d d e p e n d s o n h o w we l l th e u s e r r e q u i r e me n ts a n d u n d e r s t o o d.I t a ls o d e p e n d s o n th e u s e r s n e e d to a d d r e q u ir e me n ts o r c h a n g e p r e v i o u s l y s t a t e d r e q u i r e m e n t s.A f t e re s t a b l i s h i n g a n o v e r a l l a r c h i t e c t u r e a n df r a me w o r k, t h e s ys t e m i s d e v e l o p e d a n d d e l i v e r e d in in c r e me n ts.U s e r s ma y e x p e r i me n t w i t h a n d u s e d e l i v e r e d i n c r e me n t s w h i l e o t h e r s a r e b e i ng d e v e l o p e d.Fo r i n s t a n c e,th e fi r s t p r o t o t yp e ma y b e d e l i v e r e d t h a t i m p l e m e n t s a c e r t a i n s c r e e n w i t h o n l y s o m e a c t i v e m e n u i t e m s.W h i l e u s e r s a r e e x p e r i me n t i n g w i t h t h i s s c r e e n a n d me n u i t e ms,o t h e r s c r e e n s a n d me n u i t e ms a r e c o n c u r r e n t l y b e in gd e v e l o p e d wh i c h la t e r w il l b e c o mb in e d w i th th e e x is t in g p r o to t yp e a s ite vo l v e s.O n c e t h e u s e r i s s a t i s f i e d t h a t t h e p r o t o t y p e m e e t s r e q u i r e m e n t s,t h e p r o t o t y p e i s t r a n s f o r me d i n to th e"s ys t e m".T h i s e ff o r t d e p e n d s o n s e v e r a l f a c to r s. I t ma y i n c lu d e a d d i n g f u n c t i o n a l i t y t h a t w a s n't i n i t i a l l y r e c o g n i z e d a s r e q u i r e d,r e p l a c i n g i n e f f i c i e n t p a r t s o f t h e p r o t o t yp e t o me e t p e r f o r ma n c e c r i t e r i a,o r a d a p t i n g t h e p r o t o t yp e t o f i t t h e u s e r's h a r d w a r e e n vi r o n me n t.P r o t o t y p i n g c a n b e g i n v e r y e a r l y, a f t e r s o m e p r e l i m i n a r y r e q u i r e m e n t s a n a l y s i s h a s d e t e r m i n e d t h e b a s i c f u n c t i o n a l i t y,s c o p e,a n d e n v i r o n m e n t o f t h e p r o p o s e d s o f t w a r e.C o n t r a r y t o t h e t r a d i t i o n a l w a t e r f a l l me t h o d,i n t h e p r o t o t yp i n g,f u n c t i o n a l s p e c i f i c a t i o n s a r e n o t f i x e d.R a t h e r,u s e r s a r e e n c o u r a g e d t o m o d i f y t h e i r r e q u i r e m e n t s a s t h e y t h e m s e l v e s b e g i n t o u n d e r s t a n d t h e m b e t t e r.T h i s i s b e c a u s e u s e r s o f t e n d o n't r e a l l y k n o w w h a t t h e y w a n t u n t i l t h e y s e e i t o n t h e s c r e e n.T h e p r o t o t yp i n g p r o c e s s o f d e mo n s t r a t i o n,r e v i e w,a n d r e f i n e me n t g e t s t h e u s e r m o r e i n v o l v e d i n t h e d e v e l o p m e n t p r o c e s s,g i v i n g t h e m a s e n s e o f o w n e r s h i p d u r i n g t h e p r o c e s s a n d a t f i n a l s y s t e m d e l i v e r y.H o w e v e r,d u e t o t h e m i n d s e t o f"p r o t o t y p e", u s e r s o f t e n f in d i t d iff ic u l t to ve r if y t h a t th e p r o to t yp e s a tis f ie s th e ir r e q u ir e me n ts. T h e r e f o r e, g u id e l in e s mu s t b e e s t a b l i s h e d t o d e te r m in e wh e n t o s to p i te r a t in g a n d th e p r o to t yp e to f in a l p r o d u c t.。
Java and the InternetIf Java is, in fact,yet another computer programming language,you may question why it is so important and why it is being promoted as a revolutionary step in computer programming。
The answer isn’t immediately obvious if you’re comin g from a traditional programming perspective。
Although Java is very useful for solving traditional stand-alone programming problems,it is also important because it will solve programming problems on the World Wide Web。
1.Client-side programmingThe Web’s in itial server—browser design provided for interactive content, but the interactivity was completely provided by the server. The server produced static pages for the client browser, which would simply interpret and display them。
Basic HTML contains simple mechanisms for data gathering: text—entry boxes, check boxes, radio boxes, lists and drop-down lists,as well as a button that can only be programmed to reset the data on the form or “submit” the data on the form back to the server。
中英文对照外文翻译(文档含英文原文和中文翻译)Application FundamentalsAndroid applications are written in the Java programming language. The compiled Java code — along with any data and resource files required by the application — is bundled by the aapt tool into an Android package, an archive file marked by an .apk suffix. This file is the vehicle for distributing the application and installing it on mobile devices; it's the file users download to their devices. All the code in a single .apk file is considered to be one application.In many ways, each Android application lives in its own world:1. By default, every application runs in its own Linux process. Android starts the process when any of the application's code needs to be executed, and shuts down the process when it's no longer needed and system resources are required by other applications.2. Each process has its own virtual machine (VM), so application code runs in isolation from the code of all other applications.3. By default, each application is assigned a unique Linux user ID. Permissions are set so that the application's files are visible only to that user and only to the application itself — although there are ways to export them to other applications as well.It's possible to arrange for two applications to share the same user ID, in which case they will be able to see each other's files. To conserve system resources, applications with the same ID can also arrange to run in the same Linux process, sharing the sameVM.Application ComponentsA central feature of Android is that one application can make use of elements of other applications (provided those applications permit it). For example, if your application needs to display a scrolling list of images and another application has developed a suitable scroller and made it available to others, you can call upon that scroller to do the work, rather than develop your own. Your application doesn't incorporate the code of the other application or link to it. Rather, it simply starts up that piece of the other application when the need arises.For this to work, the system must be able to start an application process when any part of it is needed, and instantiate the Java objects for that part. Therefore, unlike applications on most other systems, Android applications don't have a single entry point for everything in the application (no main() function, for example). Rather, they have essential components that the system can instantiate and run as needed. There are four types of components:ActivitiesAn activity presents a visual user interface for one focused endeavor the user can undertake. For example, an activity might present a list of menu items users can choose from or it might display photographs along with their captions. A text messaging application might have one activity that shows a list of contacts to send messages to, a second activity to write the message to the chosen contact, and other activities to review old messages or change settings. Though they work together to form a cohesive user interface, each activity is independent of the others. Each one is implemented as a subclass of the Activity base class.An application might consist of just one activity or, like the text messaging application just mentioned, it may contain several. What the activities are, and how many there are depends, of course, on the application and its design. Typically, one of the activities is marked as the first one that should be presented to the user when the application is launched. Moving from one activity to another is accomplished by having the current activity start the next one.Each activity is given a default window to draw in. Typically, the window fills the screen, but it might be smaller than the screen and float on top of other windows. An activity can also make use of additional windows — for example, a pop-up dialog that calls for a user response in the midst of the activity, or a window that presents users with vital information when they select a particular item on-screen.The visual content of the window is provided by a hierarchy of views — objects derived from the base View class. Each view controls a particular rectangular space within the window. Parent views contain and organize the layout of their children. Leaf views (those at the bottom of the hierarchy) draw in the rectangles they control and respond to user actions directed at that space. Thus, views are where the activity's interaction with the user takes place.For example, a view might display a small image and initiate an action when the user taps that image. Android has a number of ready-made views that you can use —including buttons, text fields, scroll bars, menu items, check boxes, and more.A view hierarchy is placed within an activity's window by theActivity.setContentView() method. The content view is the View object at the root of the hierarchy. (See the separate User Interface document for more information on views and the hierarchy.)ServicesA service doesn't have a visual user interface, but rather runs in the background for an indefinite period of time. For example, a service might play background music as the user attends to other matters, or it might fetch data over the network or calculate something and provide the result to activities that need it. Each service extends the Service base class.A prime example is a media player playing songs from a play list. The player application would probably have one or more activities that allow the user to choose songs and start playing them. However, the music playback itself would not be handled by an activity because users will expect the music to keep playing even after they leave the player and begin something different. To keep the music going, the media player activity could start a service to run in the background. The system would then keep the music playback service running even after the activity that started it leaves the screen.It's possible to connect to (bind to) an ongoing service (and start the service if it's not already running). While connected, you can communicate with the service through an interface that the service exposes. For the music service, this interface might allow users to pause, rewind, stop, and restart the playback.Like activities and the other components, services run in the main thread of the application process. So that they won't block other components or the user interface, they often spawn another thread for time-consuming tasks (like music playback). See Processes and Threads, later.Broadcast receiversA broadcast receiver is a component that does nothing but receive and react to broadcast announcements. Many broadcasts originate in system code — for example, announcements that the timezone has changed, that the battery is low, that a picture has been taken, or that the user changed a language preference. Applications can also initiate broadcasts — for example, to let other applications know that some data has been downloaded to the device and is available for them to use.An application can have any number of broadcast receivers to respond to any announcements it considers important. All receivers extend the BroadcastReceiver base class.Broadcast receivers do not display a user interface. However, they may start an activity in response to the information they receive, or they may use the NotificationManager to alert the user. Notifications can get the user's attention in various ways — flashing the backlight, vibrating the device, playing a sound, and so on. They typically place a persistent icon in the status bar, which users can open to get the message.Content providersA content provider makes a specific set of the application's data available to other applications. The data can be stored in the file system, in an SQLite database, or in anyother manner that makes sense. The content provider extends the ContentProvider base class to implement a standard set of methods that enable other applications to retrieve and store data of the type it controls. However, applications do not call these methods directly. Rather they use a ContentResolver object and call its methods instead. A ContentResolver can talk to any content provider; it cooperates with the provider to manage any interprocess communication that's involved.See the separate Content Providers document for more information on using content providers.Whenever there's a request that should be handled by a particular component, Android makes sure that the application process of the component is running, starting it if necessary, and that an appropriate instance of the component is available, creating the instance if necessary.Activating components: intentsContent providers are activated when they're targeted by a request from a ContentResolver. The other three components — activities, services, and broadcast receivers — are activated by asynchronous messages called intents. An intent is an Intent object that holds the content of the message. For activities and services, it names the action being requested and specifies the URI of the data to act on, among other things. For example, it might convey a request for an activity to present an image to the user or let the user edit some text. For broadcast receivers, theIntent object names the action being announced. For example, it might announce to interested parties that the camera button has been pressed.There are separate methods for activating each type of component:1. An activity is launched (or given something new to do) by passing an Intent object toContext.startActivity() or Activity.startActivityForResult(). The responding activity can look at the initial intent that caused it to be launched by calling its getIntent() method. Android calls the activity's onNewIntent() method to pass it any subsequent intents. One activity often starts the next one. If it expects a result back from the activity it's starting, it calls startActivityForResult() instead of startActivity(). For example, if it starts an activity that lets the user pick a photo, it might expect to be returned the chosen photo. The result is returned in an Intent object that's passed to the calling activity's onActivityResult() method.2. A service is started (or new instructions are given to an ongoing service) by passing an Intent object to Context.startService(). Android calls the service's onStart() method and passes it the Intent object. Similarly, an intent can be passed to Context.bindService() to establish an ongoing connection between the calling component and a target service. The service receives the Intent object in an onBind() call. (If the service is not already running, bindService() can optionally start it.) For example, an activity might establish a connection with the music playback service mentioned earlier so that it can provide the user with the means (a user interface) for controlling the playback. The activity would call bindService() to set up that connection, and then call methods defined by the service to affect the playback.A later section, Remote procedure calls, has more details about binding to a service.3. An application can initiate a broadcast by passing an Intent object to methods like Context.sendBroadcast(), Context.sendOrderedBroadcast(), andContext.sendStickyBroadcast() in any of their variations.Android delivers the intent to all interested broadcast receivers by calling their onReceive() methods. For more on intent messages, see the separate article, Intents and Intent Filters.Shutting down componentsA content provider is active only while it's responding to a request from a ContentResolver. And a broadcast receiver is active only while it's responding to a broadcast message. So there's no need to explicitly shut down these components. Activities, on the other hand, provide the user interface. They're in a long-running conversation with the user and may remain active, even when idle, as long as the conversation continues. Similarly, services may also remain running for a long time. So Android has methods to shut down activities and services in an orderly way:1. An activity can be shut down by calling its finish() method. One activity can shut down another activity (one it started with startActivityForResult()) by calling finishActivity().2. A service can be stopped by calling its stopSelf() method, or by calling Context.stopService().Components might also be shut down by the system when they are no longer being used or when Android must reclaim memory for more active components. A later section, Component Lifecycles, discusses this possibility and its ramifications in more detail.The manifest fileBefore Android can start an application component, it must learn that the component exists. Therefore, applications declare their components in a manifest file that's bundled into the Android package, the .apk file that also holds the application's code, files, and resources.The manifest is a structured XML file and is always named AndroidManifest.xml for all applications. It does a number of things in addition to declaring the application's components, such as naming any libraries the application needs to be linked against (besides the default Android library) and identifying any permissions the application expects to be granted.But the principal task of the manifest is to inform Android about the application's components. For example, an activity might be declared as follows:The name attribute of the <activity> element names the Activity subclass that implements the activity. The icon and label attributes point to resource files containing an icon and label that can be displayed to users to represent the activity.The other components are declared in a similar way — <service> elements for services, <receiver> elements for broadcast receivers, and <provider> elements for content providers. Activities, services, and content providers that are not declared in the manifest are not visible to the system and are consequently never run. However, broadcast receivers can either be declared in the manifest, or they can be created dynamically in code (as BroadcastReceiver objects) and registered with the system by calling Context.registerReceiver().For more on how to structure a manifest file for your application, see The Android Manifest.xml File.Intent filtersAn Intent object can explicitly name a target component. If it does, Android finds that component (based on the declarations in the manifest file) and activates it. But if a target is not explicitly named, Android must locate the best component to respond to the intent. It does so by comparing the Intent object to the intent filters of potential targets. A component's intent filters inform Android of the kinds of intents the component is able to handle. Like other essential information about the component, they're declared in the manifest file. Here's an extension of the previous example that adds two intent filters to the activity:The first filter in the example — the combination of the action"android.intent.action.MAIN" and the category"UNCHER" — is a common one. It marks the activity as one that should be represented in the application launcher, the screen listing applications users can launch on the device. In other words, the activity is the entry point for the application, the initial one users would see when they choose the application in the launcher.The second filter declares an action that the activity can perform on a particular type of data.A component can have any number of intent filters, each one declaring a different set of capabilities. If it doesn't have any filters, it can be activated only by intents that explicitly name the component as the target.For a broadcast receiver that's created and registered in code, the intent filter is instantiated directly as an IntentFilter object. All other filters are set up in the manifest. For more on intent filters, see a separate document, Intents and Intent Filters.应用程序基础Android DevelopersAndroid应用程序使用Java编程语言开发。
外文文献资料1、Software EngineeringSoftware is the sequences of instructions in one or more programming languages that comprise a computer application to automate some business function. Engineering is the use of tools and techniques in problem solving. Putting the two words together, software engineering is the systemtic application of tools and techniques in the development of computer-based applications.The software engineering process describes the steps it takes to deelop the system. We begin a development project with the notion that there is a problem to be solved via automation. The process is how you get from problem recognition to a working solution. A quality process is desirable because it is more likely to lead to a quality product. The process followed by a project team during the development life cycle of an application should be orderly, goal-oriented, enjoyable, and a learning experience.Object-oriented methodology is an approach to system lifecycle development that takes a top-down view of data objects, their allowable actions, and the underlying communication requirement to define a system architecture. The data and action components are encapsulated, t hat is , they are combined together, to form abstract data types Encapsulation means that if I know what data I want ,I also know the allowable processes against that data. Data are designed as lattice hierarchies of relationships to ensure that top-down, hierarchic inheritance and side ways relationships are accommodated. Encapsulated objects are constrained only to communicate via messages. At a minimum, messages indicate the receiver and action requested. Messages may be more elaborate, including the sender and data to be acted upon.That we try to apply engineering discipline to software development does not mean that we have all the answers about how to build applications. On the contrary,we still build systems that are not useful and thus are not used. Part of the reason for continuing problems in application development, is that we are constantly trying to hita moving target. Both the technology and the type of applications needed by businesses are constantly changing and becoming more complex. Our ability todevelop and disseminate knowledge about how to successfully build systems for new technologies and new application types seriously lags behind technological andbusiness changes.Another reason for continuing problems in application development is that wefromaren’t always free to do what we like and it is hard to change habits and culturesthe old way of doing things, as well as get users to agree with a new sequence o fevents or an unfamiliar format for documentation.You might ask then, if many organizations don’t use good software engineering practices, why should I bother learning them? There are two good answers to thisquestion. First, if you never know the right thing to do, you have no chance of everusing it. Second, organizations will frequently accept evolutionary, small steps ofchange instead of revolutionary, massive change. You can learn individual techniquesthat can be applied without complete devotion to one way of developing systems. Inthis way, software engineering can speed changee in their organizations by demonstrating how the tools and techniques enhance t h quality of both the productand the process of building a system.2、Data Base System1、IntroductionThe development of corporate databases w ill be one of the most importantdata-processing activities for the rest of the 1970s. Date will be increasingly regardedas a vital corporate resource, which must be organized so as to maximize their value.In addition to the databases within an organization, a vast new demand is growing fordatabase services, which will collect, organize, and sell data.The files of data which computers can use are growing at a staggering rate. Thegrowth rate in the size of computer storage is greater than the growth in the size orpower of any other component in the exploding data processing industry. The moredata the computers have access to, the greater is their potential power. In all walks oflife and in all areas of industry, data banks will change the areas of what it is possiblefor man to do. In the end of this century, historians will look back to the coming of computer data banks and their associated facilities as a step which changed the nature of the evolution of society, perhaps eventually having a greater effect on the human condition than even the invention of the printing press.Some most impressive corporate growth stories of the generation are largely attributable to the explosive growth in the need of information.The vast majority of this information is not yet computerized. However, the costof data storage hardware is dropping more rapidly than other costs in data processing. It will become cheaper to store data on computer files than to store them on paper. Not only printed information will be stored. The computer industry is improving its capability to store line drawing, data in facsimile form, photo-graphs, human speech, etc. In fact, any form of information other than the most intimate communications between humans can be transmitted and stored digitally.There are two main technology developments likely to become available in the near future. First, there are electromagnetic devices that will hold much more data than disks but have much longer access time. Second, there are solid-state technologies that will give microsecond access t ime but capacities are smaller than disks.Disks themselves may be increased in capacity somewhat. For the longer term future there are a number of new technologies which are currently working in research labs which may replace disks and may provide very large microsecond-access-time d evices. A steady stream of new storage devices is thus likely to reach the marketplace over the next 5 years, rapidly lowering the cost of storing data.Given the available technologies, it is likely that on-line data bases will use twoor three levels of storage. One solid-state with microsecond access time, one electromagnetic with access time of a fraction of a second. If two ,three ,or four levels of storage are used, physical storage organization will become more complex ,probably with paging mechanisms to move data between the levels; solid-state storage offers the possibility of parallel search operation and associativememory.Both the quantity of data stored and the complexity of their organization are going up by leaps and bounds. The first trillion bit on-line stores are now in use . in a time ,stores of this size may be common.few year’sA particularly important consideration in data base design is to store the data so that the can be used for a wide variety of applications and so that the way they can be changed quickly and easily. On computer installation prior to the data base era it has been remarkably difficult to change the way data are used. Different programmers view the data in different ways and constantly want to modify them as new needs arise modification , however ,can set off a chain reaction of changes to existing programs and hence can be exceedingly expensive to accomplish .Consequently , data processing has tended to become frozen into its old data structures .To achieve flexibility of data usage that is essential in most commercial situations . Two aspects of data base design are important. First, it should be possible to interrogate and search the data base without the lengthy operation of writing programs in conventional programming languages. Second ,the data should be independent of the programs which use them so that they can be added to or restructured without the programs being changed .The work of designing a data base is becoming increasing difficult , especially if it is to perform in an optimal fashion . There are many different ways in which data can be structured ,and they have different types of data need to be organized in different ways. Different data have different characteristics , which ought to effect the data organization ,and different users have fundamentally different requirements. So we need a kind of data base management system(DBMS)to manage data.Data base design using the entity-relationship model begins with a list of the entity types involved and the relationships among them. The philosophy of assuming that the designer knows what the entity types are at the outset is significantly different from the philosophy behind the normalization-based approach.The entity-relationship(E-R)approach uses entity-relationship diagrams. The E-Rapproach requires several steps to produre a structure that is acceptable by the particular DBMS. These steps are:(1) Data analysis(2) Producing and optimizing the entity model.(3) Logical schema development(4) Physical data base design process.Developing a data base structure from user requirements is called data bases design. Most practitioners agree that there are two separate p hases t o the data base design process. The design of a logical database structure that is processable by theview of data, and is the data base management s ystem(DBMS)describes the user’sselection of a physical structure such as the indexed sequential or direct access method of the intended DBMS.Current data base design technology shows many residual effects of its outgrowth from single-record file design methods. File design is primarily application program dependent since the data has been defined and structured in terms of individual applications to use them. The advent of DBMS revised the emphasis in data and program design approaches.There are many interlocking questions in the design of data-base s ystems and many types of technique that one can use is answer to the question so many; in fact, that one often sees valuable approaches being overlooked in the design and vital questions not being asked.There will soon be new storage devices, new software techniques, and new types of data bases. The details will change, but most of the principles will remain. Therefore, the reader should concentrate on the principles.2、Data base systemThe conception used for describing files and data bases has varied substantially in the same organization.A data base may be defined as a collection of interrelated data stored together with as little redundancy as possible to serve on or more applications in an optimal fashion; the data are stored so that they are independent of programs which use thedata; a common and controlled approach is used in adding new data and in modifying and retrieving existing data within the data base. One system is said to contain a collection of data bases if they are entirely separate in structure.A data base may be designed for batch processing, real-time processing, orin-line processing. A data base system involve application program, DBMS, and data base.One of the most important characteristics of most data bases i s that they will constantly need to change and grow. Easy restructuring of the data base must be possible as new data types and new applications are added. The restructuring should be possible without having to rewrite the application program and in general should cause as little upheaval as possible. The ease with which a data base can be changed will have a major effect on the rate at which data-processing a pplication can be developed in a corporation.The term data independence is often quoted as being one of the main attributes of a data base. It implies that the data and the application programs which use them are independent so that either may be changed without changing the other. When a single set of data items serves a variety of applications, different application programs perceive different relationships between the data items. To a large extent, data-base organization is concerned with the representation of relationship between data items and records as well as how and where the data are stored. A data base used for many applications can have multiple interconnections between the data item about which we may wish to record. It can describes the real world. The data item represents an attribute, and the attribute must be associated with the relevant entity. We design values to the attributes, one attribute has a special significance in that it identifies the entity.An attribute or set of attribute which the computer uses to identify a record or tuple is referred to as a key. The primary key is defined as that key used to uniquely identify one record or tuple. The primary key is of great importance because it is used by the computer in locating the record or tuple by means of an index or addressing algorithm.If the function of a data base were merely to store data, its organization would be simple. Most of the complexities arise from the fact that is must also show the relationships between the various items of data that are stored. It is different to describe the data in logical or physical.The logical data base description is referred to as a schema .A schema is a chart of the types of data that one used. It gives the names of the entities and attributes, and specifics the relations between them. It is a framework into which the values of the data-items can be fitted.We must distinguish between a record type and a instance of the record. Whenthis is really a record type. There are no data we talk about a ―personnel record‖,values associated with it.The term schema is used to mean an overall chart of all of the dataitem types and record types stored in a data he uses. Many different subschema can be derived from one schema.The schema and the subschema are both used by the data-base management system, the primary function of which is to serve the application programs by executing their data operations.A DBMS will usually be handing multiple data calls concurrently. It must organize its system buffers so that different data operations can be in process together. It provides a data definition language to specify the conceptual schema and most likely, some of the details regarding the implementation of the conceptual schema by the physical schema. The data definition language is a high-level language, enabling one to describe the conceptual schema in terms of a ―data model‖.The choice of a data model is a difficult one, since it must be rich enough in structure to describe significant aspects of the real world, yet it must be possible to determine fairly automatically an efficient implementation of the conceptual schemaby a physical schema. It should be emphasized that while a DBMS might be used to build small data bases, many data bases involve millions of bytes, and an inefficient implementation can be disastrous.We will discuss the data model in the following.3、Three Data ModelsLogical schemas are defined as data models with the underlying structure of particular database management systems superimposed on them. At the present time, there are three main underlying structures for database management systems. These are :RelationalHierarchicalNetworkThe hierarchical and network structures have been used for DBMS since the 1960s. The relational structure was introduced in the early 1970s.In the relational model, the entities and their relationships are represented b y two-dimensional tables. Every table represents an entity and is made up of rows and columns. Relationships between entities are represented by common columns containing identical values from a domain or range of possible values.The last user is presented with a simple data model. His and her request are formulated in terms of the information content and do not reflect any complexities due to system-oriented aspects. A relational data model is what the user sees, but it is not necessarily what will be implemented physically.The relational data model removes the details of storage structure and access strategy from the user interface. The model provides a relatively higher degree of data. To be able to make use of this property of the relational data model however, the design of the relations must be complete and accurate.Although some DBMS based on the relational data model are commercially available today, it is difficult to provide a complete set of operational capabilities with required efficiency on a large scale. It appears today that technological improvements in providing faster and more reliable hardware may answer the question positively.The hierarchical data model is based on a tree-like structure made up of nodes and branches. A node is a collection of data attributes describing the entity at that point.The highest node of the hierarchical tree structure is called a root. The nodes at succeeding lower levels are called children .A hierarchical data model always starts with a root node. Every node consists of one or more attributes describing the entity at that node. Dependent nodes can follow the succeeding levels. The node in the preceding level becomes the parent node of the new dependent nodes. A parent node can have one child node as a dependent or many children nodes. The major advantage of the hierarchical data model is the existence of proven database management systems that use the hierarchical data model as the basic structure. There is a reduction of data dependency but any child node is accessible only through its parent node, the many-to –many relationship can be implemented only in a clumsy way. This often results in a redundancy in stored data.The network data model interconnects the entities of an enterprise into a network. In the network data model a data base consists of a number of areas. An area contains records. In turn, a record may consist of fields. A set which is a grouping of records, may reside in an area or span a number of areas. A set type is based on the owner record type and the member record type. The many-to many relation-ship, which occurs quite frequently in real life can be implemented easily. The network data model is very complex, the application programmer must be familiar with the logical structure of the data base.4、Logical Design and Physical DesignLogical design of databases is mainly concerned with superimposing the constructs of the data base management system on the logical data model. There are three mainly models: hierarchical, relational, network we have mentioned above.The physical model is a framework of the database t o be stored on physical devices. The model must be constructed with every regard given to the performanceof the resulting database. One should carry out an analysis of the physical model with average frequencies of occurrences of the grou pings of the data elements, with expected space estimates, and with respect to time estimates for retrieving and maintaining the data.The database designer may find it necessary to have multiple entry points into a database, or to access a particular segment type with more than one key. To provide this type of access; it may be necessary to invert the segment on the keys. Thephysical designer must have expertise in knowledge of the DBMS functions and understanding of the characteristics of direct access d evices and knowledge of the applications.Many data bases have links between one record and another, called pointers. A pointer is a field in one record which indicates where a second record is located on the storage devices.Records that exist on storage devices is a given physical sequence. This sequencing may be employed for some purpose. The most common pupose is that records are needed in a given sequence by certain data-processing operations and so they are stored in that sequences.Different applications may need records in different sequences.The most common method of ordering records is to have them in sequence by a key—that key which is most commonly used for addressing them. An index is required to find any record without a lengthy search of the file.If the data records are laid out sequentially by key, the index for that key can be much smaller than they are nonsequential.Hashing has been used for addressing random-access s torages since they first came into existence in the mid-1950s. But nobody had the temerity to use the word hashing until 1968.Many systems analysis has avoided the use of hashing in the suspicion that it is complicated. In fact, it is simple to use and has two important advantages o ver indexing. First, it finds most records with only one seek and second, insertion and deletions can be handled without added complexity. Indexing, however, can be used with a file which is sequential by prime key and this is an overriding advantage, for some batch-pro-cessing applications.Many data-base systems use chains to interconnect records also. A chain refers to a group of records scatters within the files and interconnected by a sequence of pointers. The software that is used to retrive the chained records will make them appear to the application programmer as a contiguous logical file.The primary disadvantage o f chained records is that many read operations areneeded in order to follow lengthy chains. Sometimes this does not matter because the records have to be read anyway. In most search operations, however, the chains have to be followed through records which would not otherwise to read. In some file organizations the chains can be contained within blocked physical records so that excessive reads do not occur.Rings have been used in many file organizations. They are used to eliminate redundancy. When a ring or a chain is entered at a point some distance from its head, it may be desirable to obtain the information at the head quickly without stepping through all the intervening links.5、Data Description LanguagesIt is necessary for both the programmers and the data administrator to be able to describe their data precisely; they do so by means of data description languages. A data description language is the means of declaring to data-base management system what data structures will be used.A data description languages giving a logical data description should perform the folloeing functions:It should give a unique name to each data-item type, file type, data base and other data subdivision.It should identify the types of data subdivision such as data item segment , record and base file.It may define the type of encoding the program uses in the data items (binary , character ,bit string , etc.)It may define the length of the data items and the range of the values that a data item can assume .It may specify the sequence of records in a file or the sequence of groups of record in the data base .It may specify means of checking for errors in the data .It may specify privacy locks for preventing unauthorized reading or modificationof the data .These may operate at the data-item ,segment ,record, file or data-base level and if necessary may be extended to the contents(value) of individual data items .The authorization may , on the other hand, be separate d efined .It is more subject to change than the data structures, and changes in authorization proceduresshould not force changes in application programs.A logical data description should not specify addressing ,indexing ,or searching techniques or specify the placement of data on the storage units ,because these topics are in the domain of physical ,not logical organization .It may give an indication ofhow the data will be used or of searching requirement .So that the physical technique can be selected optimally but such indications should not be logically limiting.Most DBMS have their own languages for defining the schemas t hat are used . In most cases these data description languages are different to other programmer language, because other programmer do not have the capability to define to variety of relationship that may exit in the schemas.附录 B 外文译文1、软件工程软件是指令的序列,该指令序列由一种或多种程序语言编写,它能使计算机应用于某些事物的运用自动化。
西安邮电学院毕业设计(论文)外文文献翻译院系:计算机学院专业:软件工程班级:软件0601学生姓名:导师姓名:职称:副教授起止时间:2010年3月8日至2010年6月11日ClassesOne of the most compelling features about Java is code reuse. But to be revolutionary, you’ve got to be able to do a lot more than copy code and change it.That’s the approach used in procedural languages like C, and it hasn’t worked very well. Like everything in Java, the solution revolves around the class. You reuse code by creating new classes, but instead of creating them from scratch, you use existing classes that someone has already built and debugged.The trick is to use the classes without soiling the existing code.➢Initializing the base classSince there are now two classes involved—the base class and the derived class—instead of just one, it can be a bit confusing to try to imagine the resulting object produced by a derived class. From the outside, it looks like the new class has the same interface as the base class and maybe some additional methods and fields. But inheritance doesn’t just copy the interface of the base class. When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the same as if you had created an object of the base class by itself. It’s just that from the outside, the subobject of the base class is wrapped within the derived-class object.Of course, it’s essential that th e base-class subobject be initialized correctly, and there’s only one way to guarantee this: perform the initialization in the constructor by calling the base-class constructor, which has all the appropriate knowledge and privileges to perform the base-class initialization. Java automatically inserts calls to the base-class constructor in the derived-class constructor.➢Guaranteeing proper cleanupJava doesn’t have the C++ concept of a destructor, a method that is automatically called when an object is destroyed. The reason is probably that in Java, the practice is simply to forget about objects rather than to destroy them, allowing the garbage collector to reclaim the memory as necessary.Often this is fine, but there are times when your class might perform some activities during its lifetime that require cleanup. As mentioned in Chapter 4, you can’t know when the garbage collector will be called, or if it will be called. So if you want something cleaned up for a class, you must explicitly write a special method to do it, and make sure that the client programmer knows that they must call this method.Note that in your cleanup method, you must also pay attention to the calling order for the base-class and member-object cleanup methods in case one subobject depends on another. In general, you should follow the same form that is imposed by a C++ compiler on its destructors: first perform all of the cleanup work specific to your class, in the reverse order of creation. (In general, this requires that base-class elements still be viable.) Then call the base-class cleanup method, as demonstrated here➢Name hidingIf a Java base class has a method name that’s overloaded several times, redefining that method name in the derived class will not hide any of the base-class versions (unlike C++). Thus overloading works regardless of whether the method was defined at this level or in a base class,it’s far more common to override methods of the same name, using exactly the same signature and return type as in the base class. It can be confusing otherwise (which is why C++ disallows it—to prevent you from making what is probably a mistake).➢Choosing composition vs. inheritanceBoth composition and inheritance allow you to place subobjects inside your new class (composition explicitly does this—with inheritance it’s implicit). You might wonder about the difference between the two, and when to choose one over the other.Composition is generally used when you want the features of an existing class inside your new class, but not its interface. That is, you embed an object so that you can use it to implement functionality in your new class, but the user of your new class sees the interface you’ve defined for the new class rather than the interface from theembedded object. For this effect, you embed private objects of existing classes inside your new class.Sometimes it makes sense to allow the class user to directly access the composition of your new class; that is, to make the member objects public. The member objects use implementation hiding themselves, so this is a safe thing to do. When the user knows you’re assembling a bunch of parts, it makes the interface easier to understand.When you inherit, you take an existing class and make a special version of it. In general, this mea ns that you’re taking a general-purpose class and specializing it for a particular need➢The final keywordJava’s final keyword has slightly different meanings depending on the context, but in general it says “This cannot be changed.” You might want to prev ent changes for two reasons: design or efficiency. Because these two reasons are quite different, it’s possible to misuse the final keywordThe following sections discuss the three places where final can be used: for data, methods, and classes.➢Final dataMany programming languages have a way to tell the compiler that a piece of data is “constant.” A constant is useful for two reasons:It can be a compile-time constant that won’t ever change.It can be a value initialized at run time that you don’t want ch anged.In the case of a compile-time constant, the compiler is allowed to “fold” the constant value into any calculations in which it’s used; that is, the calculation can be performed at compile time, eliminating some run-time overhead. In Java, these sorts of constants must be primitives and are expressed with the final keyword. A value must be given at the time of definition of such a constant.A field that is both static and final has only one piece of storage that cannot be changed.When using final with object references rather than primitives, the meaning gets a bit confusing. With a primitive, final makes the value a constant, but with an object reference, final makes the reference a constant. Once the reference is initialized to an object, it can never be changed to point to another object. However, the object itself can be modified; Java does not provide a way to make any arbitrary object a constant. (You can, however, write your class so that objects have the effect of being constant.) This restriction includes arrays, which are also objects.➢Final methodsThere are two reasons for final methods. The first is to put a “lock” on the method to prevent any inheriting class from changing its meaning. This is done for design reasons when you want to mak e sure that a method’s behavior is retained during inheritance and cannot be overridden.The second reason for final methods is efficiency. If you make a method final, you are allowing the compiler to turn any calls to that method into inline calls. When the compiler sees a final method call, it can (at its discretion) skip the normal approach of inserting code to perform the method call mechanism (push arguments on the stack, hop over to the method code and execute it, hop back and clean off the stack arguments, and deal with the return value) and instead replace the method call with a copy of the actual code in the method body. This eliminates the overhead of the method call. Of course, if a method is big, then your code begins to bloat, and you probably won’t see any performance gains from inlining, since any improvements will be dwarfed by the amount of time spent inside the method. It is implied that the Java compiler is able to detect these situations and choose wisely whether to inline a final method. However, it’s best to let the compiler and JVM handle efficiency issues and make a method final only if you want to explicitly prevent overriding➢Final classesWhen you say that an entire class is final (by preceding its definition with the final keyword), you state that you don’t want to inherit from this class or allow anyone else to do so. In other words, for some reason the design of your class is suchthat there is never a need to make any changes, or for safety or security reasons you don’t want subc lassingNote that the fields of a final class can be final or not, as you choose. The same rules apply to final for fields regardless of whet However, because it prevents inheritance, all methods in a final class are implicitly final, since there’s no way to override them. You can add the final specifier to a method in a final class, but it doesn’t add any meaning.her the class is defined as final.➢SummaryBoth inheritance and composition allow you to create a new type from existing types. Typically, however, composition reuses existing types as part of the underlying implementation of the new type, and inheritance reuses the interface. Since the derived class has the base-class interface, it can be upcast to the base, which is critical for polymorphism, as you’ll see in the next chapter.Despite the strong emphasis on inheritance in object-oriented programming, when you start a design you should generally prefer composition during the first cut and use inheritance only when it is clearly necessary. Composition tends to be more flexible. In addition, by using the added artifice of inheritance with your member type, you can change the exact type, and thus the behavior, of those member objects at run time. Therefore, you can change the behavior of the composed object at run time.When designing a system, your goal is to find or create a set of classes in which each class has a specific use and is neither too big (encompassing so much functionality that it’s unwieldy to reuse) nor annoyingly small (you can’t use it by itself or without adding functionality).类“Java引人注目的一项特性是代码的重复使用或者再生。
软件系统开发中英文对照外文翻译文献(文档含英文原文和中文翻译)软件工程中的过程处理模型斯卡基沃尔特摘要软件系统从起初的开发,维护,再到一个版本升级到另一个版本,经历了一系列阶段。
这篇文章归纳和整理了一些描述如何开发软件系统的方法。
从传统的软件生命周期的背景和定义出发,即大多数教科书所讨论的,并且目前的软件开发实践所遵循的软件生命周期,接着讨论作为目前软件工程技术基石的更全面的软件开发模型。
关键词:软件生命周期;模型;原型1 前言软件业的发展最早可追溯到开发大型软件项目的显式模型,那是在二十世纪五十年代和六十年代间。
总体而言,这些早期的软件生命周期模型的唯一目的就是提供一个合理的概念计划来管理软件系统的开发。
因此,这种计划可以作为一个基础规划,组织,人员配备,协调,预算编制,并指导软件开发活动。
自20世纪60年代,出现了许多经典的软件生命周期的描述(例如,霍西尔1961年,劳斯莱斯1970年,1976年博伊姆,迪斯塔索1980年,1984年斯卡基,萨默维尔1999年)。
罗伊斯(1970)使用现在生活中熟悉的“瀑布”图表,提出了周期的概念,这个图表概括了开发大型软件系统是多么的困难,因为它涉及复杂的工程任务,而这些任务在完成之前可能需要不断地返工。
这些图表也通常在介绍性发言中被采用,主要针对开发大型软件系统的人们(例如,定制软件的客户),他们可能不熟悉各种各样的技术问题但还是要必须解决这些问题。
这些经典的软件生命周期模型通常包括以下活动一些内容:系统启动/规划:系统从何而来?在大多数情况下,不论是现有的信息处理机制以前是自动的,手工的,还是非正式的,新系统都会取代或补充它们。
● 需求分析和说明书:阐述一个新的软件系统将要开发的问题:其业务能力,其所达到的性能特点,支持系统运行和维护所需的条件。
● 功能或原型说明:潜在确定计算的对象,它们的属性和关系,改变这些对象的操作,约束系统行为的限制等。
●划分与选择:给出需求和功能说明书,将系统分为可管理的模块,它们是逻辑子系统的标志,然后确定是否有对应于这些模块的新的,现有的,或可重复使用的软件系统可以复用。
安卓应用开发中英文对照外文翻译文献(文档含英文原文和中文翻译)中英文翻译安卓应用开发基础在Java编程语言编写的Android应用程序的Android的SDK工具编译代码以及与任何数据和到一个Android的包,一个归档文件档案资源的.apk后缀,所有的在一个单一的代码.apk文件被认为是一个应用程序,是Android的文件,供电设备来安装应用程序。
一旦安装在设备上,每个Android应用程序的生命在它自己的安全沙箱:而Android操作系统是一个多用户Linux系统中,每个应用程序是一个不同的用户。
默认情况下,每个应用程序的系统分配一个唯一的Linux用户ID (该ID仅用于由系统是未知的应用程序),系统设置所有的应用程序中的文件权限,以便只有用户ID分配给该应用程序可以访问它们。
每个进程都有它自己的虚拟机(VM),因此应用程序的代码在从其他应用程序隔离运行。
默认情况下,每个应用程序运行在它自己的Linux进程。
Android 的启动过程时,应用程序的任何组件需要被执行,然后关闭该进程时,它不再需要或恢复时,系统必须为其他应用程序的内存。
这样一来,Android系统实现了最小特权原则,也就是说,每个应用程序,默认情况下,只能访问的组件,它需要做的工作,没有更多,这将创建一个非常安全的环境,使应用程序无法访问的,这就是它没有给予许可制度的部分。
但是,有一个应用程序的方法与其他应用程序和应用程序访问系统服务的数据:这有可能为两个应用程序安排共享相同的Linux用户ID,在这种情况下,它们能够相互访问的文件。
为了节约使用相同的用户ID系统资源,应用程序还可以安排运行在相同的Linux进程和共享同一个VM (应用也必须使用相同的证书签名)。
应用程序可以请求访问权限,如用户的联系人,短信,可安装存储(SD卡),摄像头,蓝牙等设备的数据,所有应用程序的权限必须由用户在安装时授予。
这涵盖了基本就如何Android应用程序在系统中存在这个文件的其余部分向您介绍:1、框架的核心组件定义应用程序。
软件工程外文翻译文献(文档含中英文对照即英文原文和中文翻译)Software engineeringSoftware engineering is the study of the use of engineering methods to build and maintain effective, practical and high-quality software disciplines. It involves the programming language, database, software development tools, system platform, standards, design patterns and so on.In modern society, the software used in many ways. Typical software such as email, embedded systems, human-machine interface, office packages, operating systems, compilers, databases, games. Meanwhile, almost all the various sectors of computer software applications, such as industry, agriculture, banking, aviation and government departments. These applications facilitate the economic and social development,improve people's working efficiency, while improving the quality of life. Software engineers is to create software applications of people collectively, according to which software engineers can be divided into different areas of system analysts, software designers, system architects, programmers, testers and so on. It is also often used to refer to a variety of software engineers, programmers.OriginIn view of difficulties encountered in software development, North Atlantic Treaty Organization (NATO) in 1968 organized the first Conference on Software Engineering, and will be presented at the "software engineering" to define the knowledge required for software development, and suggested that "software development the activities of similar projects should be. " Software Engineering has formally proposed since 1968, this time to accumulate a large number of research results, widely lot of technical practice, academia and industry through the joint efforts of software engineering is gradually developing into a professional discipline.Definitioncreation and use of sound engineering principles in order to obtain reliable and economically efficient software.application of systematic, follow the principle can be measured approach to development, operation and maintenance of software; that is to beapplied to software engineering.The development, management and updating software products related to theories, methods and tools.A knowledge or discipline (discipline), aims to produce good quality, punctual delivery, within budget and meet users need software.the practical application of scientific knowledge in the design, build computer programs, and the accompanying documents produced, and the subsequent operation and maintenance.Use systematic production and maintenance of software products related to technology and management expertise to enable software development and changes in the limited time and under cost.Construction team of engineers developed the knowledge of large software systems disciplines.the software analysis, design, implementation and maintenance of a systematic method.the systematic application of tools and techniques in the development of computer-based applications.Software Engineering and Computer ScienceSoftware development in the end is a science or an engineering, this is a question to be debated for a long time. In fact, both the two characteristics of software development. But this does not mean that they can be confused with each other. Many people think that softwareengineering, computer science and information science-based as in the traditional sense of the physical and chemical engineering as. In the U.S., about 40% of software engineers with a degree in computer science. Elsewhere in the world, this ratio is also similar. They will not necessarily use every day knowledge of computer science, but every day they use the software engineering knowledge.For example, Peter McBreen that software "engineering" means higher degree of rigor and proven processes, not suitable for all types of software development stage. Peter McBreen in the book "Software Craftsmanship: The New Imperative" put forward the so-called "craftsmanship" of the argument, consider that a key factor in the success of software development, is to develop the skills, not "manufacturing" software process.Software engineering and computer programmingSoftware engineering exists in a variety of applications exist in all aspects of software development. The program design typically include program design and coding of the iterative process, it is a stage of software development.Software engineering, software project seeks to provide guidance in all aspects, from feasibility analysis software until the software after completion of maintenance work. Software engineering that software development and marketing activities are closely related. Such assoftware sales, user training, hardware and software associated with installation. Software engineering methodology that should not be an independent programmer from the team and to develop, and the program of preparation can not be divorced from the software requirements, design, and customer interests.Software engineering design of industrial development is the embodiment of a computer program.Software crisisSoftware engineering, rooted in the 20th century to the rise of 60,70 and 80 years of software crisis. At that time, many of the software have been a tragic final outcome. Many of the software development time significantly beyond the planned schedule. Some projects led to the loss of property, and even some of the software led to casualties. While software developers have found it increasingly difficult for software development.OS 360 operating system is considered to be a typical case. Until now, it is still used in the IBM360 series host. This experience for decades, even extremely complex software projects do not have a set of programs included in the original design of work systems. OS 360 is the first large software project, which uses about 1,000 programmers. Fred Brooks in his subsequent masterpiece, "The Mythical Man Month" (The Mythical Man-Month) in the once admitted that in his management of theproject, he made a million dollar mistake.Property losses: software error may result in significant property damage. European Ariane rocket explosion is one of the most painful lesson.Casualties: As computer software is widely used, including hospitals and other industries closely related to life. Therefore, the software error might also result in personal injury or death.Was used extensively in software engineering is the Therac-25 case of accidents. In 1985 between June and January 1987, six known medical errors from the Therac-25 to exceed the dose leads to death or severe radiation burns.In industry, some embedded systems do not lead to the normal operation of the machine, which will push some people into the woods. MethodologyThere are many ways software engineering aspects of meaning. Including project management, analysis, design, program preparation, testing and quality control.Software design methods can be distinguished as the heavyweight and lightweight methods. Heavyweight methods produce large amounts of official documentation.Heavyweight development methodologies, including the famous ISO 9000, CMM, and the Unified Process (RUP).Lightweight development process is not an official document of the large number of requirements. Lightweight methods, including well-known Extreme Programming (XP) and agile process (Agile Processes).According to the "new methodology" in this article, heavyweight method presented is a "defensive" posture. In the application of the "heavyweight methods" software organizations, due to a software project manager with little or no involvement in program design, can not grasp the item from the details of the progress of the project which will have a "fear", constantly had to ask the programmer to write a lot of "software development documentation." The lightweight methods are presented "aggressive" attitude, which is from the XP method is particularly emphasized four criteria - "communication, simplicity, feedback and courage" to be reflected on. There are some people that the "heavyweight method" is suitable for large software team (dozens or more) use, and "lightweight methods" for small software team (a few people, a dozen people) to use. Of course, on the heavyweight and lightweight method of approach has many advantages and disadvantages of debate, and various methods are constantly evolving.Some methodologists think that people should be strictly followed in the development and implementation of these methods. But some people do not have the conditions to implement these methods. In fact, themethod by which software development depends on many factors, but subject to environmental constraints.Software development processSoftware development process, with the subsequent development of technology evolution and improvement. From the early waterfall (Waterfall) development model to the subsequent emergence of the spiral iterative (Spiral) development, which recently began the rise of agile development methodologies (Agile), they showed a different era in the development process for software industry different awareness and understanding of different types of projects for the method.Note distinction between software development process and software process improvement important difference between. Such as ISO 15504, ISO 9000, CMM, CMMI such terms are elaborated in the framework of software process improvement, they provide a series of standards and policies to guide software organizations how to improve the quality of the software development process, the ability of software organizations, and not give a specific definition of the development process.Development of software engineering"Agile Development" (Agile Development) is considered an important software engineering development. It stressed that software development should be able to possible future changes and uncertaintiesof a comprehensive response.Agile development is considered a "lightweight" approach. In the lightweight approach should be the most prestigious "Extreme Programming" (Extreme Programming, referred to as XP).Correspond with the lightweight approach is the "heavyweight method" exists. Heavyweight approach emphasizes the development process as the center, rather than people-centered. Examples of methods such as heavyweight CMM / PSP / TSP.Aspect-oriented programming (Aspect Oriented Programming, referred to as the AOP) is considered to software engineering in recent years, another important development. This aspect refers to the completion of a function of a collection of objects and functions. In this regard the contents related to generic programming (Generic Programming) and templates.软件工程软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
软件工程专业毕业设计外文文献翻译1000字本文将就软件工程专业毕业设计的外文文献进行翻译,能够为相关考生提供一定的参考。
外文文献1: Software Engineering Practices in Industry: A Case StudyAbstractThis paper reports a case study of software engineering practices in industry. The study was conducted with a large US software development company that produces software for aerospace and medical applications. The study investigated the company’s software development process, practices, and techniques that lead to the production of quality software. The software engineering practices were identified through a survey questionnaire and a series of interviews with the company’s software development managers, software engineers, and testers. The research found that the company has a well-defined software development process, which is based on the Capability Maturity Model Integration (CMMI). The company follows a set of software engineering practices that ensure quality, reliability, and maintainability of the software products. The findings of this study provide a valuable insight into the software engineering practices used in industry and can be used to guide software engineering education and practice in academia.IntroductionSoftware engineering is the discipline of designing, developing, testing, and maintaining software products. There are a number of software engineering practices that are used in industry to ensure that software products are of high quality, reliable, and maintainable. These practices include software development processes, software configuration management, software testing, requirements engineering, and project management. Software engineeringpractices have evolved over the years as a result of the growth of the software industry and the increasing demands for high-quality software products. The software industry has developed a number of software development models, such as the Capability Maturity Model Integration (CMMI), which provides a framework for software development organizations to improve their software development processes and practices.This paper reports a case study of software engineering practices in industry. The study was conducted with a large US software development company that produces software for aerospace and medical applications. The objective of the study was to identify the software engineering practices used by the company and to investigate how these practices contribute to the production of quality software.Research MethodologyThe case study was conducted with a large US software development company that produces software for aerospace and medical applications. The study was conducted over a period of six months, during which a survey questionnaire was administered to the company’s software development managers, software engineers, and testers. In addition, a series of interviews were conducted with the company’s software development managers, software engineers, and testers to gain a deeper understanding of the software engineering practices used by the company. The survey questionnaire and the interview questions were designed to investigate the software engineering practices used by the company in relation to software development processes, software configuration management, software testing, requirements engineering, and project management.FindingsThe research found that the company has a well-defined software development process, which is based on the Capability Maturity Model Integration (CMMI). The company’s software development process consists of five levels of maturity, starting with an ad hoc process (Level 1) and progressing to a fully defined and optimized process (Level 5). The company has achieved Level 3 maturity in its software development process. The company follows a set of software engineering practices that ensure quality, reliability, and maintainability of the software products. The software engineering practices used by the company include:Software Configuration Management (SCM): The company uses SCM tools to manage software code, documentation, and other artifacts. The company follows a branching and merging strategy to manage changes to the software code.Software Testing: The company has adopted a formal testing approach that includes unit testing, integration testing, system testing, and acceptance testing. The testing process is automated where possible, and the company uses a range of testing tools.Requirements Engineering: The company has a well-defined requirements engineering process, which includes requirements capture, analysis, specification, and validation. The company uses a range of tools, including use case modeling, to capture and analyze requirements.Project Management: The company has a well-defined project management process that includes project planning, scheduling, monitoring, and control. The company uses a range of tools to support project management, including project management software, which is used to track project progress.ConclusionThis paper has reported a case study of software engineering practices in industry. The study was conducted with a large US software development company that produces software for aerospace and medical applications. The study investigated the company’s software development process,practices, and techniques that lead to the production of quality software. The research found that the company has a well-defined software development process, which is based on the Capability Maturity Model Integration (CMMI). The company uses a set of software engineering practices that ensure quality, reliability, and maintainability of the software products. The findings of this study provide a valuable insight into the software engineering practices used in industry and can be used to guide software engineering education and practice in academia.外文文献2: Agile Software Development: Principles, Patterns, and PracticesAbstractAgile software development is a set of values, principles, and practices for developing software. The Agile Manifesto represents the values and principles of the agile approach. The manifesto emphasizes the importance of individuals and interactions, working software, customer collaboration, and responding to change. Agile software development practices include iterative development, test-driven development, continuous integration, and frequent releases. This paper presents an overview of agile software development, including its principles, patterns, and practices. The paper also discusses the benefits and challenges of agile software development.IntroductionAgile software development is a set of values, principles, and practices for developing software. Agile software development is based on the Agile Manifesto, which represents the values and principles of the agile approach. The manifesto emphasizes the importance of individuals and interactions, working software, customer collaboration, and responding to change. Agile software development practices include iterative development, test-driven development, continuous integration, and frequent releases.Agile Software Development PrinciplesAgile software development is based on a set of principles. These principles are:Customer satisfaction through early and continuous delivery of useful software.Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.Deliver working software frequently, with a preference for the shorter timescale.Collaboration between the business stakeholders and developers throughout the project.Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.Working software is the primary measure of progress.Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.Continuous attention to technical excellence and good design enhances agility.Simplicity – the art of maximizing the amount of work not done – is essential.The best architectures, requirements, and designs emerge from self-organizing teams.Agile Software Development PatternsAgile software development patterns are reusable solutions to common software development problems. The following are some typical agile software development patterns:The Single Responsibility Principle (SRP)The Open/Closed Principle (OCP)The Liskov Substitution Principle (LSP)The Dependency Inversion Principle (DIP)The Interface Segregation Principle (ISP)The Model-View-Controller (MVC) PatternThe Observer PatternThe Strategy PatternThe Factory Method PatternAgile Software Development PracticesAgile software development practices are a set ofactivities and techniques used in agile software development. The following are some typical agile software development practices:Iterative DevelopmentTest-Driven Development (TDD)Continuous IntegrationRefactoringPair ProgrammingAgile Software Development Benefits and ChallengesAgile software development has many benefits, including:Increased customer satisfactionIncreased qualityIncreased productivityIncreased flexibilityIncreased visibilityReduced riskAgile software development also has some challenges, including:Requires discipline and trainingRequires an experienced teamRequires good communicationRequires a supportive management cultureConclusionAgile software development is a set of values, principles, and practices for developing software. Agile software development is based on the Agile Manifesto, which represents the values and principles of the agile approach. Agile software development practices include iterative development, test-driven development, continuous integration, and frequent releases. Agile software development has many benefits, including increased customer satisfaction, increased quality, increased productivity, increased flexibility, increased visibility, and reduced risk. Agile software development also has some challenges, including the requirement for discipline and training, the requirement for an experienced team, the requirement for good communication, and the requirement for a supportive management culture.。
JAVA学习过程论文中英文资料对照外文翻译文献Java Learning Path processEach person's study method is different, a person's method suits another person not necessarily, I only can discuss own study method. Because I study Java am study independently completely, has not asked others, therefore the study process basically is completely oneself tries to find out. I did not know whether this method is the quite good method, only could give everybody to provide refers.Studies Java first step installs good JDK, writes Hello World? Actually the JDK study is not so simple, has two questions about JDK is very easy to puzzle the Java programmer continuously the place: Is the CLASSPATH question, actually said from the principle, is how must make clear JRE ClassLoader increase Class; Another question is package and the import question, how seeks the kind of way question. These two questions tried to find out clear, eliminated has studied Java and uses JDK the biggest barrier. The recommendation looked Wang Sen "the Java Depth Experiences dangers", has carried on the thorough discussion to these two questionsSecond step is studies Java the grammar. The Java grammar is kind of C++, the basically mainstream programming language is not kind of C, is kind of C++, does not have what new thing, therefore the grammar study, probably was the quite a while time is enough. Only needs to pay attention is has the key words usage which several is not easy to make clear, public, protected, private, static, when uses, why has to use, how uses, this possible need some people to direct, I initially was own ponder over completely, has spent the very long time. But afterwards I saw above this book spoke these concepts to "Thinking in Java".Third step is studies Java the object-oriented programming language characteristic place. For instance inherits, structure, abstract class, the connection, the method are many condition, heavy load, cover, Java exception handling mechanism. Said regarding a not object-oriented language background person that, I thought this process needs to spend the very long very long time, because studies in front of Java does not have C++ the experience, only then the C experience, I was have probably spent for a month, all made clear only then thoroughly these concepts, book example above repeatedly estimating, the revision, the attempt, repeatedly looked at that several chapter of contents, looked, looked has not gotten down 5, comprehended only then thoroughly. But I thought if has the C++ experience, should 12 days time be enough. Then in this process, may have a look "Thinking in Java" this book, opposite is extremely thorough to the object explanation. What a pity is I studies, has not seen to this book, therefore own have spent the massive time, and estimates through own attempt learns.Fourth step starts a familiar Java kind of storehouse. The Java foundation class storehouse actually is JDK installs under the table of contentsjre\Lib\Rt.Jar this package. The study foundation class storehouse studies rt.Jar. Inside the foundation class storehouse kind are extremely extremely many. It is said some more than 3,000, I have not counted. But said the most core truly regarding us only then 4, respectively isng.*;Java.Io.*;Java.Util.*;Java.Sql.*;These four packages study, each package study all may write thick teaching material, but O'reilly also truly is does this. I thought if time quite tight, is impossible through to read four books to study. I thought the quite good study method is such:First must read through entire package the frame, understood entire package class, interface, the exception constitution, should better be can find the introduction entire package frame the article. These introduced specially package of books the first several chapters should be these overall frame content introductions. Is not must be familiar with each kind of usage to the package of overall frame assurance, which attributes remembers it have, the method. Wants to record also cannot remember. But is must know which aspects the package does have a kind of constitution, these kind of uses are any, most core several classifications maybe complete any function. I in the time which trains to the human generally is a class speaks a package, therefore not impossible detailed introduction each kind of usage, but I repeatedly stress, how do I speak these packages to you am must tell you a kind of method am transfer, also does not request you to remember the kind of method transfer, but wants you tounderstand, which kinds Java has provided to us, each kind is uses in any situation, when I meet the question the time, I knew which kind, or which several kind of combinations can solve my problem, That'all! When we write the procedure specifically time, so long as you knew which kind should complete your work with to be enough. Codes, the concrete method transfer, writes the code, Documentation, all things all inside Documentation, will not request you certainly to remember, are actual you also not to be able to remember more than 3,000 kinds altogether the nearly 100,000 methods transfers. Therefore changes to each package overall frame assurance extremely importantly.Fifth step, through above study, if study the quite solid speech, built the Java foundation, is left over the work which had to do is sweeps clean inside Documentation besides above 4 packages other some comparisons to have the use the kind. Believed progressed to this step, Java studies independently the ability already to raise, might to study Documentation directly horizontal. Besides must make the GUI programming, inside JDK other can have the use the package is these:Java.Text.*;.*;Javax.Naming.*;These packages of inside real correct uses quite many kinds very are actually few, only then several, therefore does not need to spend the very much time.Sixth step, Java Web programmingThe Web programming core is the HTTP agreement, the HTTP agreement and Java irrelevant, if not familiar HTTP agreement, although also may learnServlet/JSP programming, but cannot achieve extrapolates, by knowing one method you will know all boundary. Therefore the HTTP agreement study is necessary. If has been familiar with HTTP agreement, also had the Java programming good foundation, studies Servlet/JSP is simply easy as pie, I study Servlet/JSP has used not to week-long time, then started with JSP to make the project. In Servlet/In the JSP study, heavy still was Servlet Documentation. Servlet the API most commonly used kind are very few, the flowered quite few time might grasp. These kinds all looked at, writes several examples to try. Servlet/The JSP programming essence is transferring these kinds to come repeatedly through the HTTP agreement converses between Web Server and Brower. Moreover to JSP, but also needs to be familiar with several commonly used JSP the mark, the concrete mode of writing cannot remember the speech, looks up temporarily and that's the end of.In addition Java the Web programming study must place Web Application with emphasis in the design pattern, how carries on the service logic the analysis, and carries on the reasonable design, according to the MVC design pattern request, completes the different logical level separately using Servlet and JSP, how grasps carries on the flow between Servlet and JSP the control and data sharing, as well as how Web should Application dispose and the deployment.Seventh step, J2EE programmingThe above study process if is quite smooth, carries on to this step, the difficulty enhances suddenly. Because the above knowledge content all only involves an aspect, but likes EJB, JMS, core the and so on JTA J2EE standard often is several kind of Java technology synthesis utilization crystallization, therefore grasps the difficulty quite to be big.First certainly must study good JNDI, JNDI is App the Server localization server resources (the EJB module, Datasouce, JMS) searches the method, if to JNDI not familiar, EJB, JMS these things cannot study nearly. JNDI actually is javax.Naming.* This package, utilizes is very simple. The difficulty lies in the server resources document the disposition. Regarding the server resources document disposition, needed to have a look the special documents to be standard, for instance web.Xml mode of writing, ejb-jar.Xml mode of writing and so on. In view of each kind of different App Server, but also has own service resources disposition document, also is needs to be familiar with.Then may study JTA, mainly is must understand JTA regarding business control method, as well as should use JTA in any situation. Here may simple cite an example, we knew the ordinary circumstances may carry on business regarding a database connection (conn.SetAutoCommit (false)....,mit ()), does is an atomic operation, but the supposition my service demand is needs to hold artificially to two different databases is an atomic operation, you can do to? At this time only could use JTA. The supposition operating process inserts a record first toward the A database, then deletes the B database another record, we wrote the code are cannot control entire hold artificially are an atomic operation. With the JTA speech, completes the control by App Server.In studies in front of EJB must study the object sequence and RMI, RMI is the EJB foundation. Then studies JMS and EJB, said regarding EJB, most is essential is must understand how EJB is realizes through RMI to the far-end object transfer, as well as must use in any situation to EJB.In studies EJB, after JMS these things, you possibly can realize must extremely anxiously study two domains the knowledge, is UML, another isDesign Pattern. The Java enterprise software design takes the frame extremely (Framework) the design, a good software frame is the software develops the successful essential condition. In this time, should start the study key point to place the design pattern and in the frame study, experiences through the study and the actual programming grasps EJB the design pattern and the J2EE core pattern.Inside J2EE standard, except EJB, JMS, JTA, Servlet/JSP, outside JDBC also has the very many very many enterprises technology, here 11 did not carry on introducedMoreover also has newest domain Web Services. Web Services also completely does not have any new thing, it likes is one kind of adhesive, may unify the different service provides a unified transfer connection, said as the user, I so long as obtain the service provider for mine WSDL (to service description), has sufficed, I did not know completely the server tenderer provides actually the service is the EJB module,The Net module, any CORBA module, other any realizations, I do not need to know. Web the Services greatest place lies in through the unified service provides the way and the transfer way, has realized the entire Internet service sharing, is an extremely excited area of technology. Web Services resembles at present not to have any very good books, but may through look up the material above the network the way to study.JA V A学习过程每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。
软件开发中英文对照外文翻译文献(文档含英文原文和中文翻译)译文:仿真软件开发低大型复杂腔基于UG的二次开发摘要---射击和弹跳射线(SBR)二次开发的基础软件是由国标库(UG)。
射线跟踪的核心算法是基于优化的非均匀有理b样(NURBS)曲线表面相交算法建立在UG,导致非常高的射线路径跟踪的准确性没有啮合从而保持原有的空腔模型的准确性。
它也是有效的避免同任何复杂的蛀牙,因为即使工作屏蔽的过程。
两腔的几何建模及其散射模拟成一个统一的平台,形成一个易用的综合和环球环境电磁建模复杂的蛀牙。
在本文开发的软件对复杂腔散射建模引入了一些数值结果显示的准确性和效率关键词--电大型复杂cavit; 雷达截面; UG的二次开发; 射击和弹跳射线(SBR); 射线跟踪I.介绍雷达截面(RCS)的分析电等大型复杂洞进口或出口,双面或三面角反射器等,是计算电磁学中最重要的主题之一。
低大型复杂的空腔结构,只有基于高频方法如射击和弹跳射线(SBR)[1][2][3]是合适的。
传统上,为三步骤采用SBR首先,模型腔的CAD软件和网格表面的内墙,然后出口信息网格的结果;其次发现表面上的光线的反射点ray-surface十字路口和屏蔽计算;最后计算RCS即将离任的射线从腔。
虽然这些网基于射线跟踪可用于任意形状的蛀牙从理论上讲,它有不准确的缺点路径建立在复杂的蛀牙导致贫穷的RCS计算精度。
电大型复杂的蛀牙,射线跟踪的效率很低,由于分离腔建模与RCS计算复杂的仿真过程。
为了解决这些问题, 一个强大的CAD软件,模拟电大型复杂腔并计算其RCS在同一平台。
开发的软件具有以下优势: 1)腔建模和RCS计算在UG集成,因此仿真过程大大简化。
2)表面啮合没有必要而射线可以追踪精度高和效率在任何任意形状的空腔。
3)开发的软件是通用的电磁散射的凹面反射镜结构,如蛀牙和角落。
小说射线追踪方法的新的先进的软件是基于UG的二次开发将讨论下一步,和RCS仿真结果。
II.提出的方法射击和弹跳射线(SBRSBR的基本概念是一个平面波由足够大量的平行光管(这里使用三角射线管)事件上的孔腔开放,每个射线管的能量集中在中线反映空腔墙基于几何光学定律和最终的开孔和树叶射线管足迹在中央的场振幅计算射线通过考虑几何差异因素,极化和材料加载腔壁。
的总散射提起腔由总结发现散射场计算每个管的基尔霍夫近似衍射场的足迹在这里rim是可以忽略的比较从腔背散射的主导部分。
SBR的详细理论可以在[1]和[2]。
b射线追踪方法基于UG的二次开发UG是先进的CAD / CAM / CAE软件,采用非均匀有理b样(NURBS)作为其主要的建模工具。
它提供了强大的建模能力和任意复杂腔建模精度高UG的二次开发工具UG /开放的API UG和外来的程序之间的交互。
UG / Open API包含大约2000个函数可以直接调用c++环境中有两种不同的模式对UG /开放项目:内部模式和外部模式。
通过构建一个动态链接库允许访问几何模型及其相对日期在国标库会话直接使用UG /开放的API函数。
内部模式是使用DLL链接,在连接速度快的优势,因此,本文选择了使用UG /开放api,可以建立一种有效的射线追踪方法和高精度优化基于NURBS曲线表面相交的算法。
没有复杂的啮合和屏蔽程序,新的射线跟踪方法更容易比传统项目。
图1显示了发现每个光线的反射点在腔室内的墙上发达的射线追踪方法。
如果利用三角射线管,四个射线包括三条边和一个中央线管,需要追踪如上所述。
请全部实现的蛀牙与平台结构通过跟踪只有中央射线正如上面所讨论的。
后找到一个反射点内墙,飞机的数学表达式可以使用点的坐标和单位法向量,然后反射光线的三条边射线管根据解析后的飞机可以找到。
这进一步进步会带来一个巨大的减少射线追踪的时间。
图1所示。
射线路径发现的射线追踪方法基于UG的二次开发。
这个图显示三个入射光线入射方向发射的,和路径从参考点的s形腔,然后反映在内墙,最后到达开孔。
事实上,这部小说SBR上面讨论不仅可以应用在蛀牙,但也提供了一种新方法的电大尺寸目标的散射计算考虑多个现场互动,和过程将大大简化由于避免啮合和屏蔽需要在传统的物理光学(PO)。
该方法的过程仿真过程的方法是:1)模型或在UG中导入一个腔会话。
2)自动识别腔开放光圈。
3)代表了入射波与数量足够大的平行光管开孔腔和发射射线追踪。
4)计算每个即将离任的背散射场在开孔管足迹。
5)总结的背散射场管足迹和计算RCS的腔。
软件是通用的相对任意蛀牙和凹结构由于小说射线追踪方法建立与UG /开放API函数和一个统一的平台整合腔在UG建模和RCS计算。
RAM涂层蛀牙也可以轻松地在这个软件。
一个用户友好的界面与UG / Open UIStyler发达,在UG提供的GUI工具III.数值结果本文模拟了使用矩形腔,一个三角形的三面角反射器和一个矩形入口压电陶瓷墙来演示开发的软件。
计算环境是奔腾4 - 2.8 ghz处理器,1 gb内存和Windows XP操作系统。
入射波频率10 GHz,一步是程度1°模拟,俯仰角度θ从+ z方向和方位角度φ从+ x方向的模型。
A. RCS的矩形腔和效率分析图2显示了RCS的矩形腔的比较10 _,_方形截面,30 _长度[7]和模拟结果与开发的软件在不同的N(N是每个波长的节点数量,有四个光管穿过每个网格开放,所以光管的数量N×N×4平方波长)。
这个数字表明快速收敛的开发了SBR的基础上提出新的射线追踪与平台腔结构。
结果得到收敛当N达到4,线管的数量是64平方波长在这种情况下,N是以下模拟设置为4。
模拟结果与[7]中的结果吻合较好。
θ度数图形2. RCS的矩形腔与不同的N,平行极化表1显示了CPU时间不同N在上面模拟,演示了该方法的效率高。
表一、CPU时间不同的NN 2 3 4 5CPU时间(分钟) 1.70 4.01 8.37 17.49B.三角形的三面角反射器的RCSRCS计算的三角形三面角反射器5 _边长度是如图3所示.我们的结果再次同意与MLFMM FEKO的结果很好。
微小的区别来自于衍射场不覆盖目前在我们的结果。
. 需要1.67分钟和45分钟为我们的软件和FEKO分别模拟结果。
如此高的效率使它适合计算电磁散射从电大型复杂腔没有要求额外的计算机内存。
C.矩形进气道的RCS散射模拟飞机的入口,典型的电大型复杂腔,在计算电——磁学仍然是一个挑战性的任务。
图4是一个矩形入口的模型[7]和其RCS模拟软件。
需要16.58分钟,25.15分钟得到的结果装具(b)和(c)。
找到优秀的协议与参考文献[7]中的结果。
所有这些结果验证新的射线追踪方法的准确性对于复杂的蛀牙在我们开发的软件。
(a) 个矩形入口的模型图4.矩形进气道的RCS,平行极化IV.结论一个新颖的射线追踪方法和相应的SBR相对任意腔散射模拟软件开发基于UG的二次开发。
软件的仿真程序进行了探讨。
一些结果,显示良好的准确性和效率高的散射建模电大型复杂的蛀牙。
参考文献[1]郝凌、周Ri-chee Shung-wu李。
射击和弹跳射线:RCS的计算任意形状的空腔。
IEEE反式天线progat,1989年,37(2):194 – 205[2]角色h·帕沙克,罗伯特·j·霍尔德。
模态、射线和梁的技术分析开放式波导腔的电磁散射。
IEEE反式天线progat,1989年,37(5):635 - 647[3]嬴政阮。
电磁辐射的基本理论。
成都电讯工程学院出版社,1984年[4]傅雅宁。
计算机图形学。
国防工业出版社,2005[5]李建州,徐家栋,等。
基于国标库的设计评估软件。
中国无线电科学学报,2005,20(2):222 - 225[6]李建周,徐家栋等.综合RCS(雷达截面)计算一个更有效的RCS计算方法。
西北工业大学学报,2003,21(4):449 - 452[7]郝凌,Shung-wu 李 Ri-chee周。
高高频RCS开放腔的矩形和圆形的横截面。
IEEE反式天线progat,1989年,37(5):648 – 654原文:Development of RCS simulation software for electrically large complex cavities based on the secondary development of UGLI Jianzhou JIANG Yingfu XU Jiadong School of Electronics and Information, Northwestern Polytechnical University,Xi’an Shanxi 710129, ChinaAbstrac ---t-A shooting and bouncing ray (SBR) based software is developed by the secondary development of Unigraphics (UG). The core algorithm of ray tracing is based on the optimized Non-uniform Rational B-splines(NURBS) curve-surface intersection algorithm built in UG, which results in very high accuracy of ray path tracing without meshing thus keeping the accuracy of theoriginal cavity model. It is also efficient even if work witha complex cavities because of avoiding of shieldingprocess. Both geometry modeling of cavity and its scattering simulation are into a uniform platform, which forms an easy-using integrative and universal environment for electromagnetic modeling of complex cavities.。
In this paper, the developed software for complex cavity scattering modeling has been introduced with some numerical results todemonstrate the accuracy and efficiencyKey words-electrically large complex cavit; Radar Cross Section; secondary development of UG; shooting andbouncing rays (SBR); ray-tracingI. INTRODUCTIONRadar cross section (RCS) analysis of electrically large complex cavities such as inlet or outlet, dihedral or trihedral corner reflector etc.,。