Chapter 4 Application Software Readings: 4.1 Software Basics 4.2 Using Software Systems 4.3 Batch Script Files 4.4 Databases 4.5 Software Engineering Assessments: Exercise 4 1 Yun Zhang 4.1 Software Basics • Exactly what is software? Software consists of computer programs, support modules, and data modules that work together to provide a computer with the instructions and data necessary for carrying out a specific type of task, such as document production, video editing, or Web browsing. 2 Yun Zhang • When you purchase a piece of software, you own the physical medium on which it is distributed, typically a diskette or CD. However, the software itself is owned by the author or copyright holder, and what you may legally do with it is determined by the license that was granted at the time of purchase. 3 Yun Zhang 4.2 Using Software Systems • Software systems usually provide input and control methods that can help users accomplish their tasks quickly and efficiently. 4.2.1 Lab: DOS Commands DIR , TYPE , TREE , EXIT …… path : \windows\system32 4 Yun Zhang 4.2 Using Software Systems • 4.2.2 Lab: Macros – 宏定义与宏操作(例:WORD中定义宏和运行宏) – 利用简单的语法,把常用的动作写成宏,当在工 作时,就可以直接利用事先编好的宏自动运行, 去完成某项特定的任务,而不必再重复相同的动 作 – 宏病毒:某种特殊功能的宏,感染WORD的通用 模板,使其带有某种自动功能,从而可能具有某 种破坏能力 5 Yun Zhang – It can reduce the amount of time required to create a document. – It can reduce the chance of entering erroneous data. – It can simplify a complicated set of interactions, so that other people can perform the operation without understanding all of the details involved with the application interface. You can even place the name of the macro on the application's menu or toolbar, as if you have created a function that was not provided by the application's developers 6 Yun Zhang 4.2 Using Software Systems • 4.2.3 Lab: Embedding Application Objects – Object Linking and Embedding (OLE) is a facility provided by more sophisticated applications, and it requires operating system support. The OLE facility allows data (typically graphics or spreadsheets) that has been created by any of a number of different applications to be combined into a single document file. 7 Yun Zhang 4.3 Batch Script Files • 4.3.1 Advanced Command-Line Functions • DOS Command Syntax • Review of File System Commands • Wildcard Characters • Redirection and Piping 8 Yun Zhang DOS Command Syntax • Each line begins with a command name or program name. • After the command name may come one or more switches. – A switch is written as a slash(/斜线) followed by a letter. – Switches can also take parameters, which are separated from the switch by a colon(:冒号). • Commands can also take arguments, such as filenames or paths. 9 Yun Zhang DOS Command Syntax • The /? switch tells a command to display its Help entry. • Typing del /? on the Windows Me command line causes the following to display: 10 Yun Zhang Examples • • • • • C:\>dir C:\>dir /w C:\>dir /o:n C:\>dir c:\windows C:\>dir /? 11 Yun Zhang Review of File System Commands cd Change the working directory. md Make a new directory. rd Remove an existing empty directory. deltree Remove an existing directory and its contents. attrib Change a file's attributes copy Make a copy of a file. xcopy Make a copy of files and sub-directories. ren Rename a file within a directory. move Move a file from one drive/directory to another. del Delete files. dir List files in a directory. type Display the contents of a text file. Yun Zhang 12 Wildcard Characters • Certain commands accept a list of file names. Rather than typing in an actual list, it is often easier to use an asterisk ( * ) within a file name specification to get the command processor to generate a list of file names for us. An asterisk ( * ) acts as a wildcard character that can match any number of characters in a file name. Here are some examples of an asterisk used as a wildcard character with the dir command: 13 Yun Zhang Wildcard Characters • List only those files and folders in the root folder whose names start with "n": dir c:\n* • List only those files and folders in the root folder whose names end with "n": dir c:\*n • List only those files and folders in the root folder whose names contain an "n" anywhere: dir c:\*n * 14 Yun Zhang Wildcard Characters • List only those files in the root folder that are of type DOC: dir c:\*.doc • List all files and folders in the root folder. dir c:\* In this last example the wildcard character can be omitted; dir c:\ works just as well. 15 Yun Zhang Wildcard Characters • There is another wildcard character that is more specific—the question mark ( ? ) wildcard. The question mark wildcard represents any one character. This means that a character must exist in the spot designated by a question mark wildcard. Consider the following two commands: • del c:\*.* del c:\????????.??? 16 Yun Zhang Redirection – On a PC, the command processor coordinates with the operating system to redirect all data from the keyboard driver to the Standard Input virtual device and all data from the Standard Output virtual device to the display driver. Redirection allows the user to change this. – The left angle bracket ( < ) is used to redirect standard input, and the right angle bracket ( > ) is used to redirect standard output. 17 Yun Zhang Some examples of the use of redirection • List all files in the root folder to the printer instead of the display: dir c:\*.* >lpt: • Create a new text file called "temp.txt" containing a list of files in the root folder. (Note: Nothing will appear on the display.): dir c:\*.* >c:\temp.txt 18 Yun Zhang Some examples of the use of redirection • Run "program.exe" and have it get data from the text file INPUT.DAT rather than the keyboard: c:\program.exe <c:\input.dat • Run "program.exe", have it get data from the text file "input.dat" rather than the keyboard, and display the output on the printer: c:\program.exe <c:\input.dat >lpt: 19 Yun Zhang Some examples of the use of redirection – Another bit of syntax allows you to append output to the end of a file—or else create the file if it does not already exist – dir c:\*.* >>c:\temp.txt 20 Yun Zhang Piping • Piping is a function of the command processor that links two commands together via redirection: the output of the first command becomes the input to the second. 21 Yun Zhang Piping • To pipe data from one command to another as described above, the user separates the two commands on the command line with a vertical bar character ( | ). • Display all the options of the dir command: dir /? | more 22 Yun Zhang 4.3.2 Batch File Commands • Batch Files • Commands • Like Macros, which were discussed in 4.2.2 Lab: Macros, batch files automate tasks. 23 Yun Zhang • Review of File System Commands cd Change the working directory. md Make a new directory. rd Remove an existing empty directory. deltree Remove an existing directory and its contents. (Use rd /s in Windows NT/2000.) attrib Change a file's attributes (for example, read-only file, system file, hidden file) copy Make a copy of a file. xcopy Make a copy of files and sub-directories. ren Rename a file within a directory. move Move a file from one drive/directory to another. del Delete files. Warning: Files that are deleted in DOS or from the Command Window cannot be restored. dir List files in a directory. type Display the contents of a text file. Yun Zhang 24 4.3 Batch Script Files 4.3.2 Batch File Commands • Create a new Batch file • Commands • Rem , echo , echo. , @echo off , pause , :label , goto label , if exist filename 4.3.3 Lab: Creating a Batch File 25 Yun Zhang • Example---- swap.bat REM Here is the source to SWAP file1 file2 @ECHO OFF REM Remember that / precedes a switch. REM Use HELP DEL or DEL /? to find out about /Q DEL/Q TEMP MOVE %1 TEMP MOVE %2 %1 MOVE TEMP %2 26 Yun Zhang 4.3.2 Batch File Commands • The following is a list of command-line features commonly used in batch files: • rem remark This designates anything that follows the rem command on the line (remark in our example) as a comment. • echo message This command displays message to Standard Output. The echo command can also be used with output redirection to send a message to a file. For example, echo starting stage three. 27 Yun Zhang 4.3.2 Batch File Commands • echo. Notice the period ( . ) at the end of the echo command. This is a special variation of the echo command, which displays a blank line to Standard Output. • @echo off This stops commands in the batch file from being displayed to Standard Output. 28 Yun Zhang 4.3.2 Batch File Commands • pause This command interrupts the execution of the batch file and displays the message "Press any key to continue...." Execution resumes when a single keyboard key is pressed. • : label Any line in the batch file that starts with a colon ( : ) is considered a label 标签.Labels are used by certain flow control commands to repeat or skip over certain lines in the file. 29 Yun Zhang 4.3.2 Batch File Commands • goto label This command causes the command processor to execute the first command line after the label referenced by the command. • if exist filename command If the statement is true, then the command is executed. E.g.: if exist index.html del index.html 30 Yun Zhang 4.3.3 Lab: Creating a Batch File • Example of a Batch File • Example of a Batch File with Arguments • Try to follow each example and determine what actions are being performed by the commands in the batch file. 31 Yun Zhang Example of a Batch File • Batch file: COPYWP.BAT REM Batch file created by John Smith @ ECHO OFF ECHO Copying Word and PPT files to a floppy :LOOP ECHO Please insert a floppy into drive A: PAUSE COPY C:\data\smith\*.doc a:\ COPY C:\data\smith\*.ppt a:\ GOTO LOOP 32 Yun Zhang Example of a Batch File with Arguments • Batch file: COPYWP.BAT REM Batch file created by John Smith @ ECHO OFF ECHO Copying Word and PPT files :LOOP ECHO Please insert floppy into drive A: PAUSE COPY C:\data\%1\*.doc a:\ COPY C:\data\%1\*.ppt a:\ GOTO LOOP 33 Yun Zhang Example of a Batch File with Arguments • Batch file: COPYWP.BAT REM Batch file created by John Smith @ ECHO OFF ECHO Copying files :LOOP ECHO Please insert floppy into drive A: PAUSE COPY C:\data\%1\*.%2 a:\ GOTO LOOP 34 Yun Zhang 4.4 Databases • Databases are one of the most common business applications of computers • Example: Every company has an employee database for keeping track of its personnel, and schools have databases to keep track of their students. • Database , table , record , field , data type 35 Yun Zhang 4.4 Databases Reading Sequence: • Parsons/Oja, Database Software in Section 3C. Page 174-176 Learning Goal: Knowledge of the components of a database: fields, records, files and database management software. In Addition: After completing this reading, go to the online phone directory people.yahoo.com and look up the phone number of someone you know. Based on the listing you get back, what fields do you think are present in the database? Assessments: • Multiple-Choice Quiz 15 36 Yun Zhang Data management software • What is data management software? • Data management software helps you to store, find, organize, update, and report information. Several types of data management software exist, including file management software and database management software. 37 Yun Zhang File Management Software • File: 1. a named collection of data that is stored on some storage medium. • 2. a structured file, a collection of records, each with the same set of fields that can hold data. • Each record记录 holds data for a single entity 实体—a person, place, thing or event. A field 字段 holds one item of data relevant 相应的 to a record, contains the smallest unit of meaningful data in a data file. 38 Yun Zhang Basic Concepts • Data(数据) • Database(数据库) • DBMS(数据库管理系统) • DBS(数据库系统) 39 Yun Zhang SQL • Structured Query Language (SQL) is a popular query language used by numerous data management software packages. • SQL语言的动词 SQL功能 数据定义 数据查询 数据操纵 数据控制 动词 CREATE,DROP,ALTER SELECT INSERT,UPDATE,DELETE GRANT,REVOKE 40 Yun Zhang SQL Example [例1] 查询全体学生的学号与姓名。 SELECT Sno,Sname FROM Student; [例2] 查询全体学生的姓名、学号、所在系。 SELECT Sname,Sno,Sdept FROM Student; 41 Yun Zhang SQL Example [例3] 查询全体学生的详细记录。 SELECT Sno , Sname , Ssex , Sage , Sdept FROM Student; 或 SELECT * FROM Student; 42 Yun Zhang SQL Example [例4] 查全体学生的姓名及其出生年份。 SELECT Sname,2007-Sage FROM Student; 输出结果: Sname 2007-Sage --------- ------------李勇 1976 刘晨 1977 王名 1978 张立 1978 43 Yun Zhang 4.5 Software Engineering 4.5.1 Issues in Large-Scale Software Development • The Software Development Process 1.Define or redefine the problem. 2.Plan a solution to the problem. 3.Code the solution. 4.Evaluate and test everything. 44 Yun Zhang • In very large systems, such as the software that controls a major e-commerce Web site, there may be hundreds of people working together to create the desired software system. As the size of the development team increases, the need for a shared understanding of the goals for the system becomes increasingly important. 45 Yun Zhang • Define or Redefine the Problem – 对需求的共识 – 形成规范的文档 – 可能需要一个反复的过程 • Plan a Solution to the Problem – 列举可能的解决方案 – 设计系统方案,并进行测试验证 46 Yun Zhang • Code the Solution – Programmers code a system in the chosen language or languages – Programmer testing of solution – System acceptance • Evaluate and Test Everything – 性能评估 – 功能测试 – 如需要,重新设计与处理 47 Yun Zhang 4.5 Software Engineering 4.5.2 Open Source Model • Unless you work for Microsoft, you will not be allowed to read the source code for the Windows operating system. But, you can read the source code for the Linux operating system, make copies of it, even give it away for free. Linux is an example of an open source software project. 48 Yun Zhang • Enjoy programming and have a need for that particular piece of software, so it is in their interest to help improve it by adding new features or fixing bugs. • It is still possible to make money with open source software, by selling support services, printed manuals, or proprietary add-ons that enhance an open source product • Free Software , the software is protected by a license 49 Yun Zhang Open Source Model • Open source advocates argue that when code is available for anyone to read, "All bugs are shallow," meaning they will be tracked down quickly by somebody. • In addition, some users place a greater degree of trust in open-source systems because it is harder to hide malicious features, such as built-in security holes or mechanisms that violate privacy. 50 Yun Zhang Open Source Model • Most software today is still produced using a closed-source model. Companies must invest substantial funds to create a successful software product. Giving the code away would rob them of the chance to recoup those costs through sales. The code may also contain what a company regards as proprietary technology, or trade secrets, such as tricks for improving the performance of a database system, that it does not want to reveal to competitors. 51 Yun Zhang Open Source Model • It is still possible to make money with open source software, by selling support services, printed manuals, or proprietary add-ons that enhance an open source product. Several companies now market Linux distributions this way. Another famous open source software system is the Netscape browser. Originally developed as a closed source product, Netscape decided to turn the browser into an open source system and give it away for free. The company makes money by selling server software and other services. 52 Yun Zhang Software License • Free software自由软件 may be used for any purpose, copied, modified, and redistributed at will. In order to ensure that these freedoms are preserved in all copies and derivative versions, the software is protected by a license. A variety of free software licenses have been proposed. One is called copyleft, a pun on "copyright." – GPL license ( GNU General Public License) – BSD license ( Berkeley Software Distribution license,) • Shareware • Public Domain Software 53 Yun Zhang 4.5 Software Engineering 4.5.3 Tools for Software Creation and Management • Editors – 纯文本的编辑 – 支持对特定语言格式的识别和语法检查 • Compilers – Compilers take program source code written by people as input and produce object code suitable for machine execution – 语法错误的识别和错误报告 54 Yun Zhang • Debuggers – The most popular of debugging tools are the visual debuggers, which provide a graphical representation of the program's execution • Integrated Development Environments (IDEs) – IDEs have become increasingly popular – IDEs like Microsoft Visual Studio, IBM Visual Age, and Symantec Cafe are software suites consisting of editors, compilers, debuggers, and software engineering tools for program documentation and maintenance. 55 Yun Zhang Exercise 4 • Question 1. DOS Commands • In this section, you will interface with the operating system using DOS commands. For each of the following tasks, list the correct DOS command. Note: While it is not necessary to perform these tasks on a computer, the assignment is structured for each task to be completed in sequence; that is to say, a task may depend on the state created by previous tasks. 56 Yun Zhang • Display the syntax and switches for the command dir. • List all directories and files in C:\, pausing if the information scrolls off the display. • List all directories and files in C:\ with a three-character file name beginning with W. • List all files in C:\ whose extension contains X and sort the results by size. • List all directories and files in C:\, redirecting the output to a file named "ssd2.txt" in directory C:\. • List all directories and files in C:\, appending the output to ssd2.txt. • In directory C:\, create a subdirectory called "SSD2". • Copy ssd2.txt to directory SSD2. • Rename ssd2.txt in directory SSD2 as "ssd2.bak". • Delete ssd2.txt. • Remove directory SSD2. 57 Yun Zhang Exercise 4 • Question 2. Batch File Creation • In this section, you will interface with the operating system using DOS commands. For each of the following tasks, list the correct DOS command. Note: While it is not necessary to perform these tasks on a computer, the assignment is structured for each task to be completed in sequence; that is to say, a task may depend on the state created by previous tasks. 58 Yun Zhang Exercise 4 • Name the batch file EXDIR.BAT. • Include your name as a remark in EXDIR.BAT. • Include the creation date as a remark in EXDIR.BAT. • Include the function of EXDIR.BAT as a remark in EXDIR.BAT- redirects the output of dir C:\ to a file named by the user. • The filename provided by the user is the first argument. • 59 Yun Zhang Exercise 4 • A valid switch for the command dir is the optional second argument. • If the file named by the user already exists, EXDIR.BAT immediately generates an error message and then exits without executing dir. • The error message generated by EXDIR.BAT must display, "filename already exists, aborting EXDIR." • Please upload and submit your batch file (EXDIR.BAT) when you are done. 60 Yun Zhang Exercise 4 • • • • • Question 3. Database Specification Consider creating a database on an e-commerce Web server. The three tables in the database are Customer Information, Supplier Information, and Warehouse Information. For each table, do the following: List the fields required to capture all of the information necessary and their corresponding data types. Your answer should be in the following format: [table name] [field name]: [data type] Possible data types for the fields are Text, Numeric, Integer, Date, and Currency. Indicate which of the fields in a table is the primary key for the table. 61 Yun Zhang