home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / software-eng / part1 < prev    next >
Text File  |  2004-04-18  |  19KB  |  417 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news2.wam.umd.edu!nntp.abs.net!newsfeed2.telusplanet.net!newsfeed.telus.net!cyclone.bc.net!snoopy.risq.qc.ca!news.ccs.queensu.ca!cs.queensu.ca!dalamb
  2. From: dalamb@spamcop.net (David Alex Lamb)
  3. Newsgroups: comp.software-eng,comp.answers,news.answers
  4. Subject: Comp.software-eng FAQ (Part 1): questions and answers
  5. Supersedes: <questmsg_1079259302@qucis.QueensU.CA>
  6. Followup-To: comp.software-eng
  7. Date: 18 Apr 2004 09:15:03 GMT
  8. Organization: Computing and Information Science, Queen's University at Kingston, Ontario,  K7L 3N6, Canada
  9. Lines: 395
  10. Approved: news-answers-request@MIT.Edu
  11. Distribution: world
  12. Expires: 30 May 2004 09:15:02 GMT
  13. Message-ID: <questmsg_1082279702@qucis.QueensU.CA>
  14. References: <faqmsg_1082279702@qucis.QueensU.CA>
  15. Reply-To: dalamb@spamcop.net (David Alex Lamb)
  16. NNTP-Posting-Host: highnoon.cs.queensu.ca
  17. Keywords: FAQ, Software Engineering
  18. X-Disclaimer: Approval for *.answers is based on form, not content.
  19. Originator: dalamb@qucis.queensu.ca
  20. Xref: senator-bedfellow.mit.edu comp.software-eng:114389 comp.answers:56894 news.answers:270073
  21.  
  22. Last-Modified: 13 Oct 2002
  23. Archive-name: software-eng/part1
  24. URL: http://www.cs.queensu.ca/FAQs/SE/questions.html
  25.  
  26. This message gives brief answers to questions that have occurred in
  27. comp.software-eng; in many cases they are also topics many readers would like
  28. NOT to see discussed again soon.  Questions are:
  29.     What is Software Engineering?
  30.     What's a CASE Tool?
  31.     What's a 'function point'?
  32.     What's the 'spiral model'?
  33.     What is a 'specmark'?
  34.     Where can I find a public-domain tool to compute metrics?
  35.     What metrics are there for object-oriented systems?
  36.     How do I write good C style?
  37.     What is 'Hungarian Notation'?
  38.     Are lines-of-code (LOC) a useful productivity measure?
  39.     Should software professionals be licenced/certified?
  40.     How do I get in touch with the SEI?
  41.     What is the SEI maturity model?
  42.     Where can I get information on API?
  43.     What's a 'bug'?
  44.     Where can I get copies of standards??
  45.     What is 'cleanroom'?
  46.     What is the Personal Software Process?
  47.  
  48.  
  49.  
  50. ------------------------------------------------------------------------
  51. Subject: What is Software Engineering?
  52. Date: 11 Jul 2002
  53.  
  54. I'm not entirely happy with definitions, but here is one:
  55.   *  *IEEE Standard Computer Dictionary*, 610, ISBN 1-55937-079-3, 1990:
  56.      The application of a systematic, disciplined, quantifiable approach to
  57.      development, operation, and maintenance of software; that is, the
  58.      application of engineering to software.
  59.  
  60. Textbooks tend not to give definitions, but instead spend their introductory
  61. chapters explaining characteristics of the discipline.  Interesting phrases
  62. include:
  63.   *  Ian Sommerville, *Software Engineering*, 5th edition, Addison-Wesley,
  64.      1996.
  65.      The specification, development, management, and evolution of software
  66.      systems.  Not constrained by materials governed by physical laws or
  67.      manufacturing processes.  Theories, methods, and tools needed to develop
  68.      software.  Evolving models of the real world.
  69.   *  Stephen R. Schach, *Software Engineering*, 2nd Edition, Richard D.Irwin,
  70.      Inc. and Aksen Associates, 1993.
  71.      A discipline whose aim is the production of quality software, delivered
  72.      on time, within budget, and satisfying users' needs.
  73.   *  Shari Lawrence Pfleeger, *Software Engineering: the Production of Quality
  74.      Software*, 2nd Edition, Macmillan, 1991, ISBN 0-02-395115-X.
  75.      Designing and developing high-quality software.  Application of computer
  76.      science techniques to a variety of problems.  We are problem-solvers
  77.      rather that theoreticians.
  78.  
  79.  
  80. ------------------------------------------------------------------------
  81. Subject: What's a CASE Tool?
  82. Date: 24 Feb 1998
  83. Archive file: casemsg (thanks to Scott McGregor <mcgregor@netcom.com> for
  84. inspiring this question)
  85.  
  86. CASE stands for Computer Aided Software Engineering;  it can be used to mean
  87. any computer-based tool for software planning, development, and evolution.
  88. Various people regularly call the following 'CASE': Structured Analysis (SA),
  89. Structured Design (SD), Editors, Compilers, Debuggers, Edit-Compile-Debug
  90. environments, Code Generators, Documentation Generators, Configuration
  91. Management, Release Management, Project Management, Scheduling, Tracking,
  92. Requirements Tracing, Change Management (CM), Defect Tracking, Structured
  93. Discourse, Documentation editing, Collaboration tools, Access Control,
  94. Integrated Project Support Environments (IPSEs), Intertool message systems,
  95. Reverse Engineering, Metric Analyzers.
  96.  
  97.  
  98. ------------------------------------------------------------------------
  99. Subject: What's a 'function point'?
  100. Date: 24 Feb 1998
  101. Archive file: funcpoints
  102.  
  103. Function points and feature points are methods of estimating the "amount of
  104. functionality" required for a program, and are thus used to estimate project
  105. completion time.  The basic idea involves counting inputs, outputs, and other
  106. features of a description of functionality.  Bruno Peeters has collected a
  107. biblography on function points at http://www.qucis.queensu.ca/Software-
  108. Engineering/funcpoints.html.
  109.  
  110. If interested, for a fee you can join:
  111.     International Function Point Users Group
  112.     5008-28 Pine Creek Drive
  113.     Blendonview Office Park
  114.     Westerville, Ohio  43081-4899
  115.     614-895-7130
  116.     Home page
  117.     (available using the World-Wide Web via URL http://205.133.101.205/ifpug/home/docs/IFPUGhome.html)
  118.  
  119.  
  120. ------------------------------------------------------------------------
  121. Subject: What's the 'spiral model'?
  122. Date: 10 Oct 1998
  123. Archive file: spiral
  124.  
  125.  (1)   Barry Boehm, "A Spiral Model of Software Development and Enhancement",
  126.        ACM SIGSOFT Software Engineering Notes, August 1986.
  127.  (2)   Barry Boehm "A Spiral Model of Software Development and Enhancement"
  128.        IEEE Computer, vol.21, #5, May 1988, pp 61-72.
  129.  
  130. Basically, the idea is evolutionary development, using the waterfall model for
  131. each step; it's intended to help manage risks.  Don't define in detail the
  132. entire system at first.  The developers should only define the highest
  133. priority features. Define and implement those, then get feedback from
  134. users/customers (such feedback distinguishes "evolutionary" from "incremental"
  135. development).  With this knowledge, they should then go back to define and
  136. implement more features in smaller chunks.
  137.  
  138.  
  139. ------------------------------------------------------------------------
  140. Subject: What is a 'specmark'?
  141. Date: 24 Feb 1998
  142. Archive file: specmark
  143.  
  144. The SPECmark is the geometric mean of a series of benchmarks done by the SPEC
  145. group. There are a couple of suites, but in general SPECmark refers to the
  146. results of the first suite.  The suite includes FORTRAN and C codes, mostly
  147. well known codes but slightly hacked versions.
  148.     SPEC
  149.     c/o NCGA
  150.     2722 Merrilee Drive, Suite 200
  151.     Fairfax, VA 22031
  152.     Phone: (703) 698-9600
  153.     FAX:   (703) 560-2752
  154.  
  155.  
  156. ------------------------------------------------------------------------
  157. Subject: Where can I find a public-domain tool to compute metrics?
  158. Date: 11 Jul 2002
  159. Archive file: static.html
  160.  
  161. Christopher Lott has a collection of metrics tools for C programs at
  162. http://www.cs.umd.edu/users/cml/resources/cmetrics/.
  163.  
  164. Volume 20 of newsgroup comp.sources.unix contained a public-domain package
  165. called "metrics", which computes McCabe and Halstead metrics.  There are many
  166. comp.sources.unix archives around the net.
  167.  
  168.  
  169. ------------------------------------------------------------------------
  170. Subject: What metrics are there for object-oriented systems?
  171. Date: 24 Feb 1998
  172.  
  173. The Empirical Software Engineering Research Group at Bournemouth University
  174. maintains a bibliography on OO metrics at
  175. http://dec.bournemouth.ac.uk/ESERG/bibliography.html, originally maintained by
  176. Robin Whitty of South Bank University.
  177.  
  178.  
  179. ------------------------------------------------------------------------
  180. Subject: How do I write good C style?
  181. Date: 11 Jul 2002
  182.  
  183. This is answered regularly in the comp.lang.c FAQ. See Christopher Lott's list
  184. of C and C++ style guides at
  185. http://www.cs.umd.edu/users/cml/resources/cstyle/.
  186.  
  187.  
  188. ------------------------------------------------------------------------
  189. Subject: What is 'Hungarian Notation'?
  190. Date: 24 Feb 1998
  191. Archive file: hungarian
  192.  
  193. A naming convention for C code.  See Charles Simonyi and Martin Heller, "The
  194. Hungarian Revolution", BYTE, Aug. 1991 (vol. 16, no. 8).  There are other
  195. naming conventions;  see, e.g.  "A Guide to Natural Naming", Daniel Keller,
  196. ETH, Projekt-Zentrum IDA, CH-8092 Zurich, Switzerland. Published in SIGPLAN
  197. Notices, Vol. 25, No. 5, pages 95-102.
  198.  
  199.  
  200. ------------------------------------------------------------------------
  201. Subject: Are lines-of-code (LOC) a useful productivity measure?
  202. Date: 24 Feb 1998
  203. Archive file: static.html
  204.  
  205. Not unless you are very careful.  Capers Jones' book has a detailed and
  206. insightful discussion of Lines of Code, including anomalies, and shows how to
  207. use it sensibly (eg in a single job shop, with a single language, and a
  208. standard company coding style).  It is easy to cook up anomalies where LOC
  209. gives different numbers for code written in different styles, but pathological
  210. cases should get caught in code inspections.  References:
  211. -    T. Capers Jones, Programming Productivity, McGraw-Hill, New York, 1986
  212. -    Capers Jones, Applied Software Measurement: Assuring Productivity and
  213.      Quality, McGraw-Hill, Inc., 1991, 494 pages ISBN 0-07-032813-7
  214.  
  215. The appendices of the latter give rules for counting procedural source code,
  216. as well as rules for counting function points and feature points.  The
  217. following study, cited in Boehm's _S_o_f_t_w_a_r_e _E_n_g_i_n_e_e_r_i_n_g _E_c_o_n_o_m_i_c_s, claims that
  218. anomalies that seriously "fool" the LOC metric show up rarely in real code.
  219. -    R. Nelson _S_o_f_t_w_a_r_e _D_a_t_e _C_o_l_l_e_c_t_i_o_n _a_n_d _A_n_a_l_y_s_i_s _a_t _R_A_D_C, Rome Air
  220.      Development Center, Rome, NY.  1978.
  221.  
  222.  
  223. ------------------------------------------------------------------------
  224. Subject: Should software professionals be licenced/certified?
  225. Date: 24 Feb 1998
  226.  
  227. This is a very controversial and political question.  Generally, certification
  228. is something voluntary, while licencing is regulated by governments.
  229. Certification generally means some agency warrants you meet its standards;
  230. licencing generally means that to claim to practice a certain profession
  231. requires a government licence, often administered through a professional
  232. organization.  In theory both are supposed to help judge if someone is capable
  233. of doing certain jobs.
  234.  
  235. Licencing isn't currently required for computing professionals;  some people
  236. would like to see some jobs require it, as with established branches of
  237. engineering.  Others don't like government intervention, and/or believe many
  238. people who wouldn't get licenced are perfectly competent.
  239.  
  240. Computing professionals in the USA have had a certification program for years,
  241. administered by the Institute for Certification of Computer Professionals
  242. (708-299-4227), a meta-organization with representatives from ACM, IEEE-CS,
  243. ADAPSO, ICCA, IACE, AIM, DPMA, AISP, COMMON, ASM, CIPS, and AWC.  There are
  244. three certificates aimed at different broad types of practitioner, and many
  245. areas of specialization.  To keep a certificate requires at least 40 hours of
  246. continuing education each year; credit can also be obtained for self-study,
  247. teaching, publication, etc.
  248.  
  249.  
  250. ------------------------------------------------------------------------
  251. Subject: How do I get in touch with the SEI?
  252. Date: 24 Feb 1998
  253.  
  254. Try their Web server at <URL:http://www.sei.cmu.edu/>.  For general
  255. information about the SEI, contact the customer relations department of the
  256. Software Engineering Institute at:
  257.     internet:  customer-relations@sei.cmu.edu
  258.     Phone:  (412) 268-5800
  259. A subscriber service is available to U.S. mailing addresses. Subscribers
  260. receive the SEI quarterly newsletter, Bridge; invitations to SEI public
  261. events; and first notification of course offerings and new publications.  To
  262. become a subscriber, contact Customer Relations.
  263.  
  264. To order an SEI publication, contact NTIS, DTIC, or RAI directly:
  265.     National Technical Information Service (NTIS)
  266.     U.S. Department of Commerce
  267.     Springfield, VA 22161-2103
  268.     Telephone: (703) 487-4600
  269.  
  270.     Defense Technical Information Center (DTIC)
  271.     ATTN: FDRA Cameron Station
  272.     Alexandria, VA 22304-6145
  273.     Telephone: (703) 274-7633
  274.  
  275.     Research Access Inc. (RAI)
  276.     3400 Forbes Avenue
  277.     Suite 302
  278.     Pittsburgh, PA 15213
  279.     Telephone: (412) 682-6530
  280.     FAX: (412) 682-6530
  281.  
  282.  
  283. ------------------------------------------------------------------------
  284. Subject: What is the SEI maturity model?
  285. Date: 24 Feb 1998
  286. Originally-From: mcp@sei.cmu.edu (Mark Paulk)
  287. Archive file: maturity
  288.  
  289. Maturity is not an easy concept to get down to a single paragraph, but
  290. consider this.
  291.  
  292. Premise:  The quality of a software system is largely governed by the quality
  293. of the process used to develop and maintain the software.  Basics:  The first
  294. step in improving the existing situation is to get management buy-in and
  295. management action to clean up the software management processes (walk the
  296. talk, as TQMers frequently say).  Integration:  The second step is to get
  297. everyone working together as a team.  Measurement:  The third step is to
  298. establish objective ways of understanding status and predict where things are
  299. going in your process.  Continuous improvement:  Understand that this is
  300. building a foundation for continually getting better.
  301.  
  302.  
  303. ------------------------------------------------------------------------
  304. Subject: Where can I get information on API?
  305. Date: 24 Feb 1998
  306.  
  307. API stands for Application Programming Interface.  For a useful subset of
  308. standard APIs that NIST considers relevant to US Federal government needs, you
  309. can look at NIST SP 500-187 "Application Portability Profile" (available using
  310. the World-Wide Web via URL http://nemo.ncsl.nist.gov/app-ose/), or send mail
  311. to mail-server@nemo.ncsl.nist.gov with
  312.     send app-ose/app2.txt
  313. in the body, or contact Barbara Blickenstaff, 301-975-2816.  Many of the open
  314. systems APIs are being developed in the IEEE POSIX groups.  An article in the
  315. Dec. 1991 IEEE Spectrum describes these and related API standards.  IEEE
  316. standards aren't distributed electronically, but both of the documents above
  317. tell how to obtain copies.
  318.  
  319.  
  320. ------------------------------------------------------------------------
  321. Subject: What's a 'bug'?
  322. Date: 24 Feb 1998
  323.  
  324. You can take your pick:
  325.  (1)   Don't use "bug", use "fault" (an incorrect instruction or definition),
  326.        "failure" (an incorrect result), or "mistake" (a human action leading
  327.        to a failure).  Paraphrased from
  328.            IEEE Standard Computer Dictionary
  329.            Standard 610, ISBN 1-55937-079-3
  330.            Institute of Electrical and Electronic Engineers, Inc.
  331.            345 East 47th Street
  332.            New York, NY 10017-2394  USA
  333.            $49.50 (US$) for IEEE members
  334.  (2)   Beizer, in a footnote on page 33 of the second edition of _S_o_f_t_w_a_r_e
  335.        _T_e_s_t_i_n_g _T_e_c_h_n_i_q_u_e_s says (paraphrased):
  336.            I'm  sticking  with "bug" because everyone knows what it means,
  337.            there are several "standards" for other terms that  are  incon¡
  338.            sistent  with  each  other,  the OED says that the conventional
  339.            computer meaning of "bug" is  ancient,  and  short  Anglo-Saxon
  340.            words are preferable to long Norman ones.
  341.  
  342.  
  343. ------------------------------------------------------------------------
  344. Subject: Where can I get copies of standards??
  345. Date: 16 Jun 1998
  346.  
  347. ISO, ANSI, and IEEE standards are usually sold to raise some of the funds
  348. that the various national and international standards bodies (who usually
  349. own the copyright) need to keep afloat; thus they are not normally avail¡
  350. able electronically.  Also, the organizations are concerned that electron¡
  351. ic copies would make it too easy for people to disseminate doctored ver¡
  352. sions of the standards.
  353.  
  354. Some IEEE standards are available by annual electronic subscription;  see
  355. http://standards.ieee.org/catalog/olis/ (available using the World-Wide
  356. Web via URL http://standards.ieee.org/catalog/olis/)
  357.  
  358. ISO standards may be purchased from:
  359. In Canada:
  360.     Standards Council of Canada / Conseil canadien des normes
  361.     1200-45 O'Connor,
  362.     Ottawa K1P 6N7
  363.     Phone: (613) 238-3222
  364.     Fax:   (613) 995-4564
  365. On CD-ROM:
  366.     Omnicom, Inc.
  367.     115 Park St. SE
  368.     Vienna, VA 22180-4607
  369.     1-800-OMNICOM
  370.     Also available through the National Technical Information Service
  371.     (NTIS), 5284 Port Royal Rd., Springfield, VA 22161, (703)
  372.     487-4650.
  373. ANSI and ANSI equivalent ISO standards are available from
  374.     ASQC Quality Press
  375.     Customer Service Department
  376.     P.O. Box 3066
  377.     Milwaukee, WI 53201-3066
  378.     Voice: (800) 248-1946
  379.     FAX:   (414) 272-1734
  380.  
  381. For ITU (formerly CCITT) standards, see the ITU gopher server, (available us¡
  382. ing the World-Wide Web via URL gopher://info.itu.ch)or use their mail server:
  383. mail to itudoc@itu.ch with no subject and the following body:
  384.     START
  385.     HELP
  386.     END
  387. There were once some CCITT standards on-line at the University of Colorado,
  388. but the arrangement to make them available via the Internet was terminated at
  389. the end of 1991.
  390.  
  391.  
  392. ------------------------------------------------------------------------
  393. Subject: What is 'cleanroom'?
  394. Date: 24 Feb 1998
  395.  
  396. 'Cleanroom' is a software process based on mathematical verification of compo¡
  397. nents and statistical system-level testing.  Cleanroom Software Engineering,
  398. Inc. (see Web page at http://www.csn.net/~deckm/) keeps a more extensive defi¡
  399. nition at http://www.csn.net/~deckm/whatiscr.html, including a bibliography.
  400.  
  401.  
  402. ------------------------------------------------------------------------
  403. Subject: What is the Personal Software Process?
  404. Date:  3 Mar 1997
  405.  
  406. A discipline for monitoring, testing, and improving your own Software Engi¡
  407. neering work.  It's described the book *A Discipline for Software Engineering*
  408. by Watts S. Humphrey, Addison Wesley, 1995.  ISBN 0-201-54610-8.  There is al¡
  409. so a more introductory version (intended for early programming courses): Watts
  410. S. Humphrey, Introduction to the Personal Software Process (SEI Series in
  411. Software Engineering) Reading, Mass: Addison-Wesley,  1997 ISBN 0-201-54809-7.
  412. There is a mailing list; to be added, send e-mailto psp-users-
  413. request@tqc.com.au.
  414. -- 
  415. "Yo' ideas need to be thinked befo' they are say'd" - Ian Lamb, age 3.5
  416. http://www.cs.queensu.ca/~dalamb/   qucis->cs to reply (it's a long story...)
  417.