Title: Creating Software Engineers - A Systemic View Dr. F.C. Kohli
1 Welcome...
2Creating Software Engineers - A Systemic
ViewDr. F.C. Kohli
CSEE T 2002, Feb 27,2002 Cincinnati, USA
3Agenda
- 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
4Engineering
- 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
5Why 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
6Software 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.
75 Ps of Software Engineering
- Product (Software)
- Problem (Domain)
- Process (Development Process)
- Project (Project Management)
- People (Team)
8Dynamics 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
93 Core Competencies of a Software Engineer
- Systems Engineering
- Software Engineering
- Concurrent Engineering
10Core 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
11Core 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.
12Software 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
13Induction - Continuing Education
14TCS 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
15SE 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
16Creating 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
17Creating Software Engineers - A Systemic View
18General 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
19Knowledge Portal - An Education Transversal Grid
20Knowledge Portal
- Content Authoring
- Content Creation
- Content Delivery
- Content Monitoring / Updation
- Issues
- An active facilitation by experts (Hand holding)
- Evaluation and Feedback
- Mentoring
- Industrys experiences
- Professional Bodys input
- Accreditation / Recognition
21Creating a Learning Environment
- Abstract Industry experience and pass it to
Academia - Right faculty at right time through e-Learning
mode - Relevant curriculum
Knowledge Management
22Role of Professional Body
- Technology watch
- Influencing Policy
- Arbiter between Academia and Industry
23Role 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
24Conclusion
- 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
25Thank you