0% found this document useful (0 votes)
20 views45 pages

Software Models Overview

Uploaded by

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

Software Models Overview

Uploaded by

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

Software Models

What is Software Engineering?


Objectives

• What we mean by software engineering


• Software engineering’s track record
• What we mean by good software
• Why a system approach is important
• How software engineering has changed since 1970s
1.1 What is Software Engineering
Solving Problems

• Software products are large and complex


• Development requires analysis and synthesis
• Analysis: decompose a large problem into smaller, understandable pieces
• abstraction is the key
• Synthesis: build (compose) a software from smaller building blocks
• composition is challenging
1.1 What is Software Engineering
Solving Problems (continued)

• The analysis process


1.1 What is Software Engineering
Solving Problems (continued)

• The synthesis process


1.1 What is Software Engineering
Solving Problems (continued)

• Method or Technique: refers to a formal procedure; a formal “recipe” for


accomplishing a goal that is typically independent of the tools used
• Tool: an instrument or automated system for accomplishing something in
a better way
• Procedure: a combination of tools and techniques to produce a product
• Paradigm: philosophy or approach for building a product (e.g., OO vs
structured approaches)
1.1 What is Software Engineering
Where Does the Software Engineer Fit In?

• Computer science: focusing on computer hardware, compilers,


operating systems, and programming languages

• Software engineering: a discipline that uses computer and software


technologies as a problem-solving tools
1.1 What is Software Engineering
Where Does the SW Engineer Fit in? (continued)

• Relationship between computer science and software engineering


1.2 How Successful Have We Been?

• Perform tasks more quickly and effectively


• Word processing, spreadsheets, e-mail
• Support advances in medicine, agriculture, transportation, multimedia
education, and most other industries
• Many good stories
• However, software is not without problems
1.2 How Successful Have We Been?
Sidebar 1.1 Terminology for Describing Bugs

• A fault: occurs when a human makes a mistake, called an error, in


performing some software activities
• A failure: is a departure from the system’s required behaviour
1.2 How Successful Have We Been?
Examples of Software Failure

• IRS hired Sperry Corporation to build an automated federal


income tax form processing process
• An extra $90 M was needed to enhance the original $103 product
• IRS lost $40.2 M on interests and $22.3 M in overtime wages (for the
ones who worked extra-time) because refunds were not returned on
time

• Reliability constraints have caused cancellation of many


safety critical systems
• Safety-critical: something whose failure poses a threat to life or
health
1.3 What is Good Software for us?

• Good software engineering must always include a strategy for


producing quality software
• Three ways of considering quality
• The quality of the product
• The quality of the process that results in the product.
• The quality of the product in the context of the business environment
1.3 What Is Good Software?
The Quality of the Product (continued)
• McCall’s quality model show how external quality factors (left side)
relate to product quality criteria (right side)
Software Process
• A software process (also knows as software methodology) is a set
of related activities that leads to the production of the software.

• These activities may involve the development of the software from


the scratch, or, modifying an existing system.

Fundamental Assumption:
Good processes lead to good software
Good processes reduce risk
The Software Process
(Simplified)
1. Software specification (or requirements
engineering): Define the main functionalities
of the software and the constrains around
them.

2.Software design and implementation: The


software is to be designed and programmed.

3.Software verification and validation: The


software must conforms to it’s specification
and meets the customer needs.

4.Software evolution (software maintenance):


The software is being modified to meet
customer and market requirements changes.
Process description

Process also includes the process description, which includes:


•Products: The outcomes of the an activity.
• Architectural design maybe a model for the software architecture.

•Roles: The responsibilities of the people involved in the process.


• The project manager, programmer, etc.

•Pre and post conditions: The conditions that must be true before and after
an activity.
• The pre condition of the architectural design is the requirements have been
approved by the customer
• The post condition is the diagrams describing the architectural have been
reviewed.
Software Process Models

• Also known as software development life cycle (SDLC)

• The software development models are the various processes or


methodologies

• The models specify the various stages of the process and the order
in which they are carried out.
The Waterfall Model
Example of Waterfall method

Assume, the Citibank is planning to have a new banking application developed


and they have approached your organization in the 1990’s.

• Requirements Gathering and Analysis


• Requirements are gathered by the business analyst
• Requirements are documented and clarifications can be sought

• System Design
• The architect work on the software architecture, high level and low level
design and document
• Any special requirement?
Example of Waterfall method

Assume, the Citibank is planning to have a new banking application developed


and they have approached your organization in the 1990’s.

• Implementation
• The development team works on coding the project
• Any special requirement?

• Testing
• The testing team tests the complete application and identifies any defects in
the application.
Example of Waterfall method
Assume, the Citibank is planning to have a new banking application developed
and they have approached your organization in the 1990’s.

• Deployment
• The team builds and installs the application on the servers which were
procured for the banking application

• Also co-ordinate with network and IT administrative teams to finally get the
application up and running on the production servers.

• Maintenance
• During the maintenance phase, the team ensures that the application is
running smoothly on the servers without any downtime.
Discussion on Waterfall Model

• Waterfall model was used significantly in the development of software


till the year 2000

• Customer Relationship Management (CRM) systems, Human Resource


Management Systems (HRMS), Supply Chain Management Systems
Waterfall Model Used

• Development of Department Of Defense (DOD), military and aircraft


programs followed Waterfall model in many (Why)

• When to use the waterfall model


• the requirements are very well known, clear and fixed.
• There are no ambiguous requirements
• Ample resources with required expertise are available freely
Advantage of Waterfall Model

• This model is simple and easy to understand and use.

• It is easy to manage due to the rigidity of the model – each


phase has specific deliverables and a review process.

• In this model phases are processed and completed one at a


time. Phases do not overlap.
Disadvantage of Waterfall
Model

• Disadvantage Waterfall Model


• Once an application is in the testing stage, it is very
difficult to go back and change something

• High amounts of risk and uncertainty.

• Not a good model for complex and object-oriented


projects.

• Not suitable for the projects where requirements


are at a moderate to high risk of changing.
Agile Model

• In Waterfall model, very less customer interaction is involved


during the development

• Once the product is developed and if any failure occurs then the
cost of fixing such issues are very high

• To solve that Agile Model was introduced


Agile Model
• Software is developed in incremental, rapid cycles

• Small incremental releases with each release building on previous


functionality

• Each release is thoroughly tested to ensure software quality is


maintained

• It is used for time critical applications

• Example: Extreme Programming (XP), Scrum, Feature Driven


Development (FDD), Dynamic Systems Development Method (DSDM)
and Crystal
Agile Model
Advantages of Agile model

• Customer satisfaction by rapid, continuous delivery

• Customers, developers and testers constantly interact with each other

• Working software is delivered frequently

• Continuous attention to technical excellence and good design.

• Even late changes in requirements are welcomed


Disadvantages of Agile model

• For Large project, it is difficult to assess the effort required at the


beginning of the software development life cycle.

• There is lack of emphasis on necessary designing and documentation.

• The project can easily get taken off track if the customer representative
is not clear what final outcome that they want.
Time Line Comparison
Adobe is working on project to come up with a competing product for Microsoft
Word, that provides all the features provided by Microsoft Word and any other
features requested by the marketing team. The final product needs to be ready in 10
months of time.
• Waterfall model
• Spend 15% of time on requirements
and analysis (1.5 months)
• 20% of time on design (2 months)
• 40% on coding (4 months) and unit
testing
• 20% on System and Integration
testing (2 months)
• The project may also have 2 weeks
of User Acceptance
Time Line Comparison
Adobe is working on project to come up with a competing product for Microsoft
Word, that provides all the features provided by Microsoft Word and any other
features requested by the marketing team. The final product needs to be ready in 10
months of time.

• Agile model
• In the Agile methodology, each
project is broken up into several
‘Iterations’
• All Iterations should be of the same
time duration (between 2 to 8
weeks)
• At the end of the first iterations, the
team will deliver a working software
that were finalized for that iteration
V-model

• Verification and Validation model


• Similar to Waterfall Model
V-model

• Requirements
• before development is started, a system test plan is created
• focuses on meeting the functionality of requirements gathering

• The high-level design (HLD)


• Focuses on system architecture and design
• Provide overview of solution, platform, system, product and service/process
• An integration test plan is created in order to test the pieces of the software systems ability to
work together.
V-model

• The low-level design (LLD)


• actual software components are designed
• actual logic for each and every component of the system
• Component tests are created
• Coding
• Module design is converted into code by developers
• Unit Testing is performed by the developers on the code written by them.
V-model Discussion

• Advantages of V-model
• Simple and easy to use
• Testing activities happens well before coding. This saves a lot of time.
• Higher chance of success over the waterfall model.

• Disadvantages of V-model
• Very rigid and least flexible
• Software is developed during the implementation phase, so no early prototypes of the software
are produced
• Any changes happen in midway, then the test documents along with requirement documents has
to be updated
When to use the V-model

• Should be used for small to medium sized projects where requirements


are clearly defined and fixed

• ample technical resources are available with needed technical expertise

• What type of Model you can use for your Project?


Rapid Application Development (RAD)
model
• It is a type of incremental model (Agile model)
• Components or functions are developed in parallel
Rapid Application Development (RAD)
model
• Business Modeling
• flow of information between various functions in the project
• what type of information is produced by every function?
• which are the functions to handle that information?
• Data modeling
• Refined into the set of objects and it is essential for the business
• The attributes of each object are identified and defined the relationship between objects
• Process modeling
• Created for adding, modifying, deleting or retrieving a data object
Rapid Application Development (RAD)
model

• Application generation
• The actual system is built

• Testing and turnover


• The prototypes are independently tested after each iteration so that the overall testing time is
reduced
• The data flow and the interfaces between all the components are fully tested
Rapid Application Development (RAD)
model
• Why RAD is so popular?
• Quick iterations that reduce development time and speed up delivery
• Increased customer satisfaction due to high-level collaboration and coordination between
stakeholders (developers, clients, and end users)
• Use of powerful development tools ensures a better product quality (Kissflow)
• Companies that work on the cloud thrive with RAD methodology

• Disadvantage of RAD
• Customer involvement is compulsory during the entire life cycle
• Projects incapable of modularization can’t be developed
• Requires highly skilled developers/designers
Rapid Application Development (RAD)
model
• When to use RAD model
• There is a need to create a system that can be modularized in 2-3 months of
time
• High availability of designers for modeling and the budget is high enough to
afford their cost

• Is RAD model is a remedy for all types of Software?


Spiral model

• Similar to the incremental model, with more emphasis placed on risk


analysis
• overall success of a project highly depends on the risks analysis phase
Spiral model

• Planning Phase
• Requirements are gathered during the planning phase

• Risk Analysis
• a process is undertaken to identify risk and alternate solutions.
• A prototype is produced at the end of the risk analysis phase
• If any risk is found, then alternate solutions are suggested and implemented
• Engineering Phase
• software is developed, along with testing

• Evaluation phase
• allows the customer to evaluate the output of the project
Spiral model

• Advantages of Spiral model


• High amount of risk analysis
• Good for large and mission-critical projects
• Strong approval and documentation control

• Disadvantages of Spiral model


• Can be a costly model to use
• Risk analysis requires highly specific expertise
• Doesn’t work well for smaller projects
• Spiral may go infinitely

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy