11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CASE 73Meyer, Eric A. CSS: The Definitive Guide. 3rd ed. Sebastapol, Calif.:O’Reilly, 2007.“Zen Garden: The Beauty <strong>of</strong> CSS Design.” Available online. URL:http://www.csszengarden.com. Accessed May 19, 2007.CASE (computer-aided s<strong>of</strong>tware engineering)During the late 1950s <strong>and</strong> 1960s, s<strong>of</strong>tware rapidly grew morecomplex—especially operating system s<strong>of</strong>tware <strong>and</strong> largebusiness applications. With the typical program consisting<strong>of</strong> many components being developed by different programmers,it became difficult both to see the “big picture”<strong>and</strong> to maintain consistent procedures for transferring datafrom one program module to another. As computer scientistsworked to develop sounder principles (see structuredprogramming) it also occurred to them that the power <strong>of</strong>the computer to automate procedures could be used to createtools for facilitating program design <strong>and</strong> managing theresulting complexity. CASE, or computer-aided s<strong>of</strong>twareengineering, is a catchall phrase that covers a variety <strong>of</strong> suchtools involved with all phases <strong>of</strong> development.Design ToolsThe earliest design tool was the flowchart, <strong>of</strong>ten drawnwith the aid <strong>of</strong> a template that could be used to trace thesymbols on paper (see flowchart). With its symbols forthe flow <strong>of</strong> execution through branching <strong>and</strong> looping, theflowchart provides a good tool for visualizing how a programis intended to work. However large <strong>and</strong> complex programs<strong>of</strong>ten result in a sea <strong>of</strong> flowcharts that are hard torelate to one another <strong>and</strong> to the program as a whole. Startingin the 1960s, the creation <strong>of</strong> programs for manipulatingflow symbols made it easier both to design flowcharts <strong>and</strong>to visualize them in varying levels <strong>of</strong> detail.Another early tool for program design is pseudocode, alanguage that is at a higher level <strong>of</strong> abstraction than the targetprogramming language, but that can be refined by addingdetails until the actual program source code has beenspecified (see pseudocode). This is analogous to a writeroutlining the main topics <strong>of</strong> an essay <strong>and</strong> then refiningthem into subtopics <strong>and</strong> supporting details. Attempts weremade to create a well-defined pseudocode that could beautomatically parsed <strong>and</strong> transformed into compilable languagestatements, but they met with only limited success.During the 1980s <strong>and</strong> 1990s, the graphics capabilities<strong>of</strong> desktop computers made it attractive to use a visualrather than linguistic approach to program design. Symbols(sometimes called “widgets”) represent program functionssuch as reading data from a file or creating various kinds<strong>of</strong> charts. A program can be designed by connecting thewidgets with “pipes” representing data flow <strong>and</strong> by settingvarious characteristics or properties.CASE principles can also be seen in mainstream programmingenvironments such as Micros<strong>of</strong>t’s Visual Basic<strong>and</strong> Visual C++, Borl<strong>and</strong>’s Delphi <strong>and</strong> Turbo C++, <strong>and</strong> others(see also programming environment). The designapproach begins with setting up forms <strong>and</strong> placing objects(controls) that represent both user interface items (such asmenus, lists, <strong>and</strong> text boxes) <strong>and</strong> internal processing (suchas databases <strong>and</strong> Web browsers). However these environmentsdo not in themselves provide the ability <strong>of</strong> full CASEtools to manage complex projects with many components.Analysis ToolsOnce a program has been designed <strong>and</strong> implementation isunder way, CASE tools can help the programmers maintainconsistency across their various modules. One such tool(now rather venerable) is the data dictionary, which is adatabase whose records contain information about the definition<strong>of</strong> data items <strong>and</strong> a list <strong>of</strong> program components thatuse each item (see data dictionary). When the definition<strong>of</strong> a data item is changed, the data dictionary can providea list <strong>of</strong> affected components. Database technology is alsoapplied to s<strong>of</strong>tware design in the creation <strong>of</strong> a database <strong>of</strong>objects within a particular program, which can be used toprovide more extensive information during debugging.Integration <strong>and</strong> TrendsA typical CASE environment integrates a variety <strong>of</strong> toolsto facilitate the flow <strong>of</strong> s<strong>of</strong>tware development. This processmay begin with design using visual flowcharting,Many tools are used today to aid the complex endeavor <strong>of</strong> s<strong>of</strong>twareengineering. Design tools include the traditional flowchart, pseudocode,<strong>and</strong> design specifications document. Additionally, many systemstoday use interactive, visual layout tools. During the coding<strong>and</strong> debugging phase, a data dictionary <strong>and</strong>/or class database canbe used to describe <strong>and</strong> verify relationships <strong>and</strong> characteristics <strong>of</strong>objects in the program. Once the code is “built,” a version controlsystem keeps track <strong>of</strong> what was changed, <strong>and</strong> various automaticdocumentation features can be used to obtain listings <strong>of</strong> classes,functions, <strong>and</strong> other program elements.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!