Welcome... Creating Software Engineers - A Systemic View Dr. F.C. Kohli CSEE &T 2002, Feb 27,2002...

25
Welcome...

Transcript of Welcome... Creating Software Engineers - A Systemic View Dr. F.C. Kohli CSEE &T 2002, Feb 27,2002...

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 naturefor 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 variablesRef. 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

Induction - Continuing Education

Growth inTechnology

Complexity inConsulting

ContinuingEducation

SkillsUpdation

Ability to HandleComplexity

O S

S

S

S

ExperienceGained

Handling of newProblem Domain

Grow th inBus ines s

S

S

S

Need in Projects

S

Recruitment

InductionTraining

Outflow fromTraining

OverallDvelopment

Ability to handlevariety

Productivity

S

S

S

O

S

S

S

O

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

Creating Software Engineers - A Systemic View

Policy

ProfessionalBodies

Fees

Funds

Infrastructure

General TechnicalEducation

IT Education

TelecomInfrastructure Accreditation

KnowledgePortals

Recognitionof KP

Skill TrainingInstitutions

Qualityof

Faculty

Outflow forIT

Need in Industry

R&D

Growth inBusiness

ExperienceGained

RelevantCurriculum

Technology Watch

Quality HumanResources

Art & Scienceof Living

Complexity inConsultancy

Moving up theValue Chain

Brand Image

DomainKnowledge

Process Discipline

Quality

ContinuingEducation

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

Experts,Mentors

College 1 College nResource Institute

* *

CourseCoordinator

Course - 1

Course - 2

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 LevelsApplication 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