Standards. CS351 - Software Engineering (AY2004)2 I think there is a bug in my code… func GreenEggsNHam(Not SamIAm, Green EggsNHam) foreach Green TryThem.

Slides:



Advertisements
Similar presentations
EECS 690 February 26. Professions Just to clear up some word confusion: In common usage, a professional is generally anyone who gets paid to do something.
Advertisements

5/5/2015Software Engineering Code of Ethics1 Software Engineering Code of Ethics and Professional Practice Dr. Bob Weber CEG 460 / 660 Wright State University.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 24.
Professionalism Professionalism takes more than knowledge
PROJECT MANAGEMENT ETHICS
Chapter 1- Ethics Lecture 2.
Ethics.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering Code Of Ethics And Professional Practice
Ethics CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute April 15, 2003.
Modified from Sommerville’s slidesSoftware Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
1 Software Testing and Quality Assurance Lecture 35 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
SE 112 Slide 1 SE 112 l
Lecture 20 Coding Standards Tools for Debugging 1.
OHT 2.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
How the New Software Engineering Code of Ethics Affects You Vol. 1, Chapter 2, pp Presented by Naiana Campos University of Central Florida – EEL.
OSE2 - 1 Introduction to Software Engineering Professional Issues SWENET OSE2 Module June 2003 Developed with support from the National Science Foundation.
Ethics Lecture Dr. Christina Howe
Chapter 1 Introduction Yonsei University 2 nd Semester, 2014 Sanghyun Park.
ACM/IEEE Software Engineering Code of Ethics and Professional Practice
CDU – School of Information Technology HIT241 Professional Practice… - Slide 1 IT Project Management ACS - Core Body of Knowledge In Australia in November.
1 Standards CIS*2450 Professional Aspects of Software Development.
What is Software Engineering?. Software engineering Multi-person construction of multi-version software (David Parnas) An engineering discipline whose.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Professional Ethics in Computing Dr. David Sinclair L253
1 An Introduction to Software Engineering. 2 Objectives l To introduce software engineering and to explain its importance l To set out the answers to.
Ch. 101 Epilogue. Ch. 102 Outline What will be the future of the field? What is the impact of SE on society? What ethical issues are raised by SE?
Professional Ethics: Should Software Engineers Adhere to a Professional Code of Conduct? Jonathan Schiff CS 301.
S OFTWARE E NGINEERING C ODE O F E THICS A ND P ROFESSIONAL P RACTICE Software Engineering Ethics and Professional Practices © 1999 by the Institute of.
CISB 412 Social and Professional Issues Professional Ethics.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
L, E & P ISSUES1 Follow up on PSP: The PSP is about QUALITY - numerous measures are used - with the obvious commitments to data collection. One of the.
1 Software Engineering, 7th edition. Chapter 1 Courtesy: ©Ian Sommerville 2004 Sep 02, 2008 Lecture # 1 An Introduction to Software Engineering.
Therac-25 Case Family vs. Programmer. People Suffered From Different Type of Bad Programming Database accuracy problems. Many people could not vote in.
Standards. CS351 - Software Engineering (AY2004)Slide 2 I think there is a bug in my code… func GreenEggsNHam(Not SamIAm, Green EggsNHam) foreach Green.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 Professional and ethical responsibility l Software engineering involves wider.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
ICS131 – Ethics 11/17/03. IEEE-CS and ACM 1.PUBLIC - Software engineers shall act consistently with the public.
INTRODUCTION TO SOFTWARE ENGINEERING. Objectives To introduce software engineering and to explain its importance To set out the answers to key questions.
ACM/IEEE SWEngineering Code of Ethics and Professional Practice Appendix A, p 467.
1 Software Engineering, 8th edition. Chapter 1 Jan 28 th, 2009 Lecture # 1 Courtesy: ©Ian Sommerville 2006 An Introduction to Software Engineering.
CSCE 240 – Intro to Software Engineering Lecture 2.
Why? Software Engineers don’t communicate very well…
CS 360 Lecture 20.  The software industry needs to take more responsibility for its products  Products are sold or licensed with no guarantees about.
1 CSC 4700 Software Engineering John Lewis These slides are based on originals provided by Ian Sommerville.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Ethics and Computer Science Most of the material for these lectures was taken from an EXCELLENT text on the subject: Ethics for the Information Age Michael.
IT depends on several codes of ethics 1. PUBLIC - IT engineers shall act consistently with the public interest. 2. CLIENT AND EMPLOYER - IT engineers shall.
1 A Mature Profession Of Software Engineering A Mature Profession Of Software Engineering Ye Yint Win EC Member (Myanmar Computer Scientist Association)
School of Business Administration Chap 3 Engineering of Software;
Dr. Rob Hasker Dr. Brad Dennis. Sony’s Virus  2005: Sony wanted to reduce piracy  They put an XCP program on 20 CDs including Van Zant, The Bad Plus,
School of Business Administration Chap 3 Engineering of Software;

INTRODUCTION TO SOFTWARE ENGINEERING
Software Engineering An Introduction.
Code of Ethics and Professional Practice

An Introduction to Software Engineering
Software Engineering Introduction.
ارائه كننده: شاهين انتصاري
Bill Tomlinson Art and computing Effects of computer-based art on society? (e.g. animation) Effects of participatory experiences on group dynamics.
Code of Ethics - History
Coding Standards Or How to Pound all of your odd-shaped programmers into a one size fits all hole.
An Introduction to Software Engineering
Software Engineering Code of Ethics
Lifelong Learning.
Presentation transcript:

Standards

CS351 - Software Engineering (AY2004)2 I think there is a bug in my code… func GreenEggsNHam(Not SamIAm, Green EggsNHam) foreach Green TryThem in SamIAm do EatThem(TryThem) = false NotInACarNotOnABus(EggsNHam) Func NotInACarNotOnABus(Green EggsNHam) EatThem(EggsNHam) = true NotOnAPlane(EggsNHam) foreach NotLikeThem SamIAm of EggsNHam do if not EatThem(SamIAm) then NotInACarNotOnABus(SamIAm) IDoNotLikeThem(EggsNHam)

CS351 - Software Engineering (AY2004)3 After applying a coding standard… func DepthFirstSearch(graph G, vertex v) foreach vertex w in G do Encountered(w) = false RecursiveDFS(v) Func RecursiveDFS(vertex v) Encountered(v) = true PreVisit(v) foreach neighbour w of v do if not Encountered(w) then RecursiveDFS(w) PostVisit(v)

CS351 - Software Engineering (AY2004)4 Coding standards Coding standards are guidelines for code style and documentation. They may be formal (IEEE) standards, or company specific standards. The aim is that everyone in the organization will be able to read and work on the code. Coding standards cover a wide variety of areas: –Program design –Naming conventions –Formatting conventions –Documentation –Use (or not) of language specific features

CS351 - Software Engineering (AY2004)5 Coding standards Why bother with a coding standard? –Consistency between developers –Ease of maintenance and development –Readability, usability Example should make this obvious! No standard is perfect for every application. –If you deviate from the standard for any reason, document it!

CS351 - Software Engineering (AY2004)6 Coding style There are several examples of coding styles. Often they differ from company to complany. They typically have the following in common: –Names Use full English descriptors Use mixed case to make names readable Use abbreviations sparingly and consistently Avoid long names Avid leading/trailing underscores –Documentation Document the purpose of every variable Document why something is done, not just what

CS351 - Software Engineering (AY2004)7 Coding style –Accessors Use getX(), setX() functions on all class variables. –Member function documentation What & why member function does what it does Parameters/return value How function modifies object Preconditions/postconditions Concurrency issues Restrictions –Document why the code does things as well as what it does.

CS351 - Software Engineering (AY2004)8 Rules Coding standards need not be onerous – find out what works for your organization/team and stick to it. Standardize early – the cost of retrofitting a standard is prohibitive. Encourage a culture where a standard is followed. Industry standards > organizational standards > Project standards > no standards The more commonly accepted the standard is, the easier it is for the team members to communicate. Invent standards where necessary, but do not waste time creating a standard you won’t ever use again! All languages have recommended coding standards available. It is worthwhile finding out about these industry standards. Push for organizational standards wherever possible.

CS351 - Software Engineering (AY2004)9 Standards Standards rare documented agreements containing technical specifications or other precise criteria to be used consistently as guidelines, rules, or definitions of characteristics, to ensure that materials, products, processes and services are for for their purpose. International standards are supposed to contribute to making life simpler, and to increasing reliability and effectiveness of the goods and services we use. Standards represent best, or most appropriate, practice: –They encapsulate historical knowledge often gained through trail and error. –They preserve and codify organizational knowledge and memory –They provide a framework for quality assurance. –Ensure continuity over a project’s lifecycle.

CS351 - Software Engineering (AY2004)10 Standards There are many industry standards governing all aspects of software development: –Terminology –Notation –Requirements gathering –Design –Coding –Documentation –Human computer interaction –Verification and validation –Quality assurance –Even ethics! Many jobs will require you to follow appropriate standards. Software that follows published standards is more likely eo be maintainable and marketable. There are many good ideas in the standards and you can learn from them. Even the bad ideas are good to know since you have to deal with them ;-)

CS351 - Software Engineering (AY2004)11 Professionalism Part of being a professional software developer is knowing about, and using, the appropriate standards. –This means having the ability to read, comprehend and follow specifications. You do not develop software systems in a vacuum. Other people will: –Read your code (and you will work with theirs). –Maintain your code (and you will most likely maintain someone’s code).

CS351 - Software Engineering (AY2004)12 Who writes standards? Standards are complex documents encapsulation a large body of collective wisdom. They are difficult and time consuming to write. There are national and international standards bodies to create and administer standards. –ISOInternational Organization for Standardization –SAAStandards Australia –BSIBritish Standards Institute –ANSIAmerican National Standards Institute –IEEEInstitute for Electronic and Electrical Engineers –And about 80 or so others!

CS351 - Software Engineering (AY2004)13 ISO ISO was established in Geneva in It is the head organization for all of these national standardization organizations. ISO’s work results in international agreements which are published as International Standards. –Not always as successful as you would like. Look at the differences globally in television encoding (NTSC/PAL) and mobile phone communications (GSM/CDMA) –There are also some successes – metric system of units (well almost everywhere!), international stationery sizes, programming languages, computer protocols, file formats, international standard book numbers (ISBN). Over 10,000 ISO standards have been published so far. Within ISO, ISO/IEC Joint Technical Committee 1 (JTC1) deals with information technology. (IEC = International Electrotechnical Commission)

CS351 - Software Engineering (AY2004)14 ISO standards relevant to computing ISO 646 – 7-bit ASCII with national variants ISO 8859 – several 8-bit ASCII extensions: –ISO : West European languages (Latin-1) –ISO : East European languages (Latin-2) –ISO : Latin/Cyrillic ISO 6429 – ASCII control codes ISO 2382 – Information technology vocabulary ISO 8652 – the Ada programming language ISO 9899 – the C programming language ISO 9660 – CD-ROM volume and fie structure ISO 3166 – codes for the representation of names of counties: –Defines a 2-letter, 3-letter and numeric code for every country. –US/USA/840 = United States –GB/GBR/826 = United Kingdom The 2-letter codes are well known as the internet top-level domain names.

CS351 - Software Engineering (AY2004)15 Ethics There is an IEEE/ACM standard for Software Engineering Code of Ethics and Professional Practice. It is designed to ensure honesty and integrity in the industry – to protect the software engineering and the client. It contains eight principles. –They should not be used in isolation. –They are not an excuse for errors and omissions. The work of a software engineer has the ability to have a profound impact on the lives of others. Read the handout carefully. You will be (are) expected to abide by this code of ethics – it covers practitioners, students, educators, managers, and supervisors.

CS351 - Software Engineering (AY2004)16 Ethics Principle 1: PUBLIC – Software engineers shall act consistently with the public interest. Principle 2: CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest. Principle 3: PRODUCT – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. Principle 4: JUDGMENT – Software engineers shall maintain integrity and independence in their professional judgment. Principle 5: MANAGEMENT – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

CS351 - Software Engineering (AY2004)17 Ethics Principle 6: PROFESSION – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. Principle 7: COLLEAGUES – Software engineers shall be fair to and supportive of their colleagues. Principle 8: SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.