Software Engineering: Slide 1
Software Engineering: Slide 1
Software Engineering
Slide 1
What is a software?
Computer programs and associated documentation (configuration data and user training)
Software products may be developed for a particular customer or developed for a general market
Generic (shrink-wrapped) - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification
Slide 2
The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable Maintainability
Software must evolve to meet changing needs
Dependability
Software must be trustworthy
Software should not make wasteful use of system resources Software must be usable by the users for which it was designed
Efficiency
Usability
Slide 3
Portability
Should be possible to move from one environment to another
Slide 4
Existing software development methodologies were not capable of handling such large projects. Hence projects had many problems:
Over budget Late delivery Requirements not met Poor usability
Slide 5
Software engineering is an engineering discipline which is concerned with all aspects of software production (Sommerville, 2001) Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available
Slide 6
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration and deployment
Slide 7
Many software systems are part of a larger system System engineering decisions have direct impacts on software Many systems now have lots of software parts
Slide 8
A set of activities and associated results whose goal is the development or evolution of a software product Generic (general) activities in all software processes are:
Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands
Slide 9