0% found this document useful (0 votes)
50 views

Software Engineering: Instructor Ms. Shakra Mehak

This document discusses different software engineering processes. It begins by outlining some fundamental assumptions about good software processes and then describes the variety of software processes. The key basic process steps that must be part of all software projects are feasibility and planning, requirements, system and program design, implementation and testing, acceptance testing and release, and operation and maintenance. Linear, prototyping, incremental, and spiral models are discussed as examples of software process models. The advantages and disadvantages of the linear sequential/waterfall model and prototyping model are also summarized.

Uploaded by

HAMZA KHALID
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Software Engineering: Instructor Ms. Shakra Mehak

This document discusses different software engineering processes. It begins by outlining some fundamental assumptions about good software processes and then describes the variety of software processes. The key basic process steps that must be part of all software projects are feasibility and planning, requirements, system and program design, implementation and testing, acceptance testing and release, and operation and maintenance. Linear, prototyping, incremental, and spiral models are discussed as examples of software process models. The advantages and disadvantages of the linear sequential/waterfall model and prototyping model are also summarized.

Uploaded by

HAMZA KHALID
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

SOFTWARE

ENGINEERING

Instructor
Ms. Shakra Mehak
Software Process
Fundamental Assumption:
• Good processes lead to good software
• Good processes reduce risk
• Good processes enhance visibility
Variety of Software Processes

• Software products are very varied...


• Therefore, there is no standard process for all
software engineering projects
• BUT successful software development projects all need to
address similar issues.
• This creates a number of process steps that must be
part of all software projects
Basic Process Steps in all Software Development

• Feasibility and planning


• Requirements
• System and program design
• Implementation and testing
• Acceptance testing and release
• Operation and maintenance
It is essential to distinguish among these process steps and
to be clear which you are doing at any given moment.
Do not confuse requirements and design
Process Step: Feasibility and Planning
• A feasibility study precedes the decision to begin a
project.
• What is the scope of the proposed project?
• Is the project technically feasible?
• What are the projected benefits?
• What are the costs, timetable?
• A feasibility study leads to a decision: go or no-go.
Process Step: Requirements
• Requirements define the function of the system from the
client's viewpoint.

• This phase is sometimes divided into:


• Requirements analysis
• Requirements definition
• Requirements specification
Process Step: System and Program Design
• Design describes the system from the software
developers' viewpoint .

• System design : Match the requirements to hardware or


software systems. Establishes an overall system
architecture
• Program design: Represent the software system
functions in a form that can be transformed into one or
more executable programs
Process Step: Implementation and Testing

• Implementation (coding)
• The software design is realized as a set of programs or
program units.
• Testing
• Individual components are tested against specifications.
• The individual program units are integrated and tested
against the design by the development staff as a
complete system.
Process Step: Acceptance Testing and Release
• Acceptance testing
• The complete system is tested against the requirements
by the client.

• Delivery and release


• The complete system is delivered to the client and
released into production.
Process Step: Operation and Maintenance
• Operation: The system is put into practical use.
• Maintenance : Errors and problems are identified and
fixed.
• Evolution : The system evolves over time as
requirements change, to add new functions or adapt the
technical environment.
• Phase out : The system is withdrawn from service.
• This is sometimes called the Software Life Cycle
Software Process Models
• Process model for software engineering is chosen based
on the nature of the project and application ,the methods
and tools to be used, and the controls and deliverable that
are required. All software development can be
characterized into four stages.

• 1.Status Quality
• 2.Problem definition
• 3.Technical Development
• 4.Solution Integration
Process Models
• Linear Sequential Model/The Waterfall
Model
• The Prototyping Model
• Incremental Model
• Spiral Model
Linear Sequential Model/The Waterfall Model
Conti…
• Sometimes called Classic life cycle or the waterfall model.

• Linear sequential model suggests a systematic sequential


approach to software development that begins at the
system level and progress through analysis ,design ,
coding ,testing and support.
Advantages and Disadvantages of Linear Sequential
Model
• Advantages:
• Process visibility
• Separation of tasks
• Quality control at each step
• Cost monitoring at each step

• Disadvantages:
• Requirement should be clear before design and coding
otherwise time and cost will increased.
• Blocking State
• No working Version
• No Iteration
Linear Sequential Model
Reasons of Limitations

• Real projects rarely follow the sequential flow and


changes can cause confusion.
• This model has difficulty accommodating requirements
change
• The customer will not see a working version until the
project is nearly complete
• Developers are often blocked unnecessarily, due to
previous tasks not being done
Prototyping
The Prototyping Model
Prototype Model
• Customer defines a set of general objectives for software
but does not identify detailed input, processing, or output
requirements.
• •In other cases the developer may be unsure of the
efficiency of an algorithm, the adaptability of an operating
system, or the form that human/machine interaction
should take. In these situation a prototyping model may
offer the best approach.
Advantages of Prototyping Model
• Prototyping can be an effective paradigm for software
engineering.
• The customer and developer must both agree that the
prototype is built to serve as a mechanism for defining
requirements.
Disadvantage
• The customer sees a working version and expects the
finished product to be available in a short time. This puts
pressure on the developer to take short cuts, at the
expense of quality and maintainability.
• The developer may make compromises for speed.
• Inappropriate tools may be used or inefficient algorithms
may be used, which then become integral parts of the
system.
• If the user isn’t focused on what they want, the system
may never be completed.
What you have learnt
in this class???

You might also like