Software Engineering - What is it - DERS1
What is software?
A well documented program for a computer.
One use programs are not considered throughout the course
A software may be developed for a specific customer or it may be developed for a general market
What are the attributes to a good software?
Meets the needs
What is Software Engineering ?
An Engineering discipline that is created/used to create good software.
* To generate a good software
1. Need to understand the customer needs very well
2. Need to design the program by using Engineering skills so that it can meet with the needs and meet with the security standards.
3. Need to be able to systematically manage software life time.
What are the fundamental software engineering activities ?
Software Implementation and Testing
What is the difference between Software Engineering and ComputerScience ?
Computer science focuses on the theory of software, “what type of problems can be solved ?”
Software engineering focuses on the practicality of software development “How we can improve software development procedures ?”
What is the difference between software engineering and systems engineering ?
Systems engineering deals with systems (Hardware systems/Software Systems)
Software engineering deals with the software systems only.
What are the key challenges for software engineering ?
Coping with diversity
Understanding characteristics of underlying system.
Coping with the delivery times
Developing trustworthy software
What are the costs of software engineering ?
Software Engineering concerns cost-effective software development.
Everything spent from the initialization of the software till it becomes obsolete. We will come to this later !
Roughly 60% is spent for implementation and 40% is spent for testing. However for custom software evolution can exceeds development cost
What are the best software engineering techniques and methods ?
It depends on the software.
All programs should be developed and maintained using software engineering techniques and different techniques are preferable for different programs.
For example prototying is good for computer games and water-fall is good for simple calculator program.
What differences has web made to software engineering ?
Instead of installing a software we can now provide software as a service allowing us to develop highly distributed service based system.
Why Software Engineering is important ?
All the services that a modern human-being uses are software intensive. Our-society is now totally dependent on software intensive systems.
The financial system
Government cannot collect taxes without a software !
Even I cannot provide you computer based teaching methods without a software
Humanity has big problems to solve
Population is increasing
*We have limited resources
*The problem of Climate Change
All these should be addressed by software solutions.
Hence we need software engineering techniques to develop complex, big systems efficiently to keep maintaining/improving our society.
Specification is the document set by the stake-holders that describes the behavior of the software.
Deciding the behavior of the software is not easy.
*Warsaw 1993 plane accident.