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

Post on 19-Jan-2016

253 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Computer Engineering

WEEK-10Software Engineering

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

2

System and Software

System Engineering

Software Engineering

Software Engineering Standards

Software Development Models

System Development Procedures

SOFTWARE ENGINEERING TOPICS

You will learn:

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

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

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

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.

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

Software Development Standards

He/she can itemize system and software fundamentals

8

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

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

Software Development Models: Waterfall

He/she can itemize system and software fundamentals

11

Software Development Models: V-Model

He/she can itemize system and software fundamentals

12

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

Software Development Models: V-Model

He/she can itemize system and software fundamentals

14

Software Development Models: Prototyping

He/she can itemize system and software fundamentals

15

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

Software Development Models: Evolutionary

He/she can itemize system and software fundamentals

17

Software Development Models: Evolutionary

He/she can itemize system and software fundamentals

18

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

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.

Software Development Models: Incremental

He/she can itemize system and software fundamentals

21

Software Development Models: Incremental

He/she can itemize system and software fundamentals

22

Software Development Models: Spiral

He/she can itemize system and software fundamentals

23

Software Development Models: Spiral

He/she can itemize system and software fundamentals

24

Software Development Models: Agile

He/she can itemize system and software fundamentals

25

Software Development Models: Agile

He/she can itemize system and software fundamentals

26

Software Development Procedures

He/she can itemize system and software fundamentals

27

Software Development Procedures

He/she can itemize system and software fundamentals

28

Software Development Procedures

He/she can itemize system and software fundamentals

29

Software Development Procedures

He/she can itemize system and software fundamentals

30

Software Development Procedures

He/she can itemize system and software fundamentals

31

Software Development Procedures

He/she can itemize system and software fundamentals

32

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

Software Development Procedures

He/she can itemize system and software fundamentals

34

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?

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

QUESTIONS

37

?

top related