CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering Badariah Solemon 2010.

Slides:



Advertisements
Similar presentations
Lecture 1: Introduction to Software Engineering CSC301 – Winter 2011
Advertisements

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.
PROJECT MANAGEMENT ETHICS
Chapter 1- Ethics Lecture 2.
Computer ScienceSoftware Engineering Slide 1 SOFTWARE ENGINEERING INTRO l Learn by doing l Two projects Galaxy Sleuth Graduate Program Application l Goals:
Introduction To Software Engineering
©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.
R&D SDM 1 Software Process Improvement Capability Maturity Models
Software Engineering Code Of Ethics And Professional Practice
Modified from Sommerville’s slidesSoftware Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering September 5, 2007.
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Software Process
Chapter 1 Introduction Yonsei University 2 nd Semester, 2014 Sanghyun Park.
What is Software Engineering?. Software engineering Multi-person construction of multi-version software (David Parnas) An engineering discipline whose.
Model-Based Process Improvement Module 2. Module Objectives This module will enable students to recall information about the history of CMMI fundamentals.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
An Introduction to Software Engineering | Website for students | VTU NOTES1.
CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering Badariah Solemon 2010.
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?
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering DeSiamore 1.
CHAPTER 1 Managing Human Resources
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Chapter 2 Process: A Generic View
1 Software Engineering, 7th edition. Chapter 1 Courtesy: ©Ian Sommerville 2004 Sep 02, 2008 Lecture # 1 An Introduction to Software Engineering.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 1 Slide 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.
Software Engineering Slide 1 An Introduction to Software Engineering.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering - I
©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.
INTRODUCTION TO SOFTWARE ENGINEERING. Objectives To introduce software engineering and to explain its importance To set out the answers to key questions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 / 31 An Introduction to Software Engineering.
1 Software Engineering, 8th edition. Chapter 1 Jan 28 th, 2009 Lecture # 1 Courtesy: ©Ian Sommerville 2006 An Introduction to Software Engineering.
1 CSC 4700 Software Engineering John Lewis These slides are based on originals provided by Ian Sommerville.
Software Engineering (CSI 321) Software Process: A Generic View 1.
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 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
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;
School of Business Administration Chap 3 Engineering of Software;
INTRODUCTION TO SOFTWARE ENGINEERING
Software Engineering An Introduction.
An Introduction to Software Engineering
An Introduction to Software Engineering
Software Engineering Introduction.
Software Engineering (CSI 321)
Chapter 38 Emerging Trends in Software Engineering
Software Process Improvement
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
An Introduction to Software Engineering
An Introduction to Software Engineering
Chapter 30 Software Process Improvement
An Introduction to Software Engineering
Chapter 31 Emerging Trends in Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
Presentation transcript:

CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering Badariah Solemon 2010

Objectives: To explain what software process improvement (SPI) is and how it can be used to improve SE practice. To describe emerging trends that are expected to have significant influence on SE practice in future. The present the ethics of software engineers. Badariah Solemon 2010

What is SPI? SPI implies that –elements of an effective software process can be defined in an effective manner; –an existing organizational approach to software development can be assessed against those elements, and –a meaningful strategy for improvement can be defined. SPI strategy transforms the existing approach to software development into something that is more focused, more repeatable, and more reliable (in terms of the quality of the product produced and the timeliness of delivery). Is not free. Thus must deliver return on investment. Badariah Solemon 2010

SPI Framework A formal approach to SPI. Assesses the “maturity” of an organization’s software process and provides a qualitative indication of a maturity level. Defines: –a set of characteristics that must be present if an effective software process is to be achieved –a method for assessing whether those characteristics are present –a mechanism for summarizing the results of any assessment, and –a strategy for assisting a software organization in implementing those process characteristics that have been found to be weak or missing. Badariah Solemon 2010

Maturity Model A maturity model is applied within the context of an SPI framework. The intent of the maturity model is to provide an overall indication of the “process maturity” exhibited by a software organization. –an indication of the quality of the software process, the degree to which practitioner’s understand and apply the process, –the general state of software engineering practice. Badariah Solemon 2010

CMMI CMMI is a five-level maturity model. Developed by Software Engineering Institute (SEI) of Carnegie Mellon University (CMU) in U.S. Is being adopted worldwide, including North America, Europe, Asia, Australia, South America, and Africa. Has two representations: 1.“continuous” model 2.“staged” model For more info, visit Badariah Solemon 2010

Other SPI Frameworks SPICE— a international initiative to support the International Standard ISO/IEC for (Software) Process Assessment [ISO08] Bootstrap—a SPI framework for small and medium sized organizations that conforms to SPICE [Boo06], PSP and TSP—individual and team specific SPI frameworks ([Hum97], [Hum00]) that focus on process in-the-small, a more rigorous approach to software development coupled with measurement TickIT—an auditing method [Tic05] that assesses an organization compliance to ISO Standard 9001:2000 Badariah Solemon 2010

Is SPI for Everyone? Can a small company initiate SPI activities and do it successfully? –Regardless of the size of the company, it’s reasonable to consider the business motivation for SPI It should come as no surprise that small organizations are more informal, apply fewer standard practices, and tend to be self- organizing. Badariah Solemon 2010

‘Soft Trends’ in SE area Connectivity and collaboration – (enabled by high bandwidth communication) has already led to a software teams that do not occupy the same physical space (telecommuting and part-time employment in a local context). Globalization –leads to a diverse workforce (in terms of language, culture, problem resolution, management philosophy, communication priorities, and person-to-person interaction). Badariah Solemon 2010

‘Soft Trends’ in SE area (cnt’d) An aging population implies that many experienced software engineers and managers will be leaving the field over the coming decade. –The SE community must respond with viable mechanisms that capture the knowledge of these aging managers and technologists Consumer spending in emerging economies will double to well over $9 trillion. [Pet06] –There is little doubt that a non-trivial percentage of this spending will be applied to products and services that have a digital component—that are software-based or software-driven. Badariah Solemon 2010

The Grand Challenge There is one trend that is undeniable—software-based systems will undoubtedly become bigger and more complex as time passes. It is the engineering of these large, complex systems, regardless of delivery platform or application domain, the poses the “grand challenge” [Bro06] for software engineers. Key approaches: –more effective distributed and collaborative software engineering philosophy –better requirements engineering (RE) approaches –a more robust approach to model-driven development, and –better software tools Badariah Solemon 2010

Trends in SE Managing complexity –Consider interface for a billion LOC system, project, people, engineering challenge and QA challenge Open world software –Concepts such as ambient intelligence, context-aware applications, and pervasive/ubiquitous computing—all focus on integrating software-based systems into an environment far broader than anything to date –software that is designed to adapt to a continually changing environment ‘by self-organizing its structure and self-adapting its behavior.” [Bar06] Badariah Solemon 2010

Trends in SE (cnt’d) Emergent requirements –As systems become more complex, requirements will emerge as developers learns more about it, the environment in which it is to reside, and the users who will interact with it. –This reality implies a number of software engineering trends. process models must be designed to embrace change and adopt agility. methods that yield engineering models (e.g., requirements and design models) must be used with caution because those models will change repeatedly as more knowledge about the system is acquired tools that support both process and methods must make adaptation and change easy. Badariah Solemon 2010

Trends in SE (cnt’d) Software building blocks –the software engineering community attempts to capture past knowledge and reuse proven solutions, but a significant percentage of the software that is built today continues to be built “from scratch.” Open source –The term open source when applied to computer software, implies that software engineering work products (models, source code, test suites) are open to the public and can be reviewed and extended (with controls) by anyone with interest and permission. Badariah Solemon 2010

Trends in SE (cnt’d) Process trends –As SPI frameworks evolve, they will emphasize “strategies that focus on goal orientation and product innovation.” [Con02] –Because software engineers have a good sense of where the process is weak, process changes should generally be driven by their needs and should start from the bottom up. –Automated software process technology (SPT) will move away from global process management (broad-based support of the entire software process) to focus on those aspects of the software process that can best benefit from automation. –Greater emphasis will be placed on the return-on-investment of SPI activities. –As time passes, the software community may come to understand that expertise in sociology and anthropology may have as much of more to do with successful SPI as other, more technical disciplines. –New modes of learning may facilitate the transition to a more effective software process. Badariah Solemon 2010

Software Engineering Ethics An ACM/IEEE-CS Joint Task Force has produced a Software Engineering Code of Ethics and Professional Practices (Version 5.1). The code [ACM98] states: –Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: Badariah Solemon 2010

Software Engineering Ethics (cnt’d) 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 interests of their client and employer consistent with the public interest. 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. 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues. 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. Badariah Solemon 2010

Ethics – On a Personal Level Never steal data for personal gain. Never distribute or sell proprietary information obtained as part of your work on a software project. Never maliciously destroy or modify another person’s programs, files, or data. Never violate the privacy of an individual, a group, or an organization. Never hack into a system for sport or profit. Never create or promulgate a computer virus or worm. Never use computing technology to facilitate discrimination or harassment. Badariah Solemon 2010

Summary In this module, you should have learned about: What software process improvement (SPI) is and how it can be used to improve SE practice. The emerging trends that are expected to have significant influence on SE practice in future. The ethics of software engineers. Badariah Solemon 2010

References Contents in the slides are adopted from the book and the slides that accompanied the book by R.S. Pressman, Software Engineering: A Practitioner’s Approach, 7th. Edition, McGraw Hill, Software Engineering Institute. Badariah Solemon 2010