Development and maintenance of reliable software with minimum cost and effort
What does it take to develop a sofware product and ship it out of the door to a customer ?
Project Management and Development Practice
On demand or Just in time software system
Bug-free software
Waterfall Model
Spiral Model
Rapid prototyping
Very high-level language
Reusability
Transformation paradigm
IBM Cleanroom Method
No software development follow explicitly any of the paradigms and the models are conceptual only.
Keep It Simple Students (Keep It Simple Sir)
Powerful ideas are usually simple
Complex techniques usually failed, too much overhead, staffs resist
This is the traditional model, which most of the business used over the years.
Requirement analysis and specifications
Design
Architecture design
Module design
Coding
Testing
Maintenance and evolution
Transaction-based Programming
Structured Programming, Structured Analysis
Code Generation: WinObj, NetObj, Stored Procedure generation
4th Generation Languages, SQL Windows, PowerBuilder?
Knowledge-Based Systems, PROLOG, GUI, Programming Environments
Porting/Hacking, Micro-management of development cycle (tail-end, front-end), DCG, Software Inspections, Super programmer, talents
Object-Oriented Analysis, Design, Programming, Testing and Maintenance, Framework, and Software Reusability.
Processes, Testing (Unit Test, Component Test, System Test, Product Level Test, Stress Test, Performance Test, Regression Test, etc)
Program Verification, Formal Methods.
Java, CORBA, Internet, Intranet
Component Engineering, Software Architecture, Software Reusability
Software inspection
Data abstraction
Software development and maintenance processes
Configuration control (CMVC)
Testing Cycle - End Product is what the customer see ...
You must give reasons in this class
The goal is always
minimize cost
minimize effort
maximize quality
Must be simple (to learn and to use) but effective
Learn to trend, technologies available, model, principle and implementation experience
All materials are from work experience, software engineering books and ideas & notes from my advisor in University of Minnesota