0% found this document useful (0 votes)
77 views19 pages

Generic Process Framework

The document discusses software engineering processes and models. It describes a generic process framework that includes communication, planning, modeling, construction, and deployment. It then discusses modeling which involves software requirements analysis and design. Traditional process models are introduced, including the software development life cycle (SDLC). The waterfall model is described as the oldest software lifecycle model, involving sequential phases from requirements to maintenance without iteration or overlap. Feedback loops can be added to address some limitations.
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)
77 views19 pages

Generic Process Framework

The document discusses software engineering processes and models. It describes a generic process framework that includes communication, planning, modeling, construction, and deployment. It then discusses modeling which involves software requirements analysis and design. Traditional process models are introduced, including the software development life cycle (SDLC). The waterfall model is described as the oldest software lifecycle model, involving sequential phases from requirements to maintenance without iteration or overlap. Feedback loops can be added to address some limitations.
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/ 19

Software Engineering

Ian Sommerville
Generic Process Framework

Communication
Involves communication among the customer and other stake holders; encompasses
requirements gathering.
Planning
Establishes a plan for software engineering work;
addresses technical tasks
work products
work schedule
Generic Process Framework

Modelling (Analysis, Design)


Encompasses the creation of models to better under the requirements and the
design.
Construction (code, Test)
Combines code generation and testing to uncover errors.
Deployment
Involves delivery of software to the customer for:
Evaluation
&
 Feedback.
Modelling: Software Requirements Analysis

• Helps software engineers to better understand the problem they will work to solve.

• Encompasses the set of tasks that lead to an understanding of:


 what the business impact of the software will be,
 what the customer wants,
 how end-users will interact with the software.
Modelling: Software Requirements Analysis

• Uses a combination of text and diagrams to depict requirements for


data, function & behavior.
 Provides a relatively easy way to understand and review requirements for
correctness, completeness and consistency.
Modelling: Software Design

• Brings together customer requirements, business needs, and technical


consideration to form the “blueprint” for a product.
• Creates a model that provides detail about software data structures, software
architecture, interfaces, and components that are necessary to implement the
system.
Architectural Design
• Represents the structure of data and program components that are required to
build the software
• Considers the architectural style, the structure and properties of components that
constitute the system and interrelationships that occur among all architectural
components.
Modelling: Software Design

User Interface Design


• Creates an effective communication medium between a human and a
computer
• Identifies interface objects and actions and then creates a screen layout
that forms the basis for a user interface prototype
Component level design
• Defines the data structures, algorithms, interface characteristics, and
communication mechanisms allocated to each software component.
Traditional process models

Process model
Defines a distinct set of:
activities,
actions,
tasks,
milestones,
&
work products that are required to engineer high-quality software.
Traditional process models

• The activities may be:


linear, incremental, or evolutionary
Software Development Life Cycle
• Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality software.
• It is also called as Software Development Process.
•  SDLC is a framework defining tasks performed at each step in the software
development process.
Software Development Life Cycle
Waterfall Model(Diagram)
Waterfall Model (Description)

• Oldest software lifecycle model


• Used when requirements are well understood and risk is low
• Work flow is in a linear(i.e., Sequential)fashion
• Used often with well-defined adaptations or enhancements to current software
Waterfall Model (Description)

• The Waterfall Model was the first Process Model to be introduced. It is also
referred to as a linear-sequential life cycle model. It is very simple to understand
and use. In a waterfall model, each phase must be completed before the next phase
can begin and there is no overlapping in the phases.
• The Waterfall model is the earliest SDLC approach that was used for software
development.
• The waterfall Model illustrates the software development process in a linear
sequential flow. This means that any phase in the development process begins
only if the previous phase is complete. In this waterfall model, the phases do not
overlap.
Waterfall Model (Problems)

• Doesn’t support iteration, so change can cause confusion


• Difficult for customers to state all requirements explicitly and up front.
• Requires customer patience because a working version of the program doesn’t
occur until the final phase.
• High amounts of risk and uncertainty.
• Problems can be somewhat alleviated in the model through the addition of
feedback loops.(see the next slide)
Waterfall model with feedback loop
Waterfall Model (Advantages)
• simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
• Phases are processed and completed one at a time.
• Clearly defined stages.
• Well understood milestones.
• Easy to arrange tasks.
• Process and results are well documented.
When to Use Waterfall Model?

• You can use the Waterfall model if −


• Requirements are very well known.
• Product definition is stable.
• Technology is well understood.
• New version of an existing product.
• Porting an existing product to a new platform.
• Large organization with structured cross-functional teams.
• Communication channels are well established within the organization and with the
customer as well.

You might also like