<ul><li>S oftware  E ngi nee ring </li></ul>Introduction
<ul><li>The economies of ALL developed nations are  dependent on software </li></ul><ul><li>More and more systems are soft...
What is software? <ul><li>Computer programs and associated documentation </li></ul><ul><li>Software products may be develo...
What is software engineering? <ul><li>an engineering discipline which is concerned with all aspects of software production...
<ul><li>Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost...
Software costs <ul><li>Software costs more to maintain than it does to develop. For systems with a long life, maintenance ...
Evolution of Software <ul><li>1   First Generation </li></ul><ul><ul><li>software an afterthought </li></ul></ul><ul><ul><...
Evolution of Software <ul><li>2 Second Generation </li></ul><ul><ul><li>Mid 1960’s – late 1970’s </li></ul></ul><ul><ul><l...
Evolution of Software <ul><li>3 </li></ul><ul><ul><li>distributed system, concurrency, high bandwidth comms, lans & wans <...
Evolution of Software <ul><li>5 </li></ul><ul><ul><li>distributed objects, enterprise computing </li></ul></ul><ul><ul><li...
Software Characteristics <ul><li>software is engineered, not manufactured </li></ul><ul><ul><li>no manufacturing phase whi...
Hardware Characteristics
Software Characteristics
Software Characteristics
FAQs about software engineering <ul><li>What is the difference between software engineering and computer science? </li></u...
FAQs about software engineering <ul><li>What is CASE (Computer-Aided Software Engineering) </li></ul><ul><li>What are the ...
What is the difference between software engineering and computer science? <ul><li>Computer science is concerned with theor...
What is the difference between software engineering and system engineering? <ul><li>System engineering is concerned with a...
What is a software process? <ul><li>A set of activities whose goal is the development or evolution of software </li></ul><...
What is a software process model? <ul><li>A simplified representation of a software process, presented from a specific per...
What are the costs of software engineering? <ul><li>Roughly 60% of costs are development costs, 40% are testing costs. For...
What are software engineering methods? <ul><li>Structured approaches to software development which include system models, ...
What is CASE (Computer-Aided Software Engineering) <ul><li>Software systems which are intended to provide automated suppor...
What are the attributes of good software? <ul><li>The software should deliver the required functionality and performance t...
Software attributes - conflicting aims
What are the key challenges facing software engineering? <ul><li>Coping with legacy systems, coping with increasing divers...
Upcoming SlideShare
Loading in …5
×

Introduction

691 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
691
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction

  1. 1. <ul><li>S oftware E ngi nee ring </li></ul>Introduction
  2. 2. <ul><li>The economies of ALL developed nations are dependent on software </li></ul><ul><li>More and more systems are software controlled </li></ul><ul><li>Software engineering is concerned with theories, methods and tools for professional software development </li></ul><ul><li>Software engineering expenditure represents a significant fraction of GNP in all developed countries </li></ul>Software engineering
  3. 3. What is software? <ul><li>Computer programs and associated documentation </li></ul><ul><li>Software products may be developed for a particular customer or may be developed for a general market </li></ul><ul><li>Software products may be </li></ul><ul><ul><li>Generic - developed to be sold to a range of different customers </li></ul></ul><ul><ul><li>Bespoke (custom) - developed for a single customer according to their specification </li></ul></ul>
  4. 4. What is software engineering? <ul><li>an engineering discipline which is concerned with all aspects of software production </li></ul><ul><li>adopts a systematic and organised approach, uses appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available </li></ul><ul><li>uses notations (sometimes called method) and processes </li></ul>
  5. 5. <ul><li>Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost </li></ul>Software costs
  6. 6. Software costs <ul><li>Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs </li></ul><ul><li>Software engineering is concerned with cost-effective software development </li></ul>
  7. 7. Evolution of Software <ul><li>1 First Generation </li></ul><ul><ul><li>software an afterthought </li></ul></ul><ul><ul><li>development unmanaged </li></ul></ul><ul><ul><li>focus on hardware </li></ul></ul><ul><ul><li>low job mobility </li></ul></ul><ul><ul><li>design implicit </li></ul></ul><ul><ul><li>product software in infancy </li></ul></ul>
  8. 8. Evolution of Software <ul><li>2 Second Generation </li></ul><ul><ul><li>Mid 1960’s – late 1970’s </li></ul></ul><ul><ul><li>Multitasking, multiuser, interactive </li></ul></ul><ul><ul><li>Interaction opened up new world of application and hardware sophistication </li></ul></ul><ul><ul><li>Real-time systems </li></ul></ul><ul><ul><li>Advance in online storage, database management systems </li></ul></ul><ul><ul><li>Software houses & product software for mainframes & mini-computers </li></ul></ul><ul><ul><li>program growing in size, software maintenance </li></ul></ul><ul><ul><li>“ personalised” nature of programs made many unmaintainable – “software crisis” </li></ul></ul>
  9. 9. Evolution of Software <ul><li>3 </li></ul><ul><ul><li>distributed system, concurrency, high bandwidth comms, lans & wans </li></ul></ul><ul><ul><li>advent of PCs </li></ul></ul><ul><li>4 </li></ul><ul><ul><li>powerful desktops </li></ul></ul><ul><ul><li>architecture changing from centralised mainframe to decentralised client-server </li></ul></ul><ul><ul><li>information superhighway </li></ul></ul><ul><ul><li>OO programming </li></ul></ul><ul><ul><li>AI & expert systems </li></ul></ul>
  10. 10. Evolution of Software <ul><li>5 </li></ul><ul><ul><li>distributed objects, enterprise computing </li></ul></ul><ul><ul><li>Corba, DCom, EJB and coming soon .NET </li></ul></ul><ul><ul><li>e-commerce and web software </li></ul></ul>
  11. 11. Software Characteristics <ul><li>software is engineered, not manufactured </li></ul><ul><ul><li>no manufacturing phase which introduces quality problems </li></ul></ul><ul><ul><li>costs concentrated in engineering </li></ul></ul><ul><li>software does not ware out </li></ul><ul><ul><li>does deteriorate </li></ul></ul><ul><ul><li>no spare parts </li></ul></ul><ul><li>most software is custom built rather than being assembled from components </li></ul>
  12. 12. Hardware Characteristics
  13. 13. Software Characteristics
  14. 14. Software Characteristics
  15. 15. FAQs about software engineering <ul><li>What is the difference between software engineering and computer science? </li></ul><ul><li>What is the difference between software engineering and system engineering? </li></ul><ul><li>What is a software process? </li></ul><ul><li>What is a software process model? </li></ul><ul><li>What are the costs of software engineering? </li></ul><ul><li>What are software engineering methods? </li></ul>
  16. 16. FAQs about software engineering <ul><li>What is CASE (Computer-Aided Software Engineering) </li></ul><ul><li>What are the attributes of good software? </li></ul><ul><li>What are the key challenges facing software engineering? </li></ul>
  17. 17. What is the difference between software engineering and computer science? <ul><li>Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software </li></ul><ul><li>Computer science theories are currently insufficient to act as a complete underpinning for software engineering </li></ul>
  18. 18. What is the difference between software engineering and system engineering? <ul><li>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 </li></ul><ul><li>System engineers are involved in system specification, architectural design, integration and deployment </li></ul>
  19. 19. What is a software process? <ul><li>A set of activities whose goal is the development or evolution of software </li></ul><ul><li>Generic activities in all software processes are: </li></ul><ul><ul><li>Specification - what the system should do and its development constraints </li></ul></ul><ul><ul><li>Development - production of the software system </li></ul></ul><ul><ul><li>Validation - checking that the software is what the customer wants </li></ul></ul><ul><ul><li>Evolution - changing the software in response to changing demands </li></ul></ul>
  20. 20. What is a software process model? <ul><li>A simplified representation of a software process, presented from a specific perspective </li></ul><ul><li>Examples of process perspectives are </li></ul><ul><ul><li>Workflow perspective - sequence of activities </li></ul></ul><ul><ul><li>Data-flow perspective - information flow </li></ul></ul><ul><ul><li>Role/action perspective - who does what </li></ul></ul><ul><li>Generic process models </li></ul><ul><ul><li>Waterfall </li></ul></ul><ul><ul><li>Evolutionary development </li></ul></ul><ul><ul><li>Formal transformation </li></ul></ul><ul><ul><li>Integration from reusable components </li></ul></ul>
  21. 21. What are the costs of software engineering? <ul><li>Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs </li></ul><ul><li>Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability </li></ul><ul><li>Distribution of costs depends on the development model that is used </li></ul>
  22. 22. What are software engineering methods? <ul><li>Structured approaches to software development which include system models, notations, rules, design advice and process guidance </li></ul><ul><li>Model descriptions - descriptions of graphical models which should be produced </li></ul><ul><li>Rules - constraints applied to system models </li></ul><ul><li>Recommendations - advice on good design practice </li></ul><ul><li>Process guidance - what activities to follow </li></ul>
  23. 23. What is CASE (Computer-Aided Software Engineering) <ul><li>Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support </li></ul><ul><li>Upper-CASE </li></ul><ul><ul><li>Tools to support the early process activities of requirements and design </li></ul></ul><ul><li>Lower-CASE </li></ul><ul><ul><li>Tools to support later activities such as programming, debugging and testing </li></ul></ul>
  24. 24. What are the attributes of good software? <ul><li>The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable </li></ul><ul><li>Maintainability </li></ul><ul><ul><li>Software must evolve to meet changing needs </li></ul></ul><ul><li>Dependability - reliable, safe, robust, secure </li></ul><ul><li>Efficiency - in use of system resources </li></ul><ul><li>Usability - must be usable by the users for which it was designed </li></ul>
  25. 25. Software attributes - conflicting aims
  26. 26. What are the key challenges facing software engineering? <ul><li>Coping with legacy systems, coping with increasing diversity and coping with demands for reduced delivery times </li></ul><ul><li>Legacy systems </li></ul><ul><ul><li>Old, valuable systems must be maintained and updated </li></ul></ul><ul><li>Heterogeneity </li></ul><ul><ul><li>Systems are distributed and include a mix of hardware and software </li></ul></ul><ul><li>Delivery </li></ul><ul><ul><li>There is increasing pressure for faster delivery of software </li></ul></ul>

×