17
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces, design constraints and information structure that can be allocated to each of the generic system elements available. Systems Engineering Issues Life Cycle of a software product?

Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Embed Size (px)

Citation preview

Page 1: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces, design constraints and information structure that can be allocated to each of the generic system elements available.

Systems Engineering Issues Life Cycle of a software product?

Page 2: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

The Phases in Life Cycle of a Software Product?

Dr.Ghossoon M. WaleedSaIina M.

Lab 2:

Systems Engineering Issues Life Cycle of a software product?

Page 3: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Essence and Accident

• Inherent Difficulties– Complexity– Conformity– Changeabilit

y– Invisibility

• Essence– difficulties

inherent in the nature of software

• Accidents– difficulties

encountered but not inherent

Systems Engineering Issues Life Cycle of a software product?

Page 4: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and OverviewSoftware Engineering Processes

attempt to maximize QUALITY in the form of:

1. Reliability

2. Portability

3. Efficiency

4. Human

Engineering

5. Testability

6. Understandabilit

y

7. Modifiability

Systems Engineering Issues Life Cycle of a software product?

Page 5: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Software Engineering Processes

Why?Issues concerning software quality• Relative costs of fixing faults• Price performance factors• Product size increase leads to larger

teams

Systems Engineering Issues Life Cycle of a software product?

Page 6: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

What are the phases in The Life Cycle of a software product?

1. Requirements2. Specifications3. Design4. Implementation

5. Integration6. Maintenance7. Retirement

Systems Engineering Issues Life Cycle of a software product?

Page 7: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

1. Requirements Phase “What I need, not what I said I

needed”• What does the

problem require in terms of the solution?

• Written document• Customer driven

• Requirements testing– Rapid prototype– Mock-up– Partial system

Systems Engineering Issues Life Cycle of a software product?

Page 8: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Page 9: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

2. Specifications PhaseWhat the developer wants to know:

• What does the product do?

• What are the constraints on the product?

• Acceptance criteria

• Frequent problems with a spec:– ambiguous– incomplete– contradictory

• Specifications testing– SQA– reviews

Systems Engineering Issues Life Cycle of a software product?

Page 10: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

3. Design PhaseHow does the product do what it is supposed to

do?

• Analysis of the problem– Structured analysis :

decomposing problem by how data is manipulated (acted upon)

– Object-oriented analysis: decomposing problem by how data is represented

• Developer must make design decisions about:– algorithms– data

representations– I/O interfaces– data flow– modules

• Design testing– traceability

Systems Engineering Issues Life Cycle of a software product?

Page 11: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Page 12: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

4. Implementation PhaseInitial CS courses have to focus on this

element first

• Code• Documentation• Tests

• Implementation testing– desk

checking– test cases– reviews

Systems Engineering Issues Life Cycle of a software product?

Page 13: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

5. Integration PhasePutting it all together

• Composition order

• Integration testing– interfaces

• Testing– does it meet the

specs?– product testing by

SQA– acceptance

testing by customer

Systems Engineering Issues Life Cycle of a software product?

Page 14: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Page 15: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

6. Maintenance PhaseIn the user’s hands

• Maintenance testing– changes– regression testing

• Retirement– cost-effective?

• Why?– operation– documentation– turnover

• Kinds of maintenance– Corrective– Adaptive– Perfective– Preventive

Systems Engineering Issues Life Cycle of a software product?

Page 16: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

Page 17: Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,

Software Engineering Introduction and Overview

7. Specification principles

• Separate functionality from implementation– A process-oriented systems spec language is required– A spec must encompass the system of which the SW

is a component– A spec must encompass the environment in which the

system operates – A system spec must be a cognitive model– A spec must be operational– The spec must be tolerant of incompleteness and

augmentable– A spec must be localized and loosely coupled

Systems Engineering Issues Life Cycle of a software product?