Top Banner
Introduction to Software Engineering
22

Introduction to Software Engineering

Feb 26, 2016

Download

Documents

caelan

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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to Software Engineering

Introduction to Software Engineering

Page 2: 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.◦ Projects were unmanageable and code

difficult to maintain.◦ Software was never delivered.

2

Page 3: Introduction to Software Engineering

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

3

Page 4: Introduction to Software Engineering

Types of Software ProductsGeneric 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.

4

Page 5: Introduction to Software Engineering

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.

5

Page 6: Introduction to Software Engineering

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

Page 7: Introduction to Software Engineering

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…

7

Page 8: Introduction to Software Engineering

Software Quality Attributes

8

PRODUCT TRANSITIONPRODUCT TRANSITIONPRODUCT REVISIONPRODUCT REVISION

PRODUCT OPERATIONPRODUCT OPERATION

-Maintainability (Can I fix it?)-Flexibility (Can I change it?)-Testability (Can I test it?)

-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?)

-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?)

Page 9: Introduction to Software Engineering

What are the attributes of good software?Product characteristic

Description

Maintainability Software should be written in such a way that it may evolve to meet the changing needs of customers.

Dependability Software dependability has a range of characteristics, including reliability and security.

Efficiency Software should not make wasteful use of system resources such as memory and processing time.

Usability Software should have an appropriate user interface and adequate documentation.

9

Page 10: Introduction to Software Engineering

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.

10

Page 11: Introduction to Software Engineering

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.

11

Page 12: Introduction to Software Engineering

What is Software Process?Software Process is a set of

activities whose goal is the development or evolution of software.

12

Page 13: Introduction to Software Engineering

Software Process ActivitiesSoftware 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.

13

Page 14: Introduction to Software Engineering

What is CASE?Computer-Aided Software

EngineeringCASE are software systems which

are intended to provide automated support for software process activities.

14

Page 15: Introduction to Software Engineering

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.

15

Page 16: Introduction to Software Engineering

Types of Software Process ModelA 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.

16

Page 17: Introduction to Software Engineering

Software ApplicationApplication 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,…

17

Page 18: Introduction to Software Engineering

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.

18

Page 19: Introduction to Software Engineering

Software ApplicationEmbedded 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 Jave and so on.

19

Page 20: Introduction to Software Engineering

Software ApplicationArtificial Intelligence Software.

Software makes use of nonnumerical algorithms 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.

20

Page 21: Introduction to Software Engineering

Key PointsSoftware 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.

21

Page 22: Introduction to Software Engineering

Literaturesen.wikipedia.orgIan Sommerville “Software

Engineering 6th Edition” – 2000.

22