0% found this document useful (0 votes)
38 views31 pages

Unit 1sead

The document discusses various software engineering process models including the waterfall model, prototyping model, iterative model, incremental model, agile development model, RAD model, and spiral model. It compares the advantages and limitations of each model. It also discusses the classical waterfall model in more detail including its phases and advantages/limitations. Finally, it covers topics like the capability maturity model, types of software, common software myths, and a question bank related to software engineering concepts.

Uploaded by

Jadhav Bhagavat
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)
38 views31 pages

Unit 1sead

The document discusses various software engineering process models including the waterfall model, prototyping model, iterative model, incremental model, agile development model, RAD model, and spiral model. It compares the advantages and limitations of each model. It also discusses the classical waterfall model in more detail including its phases and advantages/limitations. Finally, it covers topics like the capability maturity model, types of software, common software myths, and a question bank related to software engineering concepts.

Uploaded by

Jadhav Bhagavat
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/ 31

Software Engineering & Agile Development

[SEAD]
Software Development Life Cycle[SDLC]
Software Engineering Process Model
• Classical Life Cycle Model [Waterfall]
• Prototyping Model
• Evolutionary Model [ Spiral]
• Incremental Model
• Agile Development Model
• RAD
• Iterative Model
Classical Life Cycle Model [Waterfall]
Highlights
• First ever introduced model in 1970
• Also called Linear Sequential model
• Useful for the project where requirements are
constant
• Recommended for the small projects
• Where tools and technologies are consistent
and not changing
• Where resources are fixed
Phases in Waterfall Model
• Requirement gathering: Outcome of this phase is software requirement
specification documents

• Design phase: SRS is converted in to High level and low level design,
overall software architecture is defined. Software design documents (SDD)
is prepared

• Implementation and Coding: As per the SDD coding is carried out in this
phase

• Testing: Unit test, Integration test, System test, Acceptance test is carried
out

• Deployment: project is installed at the client site

• Maintenance: Preventive, adaptive and corrective


Advantages & Limitations
Advantages:
• Simple to implement with minimal resources
• Requirements are explicit and constant
• Estimation of Schedule and cost is comparatively easy

Limitations:
• Not suitable for the complex projects as risk factor is high
• No visibility to the customers
• Requirements are static no scope of change
• No backtracking is possible
• Testing is done at later stage
Prototype Model
Advantages & Limitations
Advantages:
• Reduce the risk of incorrect user requirement
• Good where requirement are changing / uncommitted
• High visibility
• Support early product marketing

Limitations:
• An unstable/badly implemented prototype often becomes the
final product
• Difficult to know how long the project will last.
• Prototyping tools are expensive.
• Special tools & techniques are required to build a prototype.
• It is a time-consuming process.
Iterative Model
Highlights
• In this Model, some of the software specifications and
develop the first version of the software.

• After the first version if there is a need to change the


software, then a new version of the software is created
with a new iteration.

• Every release of the Iterative Model finishes in an exact


and fixed period that is called iteration.

• The final output of the project renewed at the end of the


Software Development Life Cycle (SDLC) process
Advantages & Limitations
Advantages:
• Testing and debugging during smaller iteration is easy.
• A Parallel development can plan.
• It is easily acceptable to ever-changing needs of the
project.
• Risks are identified and resolved during iteration.
Limitations:
• It is not suitable for smaller projects.
• More Resources may be required.
• Requirement changes can cause over budget.
• Project completion date not confirmed because of
changing requirements.
Incremental Model
Highlights
• Requirements divided into multiple standalone
modules of the software development cycle.

• Each module goes through the requirements,


design, implementation and testing phases.

• Every subsequent release of the module adds


function to the previous release.

• The process continues until the complete system


achieved.
Advantages
Advantages:
• Modular approach
• Quick Release of product
• Can Prioritize requirements
• Easy to test and debug
Limitations:
• Good Planning required
• More resources required
• Cost is high
Agile Process Model
Highlights
• The meaning of Agile is swift or versatile.

• "Agile process model" refers to a software development


approach based on iterative development.

• Agile methods break tasks into smaller iterations

• Each iteration involves a team working through a full


software development life cycle including planning,
requirements analysis, design, coding, and testing
before a working product is demonstrated to the client.
Advantages & Limitations
Advantages
• Frequent Delivery
• Face-to-Face Communication with clients.
• Anytime changes are acceptable.
• It reduces total development time.
Limitations
• Due to the shortage of formal documents, it creates confusion
and crucial decisions taken throughout various phases can be
misinterpreted at any time by different team members.

• Due to the lack of proper documentation, once the project


completes and the developers allotted to another project,
maintenance of the finished project can become a difficulty
Agile Methods
• Scrum
• Crystal
• Dynamic Software Development
Method(DSDM)
• Feature Driven Development(FDD)
• Lean Software Development
• eXtreme Programming(XP)
Evolutionary Model[Spiral]
Advantages & Limitations
Advantages
• High amount of risk analysis
• When requirements are unclear and complex
• When changes may require at any time
• Useful for large and mission-critical projects.
Limitations
• Can be a costly model to use.
• Risk analysis needed highly particular expertise
• Doesn't work well for smaller projects.
Types of Software
1. System Software: operating system, compilers, Assemblers, file
managers, editors,drivers etc.
2. Real Time Software: nuclear power plant control, flight control,
many industrial / medical applications etc.
3. Business Software: banking, payroll, erp, insurance, inventory
control etc.
4. Engineering & Scientific Software: CAD, simulation, molecule
analysis etc.
5. Embedded Software: keypad control, microwave oven, dashboard
control, fuel control etc.
6. Personal Computer Software: word processing, spread sheet,
multimedia, entertainment, gaming, database etc.
7. Web based Software: Any software retrieved by browser which
incorporate html, cgi, perl, java instructions
8. Artificial Intelligence software: any expert system, knowledge
based system, chat bot,
Software Myths
Management Myths:
a. We already have a book that's full of standards and
procedures for building software, won't that provide my
people with everything they need to know?

b. My people have state-of-the-art software development


tools, after all, we buy them the newest computers.

c. If we get behind schedule, we can add more


programmers and catch up

d. If I decide to outsource3 the software project to a third


party, I can just relax and let that firm build it.
Customers Myths
a. A general statement of objectives is sufficient
to begin writing programs— we can fill in the
details later.

b. Project requirements continually change, but


change can be easily accommodated because
software is flexible.
Developers Myths
a. Once we write the program and get it to work,
our job is done
b. Until I get the program "running" I have no way
of assessing its quality
c. The only deliverable work product for a
successful project is the working program
d. Software engineering will make us create
voluminous and unnecessary documentation and

will invariably slow us down.


Capability Maturity Model (CMM)
• CMM was developed by the Software Engineering Institute (SEI) at Carnegie
Mellon University in 1987

• It is not a software process model. It is a framework that is used to analyze


the approach and techniques followed by any organization to develop
software products.

• It also provides guidelines to further enhance the maturity of the process


used to develop those software products

• It is based on profound feedback and development practices adopted by the


most successful organizations worldwide.

• This model describes a strategy for software process improvement that should
be followed by moving through 5 different levels.

• Each level of maturity shows a process capability level. All the levels except
level-1 are further described by Key Process Areas (KPA’s)
Level’s of CMM
Key Process Area (KPA)
Level-1: Initial
• No KPA’s defined.
• Processes followed are Ad-hoc and immature and are not well
defined.
• Unstable environment for software development.
• No basis for predicting product quality, time for completion, etc.

Level-2: Repeatable
- Project planning
- Software Configuration Management
- Requirement Management
- Subcontract Management
- Software quality Assurance
Key Process Area
Level-3: Defined
- Peer review
- Intergroup coordination
- Organization process definition
- Organization process focus
- Training program

Level-4: Managed
- Software Quality Management
- Quantitative Management

Level-5: Optimizing
- Process Change Management
- Technology Change Management
- Defect Prevention
Question Bank
1. Describe the significance of software engineering. Is it required ? Justify your
answer
2. Which of the software engineering paradigms discussed here do you think
would be most effective? Why?
3. Provide five examples of software development projects that would be
amenable
to prototyping. Name two or three applications that would be more difficult to
prototype
4. The SEI’s capability maturity model is an evolving document. Do some research
and determine if any new KPAs have been added since the publication of this book
5. Discuss software developers and customers myths and reality
6. As you move outward along the process flow path of the spiral model, what can
you say about the software that is being developed or maintained?
7. Why linear sequential models are not a preferable method of software
development now a days? Discuss your thoughts
8. Now a days agile model is the most preferable method of software
development, do you agree ? Justify your opinion
9. Which is more important—the product or the process?
10. Suppose you started a business and require a product to run your business,

You might also like