cseb233 fundamentals of software engineering module 10: advanced topics in software engineering...

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

Upload: logan-johns

Post on 28-Dec-2015

229 views

Category:

Documents


6 download

TRANSCRIPT

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

CSEB233 Fundamentals of Software Engineering

Module 10: Advanced Topics in Software Engineering

Badariah Solemon 2010

Page 2: 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

Page 3: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 4: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 5: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 6: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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 http://www.sei.cmu.edu/cmmi/ Badariah Solemon 2010

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

Other SPI Frameworks

• SPICE— a international initiative to support the International Standard ISO/IEC 15504 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

Page 8: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 9: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 10: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 11: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 12: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 13: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 14: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 15: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 16: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 17: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 18: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 19: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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

Page 20: CSEB233 Fundamentals of Software Engineering Module 10: Advanced Topics in Software Engineering 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, 2009.

• Software Engineering Institute. http://www.sei.cmu.edu/cmmi/

Badariah Solemon 2010