1 / 22

Introduction to Software Engineering

Introduction to Software Engineering. Why SE?. Software crisis manifested itself in several ways [1]: Project running over-time. Project running over-budget. Software was very inefficient. Software was low quality. Software often did not meet requirements.

caelan
Télécharger la présentation

Introduction to Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Software Engineering

  2. Why SE? • Software crisis manifested itself in several ways [1]: • Project running over-time. • Project running over-budget. • Software was very inefficient. • Software was low quality. • Software often did not meet requirements. • Projects were unmanageable and code difficult to maintain. • Software was never delivered.

  3. What is software? • Software is not just the programs but also associated documentation and configuration data [2]. • Software products may be developed for a particular customer or may be developed for a general market [2].

  4. Types of Software Products • Generic products are produced by a development organisation and sold on the open market to any customer who is able to buy them. • Bespoke (or customised) products are developed specially for customers by a software contractor.

  5. What is Software Engineering? • SE is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system. • SE adopt a systematic and organised approach to their work as this is often the most effective way to produce high-quality software.

  6. Key Phrases to Definition • ‘Engineering discipline’ Engineers apply theories, methods and tools to discover solutions even there are no applicable theories and methods. • ‘All aspects of software production’ are the activities such as: software project management and with the development of tools, methods and theories to support software production.

  7. Software Quality • Software quality can be categorized in two groups: • Factors that can be directly measured e.g., errors/KLOC/unit-time • Factors that can be measured only indirectly e.g., usability or maintainability…

  8. P R O D U C T R E V I S I O N P R O D U C T R E V I S I O N P R O D U C T T R A N S I T I O N P R O D U C T T R A N S I T I O N P R O D U C T O P E R A T I O N P R O D U C T O P E R A T I O N Software QualityAttributes • Portability (Will I be able to use it on another machine?) • Reusability (Will I be able reuse some of the software?) • Interoperability (Will I be able to interface it with another system?) -Maintainability (Can I fix it?) -Flexibility (Can I change it?) -Testability (Can I test it?) -Correctness (Does it do what I want?) -Reliability (Does it do it accurately all of the time?) -Efficiency (Will it run on my hardware as well as it can?) -Integrity (Is it secure?) -Usability (Is it designed for the user?)

  9. What are the attributes of good software?

  10. What is the difference between Software Engineering and Computer Science? • Computer science is concerned with theory and fundamentals; • Software engineering is concerned with the practicalities of developing and delivering useful software. • Software engineers must often use ad hoc approaches to develop the software. • Elegant theories of computer science cannot always be applied to real, complex problems.

  11. What is the difference between Software Engineering and System Engineering? • System Engineering is concerned with all aspects of computer-based systems development, including hardware, software and process engineering.

  12. What is Software Process? • Software Process is a set of activities whose goal is the development or evolution of software.

  13. Software Process Activities • Software Specification. The functionality of the software and constraints on its operation must be defined. • Software Development. The software to meet the specification must be produced. • Software Validation. The software must be validated to ensure that it does what the customer wants. • Software Evaluation. The software must evolve to meet changing customer needs.

  14. What is CASE? • Computer-Aided Software Engineering • CASE are software systems which are intended to provide automated support for software process activities.

  15. What is a Software Process Model? • A Software Process Model is a simplified description of a software process which is presented from a particular perspective.

  16. Types of Software Process Model • A Workflow model This shows the sequence of activities in the process along with their inputs, outputs and dependencies. • A data-flow or activity model The process as a set of activities each of which carries out some data transformation. • A role/action model The roles of the people involved in the software process and the activities for which they are responsible.

  17. Software Application • Application software is computer software designed to help the user to perform singular or multiple related specific tasks. • Examples include: • System software is a collection of programs written to service programs. E.g., compiler, editors, operating system components, drivers,…

  18. Software Application • Real-time software. Software that monitors/analyzes/controls real world events as they occur is call real time. • Business software. Business information processing is the largest single software application area. • Engineering and Scientific Software. Software has been characterized by “number crunching” algorithms. E.g., Computer-Aided Design, system simulation and so on.

  19. Software Application • Embedded Software. Intelligent products have become commonplace in nearly every consumer and industrial market. • Personal Computer Software. E.g., word processing, computer graphics, multimedia, and so on. • Web-based software. The web pages retrieved by a browser are software that incorporates executable instructions, e.g., HTML, Perl or Javeand so on.

  20. Software Application • Artificial Intelligence Software. Software makes use of nonnumericalalgorithms to solve complex problems that are not amenable to computation or straightforward analysis. E.g., knowledge-based systems, pattern recognition (image and voice), artificial neural networks, and game playing are representative of applications.

  21. Key Points • Software Engineering is an engineering discipline which is concerned with all aspects of software production. • Software products consist of developed programs and associated documentation. • The software process consists of activities which are involved in developing software products. Basic activities are software specification, development, validation and evolution.

  22. Literatures • en.wikipedia.org • Ian Sommerville“Software Engineering 6th Edition” – 2000.

More Related