Why You Should Get A Certificate In Software Engineering From
Edward Colbert Director, Software Engineering Certificate Program Center for Software Engineering ecolbert@usc.edu Phone [Before 1 October 2001]: (213) 740-5703 Phone [After 1 October]: (213) 821-1240
2/11/2009 USC School of Engineering Distance Education Network, and Center for Software Engineering 1
Objective
• About USC Software Engineering Certificate Program • Benefits of program for
– You – Your company
• How to apply
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
2
Why Software Engineering Certificate Program?
• Daily growth in
– Number of software-intensive systems
– Amount of software in systems
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
3
Why Software Engineering Certificate Program?
DoD Example: Avionics Systems
Source: AFRL Dr. Janos Sztipanovits, DARPA/ITO, DoD S&T Summit 2001
Comm Radar NAV Comm Radar NAV Mission Mission
Advanced Avionics
Radar
1 GB
SYSTEM of SYSTEMS
Comm EW
•Platform Exploitation of Global Information
- Information Mining - At-A-Distance Reconfiguration •Autonomous Vehicle Emphasis - Air & Space
Integrated Avionics 100 MB
INTEGRATED SYSTEMS •Aircraft-Wide Information Integration - Sensors/Stores/ Vehicle/ Propulsion •Modular Electronics •Massive Data Bases - Terrain, Threat •Digital Sensor Processing - Sensor Fusion - Hyperspectral Imaging •Integrated Diagnostics/ System Fault Tolerance •System Data Security •Limited UAV Autonomy
Federated Avionics 1 MB
FEDERATED SUBSYSTEMS •Functionally Integrated Data Processing -NAV/WD/Air Data Sensors -Flight Control •Beam Steering Sensors •Fly By Wire •Dedicated Digital Processing •Crew-Assisted Operations - Weapon Delivery - Automated TF/TA - EW Response
•Air Crew/ Ground Crew Monitoring & Management
•Automated Functions - ATR (Multi-Sensor) - Failure Prognostics - Route/ Sensor/ Weapon/ Vehicle Coordination
Independent Avionics 64 KB
DEDICATED SUBSYSTEMS •Digital Fire Control/NAV •PT-PT Wiring •Mechanically Controlled Sensors/FLT Controls/ Displays •Crew-Dominated Operation
- Bistatic Sensing
(Air/ Space) - Threat Evasion
1958
2/11/2009
1950’s - 60’s
1970’s - 80’s
1990’s - 00’s
2000
4
USC School of Engineering Distance Education Network, and Center for Software Engineering
Why Software Engineering Certificate Program?
• Efficient development of systems that meet users’ needs requires knowledge of modern software engineering
– Methods – Tools – Techniques
USC School of Engineering Distance Education Network, and Center for Software Engineering
2/11/2009
5
Why Software Engineering Certificate Program?
• How are your software engineering skills? • What does your company want to improve…
– About your product? – About your process? – About your environment?
• What do you wish you could do better?
• What do you wish you knew?
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
6
USC Certificate In Software Engineering Will Teach You How to …
• Define complete, effective, development process suitable to your project • Define & develop your product
– or product lines
• Determine cost, schedule, & resources needed to develop your product • Select tools & techniques to use
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
7
USC Certificate In Software Engineering Will Teach You…
• Current & emerging best practices
– Risk management – Value–based development – Architecture–based development – Agile methods – Lightweight formal methods – Aspect–oriented development
• Practical application
– Focus on high–value success skills
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
8
Curriculum
CS 510, Software Management & Economics CS 591a, Software Engineering I CS 591b, Software Engineering II CS 592, Software Architecture & Object– Oriented Design • CS 594, Emerging Best Practices in Software Engineering Program can be completed in 1-3 years
Note: actual course numbers may be different from those shown here
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
• • • •
9
What You Will Learn in CS 510, Software Management & Economics
• Management of SW process
– e.g.
• Economic analysis of
– Products – Processes
• Software cost & schedule estimation • Projects & organizational planning
– Staffing – Controlling – Directing
• Evolutionary development (learn & improve as you go)
USC School of Engineering Distance Education Network, and Center for Software Engineering
2/11/2009
10
What You Will Learn in CS 591a, Software Engineering I
• Software life-cycle processes
– Evolutionary – Win-Win Spiral
• Defining
– Life-Cycle Objectives – Life-Cycle Architecture
• Planning for product
– – – – –
2/11/2009
Definition Development Test Implementation Maintenance
• Concurrent determination of system & software requirements • Analysis of team project artifacts
11
USC School of Engineering Distance Education Network, and Center for Software Engineering
What You Will Learn in CS 591b, Software Engineering II
• Software construction
– Implementation – Test – Maintenance
• • • •
2/11/2009
Software quality management Software configuration management Software transition management Analysis of team project artifacts
USC School of Engineering Distance Education Network, and Center for Software Engineering
12
What You Will Learn in CS 592, Software Architecture & Object–Oriented Design
• Concepts, principles & scope of software system architectures
– Architectural styles – Architectural languages
• Domain–specific architectures • Object–oriented architectures
– CORBA – Java Beans – COM/.Net
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
13
What You Will Learn in CS 594, Emerging Best Practices in Software Engineering
• New & innovative software engineering techniques successfully used by early adopters
– e.g.
• • • • Capability Maturity Model for Integration (CMMI) Software for distributed, web-based & mobile systems Lightweight & agile methods (+ supporting tools) Commercial-off-the-shelf (COTS) software assessment & integration approaches • Software portfolio & product-line management concepts
• When, where, how, & why to apply • Lecturers will be developers, users & early adopters of technology
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
14
Who Will You Learn From?
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
15
Faculty: Dr. Barry Boehm
• Bio
– Director, USC Center for Software Engineering – Author of Software Engineering Economics
• Seminal work on topic
• Courses
– Lead author of Software Cost Estimation
and COCOMO II
– Co-founder of Center for Empirically–Based Software Engineering (CeBASE) – Co-leader of Model–Based Software Engineering (MBASE) development team – Former Director of Defense Advanced Research Product Agency (DARPA) Information Science & Technology Office – …
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
– CS 510 Software Management & Economics – CS 591a&b, Software Engineering I & II
16
Faculty: Dr. Daniel Port
• Bio
– Research Assistant Professor of Computer Science – Principal, USC Center for SWE – Co-leader of MBASE development team – Research interests
• Value & risk based strategic development • Component/Object-oriented architecting • Causal event–based system analysis & design
• Courses
– CS 591a&b, Software Engineering I & II
– Project lead & technology trainer at NeXT Computers – Founder of 4 startup companies
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
17
Faculty: Dr. Nenad Medvidovic
• Bio
– Assistant Professor of Computer Science – Principal, USC Center for SWE – Leading researcher in
development & evolution of reliable, highly adaptable, largescale software systems
• Courses
– CS 592, Software Architecture & Object– Oriented Design
– Year 2000 National Science Foundation CAREER award recipient
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
18
Faculty: Winsor Brown
• Bio
– Assistant Director, Center for Software Engineering – Co–author of Software Cost Estimation • Courses – 25 years industrial & commercial experience in software development, – CS 591a&b, engineering & management Software Engineering – Teacher & consultant on process I & II improvement, software engineering, Fagan's inspections, results-driven evolutionary planning, relational databases, object-oriented technology, & Personal Software Process – MBASE developer – Leader of eBASE project
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
and COCOMO II
19
Faculty: Edward Colbert
• Bio
– Director, Software Engineering Certificate Program – 19 years industrial teaching & consulting on object–oriented methods, software engineering, & programming languages – Consultant on definition of Architecture Design Language (ADL) for real–time, safety–critical • systems
• Based on Unified Modeling Language (“UML”), and Honeywell’s MetaH • To be proposed as standard of Society of Automotive Engineers (SAE) • Noted for strength in real–time software development
Courses
– CS 591a&b, Software Engineering I & II – CS 592 Software Architecture & Object– Oriented Design
– Created Colbert Object–Oriented Software Development method (“OOSD”)
– MBASE developer – President, Absolute Software Co., Inc.
2/11/2009
– NASA Langley Research Center used for software engineering process manual
– CS 594,
Emerging Best Practices
20
USC School of Engineering Distance Education Network, and Center for Software Engineering
Faculty: Donald J. Reifer
• Bio
– Visiting Associate, Center for Software Engineering – 30 years experience in industry & government – Manager, DoD Software Initiatives Office of Defense Information Systems Agency (DISA) – Director, DoD Software Reuse Initiative – Chief, Ada Joint Program Office – Deputy Program Manager for Global Positioning Satellite (GPS) Project – Software Manager, Space Transportation System (Space Shuttle) – COCOMO II Developer – President of RCI – Secretary of Defense's Medal for Outstanding Public Service in 1995
• Supports Fortune 500 firms’ improving software capabilities
•
Courses – CS 594,
Emerging Best Practices
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
21
Our Strengths
• Center for Software Engineering
– Premier research & teaching center – Center for Empirically-Based Software Engineering (CeBASE)
• Program designed for off campus students working full-time
– USC Distance Education Network
• 30 years teaching professional engineers • Courses for graduatedegree credit from convenience of
• Faculty
– Leaders in
• Software Engineering • Software Engineering Management • Software Process, Methods, Tools • Software Cost Estimation • Teaching
– Your company facilities – Web
• Certificate Programs focus on high-value success skills
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
22
Key Benefits
• Learn skills that will
– Make you more effective
– Make your company more effective – Prepare you to better judge new SWE technology – Position you for lifetime leadership in software-intensive systems
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
23
What Does It Take To Get Into Program?
• Undergraduate or graduate degree from accredited university
– Minimum grade point average (GPA) of 3.0 – If degree is not in engineering, mathematics, or science
• Must present work experience to satisfy Program Director that you can successfully complete course work
• And either
– Have
• Practical experience developing software or managing software development • Working knowledge of C++, Java, or equivalent programming language
– Take CS 455x “Introduction to Programming Systems Design”
• Must pass with grade of B or better
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
24
How Do You Enroll?
• Students must be formally admitted to program
– Must submit to USC Office of Admissions
• USC graduate application form • Official academic transcripts
– If non–technical degree but believe adequate background to complete the course work successfully, also include a letter explaining
– Admission process may take several months
• May start earlier as “Limited Student”
– Receive full USC credit – Submit
• DEN enrollment form • Résumé of work experience, educational and technical background
– Program Director will review all résumés & notify all applicants whether or not they will be enrolled
USC School of Engineering Distance Education Network, and Center for Software Engineering
2/11/2009
25
For More Information
• Software Engineering Certificate Program
– http://sunset.usc.edu/SwE-Cert
• Distance Education Network
– http://den.usc.edu
• USC Office of Admissions
– http://www.usc.edu/students/admission
• Center for Software Engineering
– http://sunset.usc.edu/index.html
• Department of Computer Science
– http://www.cs.usc.edu
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
26
Next Steps
• Apply to be Limited Student in CS 510
– Résumés accepted at end of presentation – Submit DEN Enrollment form
• Apply for admission to Certificate Program
– Submit to USC Office of Admissions
• USC graduate application form • Official academic transcripts (unopened)
USC School of Engineering Distance Education Network, and Center for Software Engineering
2/11/2009
27
Learn How To Engineer Software
2/11/2009
USC School of Engineering Distance Education Network, and Center for Software Engineering
28