Software engineering

986 views
673 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Software engineering

  1. 1. AN INTRODUCTION TO SOFTWARE ENGINEERING
  2. 2. CUSTOMER Sponsors system development USER Uses system $$ $ Co nee , ds ob nt lig rac at tu io al n DEVELOPER Needs Software system Figure 1.7 Participants in software development. Builds system
  3. 3. SOFTWARE DEVELOPMENT STEPS System Design ANALYST DESIGNER PROGRAMMER Program Design Program Implementation TESTER Unit Testing Integration Testing System Testing TRAINER System Delivery Maintenance Figure1.11 The roles of the development team DEVELOPER ROLES Requirements Analysis and Definition
  4. 4. Object technology Desktop computing Problems with waterfall CHANGES IN SOFTWARE ENGINEERING Time to market Networking Shifts in economics User interfaces Figure1.12 The key factors that have changed software development
  5. 5. OBJECTIVES
  6. 6. SOFTWARE ENGINEERING
  7. 7. FAQS ABOUT SOFTWARE ENGINEERING
  8. 8. FAQS ABOUT SOFTWARE ENGINEERING
  9. 9. FAQS ABOUT SOFTWARE ENGINEERING
  10. 10. FAQS ABOUT SOFTWARE ENGINEERING
  11. 11. WHAT IS SOFTWARE?
  12. 12. SOFTWARE PRODUCT DEVELOPED FOR
  13. 13. TYPE OF SOFTWARE PRODUCTS
  14. 14. CREATING NEW SOFTWARE
  15. 15. VARIETY OF SOFTWARE PRODUCTS
  16. 16. VARIETY OF SOFTWARE PRODUCTS           Real time Embedded systems Data processing pensions Information systems libraries Sensors System software compilers Communications telephones Offices conferences Scientific forecasting Graphical : air traffic control : digital camera, GPS : telephone billing, : web sites, digital : weather data : operating systems, : routers, mobile : word processing, video : simulations, weather : film making, design
  17. 17. CATEGORIES OF SOFTWARE PRODUCT  Generic (e.g., Microsoft Excel)  Packages (e.g., Mathematica)  Customized versions of generic packages (e.g., UTeM's payroll system)  Bespoke (customized) (e.g., IRS internal system)  Demonstration, prototype, research, …
  18. 18. WHAT IS SOFTWARE ENGINEERING? Software engineering is an engineering discipline that is concerned with all aspects of software production.
  19. 19. WHAT IS SOFTWARE ENGINEERING? 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.
  20. 20. Computer Science Theories Customer Compute r Function s Software Engineering Tools and Techniques to Solve Problem Problem
  21. 21. SOFTWARE ENGINEERING VS COMPUTER SCIENCE? Computer Science Software Engineering Computer science is concerned with theory and fundamentals;  Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).   Software engineering is concerned with the practicalities of developing and delivering useful software.
  22. 22. SOFTWARE ENGINEERING VS SYSTEM ENGINEERING? System engineering   Concerned with all aspects of computer-based systems development including hardware, software and process engineering. System engineers are involved in system specification, architectural design, integration and deployment. Software engineering  concerned with developing the software infrastructure, control, applications and databases in the system.
  23. 23. WHAT IS A SOFTWARE PROCESS? A set of activities whose goal is the development or evolution of software.
  24. 24. WHAT IS A SOFTWARE PROCESS?
  25. 25. WHAT IS A SOFTWARE PROCESS?
  26. 26. WHAT IS A SOFTWARE PROCESS MODEL? A simplified representation of a software process, presented from a specific perspective.
  27. 27. EXAMPLE OF PERSPECTIVES
  28. 28. GENERIC PROCESS MODELS
  29. 29. can lead to Human Error can lead to Fault Failure
  30. 30. SOFTWARE COSTS Software costs often dominate computer 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 cost-effective software development. 
  31. 31. WHAT ARE THE COSTS OF SOFTWARE ENGINEERING?    Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability. Distribution of costs depends on the development model that is used.
  32. 32. WHAT IS CASE (COMPUTERAIDED SOFTWARE ENGINEERING) Software systems that are intended to provide automated support for software process activities.  CASE systems are often used for method support.  Upper-CASE   Tools to support the early process activities of requirements and design;  Lower-CASE  Tools to support later activities such as programming, debugging and testing.
  33. 33. Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability Traceability Completeness Consistency Accuracy Error Tolerance Execution Efficiency Storage efficiency Access control Access audit Operability Training Communicativeness Simplicity Conciseness Instrumentation Self-descriptiveness Expandability Generality Modularity Software System Independence Machine Independence Communications commonality Data commonality Figure 1.5 McCall’s quality model.
  34. 34. WHAT ARE THE ATTRIBUTES OF GOOD SOFTWARE?   The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable. Maintainability ◦  Dependability ◦  Software must be trustworthy; Efficiency ◦  Software must evolve to meet changing needs; Software should not make wasteful use of system resources; Acceptability ◦ Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
  35. 35. WHAT ARE THE KEY CHALLENGES FACING SOFTWARE ENGINEERING? Heterogeneity, delivery and trust.  Heterogeneity  ◦  Delivery ◦  Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Developing techniques that lead to faster delivery of software; Trust ◦ Developing techniques that demonstrate that software can be trusted by its users.
  36. 36. KEY POINTS  Software engineering is an engineering discipline that is concerned with all aspects of software production.  Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.
  37. 37. CONTINUE.. • • The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution. Methods are organised ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines.

×