Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Software Engineering
The establishment and use of sound engineering principles in order to obtain economically, software that is reliable and works efficiently on real machines
Software Definition
Definitions of Software on the Web: A computer program, which provides the instructions which enable the computer hardware to work. System software, such as Windows or MacOS, operate the machine itself, and applications software, such as spreadsheet or word processing programs, provide specific functionality. www.getnetwise.org/glossary.php Computer programs; instructions that make hardware work. Two main types of software are system software (operating systems), which control the workings of the computer, and applications, such as word processing programs, spreadsheets, and databases. www.microsoft.com/office/newtosite/glossary.asp
Software is intangible
Hard to understand development effort
Types of Software...
Custom
For a specific customer
Generic
Sold on open market Often called
COTS (Commercial Off The Shelf) Shrink-wrapped
Embedded
Built into hardware Hard to change
Types of Software
Differences among custom, generic and embedded software
Number of copies in use Total processing power devoted to running this type of software Worldwide annual development effort Custom low low Generic medium high Embedded high medium
high
medium
low
Types of Software
Real time software
E.g. control and monitoring systems Must react immediately Safety often a concern
What is SE?
Solving customers problems
This is the goal of software engineering Sometimes the solution is to buy, not build Adding unnecessary features does not help solve the problem Software engineers must communicate effectively to identify and understand the problem
What is SE?
Large, high quality software systems
Software engineering techniques are needed because large systems cannot be completely understood by one person Teamwork and co-ordination are required Key challenge: Dividing up the work and ensuring that the parts of the system work properly together The end-product that is produced must be of sufficient quality
Software costs
Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs Software engineering is concerned with costeffective software development
2. Customers
Those who pay for the software
Software Quality...
Usability
Users can learn it and fast and get their job done easily
Efficiency
It doesnt waste resources such as CPU time and memory
Reliability
It does what it is required to do without failing
Maintainability
It can be easily changed
Reusability
Its parts can be used in other projects, so reprogramming is not needed
Customer: solves problems at an acceptable cost in terms of money paid and resources used
Software Quality...
User: easy to learn; efficient to use; helps get work done
QUALITY SOFTWARE Developer: easy to design; easy to maintain; easy to reuse its parts Development manager: sells more and pleases customers while costing less to develop and maintain
Software Quality
The different qualities can conflict
Increasing efficiency can reduce maintainability or reusability Increasing usability can reduce efficiency
Costs tend to rise exponentially if very high levels of any one attribute are required
Cost
Efficiency costs
Ef ficiency
The END
Zainudin Johari
Senior Lecturer Unity
B Sc. (Hons) Computer Science, UPM M Sc. Computer Science (Information Systems) UPM