Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSDP Preparation Course Module I: Business Practices and Engineering Economics.

Similar presentations


Presentation on theme: "CSDP Preparation Course Module I: Business Practices and Engineering Economics."— Presentation transcript:

1 CSDP Preparation Course Module I: Business Practices and Engineering Economics

2 Module I. Business Practices and Engineering Economics 2 Specifications The exam specific topics covered in this module are listed below, and are the basis for the outline of its content. A.Engineering Economics B.Ethics C.Professional Practice D.Standards

3 Module I. Business Practices and Engineering Economics 3 Objectives After completing this module, you should be able to… Explain the problems of developing large software-intensive systems Define the term “software crisis” Consider how economics affects software engineering Describe the need for software engineering standards Describe the elements of a profession Identify legal issues affecting software engineering List examples of unprofessional practice in software engineering

4 Module I. Business Practices and Engineering Economics 4 Organization The organization of information for each specification topic is as follows: Topic Content Slides - detail the important issues concerning each topic and support the module objectives Topic Reference Slides - detail the sources for the topical content and provides additional references for review Topic Quiz Slides - allow students to prepare for the exam

5 Module I. Business Practices and Engineering Economics 5 Introduction “The best thing about software is its flexibility: It can be programmed to do almost anything. The worst thing about software is also its flexibility: The “almost anything” characteristic has made it difficult to plan, monitor, and control software development [Royce, 1998].” In 1970, Winston Royce presented a paper titled “Managing the Development of Large Scale Software Systems” at IEEE WESCON, and it was considered a concise summary of software management philosophy at the time [WR98].

6 Module I. Business Practices and Engineering Economics 6 Introduction - 2 Increased Complexity Walker Royce (Winston’s son) indicates the primary points of this paper which describes the waterfall model of software development are: 1.Analysis and coding are the common steps to all software development 2.Complex systems require “overhead” steps - system requirements definition, software requirements definition, program design, and testing 3.The basic framework described in this waterfall model is risky and invites failure [WR98]

7 Module I. Business Practices and Engineering Economics 7 Introduction – 3 In Theory Due to the development risks discussed in point 3, five necessary improvements were originally recommended in the paper for the waterfall model approach to work. 1.Complete program design before analysis and coding begin. 2.Maintain current and complete documentation. 3.Do the job twice, if possible. 4.Plan, control, and monitor testing. 5.Involve the customer [WR98].

8 Module I. Business Practices and Engineering Economics 8 Introduction – 4 In Practice Royce summarizes the characteristics of the conventional process as applied, are not what was intended. 1.Protracted integration and late design breakage 2.Late risk resolution 3.Requirements-driven functional decomposition 4.Adversarial stakeholder relationships 5.Focus on documents and review meetings [WR98]

9 Module I. Business Practices and Engineering Economics 9 Introduction – 5 The State of Software Engineering Walker Royce summarized the conclusions made by some prominent analyses of the state of software engineering during the mid 1990’s. They are: Software development is still highly unpredictable. Management discipline is more of a discriminator in success or failure than are technology advances. The level of software scrap and rework is indicative of an immature process. As the trend of ever increasing system complexity began to overwhelm the non ideal software management practices (read the misapplied waterfall model of management), a “software crisis” has ensued.

10 Module I. Business Practices and Engineering Economics 10 Introduction – 6 The Software Crisis Original Definition A software crisis is an event that causes delay in delivering a software-intensive system due to delay in the software project schedule, causes the project to overrun its budget, or cause the delivered system to not meet its requirements Or as the term is used today, a crisis may occur when it appears that a software system cannot be delivered on time, or within budget, or meet the users’ and customer’s requirements A New Definition A software industry’s inability to deliver products fast enough to meet customer demand has been called “the software crisis.” This “crisis” is characterized by a multiyear backlog of unfulfilled software requests. [ST97]

11 Module I. Business Practices and Engineering Economics 11 Introduction – 7 Crisis Case Example: Denver’s new (1994) international airport, at twice the size of Manhattan and 10 times the breadth of Heathrow, has a complex subterranean baggage-handling system: 21 miles of steel track 4,000 independent “telecars” routing and delivering luggage between counter, gate, and claim areas of 20 different airlines A system of some 100 networked computers, 5,000 electric eyes, 400 radio receivers and 56 bar code scanners The opening of the airport was delayed over 9 months at a rate of $1.1 million a day in interest and operating costs [WG94]

12 Module I. Business Practices and Engineering Economics 12 Introduction – 8 What causes the crisis? - I Software requirements do not adequately describe the user’s needs or customer’s expectations Project planning is frequently unrealistic, incomplete or ignored Project cost and schedule estimates are woefully underestimated or established by managerial edict Software quality is difficult to specify, design, and build-to and is usually ignored [RT04, p. 2-11]

13 Module I. Business Practices and Engineering Economics 13 Introduction – 9 What causes the crisis? - II Since little visibility of progress in software development exists, that progress is generally unknown Changes in requirements are not met with appropriate changes in software plans Design is changed without changing the requirements Standards are neither documented or used [RT04, p. 2-12]

14 Module I. Business Practices and Engineering Economics 14 Introduction – 10 Software Engineering is the Solution What is software? Software -- Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Contrast with hardware. [IE610]

15 Module I. Business Practices and Engineering Economics 15 Introduction – 11 What is Engineering? Engineering is concerned with applying science and technology to develop products for use by society within the constraints of: –Time - schedule –Resources – budget, personnel, machines, facilities, etc. –Technology – platform and domain –Quality – safety, security, reliability, etc. –Business – profit, stability, and growth –Ethics – serving society Science is concerned with understanding phenomenon; Engineering is concerned with applying science [RT04, p ]

16 Module I. Business Practices and Engineering Economics 16 Introduction – 12 What is Software Engineering? The practical application of computer science, management techniques, and other skills to the design, construction, and maintenance of software and its associated documents The systematic application of methods, tools, and techniques to achieve a stated requirement or objective for a software system The application of system engineering to software development Introduces an engineering discipline to software development to solve a or reduce the problems of late delivery, cost overruns, and failure to meet the requirements A means of communicating between stakeholders [RT04, p. 2-16]

17 Module I. Business Practices and Engineering Economics 17 Introduction References [IE610] IEEE Std , Standard Glossary of Software Engineering Terminology [IS01] Sommerville, Ian, Software Engineering, 6 th Edition, Addison-Wesley, NY, 2001 [RT04] Thayer, Richard, 2004 Certified Software Development Professional (CSDP) Preparation Course, Chapter 2: Software Engineering and Society [ST97] Tockey, Steve, “A Missing Link in Software Engineering,” IEEE Software, November/December 1997 [WR98] Royce, Walker, Software Project Management: A Unified Framework, Addison-Wesley, 1998, pp [WG94] Gibbs, W. Wyatt, “Software’s Chronic Crisis,” Scientific American, September 1994

18 Module I. Business Practices and Engineering Economics 18 A. Engineering Economics Engineering Economics - I Economics is defined as the study of how people make decisions in resource-limited situations There is never enough money to cover all of the good features we would like in our software product

19 Module I. Business Practices and Engineering Economics 19 A. Engineering Economics – 2 Engineering Economics - II Some issues of software engineering economics: The outcome of a software development is not guaranteed (the cost can be wasted) Economic decisions must be made in areas of uncertainty Risk analysis and risk avoidance costs money, and may not be needed The cost effectiveness of software engineering tools and methods is largely unknown [RT02, p. 2-22]

20 Module I. Business Practices and Engineering Economics 20 A. Engineering Economics – 3 Economic Data – I Macro-economics The field of software engineering supports a commercial software sector that earns $200 billion to $240 billion in the United States every year. Software engineering drove $1 trillion of economic growth in the U.S. over the last decade.

21 Module I. Business Practices and Engineering Economics 21 A. Engineering Economics – 4 Economic Data – II Micro-economics About half of all software projects are cancelled by users who change their minds, whether or not the software engineers would have succeeded. Maintenance: Most (70% or more) software engineering effort over the total lifetime of a system goes into maintenance and upgrades. Delivery: In the course of taking a large software project from conception to end user acceptance (and actual use) the cost of developing the software will typically range from 20-30% of the total. Commercial developers write 12,000 lines of code per year. Government developers write 1,500 lines of code per year. [Wikipedia, the free encyclopedia]

22 Module I. Business Practices and Engineering Economics 22 A. Engineering Economics – 5 Economics Considerations for Software Engineering Interest – The decision to carry out a software project should be based, at least partly, on the cost of financing it Economic equivalence – The principle of economic equivalence allows different cash flow situations (and thus different software project proposals) to be converted into common terms so they may be reasonably compared and logical conclusions can be drawn about their real economic differences Inflation and deflation – The change in the purchasing power of money over time Deciding among alternatives – Engineering economics provides a set of analytical processes for identifying the most cost-effective proposal in a set of (presumably technically feasible) alternatives [RT04, p. 2-23]

23 Module I. Business Practices and Engineering Economics 23 A. Engineering Economics – 6 Additional Economic Considerations Value of assets -- What is the economic value of a software system? Evaluating replacements – What is the economic cost of a replacement for an asset? Income taxes – These are essentially the price paid for government services. An income tax is based on the net profit (revenue minus expenditures) for an enterprise Break-even and optimization – Break-even analysis can be used to choose between multiple design options when the cost of those options is a function of one or more variables Estimates, risk, and uncertainty – Because estimates are little more than educated guesses, there is always a non- zero probability that the estimates will be wrong [ST97]

24 Module I. Business Practices and Engineering Economics 24 A. Engineering Economics – 7 Other Effects on Software Engineering The cost of developing a software system The cost of software maintenance The cost of staff-months to total software costs The cost of rework The cost of risk mitigation The reduction of cost caused by improved software development processes The return on investment (ROI) for new software development methods [RT04, p. 2-25]

25 Module I. Business Practices and Engineering Economics 25 A. Engineering Economics – 8 Royce makes three key points on improving software economics: Modern software technology is enabling systems to be built with fewer human-generated source lines Modern software processes are iterative Modern software development and maintenance environments are the delivery mechanism for process automation [WR98, p. 31]

26 Module I. Business Practices and Engineering Economics 26 A. Engineering Economics – 9 The Table on the following slide lists five fundamental cost parameters that software development organizations must manage to control development costs. [WR98, p. 32]

27 Module I. Business Practices and Engineering Economics 27 A. Engineering Economics – 10 Cost Model ParametersTRENDS Size – Abstraction and component based development technologies Higher order languages, Object-orientation, Reuse, Commercial components Process – Methods and techniques Iterative development, Process maturity models, Architecture-first development Personnel – People factorsTraining and personnel skill development, Teamwork, Win-win cultures Environment – Automation technologies and tools Integrated tools, Open systems, Hardware platform performance, Automation of coding, documents, testing and analysis Quality – Performance, reliability, accuracy Hardware platform performance, Demonstration-based assessment, Statistical quality control

28 Module I. Business Practices and Engineering Economics 28 A. References [RT04] Thayer, Richard, 2004 Certified Software Development Professional (CSDP) Preparation Course, Chapter 2: Software Engineering and Society [ST97] Tockey, Steve, “A missing Link in Software Engineering,” IEEE Software, Nov/Dec 1997 [WR98] Royce, Walker, Software Project Management: A Unified Framework, Addison-Wesley, 1998, pp [Wikipedia, The Free Encyclopedia]

29 Module I. Business Practices and Engineering Economics 29 A. Quiz 1.What percentage of software programs in modern practices is attributed to component based builds versus custom builds? A.10% component-based / 90% custom B.30% component-based / 70% custom C.70% component-based / 30% custom D.90% component-based / 10% custom

30 Module I. Business Practices and Engineering Economics 30 B. Ethics Code of Ethics \ Principles - I Software engineers shall commit themselves to making the analysis, specification, design, development, testing, and maintenance of software a beneficial and respected profession [RT04, p. 2-33] In accordance with their commitment to the health, safety, and welfare of the public, software engineers shall adhere to the following Eight Principles: 1.Public – Software engineers shall act consistently with the public interest 2.Client and employer – Software engineers shall act in a manner that is in the best interest of their client and employer, and consistent with the public interest

31 Module I. Business Practices and Engineering Economics 31 B. Ethics – 2 Code of Ethics \ Principles - II 3.Product – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible 4.Judgment – Software engineers shall maintain integrity and independence in their professional judgment 5.Management – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance 6.Profession – Software engineers shall advance the integrity and reputation of the profession, consistent with the public interest

32 Module I. Business Practices and Engineering Economics 32 B. Ethics – 3 Code of Ethics \ Principles - III 7.Colleagues – Software engineers shall be fair to and supportive of their colleagues 8.Self – Software engineers shall practice in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession [IS01]

33 Module I. Business Practices and Engineering Economics 33 B. Ethics – 4 Ethics Versus the Law – I Ethics are a personal code of behavior. They represent an ideal we strive toward because we presume that to achieve ethical behavior is appropriate, honorable, and desirable both on a personal level and within the groups we belong to. Ethics can also represent an interim standard of behavior that will be replaced, to some extent, by laws when new technology comes into existence. Ethics can contrast with law. The law is a minimum standard of conduct imposed by society.

34 Module I. Business Practices and Engineering Economics 34 B. Ethics – 5 Ethics Versus the Law – II In a democratic society, the law represents the will of the majority. Violation of the law subjects the violator to punishment by the government. Ethics, on the other hand, are merely suggested, not mandated. They may be considered a maximum standard of conduct desired by society. Violation can result in a malpractice suit. [KD96]

35 Module I. Business Practices and Engineering Economics 35 B. References [IS01] Sommerville, Ian, Software Engineering, 6 th Edition, Addison-Wesley, 2001, pp [KD96] Dakin, Karl, “Are Developers Morally Challenged?”, IEEE Software, July 1996, pp [RT04] Thayer, Richard, 2004 Certified Software Development Professional (CSDP) Preparation Course, Chapter 2: Software Engineering and Society

36 Module I. Business Practices and Engineering Economics 36 B. Quiz 1. The IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practice allows you to accept a position for which you have no pertinent training or experience if: I. The extent of your limitations are fully disclosed. II. Appropriate training in the pertinent area is taken concurrently. III. The position is in a field where engineering decisions are well known. IV. No conflict of interest is present. [a] I only [b] I and II only [c] I, II, and III only [d] I, II, III, and IV

37 Module I. Business Practices and Engineering Economics 37 B. Quiz – 2 2. The most common approach to software development today according to Steve McConnell and Leonard L. Tripp is a)Waterfall approach b)Spiral approach c)Iterative approach d)Code and Fix programming - Hacking

38 Module I. Business Practices and Engineering Economics 38 B. Quiz – 3 3. A professional code of ethics actually need to address how many levels of obligation A.4 B.3 C.2 D.1

39 Module I. Business Practices and Engineering Economics 39 B. Quiz – 4 4. What is the order of the three levels of Obligation of Professional code of ethics? A.Each Profession, Professionalism, Humanity B.Professionalism, Each Profession, Humanity C.Humanity, Professionalism, Each Profession D.None of the above

40 Module I. Business Practices and Engineering Economics 40 B. Quiz – 5 5. What are the two distinct approaches to code of ethics? A.Virtue ethics and rights/obligations ethics B.Short Version and Long Version code of ethics C.Minimum detail Code approach and Detailed Code approach D.All the above

41 Module I. Business Practices and Engineering Economics 41 B. Quiz – 6 6. How many principles are there in the code of ethics? A.2 B.4 C.6 D.8

42 Module I. Business Practices and Engineering Economics 42 B. Quiz – 7 7. What is central to the code of ethics? A.Loyal to the employer B.Loyal to the profession C.Public interest D.All the above

43 Module I. Business Practices and Engineering Economics 43 C. Professional Practice Elements of a Profession Initial professional education – Generally a university education accredited by an overseeing body Skills development – Software engineers need a minimum of six years of work experience Certification – Passing a certifying exam Professional development – Ongoing professional education to maintain/improve an individual’s knowledge Professional societies – An organization of discipline oriented individuals Code of ethics – A measure to see that individual practitioners behave responsibly [McConnell and Tripp, 1999]

44 Module I. Business Practices and Engineering Economics 44 C. Professional Practice – 2 Legal Issues Copyright use and violation Software patents Confidentiality (Protection) of data Protection of intellectual properties Ownership of computer programs Ethics in competition Non-disclosure agreements Personal use of company property Vandalism, illegal hacking, and viruses [RT04, p. 2-38]

45 Module I. Business Practices and Engineering Economics 45 C. Professional Practice – 3 Have you ever… Operated a computer program without first reading the terms and conditions of the license agreements? Downloaded a computer program from a disk or the internet without verifying program ownership? Written a program that contained code created by other computer programmers without obtaining authorization? Held up delivery of code or documentation to improve your bargaining position in your employment or a contract? Rewritten someone’s utility, program, or system and claimed the end result as your own? Taken a copy of source code when you left a job? Copied a software package for your own use without paying royalties? [Dakin, 1996]

46 Module I. Business Practices and Engineering Economics 46 C. References [Dakin, 1996] Dakin, Karl, “Are Developers Morally Challenged?”, IEEE Software, July 1996, pp [McConnell and Tripp, 1999] McConnell, Steve and Tripp, Leonard, “Professional Soft2ware Engineering: Fact or Fiction?”, IEEE Software, November / December 1999, pp [RT04] Thayer, Richard, 2004 Certified Software Development Professional (CSDP) Preparation Course, Chapter 2: Software Engineering and Society

47 Module I. Business Practices and Engineering Economics 47 C. Quiz 1. What are the minimum number of years a software engineer must work at skills development before being certified via a professional certification exam? A.0 years B.2 years C.6 years D.10 years

48 Module I. Business Practices and Engineering Economics 48 D. Standards What Are They? Definition: A standard can be (1) an object or measure of comparison that defines or represents the magnitude of a unit (2) a characterization that establishes allowable tolerances or constraints for categories of items: and (3) a degree or level of required excellence or attainment. Standards are definitional in nature, established either to further understanding and interaction, or to acknowledge observed ( or desired norms) of exhibited characteristics or behavior [SESC93] Importance of Software Engineering Standards –Improving the product –Protecting the buyer –Protecting the business –Increasing Professional Discipline –Introducing Technology

49 Module I. Business Practices and Engineering Economics 49 D. Standards – 2 Roles of Software Engineering Standards Naming: A standard can provide a succinct name for a complicated concept. Best Practices: Sometimes organizations want to adopt software development practices that are agreed by the community to represent “best of breed”. Badging :Organizations need a way to assert that their institutional practices conform to a constellation of best principles and practices.[Moore95] Contractual Agreement: In a complex information technology procurement, it is helpful and efficient to decouple complex technological issues from the business aspects of the agreement.

50 Module I. Business Practices and Engineering Economics 50 D. Standards – 3 Organization Goals for Using Software Engineering Standards Improve and Evaluate Software Competency Provide Framework and Terminology for Two-Party Agreements Evaluate Products of Software Engineering Activities Assure High Integrity levels of Software

51 Module I. Business Practices and Engineering Economics 51 D. Standards – 4 Improve and Evaluate Software Competency Quality: Analyze trends in product and process quality for software organizations Customer Satisfaction: Measure the extent to which software satisfies Cycle Time and Productivity: Track progress toward goals for software cycle time and productivity improvement Process Maturity: Assess progress relative to industry standard process benchmarks Technology: Assess the application of technology within the organization

52 Module I. Business Practices and Engineering Economics 52 D. Standards – 5 Provide Framework and Terminology for Two-Party Agreements Acquisition Process: Provide the essential actions and criteria to be used by an organization in planning and executing an acquisition for software or software-related services Supply Process: Provide the essential actions and criteria to be used by an organization in supplying software or software-related services to an acquirer. Life Cycle Process: Provide the process requirements to be met during the life cycle of software or systems containing software Life Cycle Deliverables: Provide the requirements for information to be passed between the supplier and the acquirer during the performance of software life cycle processes.

53 Module I. Business Practices and Engineering Economics 53 D. Standards – 6 Evaluate Products of Software Engineering Activities External Measurements: Measurements of completed software products to evaluate the achievement of development goals Internal Measurements: Measurement of incomplete software artifacts and development processes to provide early indicators of the achievement of development goals

54 Module I. Business Practices and Engineering Economics 54 D. Standards – 7 Assure High Integrity levels of Software Planning: A framework to determine that appropriate resources and appropriate controls are provided to ensure treatment of concerns of criticality Achievement: Provisions for ensuring that critical requirements for safety and dependability are appropriately treated throughout the providing of the software service Assessment: Verifiable measurement of the extent to which criticality goals have been achieved.

55 Module I. Business Practices and Engineering Economics 55 D. References Software Engineering Standards by James W. Moore [Brobeck96] Stephen Brobeck “ Consumer Participation in standards development,” ANSI reporter, Dec 1996, pp5-6. [Jones95] Capers Jones “Legal Status of Software Engineering”, Computer VOL 28 No 5 May 1995, pp98-99 [Moore95] James W Moore and Roy Rada, “Organizational Badge Collecting,” Comm. ACM Aug 1996 pp17-21 [Peach94] Robert W. Peach, ed., The ISO 9000 handbook 2nd ed, CEEM Information Services, Fairfax, VA, [SESC93] SESC Long Range Planning Group, Master plan for Software Engineering Standards, Version 1.0, Dec 1, 1993

56 Module I. Business Practices and Engineering Economics 56 D. Quiz Which of the following layers for a set of ISO 9000 standards is considered most fundamental: Terminology, Principles, Application Guides, or Techniques? A.Terminology B.Principles C.Application Guides D.Techniques


Download ppt "CSDP Preparation Course Module I: Business Practices and Engineering Economics."

Similar presentations


Ads by Google