Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 1- Introduction

Similar presentations


Presentation on theme: "Chapter 1- Introduction"— Presentation transcript:

1 Chapter 1- Introduction
Lecture 1

2 Professional software development Software engineering ethics
Topics covered Professional software development What is meant by software engineering. Software engineering ethics A brief introduction to ethical issues that affect software engineering. Case studies An introduction to three examples that are used in later chapters in the book. Chapter 1 Introduction

3 Introduction - The modern world utilities are controlled by computer- based systems and most electrical products and. Industrial manufacturing and distribution is completely computerized, as is the financial system. Entertainment, including the music industry, computer games, and film and television . - Therefore, software engineering is essential for the functioning of national and international societies Chapter 1 Introduction

4 Professional software development
Software development is a professional activity where software is developed for specific business purposes, for inclusion in other devices, or as software products such as information systems, CAD systems, etc. Professional software, intended for use by someone apart from its developer, is usually developed by teams rather than individuals. It is maintained and changed throughout its life. Chapter 1 Introduction

5 Professional software development
Software engineering is intended to support professional software development, rather than individual programming. It includes techniques that support program specification, design, and evolution, none of which are normally relevant for personal software development . Chapter 1 Introduction

6 Software engineering The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned with theories, methods and tools for professional software development. Expenditure on software represents a significant fraction of GNP in all developed countries.

7 FAQs about software engineering
What is software? What is software engineering? What is the difference between software engineering and computer science? What is the difference between software engineering and system engineering? What is a software process?

8 FAQs about software engineering
What are the costs of software engineering? What are software engineering methods? What are the attributes of good software? What are the key challenges facing software engineering?

9 What is software? Computer programs and associated documentation such as requirements, design models and user manuals. Software products may be developed for a particular customer or may be developed for a general market. There are two kinds of software products :- 1- Generic products 2- Customized (or bespoke) products.

10 1- Generic products These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to Figure 1.1 Frequently asked questions about software buy them. Examples of this type of product include software for PCs such as databases, word processors, drawing packages, and project-management tools. It also includes so-called vertical applications designed for some specific purpose such as library information systems. Chapter 1 Introduction

11 2- Customized (or bespoke) products
Customized (or bespoke) products These are systems that are commissioned by a particular customer. A software contractor develops the software especially for that customer. Examples of this type of software include control systems for electronic devices, systems written to support a particular business process, and air traffic control systems . Chapter 1 Introduction

12 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.

13 What is software engineering?
Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use. The purpose of software engineering is to develop software , based systems that let customers achieve business goals . 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.

14 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.

15 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 still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).

16 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 concerned with developing the software infrastructure, control, applications and databases in the system. System engineers are involved in system specification, architectural design, integration and deployment.

17 What is Software process activities?
Software process is the set of activities and associated results that produce a software . There are four fundament processes that are common to all software processes are: Specification – where customers and engineers define software to be produced and constraints on its operation 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.

18 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 Software must evolve to meet changing needs; Dependability Software must be trustworthy; Efficiency 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.

19 What are the key challenges facing software engineering?
Heterogeneity, delivery and trust. Heterogeneity systems are required to operate as distributed systems across networks that include different types of computer and mobile devices. As well as running on general-purpose computers, software may also have to execute on mobile phones. You often have to integrate new software with older legacy systems written in different programming languages. The challenge here is to develop techniques for building dependable software that is flexible enough to cope with this heterogeneity .

20 What are the key challenges facing software engineering?
2- Delivery Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software. Many traditional software engineering techniques are time consuming and delivery of new systems often takes longer than planned. They need to evolve so that the time required for software to deliver value to its customers is reduced. Chapter 1 Introduction

21 What are the key challenges facing software engineering?
3- Security and trust :- As software is intertwined with all aspects of our lives, it is essential that we can trust that software. This is especially true for remote software systems accessed through a web page or web service interface. We have to make sure that malicious users cannot attack our software and that information security is maintained. Chapter 1 Introduction

22 Software engineering diversity
There are many different types of software system and there is no universal set of software techniques that is applicable to all of these. The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer and the background of the development team. . There are many different types of application including:- Chapter 1 Introduction

23 Stand-alone applications
Application types Stand-alone applications These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network. Interactive transaction-based applications Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications. Embedded control systems These are software control systems that control and manage hardware devices. Numerically,. Examples the software in a mobile (cell) phone, and software in a microwave oven to control the cooking process. Chapter 1 Introduction

24 Batch processing systems
Application types Batch processing systems These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. Entertainment systems Systems for modelling and simulation Data collection systems Chapter 1 Introduction

25 Key points Software engineering is an engineering discipline that is concerned with all aspects of software production. Essential software product attributes are maintainability, dependability and security, efficiency and acceptability. The high-level activities of specification, development, validation and evolution are part of all software processes. The fundamental notions of software engineering are universally applicable to all types of system development. Chapter 1 Introduction

26 Key points There are many different types of system and each requires appropriate software engineering tools and techniques for their development. The fundamental ideas of software engineering are applicable to all types of software system. Chapter 1 Introduction


Download ppt "Chapter 1- Introduction"

Similar presentations


Ads by Google