Upload
alison-shelton
View
212
Download
0
Embed Size (px)
Citation preview
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
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?
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?
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?
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?
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?
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?
Software Engineering Introduction and Overview
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?
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?
Software Engineering Introduction and Overview
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?
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?
Software Engineering Introduction and Overview
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?
Software Engineering Introduction and Overview
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?