Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.

Similar presentations


Presentation on theme: "Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software."— Presentation transcript:

1 Software engineering

2 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production the systematic use of many disciplines, tools, and resources for the practical application. Software engineering is an engineering discipline which is concerned with all aspects of software production the systematic use of many disciplines, tools, and resources for the practical application.

3 importance of software :engineering Software engineering plays a major role being the backbone of software systems by applying technologies and practices not only technically from computer science and engineering, but also with management issues such as management issues (project management), plus the application and other fields. Software engineering plays a major role being the backbone of software systems by applying technologies and practices not only technically from computer science and engineering, but also with management issues such as management issues (project management), plus the application and other fields.

4 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 Computer science theories are currently insufficient to act as a complete foundation or basis for software engineering

5 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. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration of the finished system.

6 What is a software process? A set of activities whose goal is the development or evolution of software Generic 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

7 What is a software process? (cont.) Engineering = {Process} Software Engineering = {Software Process} Software Process = { Methodology } Methodology = {Activity} + {Coordination Rule} A software process is a set of activities allowing the production of software. These activities are supported and organized by a methodology A software process is a set of activities allowing the production of software. These activities are supported and organized by a methodology Process Process Requirements Coordinated Product Requirements Coordinated Product Activities Activities

8 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 (see next slide).

9

10 What are the attributes of good software? The software should deliver the required functionality and performance to the user and should be maintainable, dependable, efficient and usable Maintainability Software must evolve to meet changing needs Dependability Dependability includes (reliability, security and safety), dependable software should not cause damage in the event of failure. Dependability includes (reliability, security and safety), dependable software should not cause damage in the event of failure.

11 What are the attributes of (Con,t)good software? Efficiency Software should NOT make wasteful use of system resources such as memory and processor time. Usability Software must be usable by the users for which it was designed, it should have an appropriate user interface and enough documentation.

12 What are the key challenges facing software engineering? Coping with legacy systems ( old, valuable systems must be maintained and updated), coping with increasing diversity and coping with demands for reduced delivery times. Heterogeneity, systems are required to operate as distributed across networks that include a different type of hardware and software Delivery, there is increasing pressure for faster delivery of software Trust Developing techniques that demonstrate that software can be trusted by its users.

13 Issues of professional responsibility Confidentiality الخصوصيه Engineers should normally respect the confidentiality of their employers or clients. Competence الكفاءة Engineers should not misrepresent their level of competence. They should not accept work which is out with their competence.

14 Issues of professional con,t))responsibility Intellectual property rights Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected. Computer misuse Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine) to extremely serious (viruses).


Download ppt "Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software."

Similar presentations


Ads by Google