05-Prof-Raghu-Reddy

advertisement
Are you a Software Engineer
OR
Is it just your Designation ?
Y. Raghu Reddy
Associate Professor
Software Engineering Research Center
IIIT Hyderabad
What are we lacking?
• India graduates nearly half million engineers every year
• Information Technology
• Information Science and Engineering
• Computer Science and Engineering
• Computer Engineering
• Other computing variants…
• Substantial numbers enter the IT workforce
• Common complaints – Not Employable
• Lack Essential skills (technical & soft)
What do these have in common?
CODE!!!
Huge complex systems!
(Quality) products ?
0.5 SLOC/min/resource * 60 min/hr * 40
hrs/wk = 1,200 SLOC/wk/resource
1,200 SLOC/wk/resource * 50 wks/year =
60,000 SLOC/year/resource
2 * 10^6 SLOC / 0.6 * 10^5
SLOC/yr/resource = ~34 Resources for the
year
Approaches to Software Quality?
• Focus on Process
• Focus on Product
• Focus on People
 Need for introducing Software Engineering as a
degree program
 Need for licensing current industry professionals
Software Engineering as a discipline
• Software Engineering IS NOT Computer Science
• Software Engineering is an ENGINEERING discipline that
specializes in the design of software
• Considering it a discipline will help in aligning it with
traditional engineering disciplines
• There are 5 things a software engineer should be good at:
Programming, Design, Process, Communication & Team
work
SE programs at undergrad level?
• The distinction between CS, SE, IT was recognized by
ACM and IEEE in late 1990s, Early 2000s
• SwECC was formed
• Led to creation on specific Software Engineering programs
• Accreditation bodies now accredit software engineering
programs
• ABET (U.S and outside)
• CSAC (Canada)
• etc.
Is it possible?
• Do we have a core body of Knowledge?
• Software Engineering Body of Knowledge (SWEBOK) 2013
• Mechanisms for assessment
• Software Engineering Competency Model (SWECOM)
• ABET accreditation (U.S body) – there are equivalent versions in
Australia, Canada, U.K.
• Nearly 22 programs in U.S are ABET accredited – student who graduate
consider themselves as “Software Engineers”
• Have seen the distinct difference
• Colorado State University (Computer Science program)
• Rochester Institute of Technology (Software Engineering program)
• IIIT Hyderabad (Computer Science and Engineering program)
SE programs
• Do CSE programs get accredited?
- By who (NBA in India, there are two by ABET but by CSA bodies)
- Do we have a body that accredits Software Engineering programs?
Simpler question: How many accredited Software
Engineering programs do we have?
“Zero”
What can we do?
• Can we change?
• Will we change?
• To start let’s recognize that there is more to software engineering
than just the designation.
• What about all those ENGINEERS who are graduating every year?
• Do we want them to be SOFTWARE ENGINEERS?
• Do we want them to be LICENSED SOFTWARE ENGINEERS?
HELLO
Are you
Licensed?
Licensing Software Engineers
• Civil Engineers, Doctors, Lawyers are licensed (Provides a
form of assurance)
• We are familiar with Vendor Certification, product certification,
process conformance (Audit).
• So why not people?
• Can we define “engineering” by what they “practice” rather
than their “title”
• A certification program to authenticate practitioners’
competency
Professional Engineers (PE)
Current Status
• CIPS Information Systems Professional (I.S.P.),
• IEEE Software Engineering Certification (CSDP or CSDA)
• Professional Software Engineer
• The Seoul Accord, Dublin Accord, Washington Accord,
Sydney accord are international accreditation agreement
for academic degrees.
What does it take to get licensed?
• Holding a bachelor's degree in software engineering from an
ABET-accredited program.
• Passing the Fundamentals of Engineering (FE) exam.
• Having applicable work experience (typically, at least four
years) under the supervision of a licensed professional
engineer (PE).
• Passing the Principles and Practices of Software Engineering
(P&P) exam
Principles of Good Design
• Divide and Conquer
• Increase cohesion (keep related stuff together)
• Decrease coupling (minimize dependencies between modules)
• Increase the level of abstraction wherever possible
• When two modules interact, create abstract interfaces so that
modules don’t have to know specific low-level details about other
modules
• Design for Quality of service (Testability, Flexibility, Modifiability, etc.)
• Design by Contract
Going forward
• There have been, will be arguments for & against licensing
software engineers…
• Canadian provinces, U.S (about 40 states)
• software engineers working on systems that affect the health, safety,
and welfare of the public as well as those offering their services
directly to the public
• With the emergence of Cyber Physical systems, there is potential for
this to expand
Thank you !!!
Acknowledgements: Philip Laplante, Joann Atlee, Fernando Naveda
Reference documents…
•
•
•
•
•
•
•
•
•
•
Software Engineering Body of Knowledge (SWEBOK) 2013
The IEEE Software Engineering Competency Model
(SWECOM) 2014
ABET Criteria for Accrediting Software Engineering Programs
ISO/IEEE Standard 12207 (software engineering processes),
ISO/IEEE Standard 15288 (systems engineering processes)
SEBoK (Systems Engineering Body of Knowledge)
GRCSE (Graduate Reference Curriculum for System
Engineering),
The Software Assurance Competency Model
GswE2009 (graduate software engineering curriculum
guidelines)
SE2004 (undergraduate software engineering curriculum
guidelines)
Download