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

Slides:



Advertisements
Similar presentations
STANDARDS DEVELOPMENT ANTIGUA & BARBUDA BUREAU OF STANDARDS.
Advertisements

In Europe, When you ask the VET stakeholders : What does Quality Assurance mean for VET system? You can get the following answer: Quality is not an absolute.
Documentation 1 Comprehending the present – Investing in the future.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
1 Certification Chapter 14, Storey. 2 Topics  What is certification?  Various forms of certification  The process of system certification (the planning.
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
W3C - The World Wide Web Consortium Sam Rola Mitchell Smith Claire Stewart May 30 th 2007 Sam Rola Mitchell Smith Claire Stewart May 30 th 2007.
ICS 463, Intro to Human Computer Interaction Design: 6 (Practice). Guidelines and Metrics Chapters
4. Interaction Design Overview 4.1. Ergonomics 4.2. Designing complex interactive systems Situated design Collaborative design: a multidisciplinary.
© 2006 IBM Corporation Introduction to z/OS Security Lesson 9: Standards and Policies.
Data Representation Kieran Mathieson. Outline Digital constraints Data types Integer Real Character Boolean Memory address.
Standards. CS351 - Software Engineering (AY2004)2 I think there is a bug in my code… func GreenEggsNHam(Not SamIAm, Green EggsNHam) foreach Green TryThem.
Software Process and Product Metrics
Chapter 24 - Quality Management
Management of the Internet
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
CS 4310: Software Engineering
Process: A Generic View
1.7 ICT and the Professional In this section you must be able to: Recall the personal qualities and general characteristics necessary for a person to work.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
Managing Software Quality
1 Standards CIS*2450 Professional Aspects of Software Development.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
SEMINAR ON :. ORGANISATION Organizations are formal social units devoted to attainment of specific goals. Organizations use certain resources to produce.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
OHT 23.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The benefits of use of standards The organizations involved in standards.
GCSE OCR 3 A451 Computing Professional standards
Standards and innovation What is a standard? How do standards promote innovation? What is the role of governments and the UN?
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
This chapter is extracted from Sommerville’s slides. Text book chapter
INTRODUCTION. A Communications Model Source –generates data to be transmitted Transmitter –Converts data into transmittable signals Transmission System.
Technical Education Click here to move on Index H.323 Related Standards Lesson 4.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering. Introduction Objective To familiarize students to the fundamental concepts, techniques, processes, methods and tools of Software.
Quality Management Managing the quality of the software process and products.
Challenges for consumer rights in a cloud computing powered world and ISO/IEC Project developing a framework standard for service level agreements.
Chapter 8 Configuring and Managing Shared Folder Security.
Systems Development Life Cycle
ISO. What is a standard? Standards are written guidelines which help to do things, or make things, more efficiently or more safely. Standards are written.
Software Quality Assurance. Software Quality Software quality is defined as the quality that ensures customer satisfaction by offering all the customer.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
SE513 Software Quality Assurance Lecture12: Software Reliability and Quality Management Standards.
Lesson Objectives To understand why computer systems must be reliable To investigate the consequences of an unreliable system.
Information Security tools for records managers Frank Rankin.
Dr. Trevor Smith Chair ISO/TC 176 Quality Management & Quality Assurance Worldwide Quality Director Global Manufacturing & Logistics Eastman Kodak Company.
Software Engineering Process - II 7.1 Unit 7: Quality Management Software Engineering Process - II.
1 Handbook on Population and Housing Census Editing Department of Economic and Social Development United Nations Statistics Division Studies in Methods,
ISO17799 / BS ISO / BS Introduction Information security has always been a major challenge to most organizations. Computer infections.
BSI Standardisation Efforts in RAS Stephen Cameron Chair, BSI AMT/2 Committee on Robotics University of Oxford JWG5: MedicalWG2: Personal careWG3: Industrial.
Standards and Standardization.
Software Quality Control and Quality Assurance: Introduction
Chapter 1- Introduction
Environmental issues and the importance of standards
ISO/IEC JTC 1/SC 7 Working Group 42 - Architecture Johan Bendz
Writing Requirements Lecture # 23.
Quality Management chapter 27.
12207.
ارائه كننده: شاهين انتصاري
نظام إدارة الجودة - المتطلبات
Chapter 13 Quality Management
Introduction To software engineering
Coding Standards Or How to Pound all of your odd-shaped programmers into a one size fits all hole.
Module 1: Introduction Data Communication Networks
Software Verification and Validation
FSSC 22000: Food Safety System
Presentation transcript:

Standards

CS351 - Software Engineering (AY2004)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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)Slide 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.