0% found this document useful (0 votes)
16 views3 pages

Unit 2

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

Unit 2

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

Software Processes

• Definition: Software refers to a set of computer programs, procedures, and associated


documents (e.g., flowcharts, manuals) that describe the program and how it is used.
• Software Process: A set of activities and outcomes that produce software. These
activities include:
1. Software Specification: Defines functionality and constraints of the software.
2. Software Development: Produces software to meet requirements.
3. Software Validation: Ensures the software meets customer needs.
4. Software Evolution: Adapts the software to changing client needs.

The Software Process Model

• A software process model is an abstraction of the actual software process, presenting it


from a specific perspective.
• Types of Software Process Models:
1. Workflow Model: Shows activities along with their inputs, outputs, and
dependencies.
2. Dataflow Model: Represents activities that transform data, like turning a
specification into a design.
3. Role/Action Model: Describes the roles of people involved in the process and their
activities.

Software Development Models

1. Waterfall Model
2. Incremental Model:

Components of Software

1. Code: Instructions executed by a computer.


2. Data: Information used or manipulated by software.
3. User Interface: Means by which users interact with the software.
4. Libraries: Pre-written code for common tasks.
5. Documentation: Manuals and guides explaining software usage and maintenance.
6. Test Cases: Used for software testing to ensure correctness.

Software Crisis

• Challenges in Software Development:


1. Size: Software is growing more complex and expensive.
2. Quality: Poor-quality software due to ineffective testing.
3. Cost: High development costs.
4. Delayed Delivery: Often software projects exceed the estimated time and cost.
5. User Interface Issues: Difficulties in user interaction with the software.

Waterfall Model

• Introduction: Introduced by Winston Royce in 1970, the Waterfall model involves five
phases: Requirements analysis, design, implementation, testing, and maintenance.
• Characteristics: Each phase follows the previous one in sequence. Changes are difficult
once a phase is completed.
Advantages:
o Clear structure, easy to manage progress.
o Defined start and end for each phase.
Disadvantages:
o Higher risk for complex projects.
o Inflexible when requirements change.
o Testing occurs at a later stage, making early issue identification challenging.
When to Use:
o When requirements are well-defined and unlikely to change.
o For short-term projects or well-understood technologies.

Incremental Model

• Approach: Develop software in smaller increments, with each increment adding more
functionality.
• Process: Requirements are gathered at the beginning, then modules are developed and
integrated incrementally.
Advantages:
o Faster initial delivery.
o Continuous customer feedback.
o Flexibility to adapt to customer feedback.
Disadvantages:
o Needs careful planning for module development.
o Can become costly and time-consuming due to multiple iterations.

RAD (Rapid Application Development) Model

• The RAD Model emphasizes an accelerated development process, focusing on quick


delivery with customer involvement.
• It is suitable for projects with well-understood requirements that can be modularized.
• RAD is particularly beneficial when there is a need for rapid delivery, typically in 60-90
days, by breaking the system into smaller, manageable modules.
Key Phases of RAD:

1. Requirements Planning: Gathering and refining requirements through workshops and


brainstorming sessions.
2. User Description: Involves building a prototype and validating user feedback.
3. Construction: Prototypes are refined and developed into the working product using
automated tools.
4. Cutover: Testing, user acceptance, and the final system delivery.

When to Use:

1. When requirements are well-understood and can be modularized.


2. When speed is crucial, and reusable components exist.
3. When the customer is available for regular feedback.

Advantages:

1. Quick turnaround time.


2. Reduced cost due to reuse of components.
3. High customer involvement.

Disadvantages:

1. Requires skilled professionals.


2. Not suitable for large-scale, complex systems.
3. Customer involvement is essential throughout the process.

Spiral Model

• The Spiral Model integrates the features of both the Waterfall and Prototyping Models,
focusing on risk management.
• Each iteration of the process is a loop in the "spiral," and each loop consists of four
quadrants: planning, risk analysis, development, and evaluation.

Key Phases:

1. Objectives Determination and Alternatives: Requirements gathering and alternative


solutions analysis.
2. Risk Analysis: Evaluating and addressing potential risks.
3. Development and Testing: Build the product and test it.
4. Customer Evaluation: Obtain feedback and plan the next iteration.

When to Use:

1. Large, complex projects with significant risks.


2. When frequent changes or a prototype is needed.
3. When continuous risk evaluation is crucial.

Advantages:

1. Emphasis on risk management.


2. Continuous customer feedback.
3. Flexibility in handling changing requirements.

Disadvantages:

1. Complex and costly.


2. Requires expertise in risk analysis.
3. Not ideal for smaller projects.

The Concurrent Development Model

• The Concurrent Development Model involves executing multiple phases of development


simultaneously, unlike traditional models that proceed sequentially.
• This methodology, also known as Concurrent Engineering, allows faster product delivery
by overlapping activities like coding, testing, and design.

Key Phases:

1. Communication, design, coding, testing, and deployment are carried out concurrently
rather than in sequence.
2. Activities like coding and testing can overlap.

Advantages:

1. Faster product delivery.


2. Immediate feedback from testing.
3. Real-time view of project status.

Disadvantages:

1. Requires excellent communication within teams.


2. Challenging to manage multiple tasks at once.
3. Risk of increased complexity.
Difference Between Product and Process

Here is the same information formatted in a table:

Aspect Product Process


A set of sequence steps to create a
Definition The final production of the project.
project.
Focuses on completing each step of
Focus Focuses on the final result.
development.
Guidelines Firm guidelines are followed. Consistently follows guidelines.
Duration Tends to be short-term. Tends to be long-term.
Goal Complete the work successfully. Improve the quality of the project.
Customer Created based on customer needs and Not customer-focused; more about
Needs expectations. process efficiency.
To make the quality of the project
Purpose To complete the work successfully.
better.
Model for Focused on the final result rather than Serves as a model for producing
Production the process. similar goods.
Layout Product layout places materials in a line Process layout groups similar
Design depending on operations. processes or functions together.
Patent Product patents offer greater protection Process patents offer limited
Protection than process patents. protection.

You might also like