Software engineering code of ethics

software engineering code of ethics and professional practice ppt and software engineering code of ethics and professional practice examples
Dr.ShaneMatts Profile Pic
Dr.ShaneMatts,United States,Teacher
Published Date:23-07-2017
Your Website URL(Optional)
Comment
Chapter 1 Introduction Chapter 1 Introduction Slide 1 Topics covered  Professional software development • What is meant by “software engineering”. • Addendum to Sommerville’s FAQs  Software engineering ethics • A brief introduction to ethical issues that affect software engineering.  Case studies • An introduction to three examples that are used in later chapters in the book. Chapter 1 Introduction Slide 2 Software engineering  The economies of ALL developed nations are dependent on software.  More and more systems are software controlled. (E.g., gas centrifuges, power grids, nuclear power plants, ballpoint pens.)  Software engineering (SE) is concerned with theories, methods and tools for professional software development.  SE expenditures represents a significant fraction of GNP in all developed countries. Chapter 1 Introduction Slide 3 Electronic Pen? The electronic pen itself looks and even feels like a regular ballpoint pen, the company says, but contains a digital sensor and image microprocessor. As you write, or follow the lines of a map with the pen, the nib automatically scans your movements in conjunction with a digital watermark at a rate of 75 snapshots per second, effectively giving the impression of scanning while you write. Software costs  Often dominate computer system costs. (The costs of software on a PC are often greater than the hardware cost.)  Software costs more to maintain than it does to develop. (For systems with a long life, maintenance costs may be several times development costs.)  SE is concerned with cost-effective software development. See Boehm, Software Engineering Economics, Prentice Hall, 1981. Chapter 1 Introduction Slide 5 Barry Boehm, Software Engineering Economics, Prentice Hall, 1981. Chapter 1 Introduction Slide 6 FAQs about software engineering  What is software?  What are the attributes of good software?  What is software engineering?  What are the fundamental software engineering process activities?  What is the difference between software engineering and computer science?  What is the difference between software engineering and system engineering? (cont’d) Chapter 1 Introduction Slide 7 FAQs about software engineering (cont’d)  What are (some of) the key challenges facing software engineering?  What are the costs of software engineering?  What are the best software engineering techniques and methods?  What differences has the web made to software engineering? Chapter 1 Introduction Slide 8 What is software?  Computer programs and associated documentation.  Software products may be developed for a particular customer or may be developed for a general market. • Generic products - developed to be sold to any customer wishing to buy them. • Specification owned by developer and change decisions made by developer • Customized products – commissioned by specific customers to meet their needs. • Specification owned by customer and change requirements identified by customer Chapter 1 Introduction Slide 9 What are the (essential) attributes (product char- acteristics) of good (professional) software?  Must deliver the required functionality and performance.  Maintainability: must be able to evolve to meet changing needs.  Dependability: must be trustworthy.  Efficiency: should not make wasteful use of system resources.  Usability: must be usable by the users for which it was designed. Chapter 1 Introduction Slide 10 What is software engineering?  SE is an engineering discipline which is concerned with all aspects of software production and maintenance... • Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints. • Not just the technical process of development. Also project management and the development of tools, methods, etc., to support development and maintenance. How old is the term “software engineering”? Chapter 1 Introduction Slide 11 What are the fundamental software engineering process activities?  Software specification: customers and engineers identify the functionality of the software that is to be produced and the constraints on its operation.  Software development: the software is designed and programmed.  Software validation: the software is checked to ensure that it is what the customer requires/needs.  Software evolution: the software is modified to reflect changing customer and market requirements. So where does software verification fit-in? Chapter 1 Introduction Slide 12 What is the difference between software engineering and computer science?  Computer science is concerned with theory and computing fundamentals.  Software engineering is concerned with the practicalities of developing, delivering, and maintaining useful software. Chapter 1 Introduction Slide 13 What is the difference between software engineering and system engineering?  (Computer-based) system engineering is concerned with all aspects of computer-based systems development, including hardware, software and process engineering. Software engineering is just part of this process...  System engineers are involved in (overall) specification, architectural design, integration, and deployment of computer-based systems. Chapter 1 Introduction Slide 14 What are (some of) the key challenges facing software engineering?  Coping with increasing diversity, demands for reduced delivery times, and developing software that is demonstrably trustworthy. Related issues: • Heterogeneity – increasingly, systems are distributed and include a mix of hardware and software. • Business and social change – there is increasing pressure for faster delivery of software. • Security and trust – as software is intertwined with all aspects of our lives, it is essential that we can trust software. Evolving corporate goals: 1980’s: improve quality 1990’s: reduce cycle time Chapter 1 Introduction Slide 15 What are the costs of software engineering? spec/design/coding  Roughly 60% are “development” costs, 40% are “testing” costs.  For most types of systems, the majority of costs are associated with changing the software after it has gone 60-90% of overall life-cycle costs is not unusual into use.  Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and reliability.  Distribution of costs depends on the development model that is used. Waterfall, XP, Cleanroom, etc. Chapter 1 Introduction Slide 16 Activity cost distribution Waterfall model 0 25 5 0 100 75 Specification Design Development Integr ation and testing Iterative development 0 25 5 0 75 1 00 Specification Iterative development Sy stem testing Component-based software engineering 0 25 5 0 1 00 75 Specification Development Integration and testing Development and evolution costs for long-lifetime systems 100 0 200 400 300 System development System evolution Chapter 1 Introduction Slide 17 Activity cost distribution (cont’d) A more specific example: Generic software developed using an incremental approach intended for several different platforms 0 25 50 100 75 Specification Development System testing Chapter 1 Introduction Slide 18 What are the best SE techniques and methods?  There is no universal set of software techniques that is applicable to all of the many different types of software systems.  The SE methods and tools used depend (among other things) on the type of application, the requirements of the customer, and the nature/ background of the development team. Chapter 1 Introduction Slide 19 (8 Examples of) Application types  Stand-alone applications that run on a local computer, such as a PC. (They include all necessary functionality and do not need to be connected to a network.)  Interactive transaction-based applications that execute on a remote computer and are accessed by users from their own PCs or terminals. (These include web applications such as e-commerce solutions.)  Embedded control systems that control and manage hardware devices. (There are probably more embedded systems than any other type.) (cont'd) Chapter 1 Introduction Slide 20

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.