assoc. prof. dr. ahmet turan Özcerİt. system and software system engineering software...

37
Introduction to Computer Engineering WEEK-10 Software Engineering Assoc. Prof. Dr. Ahmet Turan ÖZCERİT

Upload: earl-parker

Post on 19-Jan-2016

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Introduction to Computer Engineering

WEEK-10Software Engineering

Assoc. Prof. Dr. Ahmet Turan ÖZCERİT

Page 2: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

2

System and Software

System Engineering

Software Engineering

Software Engineering Standards

Software Development Models

System Development Procedures

SOFTWARE ENGINEERING TOPICS

You will learn:

Page 3: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

System and Software

He/she can itemize system and software fundamentals

3

Computer systems are composed of hardware and software components

Software should not be considered only a set of codes or a package

Software is composed of Program codes Data Documentation

Page 4: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Computer System Engineering

He/she can itemize system and software fundamentals

4

System Engineering is a set of problem solving techniques to design and develop any type of system

Computer System Engineering, on the other hand, is a more specific system engineering discipline that only comprise both hardware and software engineering

System Development Procedures

Feasibility

System Implementation

User guidance and documentation

Page 5: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Engineering

He/she can itemize system and software fundamentals

5

Software engineering is a technical discipline that uses engineering methods in software development

Software engineering specifically creates methods, technics, tools, and standards for software development procedures

The main objective of the software engineering is to create accurate, reliable, and robust products by using simple development cycles

Page 6: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Engineer

He/she can itemize system and software fundamentals

6

Software engineer is not just a coder, he/she is the person developing software using software engineering disciplines

Software engineers do not have to be good at typewriting or documentation but have to be good at analyzing and synthesizing. He/she may has lack of knowledge on application sides, however, does has experience on how to implement user requirements.

Page 7: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Standards

He/she can itemize system and software fundamentals

7

Many types of standards and guidance have been designed

and developed by international institutions and

organizations. The objective of the standards and guidance

to reach a common strategy in software development

Page 8: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Standards

He/she can itemize system and software fundamentals

8

Page 9: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models

He/she can itemize system and software fundamentals

9

• Software development procedures and documentation strategy depends on clients and developers. Some of best known software development models are listed below

• Classic cycle

• V-Model

• Prototyping

• Spiral Model

• Evolutionary Model

• Incremental Model

• New Models

Page 10: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Waterfall

He/she can itemize system and software fundamentals

10

Classic cycle (Waterfall, Traditional, Conventional)

• Requirements defined and fixed

• Design

• Implementation

• Test

• Maintenance

Page 11: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Waterfall

He/she can itemize system and software fundamentals

11

Page 12: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: V-Model

He/she can itemize system and software fundamentals

12

Page 13: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: V-Model

He/she can itemize system and software fundamentals

13

The V-Model highlights the timing of test procedures

The phases on the each wing of the ‘V’ are considered test

levels

Left wing represents production, Right wing represents Test

phases

Test phases indicates the level to return

Page 14: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: V-Model

He/she can itemize system and software fundamentals

14

Page 15: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Prototyping

He/she can itemize system and software fundamentals

15

Page 16: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Evolutionary

He/she can itemize system and software fundamentals

16

The product released by phases

Each version corresponds to a working model of software

The user experience during each version use is evaluated for

the next version

The success of the product depends of the initial version

Page 17: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Evolutionary

He/she can itemize system and software fundamentals

17

Page 18: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Evolutionary

He/she can itemize system and software fundamentals

18

Page 19: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Evolutionary Prototyping

He/she can itemize system and software fundamentals

19

At each phase a prototype is obtained

The prototype is tested and user requirements are obtained

A new prototype is released

The procedures repeated until the final version is reached

Page 20: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Incremental

He/she can itemize system and software fundamentals

20

In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle.  Cycles are divided up into smaller, more easily managed modules.  Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved.

Page 21: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Incremental

He/she can itemize system and software fundamentals

21

Page 22: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Incremental

He/she can itemize system and software fundamentals

22

Page 23: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Spiral

He/she can itemize system and software fundamentals

23

Page 24: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Spiral

He/she can itemize system and software fundamentals

24

Page 25: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Agile

He/she can itemize system and software fundamentals

25

Page 26: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Models: Agile

He/she can itemize system and software fundamentals

26

Page 27: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

27

Page 28: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

28

Page 29: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

29

Page 30: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

30

Page 31: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

31

Page 32: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

32

Page 33: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures:System Tests

He/she can itemize system and software fundamentals

33

1. Load Test: Load testing is the process of putting demand on a software system or computing device and measuring its response. Load testing is performed to determine a system's behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation

2. Stress Test: When the load placed on the system is raised beyond normal usage

patterns, in order to test the system's response at unusually high or peak loads, it is known as stress testing. The load is usually so great that error conditions are the expected result, although no clear boundary exists when an activity ceases to be a load test and becomes a stress test

3. Recovery Test: Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed. Recovery testing should not be confused withreliability testing, which tries to discover the specific point at which failure occurs.Recovery testing is basically done in order to check how fast and better the application can recover against any type of crash or hardware failure etc. Type or extent of recovery is specified in the requirement specifications. It is basically testing how well a system recovers from crashes, hardware failures, or other catastrophic problems

Page 34: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures

He/she can itemize system and software fundamentals

34

Page 35: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures: Qualification Tests

He/she can itemize system and software fundamentals

35

Verification Test: The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE-STD-610]

Validation Test: The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610]

Validation checks that the product design satisfies or fits the intended use (high-level checking), i.e., the software meets the user requirements. This is done through dynamic testing and other forms of review.Verification and validation are not the same thing, although they are often confused. 

Verification: Are we building the product right?Validation: Are we building the right product?

Page 36: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

Software Development Procedures: System Maintenance

He/she can itemize system and software fundamentals

36

1. Corrective Maintenance: modifying the system to

cope with changes in the software environment

2. Perfective Maintenance: implementing new or

changed user requirements which concern functional

enhancements to the software

3. Adaptive Maintenance: diagnosing and fixing errors,

possibly ones found by users

4. Preventive Maintenance: increasing software

maintainability or reliability to prevent problems in the

future

Page 37: Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development

QUESTIONS

37

?