F.C. Kohli's keynote: Creating Software Engineers: A Systemic View

advertisement
Welcome...
Creating Software Engineers - A
Systemic View
Dr. F.C. Kohli
CSEE &T 2002, Feb 27,2002
Cincinnati, USA
Agenda
•
•
•
•
The “Engineering” of Software
Core competencies for a Software Engineer
Initial Education & Continuous Learning
Systemic view of creating Software Engineers
• Knowledge Portal
• Role of Professional bodies
• Education for a taxonomy of IT careers
• Conclusions
Engineering
• Profession in which knowledge of Physical &
Natural Sciences gained by
– Study,Experience & Practice
is applied with judgement to develop ways to utilize
economically
– the materials & forces of nature
for the benefit of mankind.
….. Engineering Council for Professional Development
Why Engineering in Software Development?
• Software development involves
–
–
–
–
–
–
–
Disciplined problem solving
Analysis of problem
Product specification
Identification of Component Interfaces / Sub-assemblies
Process and Project Management Skills
Prototypes
Reuse
• As many programmers learn skills on the job, an
engineering mindset brings a process discipline
Software and Software Engineering
• Software Engineering is a systematic approach to
the development, operation, maintenance and
retirement of software [IEEE].
• Software is the modelling and implementation of the
– philosophy,
– methodology and
– knowledge
of accomplishing a task into computer codes.
5 P’s of Software Engineering
•
•
•
•
•
Product (Software)
Problem (Domain)
Process (Development Process)
Project (Project Management)
People (Team)
Dynamics of Software Development
• We need to have an integrated perspective on
software development (including both management
functions like planning, controlling and staffing, as well
as software production activities like designing,
coding, testing, etc.) [Abdel-Hamid & Madnick, 89]
• Software project management system is far more
complex conglomerate of interdependent variables
Ref. T.K. Abdel-Hamid and Stuart E. Madnick, “Lessons Learned from
Modeling of Dynamics of Software Development” Communications of
the ACM, Vol. 32, No. 12, 1989, pp.1426-1455
3 Core Competencies of a Software Engineer
• Systems Engineering
• Software Engineering
• Concurrent Engineering
Core Competencies
• Systems Engineering
– Recognize and handle complexity in consulting assignments
– Perceive systems as a network of inter related subsystems
– Probe beyond and behind the obvious during problem diagnosis /
discovery phases
– Understand the needs and constraints of all stakeholders in the
system
– Get better understanding of the domain leading to lasting solutions
rather than quick fixes
– Treat quantitative and qualitative models with equal respect
(perceptions are as important as hard data in societal applications)
– Aligning Business and Information systems architectures
Core Competencies (contd…)
• Software Engineering
– Application of scientific knowledge in the design and
construction of computer programs and the associated
documentation
• Concurrent Engineering
– involves the interaction of diverse group of individuals who
may be scattered over a wide geographic range
– takes advantage of shared information
– allows simultaneous focus on different phases of the
software development life cycle.
Software Engineering Education
• Creation of intellectual assets
– Choice of raw material
– Process of converting the raw material into usable assets
• Guarding against obsolescence
• Matching business needs and individuals’ aspirations
• Learning through experience sharing
Ability to Handle
Complexity
Growth in
Technology
S
Skills
Updation
S
Complexity in
Consulting
O
Continuing
Education
S
Induction Continuing
Education
Ability to handle
variety
S
S
Overall
Dvelopment
S
S
Productivity
Experience
Gained
S
S
Recruitment
S
S
Induction
Training
O
Need in Projects
Handling of new
Problem Domain
Growth in
Business
S
S
O
Outflow from
S
Training
TCS Induction Training Model
• Input
– Predominantly Engineers from heterogeneous disciplines
• Concepts - Skill - Attitude Triad
– Engineering Process
• Core Competencies
• Mini-case implementation
– Core fundamentals of Computer Science
– Technologies
– Life skills
• “Learning to Learn” paradigm
• Feedback & measuring effectiveness of training
SE Education - A Curriculum
• SE Module
–
–
–
–
–
–
Systems & Concurrent Engineering
Requirements Modeling
Software Design (Structured and OOAD)
Static and Dynamic Testing
Software Quality
Project (mini-case) implementation
• Computer Science foundations
– Computer Architecture / Operating Systems
– Discrete Mathematics / Data Structures and Algorithms
– DB & Network Technology
• Life Skills
– Communication / Team Work / Presentation skills
Creating Software Engineers
• Current Scenario
 IT Education
– Immature Discipline
– Non consensus on Body of Knowledge
– Delay in building infrastructure, general technical education,
quality faculty, relevant curriculum and getting accreditation
 Industry
– Manpower requirement based mainly on short-term revenue
targets
– Delays in technology absorption
– Deployment of HR with skill mismatch
Telecom
Infrastructure Accreditation
Policy
Funds
Creating
Software
Engineers - A
Systemic View
General Technical
Education
Fees
Recognition
of KP
Quality Human
Knowledge
Resources
Portals
Skill Training
IT Education Institutions
Infrastructure Quality
of
Faculty
Professional
Bodies
R&D
Outflow for
IT
Experience
Gained
Need in Industry
Technology Watch
Art & Science
of Living
Relevant
Curriculum Moving up the
Value Chain
Continuing
Education
Growth in
Process Discipline Business
Quality
Domain
Knowledge
Complexity in
Consultancy
Brand Image
General Education & IT Education - linkage
• Mindset developed in General Education has to be
ported to IT education
–
–
–
–
–
–
–
–
–
Abstraction capability
Instrumentation, Measurement & Empirical formulation
Modeling & Behavior extrapolation
Inspection & Quality Control
Elegance of Design
User friendly Interfaces
Safety considerations
Aesthetics & “Patterns”
Brevity & Clarity of communication
Knowledge Portal An Education Transversal Grid
College 1
College n
Resource
Institute
* *
Course - 2
Experts,
Mentors
Course - 1
Course
Coordinator
Knowledge Portal
• Content Authoring
– Content Creation
– Content Delivery
– Content Monitoring / Updation
• Issues
–
–
–
–
–
–
An active facilitation by experts (Hand holding)
Evaluation and Feedback
Mentoring
Industry’s experiences
Professional Body’s input
Accreditation / Recognition
Creating a Learning Environment
• Abstract Industry experience and pass it to Academia
• Right faculty at right time – through e-Learning mode
• Relevant curriculum
Knowledge Management
Role of Professional Body
• Technology watch
• Influencing Policy
• Arbiter between Academia and Industry
Role match across various Work Levels
Application Assistants
Diploma holders / Secondary / Associate
Degree holders
Entry Level Programmers
Bachelors in Arts / Science / Commerce /
Humanities / Maths
System Integrators
(Hardware / Software
Maintenance)
System Integration / Systems Training
Software Engineers
(Product Development /
Requirement Specification)
Bachelors in Engineering / Graduate in
Management
Managers / Project Leaders
Bachelors in Engineering / Graduate in
Management
Research and Education
Masters in Engineering / Ph.Ds
Conclusion
• Knowledge Portal to facilitate e-Learning &
acceptance of the e-mode of learning by all
• Professional Bodies to play a more proactive role
• Industry to abstract experiences into knowledge
capsules
• Art and Science of Living
• “Body of Knowledge in IT” relevant to different
educational streams
Thank you
Download